Paged Out! is a new experimental (one article == one page) free magazine about programming (especially programming tricks!), hacking, security hacking, retro computers, modern computers, electronics, demoscene, and other similar topics.
Rusts type system requires that there only ever is one mutable reference to a value or one or more shared references. What happens when you need multiple references to some value, but also need to mutate through them? We use a trick called interor mutability: to the outside world you act like a value is immutable so multiple references are allowed. But internally the type is actually mutable. All types that provide interior mutability have an UnsafeCell at their core. UnsafeCell is the only primitive that allows multiple mutable pointers to its interior, without violating aliasing rules. The only way to use it safely is to only mutate the wrapped value when there are no other readers. No, the garantee has to be even stronger: we can not mutate it and can not create a mutable reference to the wrapped value while there are shared references to its value. Both the book and the std::cell module give a good alternative explanation of interor mutability. What are some patterns that have been developed to use interior mutability safely? How do multithreaded synchronization primitives that provide interior mutability follow similar principles?
This series is likewise designed to help visionary friends, but where his friends were living off-the-grid, my friends are creating the programming environments of the future. This series is democratizing access to tools one-step removed. These reviews are for the makers of tools, those that are pushing our computational interfaces forward.
When I was first introduced to quantum computing, the thought of quantum computers alone was mindblowing; it seemed more science fiction than reality. But what if I told you that real quantum…
- C and C++
- Architecture, Design Patterns and Refactoring
- Skills & Tools
- Agile Software Development and Scrum
- Operating Systems and Networking
- Embedded Systems and Computer Architecture
- Version Control
- Robotics
- Mechanical Engineering
The purpose of this text is to provide a reference for University level assembly language and systems programming courses. Specifically, this text addresses the x86-64 instruction set for the popular x86-64 class of processors using the Ubuntu 64-bit Operating System (OS). While the provided code and various examples should work under any Linux-based 64-bit OS, they have only been tested under Ubuntu 14/16/18 LTS (64-bit).
SQL is a programming language used for querying and managing data in databases and has become the backbone of modern analytics. Yet, there is no one go-to place for advance analytics using SQL. In…
When big data in eLearning is discussed, I often reflect on the difference in the terms data and information. Data is, of course, raw recorded information...
My Functional Programming journey was filled with dead ends, false starts, failed attempts and frustration. And I suspect that I’m not alone in this struggle. So why is this a common problem…
Learn more about how the Rust programming language shares many of the advantages offered by Haskell such as a strong type system, great tooling, polymorphism, immutability, concurrency, and great software testing methodologies. Rust is a good choice when you need to squeeze in extra performance.
This essay attempts to make Conal’s vision more understandable to less mathematically-oriented programmers, and also show how this perspective could be the foundation for a new era of programming, not just with user interfaces, but also multi-node computing, storage, machine learning, etc.
I’ve written this article series, to help you get a good sense of how production Haskell is written at a company like Klarna and what to avoid along the road.
Do you want to know the main technical blockchain difference between Tron, VET, NEO and Ethereum? If you do then we got you covered as we discuss it now!
In certain cases, useMemo is irrelevant, overused, and likely harmful to the performance of your application. Learn these situations and how to avoid them.
Modern day javascript environments have many ways of dealing with state. One can use closures or classes to have some shared state, but sometimes a more elaborate state management library is needed…
Learning Linux is fun and engaging. It lets you explore an uncharted territory where you are bound to learn new things. Linux is interesting to learn. It will not stop surprising you when it comes…
In this post, the author takes a closer look at the top ten emerging open-source tools right now, including tools for testing, development, prototyping, and more.
Are you teriffied about your jobs will be taken away by AI. If you do, then check out the first jobs that will be eliminated by AI. This will help you prep.
Wireshark is a popular network protocol analyzer tool that enables you to gain visibility into the live data on a network. It’s a free and open-source tool that runs on multiple platforms.
JPolansky1, a U.S.-based cybersecurity educator with extensive experience in teaching people, says that “adding Wireshark skills to your cyber security toolkit can assist in taking your career to the next level.”
This guide will use JavaScript instead of a pure functional programming language (e.g. Haskell) to make things more approachable for developers accustomed to imperative languages. It will, however, assume you have basic knowledge of functional programming, including currying and lambdas.
Blockchain development requires a different approach. It is not similar to web development, which makes it far more complex. Rohit99, a blockchain developer from India, knows the demand of…
Coding is one of the most lucrative skills in the industry. It opens up a plethora of options for you as a programmer.
If you are looking to make money through your skills, then you are in luck! There are many ways one can earn money.
One such way is teaching others how to build products.
With the rise in popularity of blockchain, we have witnessed a drastic increase in blockchain development.
No doubt that almost every company wants to take advantage of decentralized ledger technology.
And this is where you come in.
With repeated practice, you are bound to grow and is more likely to suppress all your previous achievements. In the current technology world, programming is seen as one of the most critical skills…
In some domains of programming it’s common to want to write a data structure or algorithm that can work with elements of many different types, such as a generic list or a sorting algorithm that only needs a comparison function.
OOP is considered by many to be the crown jewel of computer science. The final solution to code organization. The end to all of our problems. The only true way to write our programs. Bestowed upon…
Reactive streams are a unified way of dealing with asynchronous events in JavaScript. Learn more in this tutorial with RxJs examples that you can run & modify.
Redux-Observable is a middleware for Redux which handles cancellation and many other asynchronous side effects by using reactive programming. … RxJS and Most.js are two libraries for reactive programming with which you can handle streams of actions in different ways. … In the following examples, Most.js will be used.