New
The latest blog posts to take off on Hacker News. 21,834 posts.
Strong_password Rubygem hijacked
I recently updated minor and patch versions of the gems our Rails app uses. We want to keep dependencies fresh, bugs fixed, security vulnerabilities addressed while maintaining a high chance ...
Running an eInk Display with Elixir, Scenic and Nerves
So I've been curious about what kinds of displays you can connect to the Pi-series single board computers for a while. I happened to accidentally order a few. Among others an eInk display. I ordered the PaPiRus ePaper. It ended up being dead on arrival and then out of stock so I received an Inky to replace it. Fair…
How to write idempotent Bash scripts
This blog post shows tips and tricks to write resilient and idempotent bash scripts.
“Essentials of Garbage Collectors” full course is now available
Course overview Memory leaks and dangling pointers are the main issues of the manual memory management. You delete a parent node in a linked list, forgetting to delete all its children first -- and your
The Evolving Infrastructure of .NET Core
A deep dive into the infrastructure of .NET Core. Challenges, changes and the future.
Pony 0.29
We are proud to announce the release of Pony version 0.29.0. This release includes several improvements to the standard library's TCP support. This version contains breaking API changes. We recomme...
Cryptography Dispatches: Hello World, and OpenPGP Is Broken
This is the inaugural issue of Cryptography Dispatches, meant to be quick, frequent and lightly edited discussions of cryptographic topics. Longer form can be found at blog.filippo.io. If you are not reading this in your email client, you can subscribe here .
Speedy Desktop Apps with GTK and Rust
The web platform is the delivery mechanism of choice for a ton of software these days, either through the web browser itself or through Electron, but that doesn’t mean there isn’t a place for a good old fashioned straight-up desktop application in the picture.
So you think you know C? (2016)
It's a C test. If you think you know C, take this test. It only has 5 questions.
How to design a proper USB-C™ power sink (hint, not the way Raspberry Pi 4 did it)
This issue came up recently for a high profile new gadget that has made the transition from Micro-USB to USB-C in its latest version, the…
Clojure and Deps.edn: A basic guide
After a rather long break from programming and Clojure I decided give them another go. When it comes to managing Clojure projects, Leiningen is de-facto standard tool. Recently, Clojure CLI tools are becoming more and more popular, though. Switching to yet-another-build-tool doesn't have any pragmatic value, but it's…
Go compiler internals: Adding a new statement to Go
Updated (2023-05-08): the Go compiler keeps evolving and it takes time to keep up with changes. While the general gist of this post remains true and it's worth reading to understand how the compiler works on a high level, the details of the modifications are slightly different now.
Why am I interested in Elixir?
I’ve had Elixir on the brain recently. And by recently I probably mean 2 years. In my defense I think it is fair to say it is blooming right now. I haven’t had much need of it, or opportunity for it, in my day-to-day of maintaining a Python legacy system, renewing another legacy or optimizing Elasticsearch. So I’ve…
A better zip bomb
This article shows how to construct a non-recursive zip bomb that achieves a high compression ratio by overlapping files inside the zip container. "Non-recursive" means that it does not rely on a decompressor's recursively unpacking zip files nested within zip files: it expands fully after a single round of…
It rather involved being on the other side of this airtight hatchway
Not every code injection bug is a security hole.
Why we're ending support for MySQL
GitLab will be ending support for MySQL starting with our 12.1 release – here's why.
It’s Time for a Modern Synthesis Kernel
I had a student (Fred Smith) who worked on extensions to Popcorn (the predecessor to Cyclone) that supported run-time code generation in a lightweight fashion. Here’s a paper describing part of the system: https://ecommons.cornell.edu/handle/1813/5812 . Fred’s thesis had a bunch more.
Svelte is the most beautiful web framework I've seen
I first heard about Svelte a year ago, when Rich Harris presented it at JSConf EU 2018. The demo gods were a bit harsh on him, but it didn't matter to me, because I was so impressed by his philosophy and ideas that I was already sold. I knew he'd work out the kinks, go through a few major versions, and Svelte would be…
One Program Written in Python, Go, and Rust
Image differentiation in three languages
The New HAProxy Data Plane API: Two Examples of Programmatic Configuration
This blog post shows you how to use the HAProxy Data Plane API to manage your load balancer configuration dynamically using HTTP commands.
Writing a small ray tracer in Rust and Zig
This is where I write about the stuff that I've been working on.
Mistakes we made adopting event sourcing and how we recovered
Good judgement is the result of experience ... Experience is the result of bad judgement. — Fred Brooks