Programming

Do You Really Want to be Doing This When You're 50?

A former programmer reflects on the frustrations of modern software development, highlighting challenges like incomplete domain knowledge, complex APIs, and constant technological evolution. The author expresses preference for small, manageable programming projects while suggesting that high-pressure development may be better suited for younger developers.

TinyCompiler: a compiler in a week-end

A developer shares their experience building a minimalist compiler called TinyCompiler for a custom programming language 'wend' over a weekend. The project aims to translate 'wend' code into GNU assembly while maintaining a codebase of around 500 lines of Python, serving as an educational exploration of compiler theory.

Greg Kroah-Hartman Makes A Compelling Case For New Linux Kernel Drivers To Be Written In Rust

Linux kernel maintainer Greg Kroah-Hartman advocates for writing new kernel drivers in Rust, highlighting how it eliminates common C-related memory bugs. The debate over Rust in the Linux kernel continues, with Linus Torvalds supporting its inclusion despite some maintainers' opposition. Kroah-Hartman emphasizes that while existing C code won't disappear, Rust offers better memory safety and API design opportunities.

NASA has a list of 10 rules for software development

A critical analysis of NASA's 10 coding rules for embedded software programming discusses potential issues with their restrictions, especially around recursion, memory allocation, and function pointers. The analysis emphasizes how these rules, while potentially beneficial for spacecraft software, may lead to less maintainable code and argues against limitations that prevent common programming patterns.

Writing My Own Dithering Algorithm in Racket

An exploration of image dithering techniques demonstrates how to convert color images to black-and-white using various algorithms, including a novel approach that balances between Atkinson and Floyd-Steinberg methods. The author developed this technique while building Guten, a custom newspaper printer that requires monochrome images, showcasing practical applications of dithering in modern technology.

String vs &str

Explores the differences and optimal usage patterns between &str and String in Rust, focusing on their implementation in function arguments, return values, and struct fields. Explains how each type has specific use cases based on memory ownership, lifetime requirements, and performance considerations.

n0rdy - What Okta Bcrypt incident can teach us about designing better APIs

A comprehensive analysis of how various programming languages and libraries handle Bcrypt's 72-character input limitation reveals widespread security vulnerabilities similar to the Okta incident. Most implementations silently truncate input exceeding the limit rather than throwing errors, potentially allowing authentication bypasses with long usernames. Only Go's standard library and a specific Java implementation properly validate input length, highlighting the importance of secure API design.

Go Data Structures Posted on Tuesday, November 24, 2009.

A detailed explanation of Go programming language's memory representation and data structures, covering basic types, structs, arrays, and slices. The content explores how Go gives programmers control over memory layout and pointers, differentiating it from languages like Java, while explaining the efficiency considerations behind these design choices.

Nine

A new C64 demo called 'Nine' was released at Fjälldata 2025, featuring innovative programming techniques and an accompanying music track, with a detailed explanation video in development.