Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 21,843 posts.
Command-line apps with Clojure and GraalVM: 300x better startup times
I am a fond Clojure user, and love to use it for both server-side projects and small command-line tools. I love its expressivity and concision, and I like th...
State of the Haskell Ecosystem – February 2016
Update post for the State of the Haskell Ecosystem
Why Is JRuby Slow?
In this article, the author explores why JRuby, an alternative Ruby interpreter that runs on the Java Virtual Machine (JVM), is slower than other R...
Two Years Open Source
We are archiving Atom and all projects under the Atom organization for an official sunset on December 15, 2022.
Why Learn Compilers (2021)
A sufficient understanding of computers is impossible without learning how compilers and their parts work. It is like stepping into the computer's mind and seeing how it feels from the inside. Compil...
Graphics in Qt 6.0: QRhi, Qt Quick, Qt Quick 3D
The state of Qt 6.0 graphics on Vulkan, OpenGL, Metal, Direct3D 11. Qt Quick API changes. Qt Quick 3D new features in Qt 6.
Custom Allocators in Rust
Posts and writings by Nical
NoiseLang: Where N = 5 is a Dirac delta
A signals-and-noise course left me writing Monte Carlo math on paper and wishing the notation itself would run. Nine years later, with an AI agent doing the heavy lifting, NoiseLang became a real Monte Carlo language that runs the same fused kernel on the GPU, on every CPU core, and on WebAssembly.
Link-Time Optimisation (LTO)
I recently started exploring link-time optimisation (LTO), which I used to think was just a single boolean choice in the compilation and linking workflow, and perhaps it was like that a while ago… I’ve learned that these days, there are many different dimensions of LTO across compilers and linkers today and more…
Preview of Microsoft Build of OpenJDK
Today we are excited to announce the preview of the Microsoft Build of OpenJDK, a new Long-Term Support (LTS) distribution of OpenJDK that is open source and available for free for anyone to deploy anywhere. It includes binaries for Java 11, based on OpenJDK 11.0.10, on x64 server and desktop environments on macOS…
Drag and Drop from Terminal
I have built up a pretty good workflow in the terminal. The main thing that I was missing until now was an easy way to drag and drop the files that I am looking at in a terminal to other apps.
The challenges of supporting foreign key constraints
Today, PlanetScale launched support for foreign key constraints. This article covers some of the behind-the-scenes technical challenges we had to overcome to support them.
Ggplot2 version 2.0.0 released by Hadley Wickham
ggplot2 2.0.0: official extension mechanism, new geoms (geom_count, geom_curve, geom_label), appearance tweaks, and facet labels.
Don’t Think, Just Defunctionalize
TL;DR: CPS-conversion and defunctionalization can help you to come up with a constant-stack algorithm.
Interactive Common Lisp Development
Common Lisp programming is often presented as “interactive”. In most languages, modifications to your program are applied by recompiling it and restarting it. In contrast, Common Lisp lets…
On Technical Writing
How I make it work (or not)
Inside boost::unordered_flat_map
Introduction The case for open addressing SIMD-accelerated lookup boost::unordered_flat_map data structure Rehashing Hash post-mixing Sta...
Fun with -fsanitize=undefined and Picolibc
Both GCC and Clang support the -fsanitize=undefined flag which instruments the generated code to detect places where the program wanders into parts of the C language specification which are either undefined or implementation defined. Many of these are also common programming errors. It would be great if there were…
Why Reddit switched to Python (2005)
Get the latest product news, company announcements, and user insights from the official Reddit blog.
Low-poly image generation using evolutionary algorithms in Ruby (2023)
A deep dive into evolutionary algorithms through the lens of low-poly image generation. This exploration covers genetic algorithm theory, custom Ruby implementation using the Petri Dish framework, and detailed analysis of genetic operators including roulette wheel selection, random midpoint crossover, and nudge…