Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 14,544 posts.
A possible flaw in open-source bcrypt implementations
[NOTE: See updates below and here .] I'm working on an application that requires a secure password hash. The state of the art is Colin Perc...
An API is only as good as its documentation
Your APIs are only as good as the documentation that comes with them. Invest time in getting docs right. — @rubenv on Twitter
ViHN: Vim for Hacker News
tl;dr: I made ViHN to read Hacker News without having to move my hands away from the keyboard. It’s freely available on Firefox and Chrome. This is about yet another Hacker News extension. But other people with my obsession for killing the mouse might enjoy it. Most of the content of this article is just […]
Zeroing Memory is Hard: VC++ 2015 arrays
Quick, what’s the difference between these two C/C++ definitions of initialized local variables? char buffer[32] = { 0 };char buffer[32] = {}; One difference is that the first is legal in C a…
Typst's Math Mode Problem
Typst's math mode has a strange precedence problem that most people using it will run into at some point.
Haskell is not category theory
What, why, who?
How is Ultrassembler so fast?
Ultrassembler is a superfast and complete RISC-V assembler library that I'm writing as a component of the bigger Chata signal processing project.
The Shitty Stack System
How Microsoft's ruthless employee evaluation system annihilated team collaboration.
Thoughts on PostgreSQL in 2024
A look ahead at some ongoing projects in PostgreSQL in 2024 and beyond
Unpacking Elixir: Syntax
Elixir is a language with syntactical roots in Ruby. It also carries the Erlang legacy. Legacy used here as in "a great legacy" and not as in "system you don't like anymore". Ruby is an object-oriented language. Elixir is functional language. The Erlang part has an impact as Elixir was designed to provide strong…
Unexplored Areas in Data Compression
A good colleague of mine, Rich Geldreich put up a interesting article talking about his viewpoints in future directions in lossless…
I made a thing to help you make a thing out of a keypad
I do a lot of electronics projects in my spare time, and I tend to try to make reusable parts to save myself effort in the future. Because I have to order ingredients in certain quantities, I often wind up with more than I need for my project.
Heroku-style deployments with Docker and Git tags
In this post I want to explain a new deployment method I came up with while working on drwn.io. I wanted it to meet a few requirements: Simple Based on git tags Zero-downtime Easy rollbacks Creating …
First impressions about Graal VM
Last week was the release of Oracle’s GraalVM. As stated on the website: GraalVM is a universal virtual machine for running applications written in JavaScript, Python 3, Ruby, R, JVM-based languages like Java, Scala, Kotlin, and LLVM-based languages such as C and C++. GraalVM removes the isolation between programming…
JRuby Creator's Short List of Key Missing JVM Features
I mused today on Twitter that there's just a few small things that the JVM/JDK need to become a truly awesome platform for all sorts of development. Since so many people asked for more details, I'm posting a quick list here. There's obviously other things, but these are the ones on my mind today.Cold…
Gpiozero Flow
Back in 2015, I had the idea for gpiozero — a Python library for Raspberry Pi, making programming GPIO devices simpler by abstraction: instead of thinking about pin channels, voltages, pull-up resistors and rising or falling edges, we think about buttons being pressed and released, sensors...
Reversing for dummies – x86 assembly and C code (Beginner/ADHD friendly)
Before I got into reverse engineering, executables always seemed like black magic to me. I always wondered how stuff worked under the hood, and how binary code is represented inside .exe files, and how hard it is to modify this ‘compiled code’ without access to the original source code.
Reverse Engineer Amazon's Whispersync
I am a big fan of my Kindle. This is the device I’d bring over to a desert island. I am also a fairly frequent user of the highlight feature where you can select a bit of text you like and save it. One thing is bothering me though: the lack of open API on the Kindle to retrieve the data about me. Amazon provides the…
I found an 8 years old bug in Xorg
Let me set the right expectations first. This bug I found is actually not that complicated, it's very straightforward once you see what's going on. But I still think the process it took me to uncover this bug could be interesting. It's also kind of interesting that a simple bug stayed undiscovered for so long. I will…
Systems Programmers Relax - Most Programming Advice Isn't For You
I'm an incredibly slow programmer (in the hobby projects I do for the love of it, that is). My ratio of thinking to typing must be around 10...
Developer ports iOS core to non-Apple hardware
Reecently, I achieved one of the core milestones of my personal project, porting the Darwinkernel to the ARM architec...
Programming Algorithms in Lisp: Data Structures
The next several chapters will be describing the basic data structures that every programming language provides, their usage, and the most i...
Notes on “A Philosophy of Software Design”
Jumping on the recent trend, I picked up a copy of A Philosophy of Software Design based on Cindy’s recommendation. It’s a fairly concise read at 160 pages, and I skimmed through it over the last few days, writing up some notes along the way.