Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 21,843 posts.
Advanced coding in low-resource programming languages
Learn how OpenAI is improving ChatGPT across low-resource programming languages, with new evaluations for software engineering, SQLite, and COBOL migration.
Anti Mediocracy Manifesto for Software Development
XOScript is a simple server-side scripting language.
Please stop writing new serialization protocols
It seems that every day, some computer monkey comes up with a new and more groovy serialization protocol. In the beginning, there was ASN.1 and XDR, and it was good. I think ASN.1 came first, and l…
Python 2.8 Un-release Schedule
This document describes the un-development and un-release schedule for Python 2.8.
Development slowness in big and legacy applications
Software companies come in many sizes. There are small startups, medium-sized companies, and huge enterprises. As you might expect, startups are usually lean and fast. Big companies that develop large applications move much more slowly. Those might be systems developed for many years or decades by hundreds of…
Git Submodules: Adding, Using, Removing, Updating (2009)
I've spent a little more than a month working with Git now. I can honestly say that while there are many things that I like about Git, there are just as many things that I personally find to be a pain in the butt. Submodules specifically have managed to be a thorn in my side…
A dictionary of single-letter variable names
Haskell’s expressive type system means that type signatures can carry a lot of information. Haskell’s polymorphism means that you sometimes write functions that work across an enormous range of types, and are left wondering “what do I actually call my variables?”. It is often the case that there’s nothing to say…
How many keywords I can fit into a single C# expression?
As I was playing few days ago with “yield return await“ I got an idea to try fit as much “keywords” as possible into one “expression”. I mean as much blue words (in Visual Studio’s default colors) as possible together (not separated by semicolon, comma, colon, bracket, etc.).
Parsing Awk Is Tricky
A somewhat compact implementation of the awk programming language
Rust for C++ programmers – part 5: borrowed references
In the last post I introduced unique pointers. This time I will talk about another kind of pointer which is much more common in most Rust p...
Evolving GitHub Issues
GitHub Issues has been how the world’s best software teams collaborate since it first launched in 2009. Today we are excited to unveil a major evolution of issues and projects,…
The Law of Leaky Abstractions (2002)
There’s a key piece of magic in the engineering of the Internet which you rely on every single day. It happens in the TCP protocol, one of the fundamental building blocks of the Internet. TCP…
What is Meteor.js?
Learn more about what Meteor.js is...
Is Go Duck-Typed?
In programming languages, duck typing can be approximated as the application of the duck test to objects. Here we explore if go is duck typed.
Don’t Hash Secrets
Building secure systems is difficult. It would be nice if we had a bunch of well-designed crypto building blocks that we could assemble in all sorts of ways and be certain that they would, no matte…
Pros and cons of solo development
I created and maintain Luxury Yacht, a desktop app for managing Kubernetes clusters. Think Headlamp, Lens, and k9s. It's that kind of app. Luxury Yacht is a ...
Sysop Chat
Back in mid-90s before anyone I knew had an Internet connection, a few of us had modems and would use them to call bulletin board systems via the phone line. On these systems what to me seemed the main thing was discussions and chat. For the first time I could talk to other like-minded people, and just being able to…
Android N developer preview 2 is out
News and insights on the Android platform, developer tools, and events.
How does lossless compression in Fuji RAF files work? (2020)
I spent 3 weeks earlier this year digging in to and reimplementing the lossless compression algorithm in Fuji’s RAF Camera RAW files. This post discusses the fundamentals of how it works.
In Love with LÖVE
I’ve been looking for the past year for a suitable programming environment for my two boys (10 & 7) that moves them beyond graphical environments like Scratch and Lego Mindstorms and into the land of real programming (a [few years ago](http://an.ton.io/blog/articles/2008/11/08/go-get-scratch) we had great success with…
Yes Silver Bullet (2019)
Since Fred Brooks published his essay, I believe that we, contrary to his prediction, have witnessed several silver bullets.
On Cache Invalidation: Why Is It Hard? (2018)
Many people must have heard this quote (by Phil Karlton) many times: There are only two hard things in Computer Science: cache invalidation and naming things. Two days ago, Nick Tierney mentioned it …
Writing a competitive BZip2 encoder in Ada from scratch in a few days (2024)
Spoiler : it is also likely already the best BZip2 encoder for a given block size. See the green charts below. Note for subscribers: if you...
Transcoding Unicode with AVX-512: AMD Zen 4 vs. Intel Ice Lake
Most systems today rely on Unicode strings. However, we have two popular Unicode formats: UTF-8 and UTF-16. We often need to convert from one format to the other. For example, you might have a database formatted with UTF-16, but you need to produce JSON documents using UTF-8. This conversion is often called…
Sed challenge: join cal -y months into a single column
This is a little sed challenge that ocurred to me somewhat recently, when I wondered how many weeks were between 2 dates. Of course, I just looked at the calendar and counted, but then I wondered what kind of sed script I’d need in the middle of a cal -y | ... | wc -l pipeline to get the same answer.