Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 14,544 posts.
Implementing Raft, Part 3: Persistence and Optimizations
This is Part 3 in a series of posts describing the Raft distributed consensus algorithm and its complete implementation in Go. Here is a list of posts in the series:
Setup a complete Django server, deploy, rollback – all in one powerful script.
This will create the neccesary directories, install nginx and gunicorn under supervisord control and upload new configuration files made from templates on all the app-servers. Additionally it deploys the newest codebase from your local git branch.
Making a low level Linux debugger, part 2: C
Last time , we started making a debugger and live editor for (re)creating assembly and C programs.
Mobile Smalltalk
I've been announcing the Open Beta release of my game HexSolve for Android and iOS. HexSolve was written in Smalltalk and people have been ...
Managing Technical Quality in a Codebase
If there’s one thing that engineers, engineering managers, and technology executives are likely to agree on, it’s that there’s a crisis of technical quality. One diagnosis and cure is easy to identify: our engineers aren’t prioritizing quality, and we need to hire better engineers or retrain the ones we have. Of…
Gradual typing for Clojure
Today’s programming landscape is dynamic and polyglot . Interlanguage interoperability is a mainstay — it’s almost unavoidable that a given piece of code will be used without the knowledge of the original author.
VP trees: A data structure for finding stuff fast
<img src="http://stevehanov.ca/wavelet/cup.png"/> Let's say you have millions of pictures of faces tagged with names. Given a new photo, how do you find the name of person that the photo most resembles? <p> In the cases I mentioned, each record has hundreds or thousands of elements: the pixels in a photo, or patterns…
Ebtrees: Elastic Binary Trees (2011)
Administrivia This article was initially posted on Wikipedia in 2008, which explains why it's written at the 3rd person and looks familiar...
GPU Debug Scopes
Using RAII to attach diagnostic information to your command buffers
Bloat reduction in LibreOffice 3.4.0
Older items: 2023 : ( J F M A M J ), 2022 : ( J F M A M J J A S O N D ), 2021 , 2019 , 2018 , 2017 , 2016 , 2015 , 2014 , 2013 , 2012 , 2011 , 2010 , 2009 , 2009 , 2008 , 2007 , 2006 , 2005 , 2004 , 2003 , 2002 , 2001 , 2000 , 1999 , legacy html
Revisiting Linux CPU Scheduling
Disclaimer: This is to the best of my knowledge. It's a complicated topic, there are tons of options, and this only covers a tiny fraction of this topic anyway. If you spot mistakes, please tell me.
A whirlwind introduction to dataflow graphs
While in the middle of writing “Reading bits in far too many ways, part 3”, I realized that I had written a lot of background material that had absolutely nothing to do with bit I/O and…
Undefined Behavior in C and C++ (2024)
In some ways, that's because C is a lower-level language, closer to assembly; it just gives you what the underlying machine gives you.
Admitting That Functional Programming Can Be Awkward (2007)
It's not about technology for its own sake. It's about being able to implement your ideas.
Dear Programming Job Applicants (2010)
This article is written with considerable snark–put on your flameproof suit if needed. I’m not actually a jerk when interviewing people, but I do get frustrated when candidates fail to do basic preparation. If you’re unsure about how to prepare for a programming interview, read on… I know this might come as a shock to…
Myths about Hash Tables
A hash table is data structure that is used to search for exact matches to a search key. For searching, they work like this: Take a search key (example: the word “cat”) Hash the search …
Objective-C's niche: why it survives in a world of alternatives
Objective-C remains an impediment for many programmers coming to the Mac or iPhone platforms — few programmers have ever experienced it before learning Cocoa, forcing two learning curves at once for new Cocoa developers. How did Apple end up with such a weird language? And for a company known to replace CPU…
Why Rust helps even if you have to use a lot of `unsafe`
I semi-regularly hear developers who claim that using Rust would not gain them anything because they would have to use `unsafe`. But this is not true. Local reasoning matters.
Interviewing programmers: coding test example explained
In Part 2 article I'll describe how I personally would write the code specified in Part 1. I'm not claiming this is in any sense objectively the best, and I'm certainly not suggesting it's the only.
Qt signal is ten times slower than a virtual function
I defined a QT Object that contains an integer value and uses QT signal along with awl::Observable based on virtual functions to notify the subscribers when the value changes:
Is XMPP any good? Also, let's write a client in Tcl, maybe
I still have my Nokia 5800 lying around. It runs Symbian. That platform is quite different from Android. For one thing the internal storage size is 81 MB - less than what your single android app takes up, even in RAM, and it works faster than modern smartphones - e.g. the SMS app opens instantaneously. Another…
New integer types I’d like to see
(Most) C++ implementations provide at least 8, 16, 32, and 64-bit signed and unsigned integer types. There are annoying implicit conversions, discussions about undefined behavior on overflow (some think it’s too much UB, others think it’s not enough), but for the most part they do the job well. Newer languages like…
Sylph: the programming language I want
Creating a programming language is apparently all the rage these days, and it’s got me thinking about what I would really like to see in one. I’m starting to suspect the things I want are either impossible or mutually incompatible, so I’d better write them down and let smarter people tell me why I can’t have…
Why do C++ folks make things so complicated?
This morning Miroslav Bajtoš asked "Why do C++ folks make things so complicated?" in response to my article on regular expressions in C++. Other people asked similar questions yesterday. My response has two parts: Why I believe C++ libraries are often complicated. Why I don't think it has to be that way. Why would…
The Future Programming Manifesto
It’s time to reformulate the principles guiding my work. [Revised definition of complexity in response to misunderstandings]