New
The latest blog posts to take off on Hacker News. 14,543 posts.
Continued progress porting Emacs to Rust
The project to port all of the C code in Emacs to Rust has been going quite well of late, and a progress report is in order.
Porting C to Rust
You are seeing this because the administrator of this website has set up Anubis to protect the server against the scourge of AI companies aggressively scraping websites . This can and does cause downtime for the websites, which makes their resources inaccessible for everyone.
An Elm compiler for the Erlang Virtual Machine
I’ve been exploring the idea of an Elm compiler that produces assembly for the Erlang Virtual Machine. You can find the code for this project on GitHub . This essay documents some interesting parts of the project.
Rust RAII is better than the Haskell bracket pattern
Last week, I wrote a blog post about ResourceT, and mentioned Rust's RAII being better than Haskell's bracket pattern. In this blog post, I demonstrate what this advantage is.
Compiling Lisp to JavaScript in 350 Lines of Haskell
λm.me - Compiling Lisp to JavaScript from scratch in 350 LOC
Constraint Solving with MiniZinc
This is part one of a two-part article. Part two is here. A while back somebody told me to check out MiniZinc. Eventually I did and really enjoyed it, so figured I’d write about it here. This is actually going to be a two part article. Right now we’re talking about what it is and how it works, and in the next post…
Why you can have millions of goroutines but only thousands of Java threads
Many seasoned engineers working in JVM based languages have seen errors like this: [error] (run-main-0) java.lang.OutOfMemoryError: unable to create native thread: [error] java.lang.OutOfMemoryError: unable to create native thread: [error] at java.base/java.lang.Thread.start0(Native Method) [error] at…
Fixing a Bug in an 18 Year Old Shockwave Game
The story of changing a single byte
Flocking
Have you ever watched a school of fish, a flock of birds, or even a crowd of people and watched how they move?
Scaling Engineering Teams via Writing Things Down and Sharing – Aka RFCs
I have recently been talking at small and mid-size companies, sharing engineering best practices I see us use at Uber, which I would recommend any tech company adopt as they are growing. The one topic that gets both the most raised eyebrows, as well the most "aha!" moments is
SQL as an API language
Datasette (previously) is my open source tool for exploring and publishing structured data. There are a lot of ideas embedded in Datasette. I realized that I haven’t put many of …
Go hits the concurrency nail on the head
More than thirteen years have passed since Herb Sutter declared that the free lunch is over and concurrency is upon us , and yet it's hard to claim that most mainstream languages have made a strong shift towards concurrent modes of programming. We have to admit that concurrency is just hard , and the struggles of some…
Literate raytracer: a simple implementation of raytracing in Javascript
Raytracing is a relatively simple way to render images of 3D objects. The core is an elegant idea, that one can simulate the real-world behavior of photons of light bouncing off of surfaces and colors accumulating from their paths. It’s not inherently fast, but the simplicity of the core lets it model interesting…
A History of .NET Runtimes
Recently I was fortunate enough to chat with Chris Bacon who wrote DotNetAnywhere (an alternative .NET Runtime) and I quipped with him:
Stacked Diffs versus Pull Requests
Update: This post received quite a lot of healthy discussion on Hacker News. You can follow that conversation here: https://news.ycombinator.com/item?id=18119570
The Costs of Programming Language Fragmentation
Robert O'Callahan. Christian. Kiwi. Software guy. All content human-authored unless otherwise noted.
iOS 12: Core Data External Binary Data Storage Becomes Corrupt
On iOS 12, binary data stored in Core Data with the External Storage option gets corrupted/goes missing on every second save of the context.
Lolbench: automagically and empirically discovering Rust performance regressions
ramblings by Adam Perry
Optimising Docker Layers for Better Caching with Nix
Nix users value its isolated, repeatable builds and simple sharing of development environments. Nix makes it easy to go back in time and rebuild software from years ago without issue.