Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 894 posts.
Migrating from RethinkDB to Postgres – An Experience Report
Note: This post and our new engineering blog can be found at lumi.dev
Exploring the BBC Micro:bit Software Stack and OS
If you grew up in the UK and went to school during the 1980’s or 1990’s there’s a good chance that this picture brings back fond memories:
GUI Architectures (2006)
Describing the way architectures for UIs have evolved over the years, in particular the many and often misunderstood definitions for Model-View-Controller.
Reverse Engineering an Eclipse Plugin
Introduction Firstly I want to note I’m not a security researcher, ethical hacker or at all competent at reverse engineering. I’m currently working as a Java developer but I’ve al…
How (Not?) to Use Python’s List Comprehensions
Lesser known is that you can have nested list comprehensions, that handle nested for loops:
DéjàVu: a map of code duplicates on GitHub
DéjàVu: A map of code duplicates on GitHub Lopes et al., OOPSLA ‘17 ‘DéjàVu’ drew me in with its attention grabbing abstract: This paper analyzes a corpus of 4.5 million non-fork projects hosted on…
I cannot consistently write safe C/C++ code
Robert O'Callahan. Christian. Kiwi. Software guy. All content human-authored unless otherwise noted.
From AST to Lossless Syntax Tree
As noted in ASDL Implementation and Use Cases , I began with a simple AST interpreter for OSH, thinking that the two languages could share the same AST.
An obscure research project could accelerate innovation in language design
An obscure research project could radically accelerate innovation in programming language design
JavaScript Fatigue: Realities of Our Industry
Hot takes and cold truths on software, startups, and the lies we tell ourselves.
Let’s Stop Ascribing Meaning to Code Points
Update: This post got a sequel, Breaking our latin-1 assumptions. I’ve seen misconceptions about Unicode crop up regularly in posts discussing it. …
Jsonb: Stories about performance
As such, there’s really no “standard” benchmark that will inform you about the best technology to use for your application. Only your requirements, your data, and your infrastructure can tell you what you need to know.
Crafting Interpreters: Classes
One has no right to love or hate anything if one has not acquired a thorough knowledge of its nature. Great love springs from great knowledge of the beloved object, and if you know it but little you will be able to love it only a little or not at all.
Visualizing Your Ruby Heap
In a previous post, I wrote a bit about how Ruby objects are laid out in memory. Today we’ll use that information to write a program that will allow us to take a Ruby heap dump and visualize the layout and fragmentation of that heap. Ruby Object Layout Recap Just as a recap, Ruby objects are fixed width. That is…
Datomic: this is not the history you're looking for
In this post, I'll describe some common pitfalls regarding the use of the 'time-travel' features of Datomic ( db.asOf() , db.history() , :db/txInstant ).
Taking a Look at CLR Thread Pool 'Thread Injection' Algorithm
As part of a never-ending quest to explore the CoreCLR source code I stumbled across the intriguing titled ‘HillClimbing.cpp’ source file. This post explains what it does and why.
68 things the CLR does before executing a single line of your code
Because the CLR is a managed environment there are several components within the runtime that need to be initialised before any of your code can be executed. This post will take a look at the EE (Execution Engine) start-up routine and examine the initialisation process in detail.
When I use classes, when I don’t, what I do instead and why
When I use classes, when I don't, what I do instead, and why
LU Factorization and Linear Systems for Programers
Solving systems of linear equations is a staple food of linear algebra. It can be applied as a part of many machine learning tasks, although it is not always...
Elixir multiple processes: Basics
How to work with multiple processes in Elixir
The Atoms of Programming
In the world of physics, there are many different models that can be used, though typically each of them has different applicability to different contexts. At the small scale, quantum physics is a very useful model, Newtonian physics will yield evidently incorrect predictions so is less valuable. Where a Newtonian…