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.
Topics /
The most popular blog posts about software engineering on Hacker News. 874 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.
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.
A pragmatic new design for high-level abstractions Monads (and, more generally, constructs known as “higher kinded types”) are a tool for high-level abstraction in programming languages1. Historically, there has been a lot of debate inside (and outside) the Rust community about whether monads would be a useful…
This blog post is about how we added package versioning to Go, in the form of Go modules, and the reasons we made the choices we did. It is adapted and updated from a talk I gave at GopherCon Singapore in 2018 .
and this made me wonder how many type parameters a method could have. As far as I can tell, the Java Language specification says nothing about this question. 1
Let’s walk through the process of building a dead simple Phoenix application from the ground up.
A plea to Haskellers everywhere.
Dr. Alan Kay invented the term "OO Programming", but he states that modern OO programming isn't what he meant. What did he mean?
Update: I've made several edits to the post since Aleksey Shipilëv was kind enough to suggest many corrections and improvements.If you closely follow JVM development scene, you've probably noticed ...
Mocking is a powerful technique for isolating tests. But yours isn’t working. Why!?
thoughts
GitHub Actions are still in beta and are changing quickly. But if you are looking to get started the possibilities are endless.
This post explores unit and integration testing in no_std executables. We will use Rust’s support for custom test frameworks to execute test functions…
(For the avoidance of doubt, I have nothing to do with hiring at my employer. This test is probably deeply problematic in ways you'll angrily Tweet me about.) I'd like to tell you a story! I am a teenager applying for temp jobs. It's the late 1990s and the temp agency have asked me to take a Microsoft Office test. You…
"Big integers" have landed in Javascript, at least in Firefox and Chrome. One of my favorite things to do with high precision arithmetic is to calculate digits of π. From scratch, that is, using only addition, subtraction, multiplication, and division.
Over the years I’ve found myself with a weird amount of knowledge about how types and ABIs in Rust work, and I wanted to write it all down in one place so that… it’s written down in one place. Much of this information can or should be found in the Rust Language Reference and the Rustonomicon .
Any problem in computer science can be solved with another level of indirection. Except for the problem of too many layers of indirection.
Write small blocks of code. How small? Here's how small.
When designing or, in some cases, implementing a programming language with built-in support for Unicode strings, an important decision must be made about how to represent or encode those strings in memory. Not all representations are equal, and there are trade-offs between different choices.
I had a student (Fred Smith) who worked on extensions to Popcorn (the predecessor to Cyclone) that supported run-time code generation in a lightweight fashion. Here’s a paper describing part of the system: https://ecommons.cornell.edu/handle/1813/5812 . Fred’s thesis had a bunch more.
Assuming you're in the unusual position of actually having budget for quality, here's what to spend it on.
A post describing how C programs get to the main function. Devicetree layouts, linker scripts, minimal C runtimes, GDB and QEMU, basic RISC-V assembly, and other topics are reviewed along the way.
In this second installment of the machine learning from scratch we switch the point of view from regression to classification: instead of estimating a number, we will be trying to guess which of 2 possible classes a given input belongs to. A modern example is looking at a photo and deciding if its a cat or a dog.
What a great book Designing Data-Intensive Applications is! It covers databases and distributed systems in clear language, great detail and without any fluff. I particularly like that the author Ma…
Derek's Personal Portfolio/Blog