I changed my license
In the last 28 years of publishing software, I’ve had three distinct eras of software licensing. All of my recent stuff is available under the European Union Public License 1.2, and I thought to explain why.
Topics /
The most popular blog posts about software engineering on Hacker News. 14,540 posts.
In the last 28 years of publishing software, I’ve had three distinct eras of software licensing. All of my recent stuff is available under the European Union Public License 1.2, and I thought to explain why.
Problem: Show that all horses are of the same color. “Solution”: We will show, by induction, that for any set of $ n$ horses, every horse in that set has the same color. Suppose $ n=1$, this is obviously true. Now suppose for all sets of $ n$ horses, every horse in the set has the same color. Consider any set $ H$ of…
There is a common sentiment I’ve seen over and over in the Rust community that I think is ignorant at best and harmful at worst.
This is a enthusiast blog post. I’m not even gonna speak about how concurrency comes easy with Go. Honestly, I’m not good enough to speak about it. I’ll just speak about how using Go in my everyday programming makes me happy.
[5 min read] The question Sheon Han poses — “Is Ruby a serious programming language?” — says a lot about what someone thinks programming is supposed to fee...
[If you prefer, you may watch the video of my talk on this topic (here are the slides).] If you thought you were safe from functional programming in your cozy C++ niche, think again! First the lamb…
TL;DR To make a default Vim installation more useful, type the following 5 lines into its .vimrc file:
In the good old days, applications were simple. A browser sent a request to a webapp endpoint; the latter fetched data from a database and returned the response. The rise of mobile clients and integrations with other apps upset this simplicity. I want to discuss one solution to handle the complexity in this post. The…
Yeah, an in-depth study that repeated another study that was done a few years back. Both showed that TDD doesn’t work. The new one uses a multi-site, blind analysis, approach. It looks conclusive.
A whirlwind tour of object-oriented code in F#
Encryption, encoding, and hashing are three related but distinct concepts. It’s important for you to understand all three.
Most of my readers will understand that cache is a fast but small type of memory that stores recently accessed memory locations. This description is
A story post about the time a Stripe account I used years ago had thousands of pounds worth of unexpected payments flood in.
Quick summary of my recommendations on compare-by-hash: If you are using compare-by-hash to generate addresses for data that can be supplied by malicious users, you should have a plan to migrate to a new hash every few years. For example, BitTorrent falls into this category, but rsync doesn't. Keep in mind that new…
Read this list unless you want to build a money disappearing system
I am Dan, full stack software engineer.
Recently I was scrolling through brson’s Rust quote database and stumbled upon a link to the official Rust tutorial from the very beginning of 2013. It says Rust 0.6 in the corner, but it lists many things that were removed in 0.6, so it’s likely closer to 0.5. I heard tales of old Rust before, but not of how the…
This year I had the privilege to organize GopherConIndia 2015 and also interview a number of Gophers.
At Oktavilla we regularly start new projects. Over the years we have therefore come up with a few best practices to ensure that it is easy to take part in ou...
“It’s not that hard to build a fully functioning, code-editing agent.” Thorsten Ball
I ended up getting a response from high level people at AMD. It was still very light on any real technical information, but it did include some great phrases like “I am able to replicate the issues you are facing” and some mockable phrases like “We are hoping that this will improve your perception of AMD products and…