iOS 17 makes iPhone more personal and intuitive
Apple today announced iOS 17, a major release that upgrades the communications experience across Phone, FaceTime, and Messages.
The combined power of F# and C#
Where C# is the most dominant language in the .NET world, other languages are built on top of the Framework that deserves their respective place. F# is strong when it comes down to functional programming! In this blog post, we will leverage the power of F# and C# to showcase where both excel!
The anatomy of a Godot API call
UPDATE: This article has started an ongoing conversation with the Godot devs. They care about the issues raised, and would like to improve things. Significant improvements will almost certainly be made, although it’s still early days and it’s unclear what will change and by how much. I am encouraged by the response. I…
Filenames and pathnames in shell: How to do it correctly (2020)
This article explains how to correctly handle filenames in Bourne shells (the primary shell of Unix/Linux/POSIX systems), based on the issues discussed in 'Fixing Unix/Linux/Filenames'. Many programs fail to work properly on filenames that include spaces, begin with dash (-), include newlines, and so on, because…
My first superoptimizer
I heard about these mythical programs that find optimal code through a brute-force search, but I didn't know how they worked. So I made one.
Pg_jsonschema – JSON Schema Support for Postgres
Today we're releasing pg_jsonschema, a Postgres extension for JSON validation.
“It works on my machine” turns to “it works in my container” (2019)
You had things running with occasional glitches and there was always an excuse “It works in my machine” as there is rarely identical…
Goodbye, Node.js Buffer
It’s time to move from Buffer to Uint8Array.
Explaining my fast 6502 code generator
To learn how optimizing compilers are made, I built one targeting the 6502 architecture . In a bizarre twist, my compiler generates faster code than GCC, LLVM, and every other compiler I compared it to.
WebAssembly: Adding Python support to WASM language runtimes
Providing up-to-date, convenient WebAssembly builds of Python with WASI support
Text Editor Data Structures: Rethinking Undo
Undo and redo have been a staple operation of text editors probably since the first typo was ever made, yet there has not been a lot of innovation around refining the idea of what undo and redo could be. Let’s explore what I mean…
GitHub Renamed Me (2014)
Github Renamed Me - We will change your SSH keys and you will like it
Learnings from fine-tuning LLM on my Telegram messages
For most people I interact with, I’m just another text-based program for the most of the time. If input and output are so simple, could I be replaced by the model? For this to work, the model would need to not only understand my writing style but also know a lot about me. The best source for this is my Telegram…
Committing Without Git
How does git store different versions of a file? What about a commit? Find out creating your own commit without the help of git.
A four year plan for async Rust
Four years ago today, the Rust async/await feature was released in version 1.39.0. The announcement post says that “this work has been a long time in development – the key ideas for zero-cost futures, for example, were first proposed by Aaron Turon and Alex Crichton in 2016”. It’s now been longer since the release of…
No one wants simplicity
We think we do, but in fact every web developer will happily sacrifice simplicity to the first shiny thing promising them relief from the mildest of ailments.
Java 21 VirtualThreads vs. Clojure Lazy Seqs
Welcome to the Clojure Deref! This is a weekly link/news roundup for the Clojure ecosystem (feed: RSS ). Thanks to Anton Fonarev for link aggregation.
Analyzing multi-gigabyte JSON files locally
I’ve had the pleasure of having had to analyse multi-gigabyte JSON dumps in a project context recently. JSON itself is actually a rather pleasant format to consume, as it’s human-readable and there is a lot of tooling available for it. JQ allows expressing sophisticated processing steps in a single command line, and…
How to make LLMs go fast
Blog about linguistics, programming, and my projects
The Code Review Pyramid (2022)
Table of Contents FAQ When it comes to code reviews, it’s a common phenomenon that there is much focus and long-winded discussions around mundane aspects like code formatting and style, whereas …
Thoughts on what a next Rust compiler would do
In Rust in 2023, @nrc floated an idea of a Rust compiler rewrite. As my hobby is writing Rust compiler frontends (1, 2), I have some (but not very many) thoughts here! The post consists of two parts, covering organizational and technical aspects.
Notes from building a blog in Django
We launched the Datasette Cloud blog today. The Datasette Cloud site itself is a Django app - it uses Django and PostgreSQL to manage accounts, teams and soon billing and payments, then launches dedicated containers running Datasette for each customer.