New
The latest blog posts to take off on Hacker News. 49,221 posts.
I Avoid Async/Await
Whatever your stance on async/await, I’d like to pitch to you on why, in my experience, async/await tends to make code more complicated…
When hiring developers, have the candidate read existing code
When hiring developers, there are many things we are looking for, but over the years I have found that raw coding ability is easily the most important quality to look for. I can quickly…
Re-implementing an old DOS game in C++ 17 (2019)
Back in 2016, I started a side project to reverse engineer the game Duke Nukem II and build an open source reimplementation of its engine from scratch – called Rigel Engine (Check it out on GitHub)…
Mac App Store Ransomware
This App Store app [My Metronome - Tempo Keeper] immediately asks you for money and then disables the “Quit” option so that you can never close it!
The silenced deaths of the Shanghai 2022 lockdown
This is a different type of post. Here, instead of presenting the voice of a single person, I have translated selected stories shared on Weibo and elsewhere on the Chinese Internet—or more fittingl…
What Artists Notice
Painters at work notice details we’d ignore. From those details they develop delightful insights into reality. What do I mean? Let’s look at Van Eyck’s “Arnolfini Portrait” and find out:
Terrible things I'd do with your money
In some of Daniel Kahnemann's books and any other business advice-type articles, you always seem to read the same argument: The thing important people all over the world would like to see is incr
Psychedelics and mental illness
The science of psychedelics is everywhere – but we should treat it with serious scepticism
Generate Python extensions using Nim language
A Python Extension is generally some code written in language other than python to extend the python ecosystem by exposing an interface compatible with Python API.Such extensions are generally in form of compiled code and loaded dynamically by the Python runtime ...
Pointers Are Complicated III, or: Pointer-integer casts exposed
In my previous blog post on pointer provenance, I have shown that not thinking carefully about pointers can lead to a compiler that is internally inconsistent: programs that are intended to...
I hope distributed is not the new default
I miss people. :-(
Browser in the Dark: flashlights with CSS and canvas
Note: this article will make more sense if you are using a mouse or other pointing device. Requires javascript.
Ethereum Has Issues
I first wrote about the problem of bots front-running transactions a year and a half ago in The Order Flow , citing Dan Robinson and Georgio...
An argument for a return to Web 1.0
The web was established with the best of intentions. The basic idea was that if everyone could share their thoughts and ideas with the world, the best ones would be vetted and float to the top. The bad ones would be ignored and pushed to the bottom.
Little rant about GNOME's file manager (a.k.a. Nautilus)
A few thoughts you're free to ignore
The New York Times has requested that I shut the archive down
Computational Biologist + Designer + more
Why Ruby Has Symbols
Difference between strings and symbols in Ruby
Making Rust a Better Fit for Cheri and Other Platforms
Recently, Aria Beingessner published an interesting essay “ Rust’s Unsafe Pointer Types Need An Overhaul ”. There are several parts to this essay, all of which address issues which cause me pain in Rust, and which I would love to see fixed. I want to focus on one issue: Rust’s usize conflates address, data, and object…
Inside the longest Atlassian outage
Hundreds of companies have no access to JIRA, Confluence and Atlassian Cloud. What can engineering teams learn from the poor handling of this outage?
Why is selling software so weird?
Building software looks a lot like building a house, but selling the two couldn't be more different.