New
The latest blog posts to take off on Hacker News. 14,540 posts.
My guiding principles after 20 years of programming (2020)
I’ve been programming since 1999. This year I’ve officially coded for 20+ years. I’ve started with Basic but soon jumped into Pascal and C…
How side effects work in FP
Chad Nauseam Home
Literate programming is much more than just commenting code
Most programmers haven’t heard of literate programming , and the few that have tend to think it means writing a lot of comments around your code. However, simply explaining code with prose, does not constitute literate programming. Consider the following quote from it’s inventor:
Please put units in names
Using strong types, or putting units in names, is a small effort that can make a tremendous difference for code readability.
Melrōse, a language to program and play music (2021)
Melrōse is both a language and a tool to create and listen to music interactively, The language uses musical primitives (note, sequence, chord) and many functions (map, group, transpose) that can be used to create more complex patterns, loops and tracks. Melrōse uses MIDI output to produce sound by any (hard or…
Verilog Is Weird
Verilog is the most commonly used language for hardware design in America (VHDL is more common in Europe). Too bad it's so baroque. If you ever browse the Verilog questions on Stack Overflow , you'll find a large number of questions, usually downvoted, asking “why doesn't my code work?”, with code that's not just a…
Rust's unsafe pointer types need an overhaul
I literally wrote the book on unsafe Rust . And the book on pointers in Rust . And redesigned the Rust’s pointer APIs . And designed the standard library’s abstraction for unsafe heap-allocated buffers . And maintain the alternative Vec layout .
When Double Precision Is Not Enough
Using greater than double precision to calculate the eigenvalues of the lesp matrix.
Documenting Sony Memory Stick
Dmitry.GR: The first complete documentation of Sony Memory Stick from HW to DATA
Building games through natural language using OpenAI’s code-DaVinci model
TL;DR: OpenAI has a new code generating model that’s improved in a number of ways and can handle nearly two times as much text (4,000 tokens.) I built several small games and applications without t…
Hot-code reloading on macOS/arm64 with Zig
Jakub Konka's weblog about programming, game theory, maths, and more.
MaskerAid iOS App
I am overjoyed to announce MaskerAid, my latest iOS app, which you can use to quickly and easily add emoji to images.
C Isn't a Programming Language Anymore
Phantomderp and I have both recently been very aligned on a particular subject: being extremely angry about C ABIs and trying to fix them . Where we’re not aligned is why we’re mad about them.
Technical Time Travel: On Vintage Programming Books
A look at three relics of a not-quite-bygone era. In picture-listicle form.
Vim Reference Guide
Concise learning resource for beginner to intermediate level Vim users
How to Learn Nix
Five years ago, I migrated my VPS from Arch Linux to NixOS. I had no idea what I was doing. I had never used Nix before. I thought I could figure it out. Five years later, I’m still running NixOS. And I still have no idea how it works.
Writing a device driver for Unix V6
In this post we will learn the useful skill of writing a device driver for Unix V6 and run it on an emulator.
How to write a tree-sitter grammar in an afternoon
This article was discussed on Hacker News.
To save C, we must save ABI
After that first Firebrand of an article on Application Binary Interface (ABI) Stability, I’m not sure anyone expected this to be the title of the next one, huh? It seems especially bad,
Scripting with Go
The Unix shell is pure wizardry. Why shouldn’t it be as easy to write systems programs in Go as it is in the shell? The script library is the secret spell-book that makes this possible.
Cron best practices
The time-based job scheduler cron(8) has been around since Version 7 Unix, and its crontab(5) syntax is familiar even for people who don’t do much Unix system administration. It’s standardised , reasonably flexible, simple to configure, and works reliably, and so it’s trusted by both system packages and users to…