Unicode programming, with examples in C
Most programming languages evolved awkwardly during the transition from ASCII to 16-bit UCS-2 to full Unicode. They contain internationalization features that often aren’t portable or don’t suffice.
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 14,544 posts.
Most programming languages evolved awkwardly during the transition from ASCII to 16-bit UCS-2 to full Unicode. They contain internationalization features that often aren’t portable or don’t suffice.
Last Updated Dec 12, 2019: Fixed an off by one error (awk uses 1-based arrays!).
Dmitry.GR: Driving a poorly-designed display and touch board using no CPU at all
An in-depth guide to listening to Postgres database changes through the WAL. Covers logical replication, publications, replication slots, and an Elixir implementation.
You’re part of a preternaturally enlightened dev team, and have set aside an entire day for nothing but code review. However, after the first 2 hours, you realise that you have forgotten your glasses and have just been staring at colourful blurs all morning. What do you do?
Spotting differences in code is an important part of what we do, Delta is by far the best CLI diff tool I ever used.
Composite indexes aka multi-column indexes are about 10x faster than index merges. In Postgres, the gap is larger than in MySQL because Postgres doesn’t support index-only scans for queries that involve index merges.
If you work with anything that can be modeled mathematically, you most likely know that many things you work on can be expressed with algebras. However, if you are not a graduate of a computer science course or similar you might not know how ubiquitous they are and how often you rely on some of them. (And I don’t mean…
I wrote this while I was at PyCon, but I kept revising it. Anyway, here goes. :) As is apparent by now, no one has really been doing any ...
PyPi, the Python Software Foundation's package repo, counts over half a million open source projects. Since I use many of these every day, it seemed appropriate to get to know this set of packages better, and show some appreciation. The index website provides nice search and filtering, which is good when looking for…
In the course of trying to figure out how to smoothly zoom timelines of a billion trace events, I figured out a cool tree structure that I can’t find elsewhere online, which it turned out two of my friends have independently derived after not finding anything on their own searches. It’s a way of implementing an index…
Ever since its introduction in the 2017 paper, Attention is All You Need, the Transformer model architecture has taken the deep-learning world by storm. Initially introduced for machine translation, it has become the tool of choice for a wide range of domains, including text, audio, video, and others. Transformers…
Peter Seibel has helped more people (including me) discover and become user of Lisp as probably noone else in the last decade with his Pract...
I’ve been in an interviewing mindset for awhile and I’ve come to realize something important about C++ in particular. C++ is a “two peak” language. That is to say C++ is the only language I know of where two very different sets of programmers consider themselves well versed in the language. Let me show you in fake…
Dust3D is a free, open source low poly 3D modeling tool for video games and 3D printing. Features sketch-to-mesh, auto-rigging, procedural animation, and single-tool GLB/FBX export.
Netscape 6.0 is finally going into its first public beta. There never was a version 5.0. The last major release, version 4.0, was released almost three years ago. Three years is an awfully long tim…
-h --help -help help --? -? ????
A few days ago, I met up with a friend & peer over coffee.
The “park bench” panel at the Haskell eXchange last week talked about a lot of things, but some of them can be summarised by the question ...
Interesting and unexpected details for Rust programmers learning the C programming language.
Unit tests are always in sync with the code, making them a powerful tool for up-to-date documentation.
Over the last couple of years me and my colleagues here at doctronic have been busy creating and maintaining more than a dozen of individual software systems for our clients.