10 Ways to Add Two Large Arrays in Rust Using ndarray

Rust’s ndarray crate is a powerful foundation for numerical and scientific computing — but just like with any data‑heavy workload, performance depends heavily on how you write your loops. To explore this, I built a small educational demo that evaluates 10 different techniques for adding two 2D matrices (Array2)

Unaligned Memory in Rust - Forcing Odd Addresses and Loading Data Safely

Rust provides strong guarantees about memory safety, alignment, and the behavior of references. However, when you step into the world of low‑level programming — manual allocation, pointer arithmetic, and raw memory manipulation — it becomes your job to uphold these guarantees. One interesting challenge: Can we intentionally place a u32 at an odd address and still read it safely?

Understanding addr_of! and addr_of_mut! - Safe Pointer Access

Rust is very strict about memory safety, especially when it comes to unaligned data. If you’ve ever worked with byte buffers, binary protocols, FFI, or #[repr(packed)] structs, you’ve probably run into an error like: “error: Reference to field of packed struct is unaligned”

This is Rust politely telling you: “Stop! Creating a reference here would be undefined behavior.”

In this article, we’ll look at why this happens and how Rust’s addr_of! and addr_of_mut! macros let you safely work with potentially unaligned or unsafe memory locations without creating invalid references.

Multiply by De Bruijn sequence and lookup index

Computing the base‑2 logarithm of an integer (more precisely: finding the index of the highest set bit) is a common operation in systems programming, graphics, data compression, and low‑level algorithms. While Rust provides methods like u32::leading_zeros(), sometimes you may want your own implementation—especially an approach that is branch‑free, fast, and works on all stable targets.

How to Disable the Lock Screen

The lock screen isn’t just a pretty picture — it’s also an extra step before you can enter your password or PIN.

Starting with Windows 8, you have to press any key or click the mouse to move past the lock screen. In some cases, this can even slow things down — for example, after waking the system from sleep.

Programming in 1965

Occasionally read a book “Numerical Methods and Fortran Programming with applications in engineering and science” written by Daniel D. McCracken in 1965 and found beautiful example of the punched perforated cards

Hyper-Threading

I ran my own experiments to better understand how Hyper-Threading works internally on Windows, using hand-written assembly benchmarks — from single-register multiplications to SHA-256 hashing.

NUMA and memory performance

If you have a dual-socket CPU, each socket may have dedicated RAM assigned to it. This can lead to performance penalties when a processor accesses memory from the “wrong” memory bank. Below is a simple benchmark and an explanation of how to utilize the full bandwidth properly.