<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>MyLearning on Andrey's Notes on Everything</title><link>https://blog.dmitriev.de/tags/mylearning/</link><description>Recent content in MyLearning on Andrey's Notes on Everything</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 10 Apr 2026 14:28:36 +0200</lastBuildDate><atom:link href="https://blog.dmitriev.de/tags/mylearning/index.xml" rel="self" type="application/rss+xml"/><item><title>10 Ways to Add Two Large Arrays in Rust Using ndarray</title><link>https://blog.dmitriev.de/rust/0003-ndarrays/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.dmitriev.de/rust/0003-ndarrays/</guid><description>&lt;p>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&lt;f32>)&lt;/p></description></item><item><title>Unaligned Memory in Rust - Forcing Odd Addresses and Loading Data Safely</title><link>https://blog.dmitriev.de/rust/0004-unaligned/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.dmitriev.de/rust/0004-unaligned/</guid><description>&lt;p>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?&lt;/p></description></item><item><title>Understanding addr_of! and addr_of_mut! - Safe Pointer Access</title><link>https://blog.dmitriev.de/rust/0002-addr/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.dmitriev.de/rust/0002-addr/</guid><description>&lt;p>Rust is very strict about memory safety, especially when it comes to &lt;strong>unaligned data&lt;/strong>. If you&amp;rsquo;ve ever worked with byte buffers, binary protocols, FFI, or &lt;code>#[repr(packed)]&lt;/code> structs, you’ve probably run into an error like: &amp;ldquo;error: Reference to field of packed struct is unaligned&amp;rdquo;&lt;/p>
&lt;p>This is Rust politely telling you:
&lt;strong>“Stop! Creating a reference here would be undefined behavior.”&lt;/strong>&lt;/p>
&lt;p>In this article, we’ll look at why this happens and how Rust’s &lt;code>addr_of!&lt;/code> and &lt;code>addr_of_mut!&lt;/code> macros let you safely work with potentially unaligned or unsafe memory locations &lt;strong>without creating invalid references&lt;/strong>.&lt;/p></description></item></channel></rss>