Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 21,835 posts.
Emacs users are like Terry Pratchett’s Igors
Within the constraints of the Emacs environment, there are no limits. Emacs is built upon this principle; the Lisp principle. Make some small kernel of features. A substrate. Take care to make this substrate programmable (in any language, Emacs chooses Lisp), and then build the system upon it. Let users worry about…
A million ways to die from a data race in Go
I have been writing production applications in Go for a few years now. I like some aspects of Go. One aspect I do not like is how easy it is to create data races in Go.
Why We Stick With PHP (and don't move to Ruby or Python)
I often get asked by potential employees and clients, why we do PHP and mostly PHP only. A valid question, of course and my first answer usually is (besides the “historical reasons” one), that nowadays all those server side (scripting) languages are mainly the glue layer between the front-end (the browser part) and…
Just because you can doesn't mean you should: the <meter> element
A very frustrating brownie recipe illustrates why a semantic element may actally NOT be the right tool for the job.
Bug in Notepad Involving Asterisk in Title Bar
Back in May 27, 2020 Microsoft published a blog post describing a new feature in Notepad:
Go's Concurrency Examples in Java 19
There is no way for your operating system to know exactly how much stack space a thread will need so it allocates an amount on the order of around a kilobyte initially and then around a megabyte once the thread starts to be used. You only have around a bakers dozen gigabytes of RAM, so you can only have give or take…
Sync vs. Async Python: What Is the Difference?
Have you heard people say that async Python code is faster than "normal" (or sync) Python code? How can that be? In this article I'm going to try to explain what async is and how it differs from…
What's new in C# for Godot 4.0
All about changes and improvements that Godot 4.0 offers to C# developers.
Favor real dependencies for unit testing
Which dependencies should be present in your code base? This article suggests an answer to that question.
How to build an NPM worm
npm is a registry and package manager for JavaScript that ships as part of Node.js . It's used by tens of millions of people to install hundreds of thousands of packages billions of times every week.
Optimizing compilers reload vector constants needlessly
Modern processors have powerful vector instructions which allow you to load several values at once, and operate (in one instruction) on all these values. Similarly, they allow you to have vector constants. Thus if you wanted to add some integer (say 10001) to all integers in a large array, you might first load a…
Leveraging Rust in our Java database
A guide to adding Rust to a Java codebase with JNI and the rust-maven-plugin.
A few notes on message passing
The official home of the Erlang Programming Language
How PHP Opcache Works
The opcache PHP extension implements various functionality to speed up PHP in a transparent manner. As the name indicates, its origin and primary purpose is opcode caching, but nowadays it also contains an optimizer and just-in-time compiler. However, this blog post will focus only on the opcode caching aspect.
Needed 1+1, built a functional programming language
A deep dive into converting a simple arithmetic expression into a binary tree, leading to a custom language in C.
E17 (Enlightenment) enters alpha after 12 years
Enlightenment is a Window Manager, Compositor and Minimal Desktop for Linux (the primary platform), BSD and any other compatible UNIX system. Source code releases are on our download page. Visit our contribute page for our latest source code repositories.
Python on Wheels
A quick overview into wheel based Python deployments.
Golang Object Oriented Design
Composition not inheritance, polymorphism through interfaces, and packages for namespacing.
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.
Node.js v9.2.0
Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.