The truth about C and Unix history
My homepage for projects, jokes and bunnies.
Topics /
The most popular blog posts about software engineering on Hacker News. 14,544 posts.
My homepage for projects, jokes and bunnies.
Are you arguing that undefined behaviour should not be a thing in, e.g., C? It sounds like you’re claiming that the fabled sufficiently smart compiler could take code in a C-like language with no UB, and emit something equivalent to what a C compiler would produce given equivalent input in C that correctly avoids UB…
I like to answer this frequent question by way of an example. An example of two companies. It goes something like this:
Sometimes I see unsourced, unclear, vaguely mystical claims about K being the fastest array language. It happens often enough that I'd like to write a long-form rebuttal to these, and a demand that the people who make these do more to justify them.
I built an (almost) fully self-hosted, sandboxed, agentic software factory.
90Phut TV là trang web không thể bỏ qua dành cho những tín đồ theo dõi bóng đá trực tuyến. Kênh đảm bảo mang đến chất lượng tường thuật mượt mà cùng nhiều tin
You can mount code from your development machine into a container and save yourself tedious waiting times during development.
For programmers new to cryptography, there are plenty of “known unknowns” – unfamiliar terms like “elliptic curves” and “random oracles”, and unnecessarily long acronyms (“RSASSA-PKCS-v1_5”, like really?). But what really gives cryptography its reputation is the unknown unknowns. The things that catch even experienced…
When writing concurrent Rust you will encounter Arc and Mutex types sooner or later. And although Mutex might already sound familiar as it's a concept known in many languages, chances are you haven't heard about Arc before Rust. What's more, you can't fully understand these concepts without tying them to the ownership…
When all you have is a hammer, everything in the world starts to look like a nail. Twenty five years of doing analysis and helping others do analysis has shown me that there are at least three diff…
You’ve probably heard that story about NPM community and LeftPad package, that broke thousands JavaScript projects worldwide. There was a nice follow-up article titled “Have We Forget How To Program” and one guy even created left-pad.io - Left-Pad As A Service web service. People got a lot of fun discussing this story.
I show how to use heterogeneous lists and traits to implement a type-safe printf in Rust. These mechanisms can ensure that two variadic argument lists share important properties, like the number of format string holes matches the number of printf arguments.
Blog of Vincent Rolfs. Vincent is a freelance Software Engineer and IT-Consultant. He has more than ten years experience in developing complex applications on the web.
Unix is an alliance of loosely structured text files bound together and governed by scripts. Unix is the United Confederation of Strings:
Parts 1 and 2 are found here and here
What is local-first software and why does it matter? This guide covers local-first architecture, offline-capable apps with automatic sync, data ownership, and how to build a local-first web app with Vue step by step.
Today, I wanted to see if I could out-compile my C compiler. I added a hand-compiled assembly version of echo from our previous coding exercise and added a new make target, make asm , that will assemble it. Let's look at our hand-compiled assembly and compare it to our C compiler and ask whether or not it was worth it.
For sqlite-utils issue 250 I needed to locate some test CSV files that start with a UTF-8 BOM.
People often criticize asynchronous messaging solutions as too complicated and cumbersome
bfs is a tool I wrote to do b readth- f irst s earch through a filesystem. It started out simply enough, but over the years it’s grown to include almost every feature from every other find implementation I could find, plus many of its own innovations. The new 3.0 release series includes the biggest new feature so far…
Defining the microservices architectural style by describing their nine common characteristics
Who wouldn’t want a live preview for writing their great content? If you happen to be running Rails with Hotwire, it’s surprisingly easy with a small Stimulus controller.
Recently I was discussing Converge with someone, and mentioned how little time the core compiler had taken to implement (no compile-time meta-programming, limited error checking, but a functioning compiler nonetheless) - only a few days. The chap I was talking to looked at me and told me that he didn’t believe me. I…
Dr. Alan Kay explains when "object-oriented" was first used and what it means. []
In my last post I floated the idea of writing a slow, edit-prone shell script instead as a self-rebuilding C program.