Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 1,304 posts.
Shrink Go binaries 7x with this one weird trick
Ok, I lied, there’s no weird trick. However, you can easily reduce a Go binary size by more than 6 times with some flags and common tools.
Introduction to strace
There will come a time when you will find yourself asking “What the heck is that process doing?”. To uncover the mysteries behind the behaviour of a process, we have a tool called strace .
The Strict Aliasing Situation Is Pretty Bad
One thing that works well in practice in cases where you really don’t want to process single bytes at a time is to use a union for going from one type to another. Granted, writing one member of a union and reading from a different one also isn’t allowed per the standard, but every compiler I’ve come across allows it…
Final features of C++17
With last weeks C++ committee meeting in Oulu, C++17 is feature complete and on its way to become an international standard. After the last meeting in Jacksonville I had little hope to see big surprises, but Oulu managed to add a few important and interesting features to the new standard. There is a very good overview…
LLVM 3.8 Release Notes
This document contains the release notes for the LLVM Compiler Infrastructure, release 3.8. Here we describe the status of LLVM, including major improvements from the previous release, improvements in various subprojects of LLVM, and some of the current users of the code. All LLVM releases may be downloaded from the…
Tracking Down a Python Memory Leak
In this post, you will discover how I used various tools to track down a memory leak in my Python application under Windows!
Stack traces in GHCi, coming in GHC 8.0.1
Bluesky: @simonmar.bsky.social Github: simonmar Email: marlowsd@gmail.com LinkedIn: Simon Marlow
JEP 286: Local-Variable Type Inference
Enhance the Java Language to extend type inference to declarations of local variables with initializers.
Why Lisp is now an acceptable scripting language
ASDF , the de facto standard build system for Common Lisp, has been vastly improved between 2009 and 2014. These and other improvements finally bring Common Lisp up to par with "scripting languages" in terms of ease of writing and deploying portable code that can access and "glue" together functionality from the…
Long Names are Long
One smart thing Google does is rigorous code reviews. Every change, before you can land it, gets reviewed in at least two ways. First, someone on the team does a normal review to make sure the code does what it’s supposed to.
Curl is 18 years old tomorrow
Another notch on the wall as we've reached the esteemed age of 18 years in the cURL project. 9 releases were shipped since our last birthday and we managed to fix no less than a total of 457 bugs in that time. On this single day in history... 20,000 persons will be visiting the web … Continue reading curl is 18 years…
Synthesizing a Plucked String Sound with the Karplus-Strong Algorithm
If you are looking to synthesize the sound of a plucked string, there is an amazingly simple algorithm for doing so called the Karplus-Strong Algorithm. Give it a listen: KarplusStrong.wav Here it …
Exploring Rust (from C#)
For the past few years I’ve followed the evolution of Rust with interest. Rust is a new systems programming language (like C or C++) with greater emphasis on...
A Modern App Developer and an Old-Timer System Developer Walk into a Bar
Note: Thanks for all the great comments and feedback here and on Hacker News . Please keep them coming. I learned a ton and I am sure others will also.
Scala on LLVM
This site will be the main location for information about the LLVM backend for Scala that is under development by Geoff Reedy.
Hash Functions all the way down
Update! I tested more hash functions in a follow-up post. See More Hash Function Tests .
Visualising the .NET Garbage Collector
As part of an ongoing attempt to learn more about how a real-life Garbage Collector (GC) works (see part 1) and after being inspired by Julia Evans’ excellent post gzip + poetry = awesome I spent a some time writing a tool to enable a live visualisation of the .NET GC in action.
Procedural Dungeon Generation: Cellular Automata
Last time we looked at generating random dungeons for video games using the Drunkard’s Walk algorithm. The Drunkard’s Walk is fun to play with, and often generates cool levels, but it’s also pretty unreliable. That’s not good enough for my purposes: I want to reliably generate big, open, cave-like maps, with lots of…