Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 14,544 posts.
Go Is a Shop-Built Jig
Alex Payne wrote an excellent essay called Thoughts on Five Years of Emerging Languages. It called to mind something I wrote a while ago for a …
Exciting Days for ARM Processors
Introduction ARM CPUs have long dominated the mobile world, nearly all Apple and Android phones and tablets utilize some model of ARM processor. However Intel and AMD still dominate the laptop, des…
Pixel is a unit of length and area
When measuring the size of a two-dimensional digital picture, the unit pixel is used in a weird overloaded way. Sometimes, it is used as a unit of linear length. For example, each frame of an animation is 1920 pixels wide and 1080 pixels tall. The Cascading Style Sheets (CSS) web standard has px as a unit of length…
Why Objective-C
In my previous post I talk about how I got rid of hundreds of thousands of lines of Objective-C code while at Audible and I explain why keeping Objective-C code around is a terrible idea. And I explain that…
A Review of the Odin Programming Language
A review of the Odin programming language # Written by Dale Weiler Twitter GitHub Last updated Tuesday, September 10th, 2022 What is Odin # For those unfamiliar, Odin is a systems programming language that is more conservative in its design than other newer programming languages such as Rust, Zig, and Carbon. The…
Handling 1M Requests per Minute with Go
Here at Malwarebytes we are experiencing phenomenal growth, and since I have joined the company over 1 year ago in the Silicon Valley, one my main responsibilities has been to architect and develop several systems to power a fast-growing security company and all the needed infrastructure to support a product that is…
How to unit test code that depends on time
Suppose that the logic of your program depends on time. That is, you need to keep track of when something in the past happened, and what tim...
Why Aren’t More Users More Happy With Our VMs? Part 1 (2018)
Programming language performance is something that nearly everyone cares about at some point, whether they realise it or not. If you’re a programmer, you sometimes have to make your programs run fast; if you’re a user, you might be frustrated at a program that runs slowly, without knowing that it’s caused by a poor…
Try Gleam
Why a Rust developer might feel at home in Gleam, and where the BEAM is a different world.
How to make smaller C and C++ binaries
This blog post presents several techniques to make the binaries resulting from C or C++ compilation smaller with GCC (or Clang). Please note...
Atomics and Concurrency
This is going to be a long post, but I hope you get value out of it. This wasn’t an easy topic to tackle but it was definitely worthwhile!
LDM: My Favorite ARM Instruction
LDM—or load multiple —is my favorite assembly instruction of the ARM instruction set. Here’s why.
Go and SQLite in the Cloud
Why SQLite and Go in the cloud are a great match, getting started, best practices, and more.
I just want to run this one Python script
So I couldn't sleep the other night, and my brain wanted to think about odd problems… Ever had a script that's compatible with both, Python 2 and 3, but you didn't want to bother the user to know whic
Fedora 38 LLVM vs. Team Fortress 2
F38 just released and seeing a bunch of people complain that TF2 dies on AMD or other platforms when lavapipe is installed. Who's at fault? ...
Emacs and the mouse: A modest defense of the rodent
A modest defense of the rodent So, Emacs and the mouse. This is an unexpectedly contentious topic, with discussions that end, at best, with careless dismissal. More often they turn into arguments with folks talking past one another. The advantages of using the mouse for common actions in Emacs are immediate and…
Picturing Git: Conceptions and Misconceptions
Far too many developers use Git without understanding it. It's time to straighten out your thinking about what Git is, and isn't.
Lessons learned as a software developer turned project manager
Becoming a project manager after being a software developer for many years changed me quite a bit. Below are my thoughts and breakdown of the experience.
Go stack traces and the errors package
A few months ago I gave a presentation on my philosophy for error handling . In the talk I introduced a small errors package designed to support the ideas presented in the talk.
How to average floating point numbers (2015)
When it comes to accuracy, how you add a series of arbitrary values together, and average them still matters.
The Database Inside Your Codebase
Navigating codebases of any meaningful size is difficult. Most of a programmer's time is spent jumping through the codebase, reading or skimming to build a ment...
Modern C++ and Lisp Programming Style
Modern C++, as defined in the C++11 standard has evolved to become an algorithmic language. This represents as much an idiomatic departure from Object Orientation as C++ was a departure from …