I used Benford’s law to analyze Covid-19 in 113 countries (2020)
Spoiler alert: I found some intriguing patterns…
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 1,888 posts.
Spoiler alert: I found some intriguing patterns…
Joe Bertolami's portfolio and blog covering artificial intelligence, game development, computer graphics, data compression, and more.
I've been asked by several people to explain why I use Clojure for my professional work rather than Racket. ABOUT RACKET I have been using R...
A little-discussed method enables inserting rows with bound data into SQLite faster than any existing technique. This novel method is then discovered to have a drawback that makes it generally unusable. The rest of this article explores how to get the best insert performance out of SQLite generally; what's in your…
A comparison of ideas behind Dynamo and Cassandra
Learn how to extend the classic XOR trick to find thousands of missing values using Invertible Bloom Filters
All signs seem to indicate that Apple will finally ship IndexedDB in Safari 7.1 sometime this year. This means that Safari, the last holdout against IndexedDB,…
Mergeable replicated data types Kaki et al., OOPSLA’19 This paper was published at OOPSLA, but perhaps it’s amongst the distributed systems community that I expect there to be the greatest in…
We do a lot of high-availablity PostgreSQL deployments for clients. As of 9.1, streaming replication (SR) is excellent for this, and can sc...
We need a fast way to query multiple potentially large sets of data on-demand at interactive speeds. Sometimes the easiest solution to a hard problem is to build the right tool for the job.
In my previous post I introduced SQL virtual tables and how to use them in Go—registering modules per connection, defining schemas, and querying external sources as regular tables.
Then Back in the 2000s, we wrote applications in layers. Presentation layer, client, data transfer, API, business logic, data access, database. We maintained strict separation bet ween these layers…
Update: The paper version of this post is accepted at PLDI SOAP 2024. Take a look at the preprint (PDF).
Background
The UK faces an epidemic of telephone scams. Fraudsters are constantly calling people up pretending to be their bank. But how can you be sure the number displayed on your screen in genuine? You can't. The telecom system is hopelessly insecure and shouldn't be trusted for anything more complicated than dialling the…
Disclaimer: This story took place when I was a junior developer for a previous employer ages ago. Some details might be fuzzy, and goes without saying this is entirely from my own POV so take everything here with humor and a grain of salt.
I remember those days, oh so long ago, it seems like another lifetime. I haven’t used Pandas in many a year, decades, or whatever. We’ve all been there, done that. Pandas I mean. I would dare say it’s a rite of passage for most data folk. For those using Python, it’s probably one of the […]
One of the things that frustrates me with having a local music library is the tedium of tagging. While there are tools (like beets or MusicBrainz Picard) to make it easier, I feel there are fundamental issues with the design… Continue reading →
Building a database in the 2020s
And why it is so easy to get wrong...
Note: a somewhat more complete and slightly less colloquial, but eminently more citeable, version of this work is in the Proceedings of the ...
I’m a stock market enthusiast 📈, so lately I have spent my spare time on the topic of stock option pricing, and I was curious to find out whether or not I could build a script that accurately reflected real market option prices. It turns out I came close, and learned a lot along the way, which I share in this article.
At Google, our organization designs, owns, and maintains a number of optimization models that automate the planning of Google’s datacenter growth and health. As is pretty standard in supply chain optimization and planning, these models are often integer linear programs. It’s a core competency of operations research…
EnclaveDB: A secure database using SGX Priebe et al., IEEE Security & Privacy 2018 This is a really interesting paper (if you’re into this kind of thing I guess!) bringing together the security…