LLM Inflation: Are Large Language Models Creating Redundant Information?

2025-08-06

Data compression was once a hallmark of computing, but now Large Language Models (LLMs) have introduced 'LLM inflation': people use LLMs to expand concise information into lengthy text, only to compress it back down using an LLM. This reflects an underlying communication issue: are we implicitly rewarding obfuscation and wasted time? LLMs may be helping us confront and solve this problem.

Read more

My Keyboard Odyssey: Maltron vs. MoErgo Glove80

2025-07-23

After years of hand pain from using traditional keyboards, the author tried both Maltron and MoErgo Glove80 ergonomic keyboards. While the Maltron, despite its dated looks, offered a superior thumbpad design for ergonomic comfort, the Glove80, though customizable, suffered from less-than-ideal thumbpad placement and key latency issues. Ultimately, the author returned to the Maltron, highlighting the often-overlooked importance of thumbpad design in ergonomic keyboards.

Read more
Hardware keyboard design

Program Optimization: Four Approaches Before Rewriting

2025-04-16

Slow program execution is a common pain point for programmers. The author, drawing on years of optimization experience, presents four approaches: 1. Use a better algorithm; 2. Use a better data structure; 3. Use a lower-level system; 4. Accept a less precise solution. The article uses bubble sort and selection sort as examples to illustrate the importance of algorithm selection, emphasizing the need to consider practical factors when choosing data structures and programming languages. The author cautions against premature optimization and stresses the importance of rigorous profiling before attempting optimization.

Read more
Development program optimization

Why I Previously Overlooked Parallelisation: A Retrospective on Multithreaded Programming

2025-04-05

The author revisits a previous post, admitting to overlooking parallelisation as a crucial optimisation technique. Using his website rebuild as a case study, he demonstrates the significant performance gains achieved through parallelisation. The article delves into the challenges of parallel programming, including hardware and software limitations, and the complexities of synchronization in multithreaded environments. The author shares his experiences with multithreaded programming in Rust, highlighting how Rust's features make multithreading safer, more reliable, and more efficient. Ultimately, the author advocates for developers to embrace parallelisation as a powerful tool for improving software performance.

Read more

Supercharge Your Shell: The Ultimate Guide to fzf/skim and zsh History Search

2025-03-26

The author, a heavy Unix terminal user, noticed vast differences in shell efficiency among users. By combining the Ctrl-r shortcut with the fuzzy-finding tools fzf/skim, command search efficiency was dramatically improved. The article details configuring zsh and skim to enhance history command display, replacing meaningless integers with timestamps and customizing the display format (e.g., using "1d", "2d" for command execution time) for more intuitive command selection. Ultimately, the author's shell efficiency doubled, encouraging readers to improve their shell usage habits for increased productivity.

Read more
Development Shell efficiency

Transitive Dependencies: Security vs. Productivity in Modern Software

2025-01-28

Modern software development relies heavily on external libraries, creating a trust relationship akin to leaving one's door unlocked. The author argues that this reliance on transitive dependencies, while boosting productivity, introduces significant security risks. The article explores the tension between efficiency and security, proposing component isolation and the principle of least privilege as solutions. It draws parallels to OpenSSH and the Actor model, envisioning a more secure software architecture that requires rethinking hardware, operating systems, and programming languages.

Read more
Development software architecture