When zero cost abstractions aren't zero cost
Rust is built around the concept of “zero cost abstraction”. The idea is that you can write human-friendly high level code and the compiler will give you for free performance at least as good as any optimized low level code you could have written yourself. With zero cost abstraction, you no longer have to trade off…
Alexa leaks private wishlists
This morning, my wife noticed that Alexa was insistently flashing its little blue lights. "Alexa... Notifications?" "You have one notification. An item on your wishlist has dropped in price. The … is now only £…" And that's how my wife found out what I planned to get her for her birthday! What happened to cause this?…
What’s your API’s “Time To 200”?
M'colleague Charles has introduced me to the most spectacular phrase - "Time To 200". That's a measurement of the length of time it takes a new user to go from signing up to your API to getting their first HTTP 200 response. Think about the last time you started using a new API... Fill in a tediously long registration…
Film simulations from scratch using Python
Disclaimer: The post is more about understanding LUTs and HaldCLUTs and writing methods from scratch to apply these LUTs to an image rather than coming up with CLUTs themselves from scratch. Outlin…
Imaging Cygnus a at 8.45 GHz with ATA
Earlier this year, I published a post showing our results of the interferometric imaging of Cassiopeia A and Cygnus A at 4.9 GHz with the Allen Telescope Array . Near the end of July, I decided to perform more interferometric observations of Cygnus A at a higher frequency, in order to obtain better resolution. I chose…
Replacing my Octopress blog with 200 lines of Babashka
Seven years ago I started writing about my adventures with Clojure. I started using Octopress back then and was still using it until today. Octopress worked great for my blogging purposes and I'm grateful that it existed. However, in recent years I became frustrated with the experience of using it, which is probably…
How to Read Books When You Have ADHD
Do you have lots of unfinished books? Here is a new ADHD friendly approach to reading books
I built a $5k Raspberry Pi server (yes, it's ridiculous)
When I heard about Radxa's Taco—a Raspberry Pi Compute Module 4-powered NAS/router-in-a-box—I knew what must be done. Load it up with as much SSD storage as I can afford, and see what it can do. And after installing five Samsung 870 QVO 8TB SSDs and one Sabrent Rocket Q NVMe SSD—loading up every drive slot on the Taco…
I Am Not Satoshi Nakamoto
This isn’t the first time I’ve received an e-mail like this: Hey! I’ve done my research and looked at a lot of facts and old forgotten archives. I know that you are Satoshi, I do not want to tell anyone about this. I just wanted to say that you created weapons of mass destruction where niches remained poor and the…
Don’t format a drive of M1 Macs from recovery mode
Because it’s a real mess to reinstall Big Sur!
We deserve better than Confluence and Notion
If you ever were in the situation of looking for a tool to manage the knowledge of your organization, chances are you ended up choosing between Notion and Confluence. A handful of other tools also exist in this field, large players like Microsoft Sharepoint or Google Drive, niche tools like …
Rust on the MOS 6502: Beyond Fibonacci
On August 15th, the following answer showed up on the Retrocomputing Stack Exchange site :
URLs: It's Complicated
Let's play silly games with URLs...
Building DigitalOcean's API Gateway
technology blog about ruby, scala, java, golang, software engineering and programming in general
Must-read psychology books
Regardless of where you are in the pathway of understanding how the human psyche works, this list of must-read psychology books will upgrade your personal library.
How does a game engine work? an overview (2016)
Want to develop your own game engine? Here is a nice overview of what you need to implement in order to develop a game engine.
My Second Brain – Zettelkasten
For as long as I have been learning web development () I have been taking notes. Partly notes to help clarify my understanding of something and partly for...
Marbles (2016)
Let us start with an assumption that most of us already suspect to be true: that civilization will not survive more than a few centuries into the future. If that sad assertion be true, then what will the earth look like in the far future? There was a television show some years ago entitled “Life After People”. It did…
Why can’t you design noise in frequency space?
The python code that goes along with this blog post can be found at To evaluate the quality of a blue noise texture, you can analyze it in frequency space by taking a discrete Fourier transform. Wh…
Hush: Noiseless Browsing for Safari
Link to: https://oblador.github.io/hush/