Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 14,540 posts.
What is the inverse of a circle?
In this post we’ll try to make sense of what we’re seeing, and try to understand what it means to invert a circle!
Getting Started with Quantum Computing in Python
Quantum computers might sound a bit exotic and far into the future, but in reality, they are now accessible in the cloud or through emulators for everyone to write quantum code. In this tutorial, we’ll go through how you can program a simple quantum computer to generate random numbers.
My approach to automatic musical composition
In this blog, I will introduce my approach to automatic musical composition, including the theory, the algorithm, and a Python package implementation ch0p1n .
Reads Causing Writes in Postgres
It is good practice to regularly inspect the statements running in the hot path of your Postgres instance. One way to do this is to examine the pg_stat_statements view , which shows various statistics about the SQL statements executed by the Postgres server.
Crafting Interpreters: Classes and Instances
Caring too much for objects can destroy you. Only — if you care for a thing enough, it takes on a life of its own, doesn’t it? And isn’t the whole point of things — beautiful things — that they connect you to some larger beauty?
Functional programming is not popular because it is weird (2016)
I’ve seen people be genuinely puzzled about why functional programming is not more popular. For example I’m currently reading “Out of the Tar Pit” where after arguing for fu…
Why Clojure? (2010)
I have recently become quite an enthusiast for the language Clojure . But why? Why would someone who has spent the last 30 years programmi...
Anti-If: The missing patterns (2016)
Software development blog of Joe Wright
Who Can Name the Bigger Number?
[This essay in Spanish] [This essay in French] [This essay in Chinese] In an old joke, two noblemen vie to name the bigger number. The first, after ruminating for hours, triumphantly announces "Eighty-three!" The second, mightily impressed, replies "You win." A biggest number contest is clearly pointless when the…
Python: Just Write SQL
I have been writing a lot more Go this past year. For those not familiar, Go favours a non-ORM, non-query-builder approach to interacting with databases. This comes naturally due to the sql package : A common interface to be used alongside database drivers. It’s very common to see actual SQL in Go, even in large…
Handles are the better pointers (2018)
28-Nov-2018: I’ve added a small update at the end on how to prevent‘handle collisions’ with a per-slot generation counter
Making Python Programs Blazingly Fast
<p> <i>Python</i> haters always say, that one of reasons they don't want to use it, is that it's <i>slow</i>. Well, whether specific program - regardle...
Why Use F#?
Why you should consider using F# for your next project
SwiftUI Is Convenient, but Slow
I've been sitting on publishing these notes for a while, because I don't want to diminish the work of the talented people that engineered SwiftUI and plowed through years of AppKit and UIKit code to get to this state. But I'd like to draw attention to some performance limitations, in the hope that a SwiftUI engineer…
Don't Use Protobuf for Telemetry
Protobuf needs no introduction, but this post argues that you shouldn’t use it for telemetry. The basic premise of this post is that a good telemetry library needs to be lightweight to avoid perturbing the application; inefficient diagnostic tools are self-defeating. Unlike other formats, nested Protobuf messages…
Python Asyncio
Asynchronous programming is a popular programming paradigm that allows a large number of lightweight tasks to run concurrently with very little memory overhead, compared to threads.
Considering C99 for Curl
tldr: we stick to C89 for now. The curl project builds on foundations that started in late 1996 with the tool named httpget. ANSI C became known as C89 In 1996 there were not too many good alternatives for making a small and efficient command line tool for doing Internet transfers. I am not saying … Continue reading…
Why Don’t We Have a General-Purpose Tree Editor?
We have excellent tools to create and edit text (vim, emacs, sublime, etc.). We have pretty good tools to create and edit tabular data (excel, other spreadsheet software). We even have pretty good …
The AARD Code and DR DOS (2021)
In this long article, I, being as far as I know the first outside Microsoft to have learnt how the AARD code works, explain that I condemn its form but broadly sympathise with its function.
Hell is a multi-threaded C++ program (2006)
What are threads? Every modern operating system has support for threads, and most programming environments provide some level of support for...
The Homely Mutt
Now that Sparrow is effectively dead many of its users will be looking for a new email client. If you're not afraid of the terminal you may want to give Mutt a try.
Perl Saved the Human Genome Project (1996)
The human genome project was inaugurated at the beginning of the decade as an ambitious international effort to determine the complete DNA sequence of human beings and several experimental animals. The justification for this undertaking is both scientific and medical. By understanding the genetic makeup of an organism…
I analyzed Stack Overflow for secrets
I analyzed stackoverflow for secrets and leaks.