How to Get or Create in PostgreSQL
And why it is so easy to get wrong...
The latest blog posts to take off on Hacker News. 1,535 posts.
And why it is so easy to get wrong...
I talk a lot here about using computers freely , how to select programs to use, how to decide if a program is trustworthy infrastructure one can safely depend on in the long term. I also spend my time building such infrastructure, because there isn't a lot of it out there. As I do so, I'm always acutely aware that I'm…
tl;dr: high_impact is small game engine for 2D action games. It's written in C, compiles to Windows, Mac and Linux as well as to WASM for the Web. It's “inspired by” my original Impact JavaScript game engine from 2010. The name high_impact is a nod to a time when C was considered a high level language.
Lots of underrated areas to work on
If you work with Protocol Buffers (protobuf), you can really save time, boredom, and headache by parsing your defin…
Disclaimer: This is to the best of my knowledge. It's a complicated topic, there are tons of options, and this only covers a tiny fraction of this topic anyway. If you spot mistakes, please tell me.
This is a blog post about an experiment with Clang. I need to explain some context first.
Programmers on the internet often use Turing-completeness terminology. Typically, not being Turing-complete is extolled as a virtue or even a requirement in specific domains. I claim that most such discussions are misinformed --- that not being Turing complete doesn't actually mean what folks want it to mean, and is…
Oh the merchants2 table? Yeah, we ran out of columns on merchants, so we made merchants2
The cross-platform app building toolkit
A comedic example, parked nicely on the thinnest wedge of the venn diagram, is the HamFurs – people who do amateur radio while wearing fur suits. While it isn't my cup of tea, I love that such a group exists. They seemed like nice people when I chatted to them.
Over the years, Google's treatment of JavaScript has changed, leaving us with misconceptions of how it's indexed. Here, we debunk the myths.
I will never stop dying on this hill
We show that a system that has only GNU's find and mkdir commands is Turing-complete.
One of Go's advantages is being able to produce statically-linked binaries [1] . This doesn't mean that Go always produces such binaries by default, however; in some scenarios it requires extra work to make this happen. Specifics here are OS-dependent; here we focus on Unix systems.
GC within a function doesn't work how I expected
Yesterday on Twitter the inimitable Morten Just posted a preview of a tool he’s created that wrap ffmpeg to allow movies, such screen recordings but pretty m...
Gather round the fire to hear the tale of how we built migration for stateful apps on a global public cloud without building a SAN.
I became interested in implementing programming languages a few years ago and discovered [Crafting Interpreters](https://craftinginterpreters.com/) by Bob Nystrom. At the time, I had experience with Rust and decided to use it to follow the book. Albeit, being a noob, I managed to implement a fully functional bytecode…
Silently sends up to 255 bytes of the client's heap to the server . The server must support NPN , and the heap data is encrypted in transit.
Zig’s reflection combined with Zig’s ability to import C header files means Zig can be used for C macro reflection.
This article introduces the implementation difficulties and challenges of Movable Tree CRDTs when collaboration, and how Loro implements it and sorts child nodes. The algorithm has high performance and can be used in production.
Last time, I explored the inside of the Super Nintendo cartridges . Today I am going through its video system.
How bounded higher-kinded polymorphism arises in practice, and how to express it in OCaml, in several different ways. Some ways are rather concise -- but less widely known.
A couple of years ago I wrote about tolower() in bulk at speed using SWAR tricks . A couple of days ago I was interested by Olivier Giniaux’s article about unsafe read beyond of death , an optimization for handling small strings with SIMD instructions, for a fast hash function written in Rust.
Lisp lets programs define new setf forms for assignment. The most common example is from CLOS , where a class like this:
Key concepts & much deserved YAML ranting
I created a new intermediate language, called Bril, for teaching my funky open-source, hands-on compilers course. Because it’s for education, Bril prioritizes simplicity and regularity over more typical compiler priorities like performance and concision. This is an overview of Bril’s design, its quirks, and the…
We’re excited to announce the release of Zulip Server 9.0, containing hundreds of new features and bug fixes! Zulip is an open-source team chat application designed for seamless remote and hybrid work. With conversations organized by topic, Zulip is ideal for both live and asynchronous communication. …