Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 14,540 posts.
Want cleaner code? Use the rule of six
davidamos.dev is your first and best source for information about davidamos. Here you will also find topics relating to issues of general interest. We hope you find what you are looking for!
Beware of Fast-Math
One of my more frequent rants, both online and in person, is the danger posed by the "fast-math" compiler flag. While these rants may elicit resigned acknowledgment from those who already understand the dangers involved, they do little to help those who don't. So given the remarkable paucity of writing on the topic…
Nushell: Introduction to a new kind of shell
This article covers a gentle introduction to the shell nushell
A practical introduction to functional programming (2013)
Many functional programming articles teach abstract functional techniques. That is, composition, pipelining, higher order functions. This one is different. I...
Why React Re-Renders
In React, we don't update the DOM directly, we tell React what we want the DOM to look like, and React tackles the rest. But how exactly does it do this? In this tutorial, we'll unpack exactly when and why React re-renders, and how we can use this information to optimize the performance of our React apps.
Plain text has been around for decades and it’s here to stay
A blog about software craft and quality
Using S3 as a Container Registry
For the last four months I’ve been developing a custom container image builder, collaborating with Outerbounds1. The technical details of the builder itself might be the topic of a future article, but there’s something surprising I wanted to share already: you can use S3 as a container registry! You heard it right…
8088 MPH: We Break All Your Emulators
One of my bucket list items since I read my first party report back in 1991 was to attend a european demoparty and compete in a compo. I competed at NAID ’96 and placed there, which was awes…
Why are QR Codes with capital letters smaller than QR codes with lower case?
Take a look at these two QR codes. Scan them if you like, I promise there's nothing dodgy in them. Left is upper-case HTTPS://EDENT.TEL/ and right is lower-case https://edent.tel/ You can clearly see that the one on the left is a "smaller" QR as it has fewer bits of data in it. Both go to the same URl, the only…
Patching GCC to build Actually Portable Executables
Gautham's Blog
X86 is a high-level language
Just so you know, x86 machine-code is now a "high-level" language. What instructions say, and what they do, are very different things. I m...
TinyCompiler: A compiler in a week-end
Have you ever wondered how a compiler works, but you never found courage to find out? Then this series of articles is for you. I have never had the chance to look under the hood either, but one week-end I have decided to to write a translator from the esoteric programming language wend (short for week-end), which I…
The paradigms of programming
The paradigms of programming Floyd, CACM 1979 (Also available in ) A couple of weeks ago we looked at Dan Bernstein’s very topical “thoughts on security after ten years of qmail 1.0.” From the gene…
How to mentor software engineers
Mentors should operate at three levels: goals, situations, and skills.
B-Trees: More Than I Thought I'd Want to Know (2021)
B-Trees are not boring, after all
The lost art of 3D rendering without shaders
Learn how OpenGL and Metal work by writing your own 3D renderer from scratch
Develop the three great virtues of a programmer: laziness, impatience, and hubris
In computing, “laziness” is a broad term, generally referring to not doing any work unless you need it. Whereas its opposite is “eagerness,” doing as much work as possible in case you need it later.
Lessons Learned from Shenzhen I/O
Shenzhen I/O is a brilliant game. In case you haven’t heard of it, it’s a game about programming micro-controllers. It distills programming down to the fun parts, removing the inertia, …
I accidentally built a meme search engine
I built a magical meme search engine using siglip/CLIP and vector encoding images. It was a fun way to learn about this powerful technology. I'm sharing the …
How does rsync work?
This post is the third article in a series of blog posts about rsync, see the Series Overview. With rsync up and running, it’s time to take a peek under the hood of rsync to better understand how it works. How does rsync work? When talking about the rsync protocol, we need to distinguish between:
I made a patch for Mozilla, and you can do it too
In this article, I will tell how I contributed code to Mozilla during a Bug Squashing Party. I hope to provide some tips and advice about how to start contributing to a Mozilla project (or any other open-source project). I will talk about Firefox and Servo, which, I think, are somehow representative of two common ways…
Learning to code is still worthwhile
Literally no one is uttering what we thought were the immortal lines “learn to code,” right? I don't think that sentence has been spoken for many months now in Silicon Valley
MVC frameworks aren't dinosaurs but sharks
I first heard about the dinosaur 🦕 VS shark 🦈 analogy when I read this excellent article about relational databases:
GC progress from JDK 8 to JDK 17
JDK 17 has been out for a few months and it’s not just packed with new language features. The performance boost compared to older JDK versions is also really significant. It becomes especially clear when compared to the previous LTS releases, JDK 8 and JDK 11. Much of the improved performance comes from new features…
Software engineers should write
In elementary school, there were “math kids” and there were “English kids”. You were classified by the other kids’ impression of your prowess in each subject.
A 100x speedup with unsafe Python
We're going to speed up some numpy code by 100x using "unsafe Python." Which is not quite the same as unsafe Rust, but it's a bit similar, and I'm not sure what else to call it... you'll see. It's not something you'd use in most Python code, but it's handy on occasion, and I think it shows "the nature of Python” from…
A Real Life Off-by-One Error
The Championnats d’Europe d’Escalade (climbing) in Villars-sur-Ollon has just finished. I couldn’t make it to all the events, but did see the finals of the “Speed” event. It’s a series of head-to-head elimination races up a 15m tall wall, resulting in an eventual victor after enough rounds.