New
The latest blog posts to take off on Hacker News. 1,733 posts.
Elixir for Humans Who Know Python
A guide to the Elixir programming language for programmers who know Python.
Bun v0.5.7
Support for `FormData` and `git` dependencies, better `setTimeout()` compatibility, `bun wiptest` is now `bun test`, and better support on AWS Lambda and GitHub Actions.
Training Deep Networks with Data Parallelism in Jax
Misha Laskin personal website. Includes a blog and projects focused on artifical intelligence.
Deno 1.31: Package.json Support
Deno 1.31 adds support for package.json, stabilizes Node-API, Deno.Command API, adds `node:v8` module, and more.
A tale of Phobos – How we almost cracked a ransomware using CUDA
For the past two years we've been tinkering with a proof-of-concept decryptor for the Phobos family ransomware. It works, but is impractical to use for reasons we'll explain here. Consequently, we've been unable to use it to help a real-world victim so far. We've decided to publish our findings and tools, in hope that…
Burgr – Books in Your Terminal
I spend most of my time writing code in a full screen terminal. I like to read books on my breaks and I'm a big fan of Project Gutenberg, which has over 70...
Common Lisp Implementations in 2023
Much has been written on Common Lisp; there is rarely one year without someone proclaming the death of the language and how nobody uses it anymore. And yet it is still here, so something must have…
Squeezing a Sokoban game into 10 lines of Haskell
Call-by-push-block
C++ Coroutines
C++ is late to the coroutine party, compared to other programming languages, but they are part of C++20. Prior to coroutines, a C++ programmer had two choices, roughly speaking:
Gossip Glomers: Fly.io Distributed Systems Challenges
Fly.io Distributed Systems Challenges
Connecting a 1980s Pinball Machine to the Internet
I built a device that allows a pinball machine from 1984 to automatically upload scores to the internet. The device taps into the machine’s memory bus and monitors the game state, uploading scores after each game.
AsciiDoc, Liquid and Jekyll
A couple of days ago I was giving a little update to my website and I needed a wayto create and inject custom HTML into some of my posts.
The Remarkable Ivan Sutherland
CHM releases to the public for the first time a full oral history with Ivan Sutherland, pioneer of computer graphics, virtual reality, asynchronous systems, and more.
Let's build a Chrome extension that steals as much data as possible
Today's adventure: DIY whole hog data exfiltration
Asp.net Core updates in .NET 8 Preview 1
.NET 8 Preview 1 is now available! Check out what's new in ASP.NET Core in this update and learn about the roadmap for ASP.NET Core in .NET 8.
Software 2.0 (2017)
I sometimes see people refer to neural networks as just “another tool in your machine learning toolbox”. They have some pros and cons, they…
NP-complete isn't always hard
A common assumption I see on the ‘net is that NP-complete problems are impossible to solve. I recently read that dependency management in Python is hard because package resolution is NP-complete. This is true in principle, but the reality is more complicated. When we say “NP-complete is hard” we’re talking about…
Four ways to build web apps
This is my opinionated list of four approaches to building websites and web applications. Publicly hosted on the internet, serving HTML, CSS, JavaScript, images, etc over HTTP.
Writing an engineering strategy
Once you become an engineering executive, an invisible timer starts ticking in the background. Tick tick tick. At some point that timer will go off, at which point someone will rush up to you demanding an engineering strategy. It won’t be clear what they mean, but they will want it, really, really badly. If we just…
Sips: Scriptable Image Processing System
I wanted to convert some .webp images to .png on my Mac. I asked ChatGPT:
John Carmack on Functional Programming in C++ (2018)
ps aux | more
Named Booleans prevent C++ bugs and save you time
Published: 17-02-2023 20:21 | Author: Remy van Elst | Text only version of this article
Queues should be empty
I’ve been writing a pubsub listener for work recently and had this silly “shower thought”: the ideal queue should be empty. Why? If the queue is not empty, it means that whatever job is consuming from the queue is not keeping up with messages coming into it. Ok, then if queues are supposed to be empty, then what are…
It's probably time to stop recommending Clean Code (2020)
It may not be possible for us to ever reach empirical definitions of "good code" or "clean code", which means that any one person's opinions about another person's opinions about "clean code" are necessarily highly subjective. I cannot review Robert C. Martin's 2008 book Clean Co...
Making macOS Apps Uninstallable
Wiggling apps in Launchpad There's this thing called **Launchpad** on macOS which shows you all the apps on your Mac in an iOS like manner. You may already have it in the Dock, but you can also launch it as any other app. There's even a nifty trackpad gesture for it where you *pinch with thumb and three fingers*. ...
Waiting for Postgres 16: Cumulative I/O statistics with pg_stat_io
We talk about querying system wide I/O statistics in Postgres, show several use cases for pg_stat_io, and talk about the future of I/O observability in Postgres.
I love building a startup in Rust but wouldn't pick it again
For almost two years now, the vast majority of our backend code was written in Rust (aside from a little bit of Python). I love Rust, it’s by far my favorite language. I find myself missing match in pretty much every other language I go to. However, if I was doing it over, I wouldn’t choose Rust. This advice is…