About:

I'm Evan Hahn, a programmer.

Website:

Specializations:

Incoming Links:

Outgoing Links:

Subscribe to RSS:
The author explores the possibility of making TypeScript values immutable by default, similar to Rust. They detail their attempts to achieve this through a series of steps, including obliterating built-in libraries, creating a min...
The author discusses the exploitation of open source software by large corporations and expresses a desire to prevent 'bad guys' from using their open source package. They reflect on the sustainability of open source, the lack of ...
gzpeek is a command-line tool that reveals unexpected metadata from gzip streams, including the operating system used for compression and the original file name.
The post humorously contrasts the advanced Kimi K2.5 model with the much less capable smollm2:135m, highlighting the latter's absurd responses and entertainment value.
The blog post discusses a Python solution to the Fizz Buzz problem without using booleans, conditionals, or pattern matching. The author presents a code snippet that utilizes itertools to create cycling sequences for 'Fizz' and 'B...
The author categorizes software errors into expected and unexpected types, highlighting the importance of proper error handling in programming.
The author reflects on their activities and insights from November 2025, covering various topics including tech ethics, video games, and notable readings. They discuss their attempts to make TypeScript immutable, share impressions...
The blog post reflects on 'The Story of the Typewriter,' a 1923 book that chronicles the history of typewriters from 1873. The author shares insights on the amusing anecdotes and historical context presented in the book, including...
The blog post provides an overview of the book 'Tor: From the Dark Web to the Future of Privacy', highlighting its exploration of the Tor Project's history, its impact on online privacy, and the diverse motivations of its communit...
After configuring all 376 options in Vim, the author realizes that mastery is a continuous journey, filled with ongoing challenges and learning opportunities.
The author shares their enthusiastic impressions of the Kirby Air Riders demo, highlighting the chaotic nature of the new City Trial mode, which features more players and a denser environment compared to the original game. They ap...
The author discusses the creation of a playback speed calculator for audiobooks, detailing the process of building it using a language model (LLM). They explain the initial prototype's limitations, the corrections made to improve ...
February's reflections include insights on AI, technology dependence, Bluetooth privacy, and critiques of environmental claims by popular AI tools.
Mastodon and Bluesky are superior to centralized networks, with ActivityPub predicted to outlast AT Proto due to its community ownership and decentralization.
The author reflects on their activities in October, including speaking at Longhorn PHP about Unicode, writing popular posts on scripts and dotfiles, and contributing articles to Zelda Dungeon. They express concern over political i...
The author reflects on their January 2026 experiences, including a new job at Ghost, programming projects, and insights from literature and social issues.
In December 2025, the author shares personal projects, predictions about social media, and reflections on technology's impact on society and accessibility.
The post details the author's process of implementing relative imports in Pyodide, highlighting the steps to fetch and run a utility file in a Python environment.
The author critiques generative AI while detailing how they utilize it to enhance their writing process, balancing personal skepticism with practical application.
The author reflects on their activities and insights from September, including seeking advice from Ben Werdmuller on applying technology for positive change, updating guidelines for Helmet.js, expressing dislike for TypeScript's @...
The author reflects on the diverse ways people read blog posts, highlighting variations in reading habits, language fluency, software used, and formats consumed. They discuss challenges readers face, such as disabilities, mental s...
Key takeaways from 'On Writing Well' highlight the importance of clear thinking, reducing scope, and maintaining a focused thesis in writing.
The author shares a collection of personal shell scripts that enhance productivity and streamline tasks in a Unix-like environment. The post details various scripts for clipboard management, file handling, internet usage, text pro...
A practical mental math heuristic for converting between Celsius and Fahrenheit is presented, offering easy approximations for everyday use.