reading list
how crdts make multiplayer text editing part of zed's dna
2025-03-31Zed uses Conflict-Free Replicated Data Types (CRDTs) to enable smooth collaboration in text editing. This technology allows multiple users to edit documents independently while ensuring that their changes merge correctly, avoiding conflicts. By structuring data with logical locations and unique identifiers, Zed maintains a consistent experience for all users, even...
by Nathan Sobowords 2530notes on structured concurrency, or: go statement considered harmful
2025-03-19The author argues that current concurrency methods, like the "go statement" in Golang, are similar to the outdated "goto" statement, making code harder to manage and understand. Just as removing goto from programming languages led to better control flow and new features, eliminating go statements could improve concurrency APIs. The...
by Nathaniel J. Smithwords 6018advice on upskilling
2025-03-17To improve skills, focus on deliberate practice, which involves challenging yourself just beyond your current abilities. It's essential to track measurable progress and avoid getting stuck in a cycle of overwhelming difficulty or mindless repetition. Consistent effort and strategic learning will lead to long-term success and mastery.
by Justin Skycakwords 18109frustum culling
2025-03-14Frustum culling helps reduce rendering time by only processing objects within the viewer's view. By using techniques like oriented bounding boxes and SIMD, the author improved frame time from 8.2 ms to 3.3 ms. This optimization makes both CPU and GPU work more efficiently.
by bruop.github.iowords 4998data oriented design by jjb9922 · pull request #5 · unresearch/unresearch.ing
2025-03-12A user named JJB9922 is proposing to merge five code changes into the main branch of a GitHub repository. The changes include fixing an incorrect import, converting to data-oriented design, and optimizing memory usage. The code has been reviewed and approved by another user named seatedro.
by https://github.com/Unresearch/words 504source multiplayer networking
2025-03-09Multiplayer games using the Source Engine rely on a Client-Server networking model, where the server sends updates to clients about the game world state and receives input commands. Challenges like network bandwidth limitations and latency affect gameplay, causing delays and potential packet loss issues. To address these challenges, the Source...
by valvesoftware.comwords 3267yoke is really cool
2025-03-08Yoke is a project that allows you to manage infrastructure as code by writing definitions in Go or Rust, which are then compiled to WebAssembly. It simplifies the creation of Kubernetes manifests and reduces boilerplate code, making deployments easier. Yoke's security model uses WebAssembly to sandbox code and limit access...
by xeiaso.networds 3251load balancing
2025-03-08This post discusses how a load balancer distributes HTTP requests to servers using different methods. Round robin is a simple approach but can lead to dropped requests when server performance varies. More advanced methods like dynamic weighted round robin and least connections optimize for both server power and request latency,...
by samwho.devwords 2311why fastdoom is fast
2025-03-08fastDOOM is a version of the classic game DOOM that runs 30% faster without losing features. It achieves this speed through various optimizations and code improvements. The performance gains were especially notable on demanding maps, demonstrating the effectiveness of the enhancements made.
by fabiensanglard.networds 2716from web developer to database developer in 10 years
2025-03-08Phil Eaton shares his journey from being a web developer to a database developer over ten years. He learned about databases through personal projects and co-founding a startup, eventually landing a job at EnterpriseDB, a major contributor to Postgres. After a year there, he reflects on the rewarding experience of...
by eatonphil.comwords 10300.14.0 release notes
2025-03-05Zig 0.14.0 introduces several updates, including changes to the standard library, compiler, and build system. Notable features include multithreaded backend support, incremental compilation, and new builtins like @FieldType. The release also simplifies the way libraries are linked and improves error reporting for undefined behavior.
by ziglang.orgwords 12938noise functions and map generation
2025-03-02This article explains how to use noise functions for generating natural-looking landscapes in code. It covers different types of noise, such as red, pink, and white noise, and how to modify them for various effects. The author also shares techniques for combining noise functions to create unique textures and patterns.
by redblobgames.comwords 6204making maps with noise functions
2025-03-01Noise functions like Simplex and Perlin noise are used to create 2D maps by assigning values for elevation and moisture. By combining different frequencies of noise, we can generate varied terrains, such as hills and valleys, and define biomes like forests and oceans. This technique is popular for terrain generation...
by redblobgames.comwords 5329how i calculate 17 bilion similarities in cookit
2025-02-28The article discusses how to calculate 17 billion similarities in a project called Cookit. It covers techniques for performance optimization, such as using bit masks and managing memory usage. Additionally, the author shares tips on debugging high memory consumption in applications.
by IndexOutOfRangewords 252←homeabout→ getting rid of unwanted branches with __builtin_unreachable()
2025-02-28In C++, using `__builtin_unreachable()` can help optimize functions by indicating that certain code paths are never executed, leading to smaller assembly code. By ensuring input constraints, such as the length being a multiple of 32, the compiler can eliminate unnecessary branches and improve performance. However, applying this optimization with `std::vector`...
by nicula.xyzwords 1687asm-lessons/lesson_01/index.md at main · ffmpeg/asm-lessons · github
2025-02-22The FFmpeg School of Assembly Language teaches how to write assembly code for high-performance image processing. It focuses on using Intel syntax and SIMD (Single Instruction Multiple Data) to handle multiple data elements simultaneously. The lessons aim to help learners understand assembly language and its application in FFmpeg, making it...
by GitHubwords 2181optimize loops
2025-02-22Loops can slow down programs, so optimizing them is crucial for better performance. Techniques like restructuring loops, eliminating unnecessary statements, and using faster operators can significantly speed up code execution. It’s important to balance optimization with code readability to maintain clarity for future developers.
by Aivostowords 3196horrible code, clean performance
2025-02-22Johnny’s Software Lab specializes in software performance and provides solutions for optimization issues. The article discusses a complex code example that, while difficult to read, offers significant performance improvements over a simpler version. Although the code is considered "horrible," it effectively enhances speed, especially in scenarios where performance is crucial.
by Ivica Bogosavljevićwords 1155rethinking optimization for size
2025-02-22Programmers should only optimize for performance after profiling shows a real need. Introducing too much indirection can slow down a program significantly, making it hard to fix later. Sometimes, major rewrites can yield huge speed improvements, but small tweaks often won't achieve the same results.
by LWNwords 300numbers everyone should know
2025-02-22When designing a performance-sensitive computer system, understanding the relative costs of different operations is crucial. It's essential to grasp the trade-offs between network I/O, disk I/O, load from DRAM, and more. Back-of-the-envelope analysis and microbenchmarking are valuable skills in comparing performance without building two alternative designs. Jeff Dean's table of...
by Everything is Datawords 385let's build a high-performance fuzzer with gpus!
2025-02-22The document discusses building a high-performance fuzzer with GPUs for fuzzing embedded software in the cloud. Fuzzing involves supplying programs with randomized inputs to uncover unexpected behavior, with coverage-guided fuzzers focusing on finding inputs that explore new code paths. The document explains the challenges of fuzzing embedded software due to...
by Ryan Eberhardtwords 2860vectorization part1. intro.
2025-02-22This article introduces vectorization, a technique that allows a CPU to process multiple values in one instruction, improving performance. It compares scalar and vector versions of a code example, showing how vectorization can handle more data in fewer instructions. Future articles will explore various topics related to vectorization, including best...
by Denis Bakhvalovwords 544designing a simd algorithm from scratch
2025-02-22The text discusses designing a SIMD algorithm that efficiently handles u64 values without requiring full additions. It explores mapping data in SIMD lanes and highlights the need for a flexible implementation that can adjust the number of lanes for better performance. The goal is to optimize the algorithm for processing...
by mcyoung.xyzwords 17191perils of the pc cache
2025-02-22Cache memory in advanced processors can speed up performance but also introduces unpredictability that can surprise designers. This paper discusses how cache behavior affects real-time embedded systems, particularly using the Intel 80486 as an example. It suggests careful measurement and cache management to mitigate performance issues in critical applications.
by cmu.eduwords 3711don't call yourself a programmer, and other career advice
2025-02-19Most programming jobs focus on creating software that solves business problems, often in boring ways. Instead of calling yourself a programmer, emphasize how you help businesses increase revenue or reduce costs. Strong communication and negotiation skills are crucial for showcasing your value in the workplace.
by kalzumeus.comwords 5650writing a search engine from scratch.
2025-02-19The author created a simple search engine that indexes HackerNews, using an inverted index for faster document retrieval. They implemented text normalization and a ranking algorithm based on word frequency and rarity to improve search results. This project demonstrates the basics of building a search engine, and the author encourages...
by mnprt.mewords 981computer systems: a programmer's perspective
2025-02-15The text explains how a CPU performs simple operations using registers and an arithmetic/logic unit (ALU). It highlights the role of registers in storing data, addresses, and managing program state, as well as how pointers and local variables are handled in memory. Additionally, it discusses the importance of separating memory...
by Randal E. Bryantwords 410575from theory to systems: a grounded approach to programming language education
2025-01-30Will Crichton presents a new approach to teaching programming languages by using systems programming languages like WebAssembly and Rust to make theoretical concepts more relatable. This curriculum helps students connect their experiences with low-level programming to programming language theory, making learning more grounded and enjoyable. Feedback from students indicates that...
by Will Crichtonwords 4044my framework for writing systems in c++
2025-01-17Reading Time: ~15 minutes Writing systems in C++ is a balancing act between flexibility, performance, and maintainability. Over time, I’ve developed a personal framework that helps me approach these systems in a modular way, ensuring they’re efficient, scalable, and easy to understand (especially for someone new reading my code). This...
by Deplet.ingyet another programming resource list
2025-01-15As no-nonsense as possible 2024-09-07 18:42:57 Saturday Resources I have looked at or utilized, no particular order. This is a growing list that I'll update periodically. Structure is: {{ Language | Media Format | Field }} Resource Enjoy! Resources {{ C++ | Text | Programming Languages }} LearnCPP {{ C++...
by Deplet.ingc++ isn't that bad
2025-01-15Why I don't hate it 2024-09-09 18:57:14 Monday Zig this, Rust that. Odin here, GoLang there. I get it! C++ has flaws. If the standard library was in a book, it'd be thicker than a bowl of oatmeal. If you hop on a codebase that's survived 4 major C++ releases,...
by Deplet.ingzig: first impressions
2025-01-15std.debug.print("pretty good..."); 2024-10-13 21:14:37 Sunday Zig is a pretty new systems programming language. It is yet another 'C killer', and I think (for once) it could be just that—with a caveat. Of course, C is sitting on billions of devices and isn't going anywhere in my lifetime. However, if I...
by Deplet.ingexploring data oriented design (dod) as an oop guy
2025-01-15Data Oriented Design from the Lens of an OOP Guy 2025-01-04 18:48:19 Saturday My first programming language was Java. Back when I was 13 years old, trying to get into the Minecraft modding scene. At this time, Martin's Clean Code had firm roots in the language's community. Meaningful names, small...
by Deplet.ingexploring functional programming with scheme/lisp: a primer
2025-01-15Or how I got sidetracked from the SICP book 2025-01-10 22:35:25 Friday My first programming language was Java, and like a lot of young programmers, I was introduced to the world of programming through the lens of Object-Oriented Programming (OOP). Moving to C broke this mold a little, with C...
by Deplet.inga reinforcement learning guide
2025-01-11Reinforcement learning uses rewards to help algorithms learn the best actions to take in various situations. It balances exploration of new moves with exploiting known good moves, similar to playing chess without analyzing every option. The Actor-Critic model improves learning efficiency by combining two networks: one that decides actions and...
by Notionwords 12130why_is_c_the_safest_language
2025-01-11C is considered a safe programming language because it has a long history of successful, trusted software development, despite some criticisms regarding its security. Many developers appreciate C for its explicitness and control, which can lead to more secure code when used correctly. The language's widespread use and robust tooling...
bywords 3141you and your research
2025-01-10Richard W. Hamming reflects on his experiences with great scientists and their differences from others. He emphasizes that success in science requires emotional commitment and the ability to seize opportunities. Hamming believes that studying one's successes is crucial for understanding how to achieve greatness in research.
by Richard W. Hammingwords 27513hamming, "you and your research" (june 6, 1995)
2025-01-10In "You and Your Research," Hamming emphasizes the importance of working on significant problems to achieve success. He encourages hard work, learning from successes, and collaborating with important people in your field. Hamming believes that focusing on excellence and adapting to change is crucial for making meaningful contributions.
by securitylectures``you and your research''
2025-01-06Dr. Richard W. Hamming discussed why some scientists make significant contributions while others are forgotten during a seminar at Bell Labs. He emphasized the importance of working on important problems and having the courage to pursue great ideas. Hamming also noted that successful scientists often turn challenges into opportunities for...
by virginia.eduwords 14411deplet.ing
2025-01-06Data Oriented Design (DoD) focuses on organizing data to improve computer performance, especially in high-demand applications like games and simulations. Unlike Object-Oriented Programming (OOP), which can complicate data access, DoD uses structures of arrays to enhance cache efficiency and parallel processing. While DoD offers performance benefits, it may not always...
by deplet.ingwords 1094handles are the better pointers
2025-01-02The text discusses using 'index-handles' instead of raw or smart pointers for memory management in C and C++. It suggests centralizing memory management into systems, grouping items into arrays, and converting handles to pointers only when necessary. By following specific rules, such as not storing pointers and using handle-to-pointer conversion,...
by floooh.github.iowords 2959contributing to complex projects
2024-12-29Mitchell Hashimoto shares a structured approach to understanding and contributing to complex software projects. He emphasizes starting as a user, tracing features, and gradually learning the codebase while engaging with the project's community. By breaking the process into manageable steps, he encourages others to tackle complexity with confidence.
by Mitchell Hashimotowords 1860demystifying debuggers, part 1: a busy intersection
2024-12-23This article introduces a series about debuggers, highlighting their essential role in programming and software development. The author emphasizes that debuggers are not just tools for fixing errors, but also valuable for analyzing and understanding code behavior. Upcoming posts will explore various aspects of debuggers, including their architecture and features.
by Substackwords 1173demystifying debuggers, part 2: the anatomy of a running program demystifying debuggers, part 2: the anatomy of a running program
2024-12-23Programs run in their own virtual address spaces, allowing them to use memory independently without interfering with each other. The operating system manages these spaces and translates virtual addresses to physical addresses, enabling efficient memory usage. This system allows many programs to run simultaneously, each perceiving access to a large...
by Ryan Fleurywords 5919the book of shaders
2024-12-23"The Book of Shaders" is a beginner-friendly guide to understanding Fragment Shaders. It covers topics like image processing, 3D graphics, and simulations in a step-by-step manner. The authors, Patricio Gonzalez Vivo and Jen Lowe, combine art and technology to help readers explore this complex subject.
by The Book of Shaderswords 456resources for amateur compiler writers
2024-12-22This page provides resources for amateur compiler writers, focusing on practical and useful literature. It includes recommendations for books, papers, and algorithms related to compiler construction, optimization, and code generation. Suggestions for additional materials are welcome, and the document organization is arbitrary.
by c9x.mewords 869untangling lifetimes: the arena allocator - by ryan fleury untangling lifetimes: the arena allocator
2024-12-21The arena allocator is a simpler alternative to traditional manual memory management in C, which often leads to complex issues with malloc and free. Instead of managing individual allocations, the arena allocator groups memory usage together, making it easier to handle lifetimes and release memory. This approach improves performance and...
by Ryan Fleurywords 8136one year of c
2024-12-21The author reflects on their year of writing C code, finding it enjoyable and productive. They emphasize the importance of choosing the right language for each problem and share insights on the benefits of using C over C++ in certain scenarios. Additionally, they discuss the advantages of C99 improvements and...
by floooh.github.iowords 1693advanced c 1: function pointers
2024-12-21In this video series, Charles Cabergs explains advanced concepts in the C programming language, starting with function pointers. He demonstrates how function pointers allow functions to be passed as arguments to other functions, making code more flexible and generic. The video also covers practical examples, such as using function pointers...
by Charles Cabergsthe perfect voxel engine
2024-12-21The perfect voxel engine allows developers to easily create and manipulate voxel data for games. It should efficiently handle various features like lighting, physics, and procedural generation. By focusing on flexible data structures and conversion processes, this engine can support dynamic gameplay and user modifications.
by John Linwords 3111towards high-performance ai compilers.
2024-12-21The paper discusses high-performance AI compilers, focusing on efficient code generation and hardware-specific optimizations using techniques like tiling and kernel fusion. It highlights the Linalg dialect, which simplifies tensor operations and allows for effective optimizations across different frameworks. The use of libraries like libsxmm enhances performance by fusing operations and...
by hy3na.comwords 1922mlir: a compiler infrastructure for the end of moore's law
2024-12-21MLIR is a versatile compiler infrastructure designed to address software fragmentation and improve compilation for different hardware. It aims to reduce the cost of building domain-specific compilers and facilitate the connection of existing compilers. MLIR offers a standardized approach to code generation and optimization across various application domains and hardware...
by Chris Lattner, Mehdi Amini, Uday Bondhugula, Albert Cohen, Andy Davis, Jacques Pienaar, River Riddle, Tatiana Shpeisman, Nicolas Vasilache, Oleksandr Zinenkowords 11881introduction to ggml
2024-12-21ggml is a lightweight, open-source machine learning library focused on Transformer inference, developed in C and C++. It is minimalistic and easy to compile, making it a popular choice for on-device machine learning tasks. The library supports various hardware backends and is still evolving, which may require users to have...
by huggingface.cowords 1141game physics series
2024-12-21Ming-Lun "Allen" Chou shares tutorials on game physics simulation and engine architecture on his website. The series covers topics like motion dynamics, collision detection, and constraint-based physics. These resources aim to help others learn about implementing realistic physics in games.
by Ming-Lun "Allen" Chou | 周明倫words 84x86re
2024-12-21The text is about a website called x86re.com that offers resources on reverse engineering. It includes a series of tutorials for beginners, covering topics like executables and Portable Executable files. The goal is to help newcomers understand x86 syntax and stack frames in reverse engineering.
by x86re.comwords 255rust's incremental compiler architecture
2024-12-21Rust has been redesigning its compiler to support incremental compilation, which allows for faster builds by only recompiling changed parts of the code. This new approach uses a query-based system instead of the traditional pipeline, enabling more efficient dependency tracking and caching of results. Although this method adds complexity, it...
by Daroc Aldenwords 1503monolith: real time recommendation system with collisionless embedding table
2024-12-21Monolith is a large-scale recommendation system designed to improve real-time learning and model quality by using a collisionless embedding table. It allows for fast synchronization of model parameters, enabling it to quickly adapt to user feedback. This system consistently outperforms traditional methods while maintaining efficient memory use.
by Zhuoran Liu, Leqi Zou, Xuan Zou, Caihua Wang, Biao Zhang, Da Tang, Bolin Zhu, Yijie Zhu, Peng Wu, Ke Wang, Youlong Chengwords 5987ditherpunk — the article i wish i had about monochrome image dithering
2024-12-21Dithering is a technique that uses a limited color palette, like black and white, to create the illusion of more colors by adjusting pixel brightness. Various methods, such as ordered dithering and error diffusion, can enhance the visual quality of images by distributing quantization errors. Techniques like Bayer and blue...
by surma.devwords 3747zig's boundedarray
2024-12-21Zig arrays have a fixed length known at compile-time, but for situations where the length is unknown until runtime, dynamic allocations like std.ArrayList are often used. std.BoundedArray is a solution for cases where the maximum length is known, combining the length and array into a single structure for better safety...
by openmymind.networds 844io_uring
2024-12-21The article introduces io_uring, a new Linux IO interface designed for efficient asynchronous input/output operations. It explains how io_uring uses shared memory and eliminates the need for locking between applications and the kernel, improving performance. The article also highlights the significant increase in IOPS (input/output operations per second) that io_uring...
bywords 8271a programmer-friendly i/o abstraction over io_uring and kqueue
2024-12-21This text discusses a programmer-friendly I/O abstraction using io_uring for Linux and kqueue for FreeBSD/macOS to handle file descriptor readiness efficiently. It highlights the benefits of batching I/O requests to reduce system call overhead and simplify event handling in applications. The proposed solution includes a central I/O dispatcher to manage...
by King Butcherwords 1853[#32] ghostty: a new terminal emulator written in zig - mitchell hashimoto
2024-12-21The content discusses the Zig Showtime, a show created during the pandemic lockdowns with goals to entertain, share interesting projects, and provide hosting experience. The show aims to also give community members a platform to share their projects. Mitchell Hashimoto discusses his new terminal emulator, Ghosty, highlighting its features and...
by Zig SHOWTIMEa systems-minded approach to creating a music player application by andrew kelley
2024-12-21The text discusses the creation of a music player application using different programming languages and frameworks. It highlights challenges faced, such as dependencies on C++ and issues with features breaking due to updates from external services like YouTube. The author emphasizes the importance of a systems-minded approach to improve code...
by TigerBeetleinformal approach to attention mechanisms
2024-12-21Attention mechanisms are crucial for how transformers, like those used in large language models, process information by calculating the "usefulness" of each word in relation to others. The encoder uses self-attention to analyze words within the same sentence, while the decoder employs masked self-attention to consider only previous words. Each...
by Maharshi's blogwords 2478the road to zig 1.0 - andrew kelley
2024-12-21The video discusses challenges with C programming, including complicated code and error handling. It introduces Zig, a programming language that simplifies code and improves error management. Zig also functions as a C compiler, making it easier for developers to write and debug software.
by ChariotSolutionsfrom theory to code: implementing a neural network in 200 lines of c
2024-12-21The article explains how to implement a simple neural network in C, consisting of input, hidden, and output layers. It describes the training process using forward and backward propagation to improve accuracy over multiple epochs. By the end of training, the model achieves an accuracy of 98.22% on the test...
by konrad.ggwords 2331dynamic lighting was better nine years ago | a warning about 9th gen's neglect.
2024-12-21The article discusses how dynamic lighting in the 9th generation of gaming consoles has declined in quality compared to previous generations. It emphasizes the need for better image quality and performance instead of simply increasing resolution. The author argues for improved lighting techniques that enhance visual standards while being more...
by Threat Interactivebyte latent transformer: patches scale better than tokens
2024-12-21The Byte Latent Transformer (BLT) is a new model that processes raw byte data without using tokenization, achieving performance similar to traditional models while being more efficient. It dynamically groups bytes into patches based on their information density, which helps improve scaling and robustness against noisy inputs. BLT demonstrates significant...
by Artidoro Pagnoni, Ram Pasunuru, Pedro Rodriguez, John Nguyen, Benjamin Muller, Margaret Li, Chunting Zhou, Lili Yu, Jason Weston, Luke Zettlemoyer, Gargi Ghosh, Mike Lewis, Ari Holtzman, Srinivasan Iyerwords 12714