Beyond Booleans: Improving Software Design

2025-08-28

This article argues against the overuse of booleans in software design. The author contends that many seemingly appropriate boolean values can be replaced with richer data types like datetimes and enums. Using booleans often leads to information loss and makes code harder to maintain. The author suggests carefully analyzing the underlying data meaning behind booleans and choosing more appropriate types, such as using datetimes to record event times and enums to represent statuses or types. Booleans are only justifiable as temporary variables for intermediate calculation results. This approach improves software design quality, prevents potential bugs, and enhances code maintainability and readability.

Read more
Development data types booleans

Rust Ring Buffers: A Deep Dive

2025-02-20

While working on a MIDI project, the author needed a way to store recent messages without unbounded memory growth. A ring buffer proved to be the solution. This post explains ring buffers, their functionality, and use cases. It compares Rust's standard library `VecDeque` with third-party libraries like `circular-buffer` and `ringbuffer`. `VecDeque` offers flexibility but resizes dynamically; fixed-size alternatives like `circular-buffer` and `ringbuffer` avoid reallocation overhead but are less flexible. The author concludes that for fixed-size needs, third-party libraries save development time and effort.

Read more
Development Ring Buffer

The Ethical Quandary of LLMs: Why I've Stopped Using Them

2025-02-19

This post delves into the ethical concerns surrounding Large Language Models (LLMs) and explains the author's decision to stop using them. The author explores five key issues: energy consumption, training data sourcing, job displacement, inaccurate information and bias, and concentration of power. High energy usage, privacy concerns related to training data, the potential for job displacement, the risk of misinformation due to biases and inaccuracies, and the concentration of power in the hands of a few large tech companies are highlighted as significant ethical problems. The author argues that using LLMs without actively addressing these ethical concerns is unethical.

Read more
AI Ethics

Rust's Allure Beyond Performance: A Programmer's Love Story

2025-01-12

A programmer shares their love for the Rust programming language, highlighting aspects beyond its renowned performance and memory safety. The post focuses on Rust's expressive and safe type system, helpful compiler error messages, and the flexibility of combining functional and imperative programming styles. While acknowledging the steeper learning curve, the author emphasizes Rust's predictability, concurrency safety, and overall enjoyment compared to languages like Go. Ultimately, Rust is presented as a worthwhile language even when top performance isn't a primary requirement.

Read more
Development