Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 21,845 posts.
What happens when you shift a register by more than the register size?
A comparative study of processor architectures.
Tables vs CSS: CSS Trolls begone
First mistake, drinking the CSS Kool-Aid Several weeks ago, I started designing the layout for my threaded comments on a social news site that I'm building. I had created a down and dirty layout using nested tables. It was ugly, and used nested tables but it worked. I was then paralized by guilt. I couldn't let the…
The Firing Squad Problem
In 1957, John Myhill first posed an interesting problem that was closely related to computer programming, but did not require any related background to solve. Dubbed the "firing squad synchronization problem," the puzzle was passed along by word of mouth and first solved by Marvin Minsky and John McCarthy. However…
Rust: Enums to Wrap Multiple Errors
This is a follow-up to Error handling in Rust from a couple of days ago. The moment we want to use error propagation for different error types, we have to rely on trait objects with Box<dyn Error>, which means we defer a lot of information from compile-time to runtime, for the sake of convenient error handling.
Deep Dive into PHP 8's JIT
PHP 8's Just In Time compiler is implemented as part of the Opcache extension and aims to compile some Opcodes into CPU instructions in runtime. Let's understand how it works all together.
Practicing Programming (2005)
Practicing Programming Stevey's Drunken Blog Rants™ Back in October I wrote an essay in which I compared programming to other professions. In it, I made the unsubstantiated claim that programming is unusual, in that most programmers don't practice their craft -- at least, not in any disciplined
The State of the Octoverse: top programming languages of 2018
Take a closer look into why—and where—top programming languages are popular.
Don't unwrap options: There are better ways (2024)
I noticed that handling the None variant of Option without falling back on unwrap() is a common papercut in Rust. More specifically, the problem arises when you want to return early from a function that returns a Result if you encounter None. It has …
Stop Forwarding Errors, Start Designing Them
We develop fast Rust crates and release them fast.
Introduction to WebAssembly Components
WebAssembly and WASI show great promise for the future of computing outside the browser, and the WebAssembly component model aims to improve the portability, cross-language, and composition story for Wasm. This article explains the goals of the component model, and showcases how to use tooling from the Bytecode…
Why PHP won
When I first learned to program on the web, Perl + CGI was the dominant platform. But by the time I was building my first websites for com...
ElixirNitpicks
You are seeing this because the administrator of this website has set up Anubis to protect the server against the scourge of AI companies aggressively scraping websites . This can and does cause downtime for the websites, which makes their resources inaccessible for everyone.
Stack Overflow Fatigue
This post has moved to Robert Elwell's Blog -- Stack Overflow Fatigue?
MongoDB, Data Durability and Improvements coming in 1.8
Last weekend I tweeted two links to two tweets by a poor guy who apparently got his MongoDB database into an unrecoverable state during shutdown whilst upgrading to a newer version. That tweet quickly made the rounds, and the next morning I saw myself staring at replies stating that it was all his fault, because he…
Lessons on Writing JavaScript and React from ClojureScript
Technical blog of Ryan Jerue
Blazing Fast HTML: Elm vs. React vs. Angular vs. Ember
A delightful language with friendly error messages, great performance, small assets, and no runtime exceptions.
Defending your app from copies and clones
App developers sometimes ask me what they should do when their features, designs, or entire apps are copied by competitors.
The Ruby community has a DHH problem
The Ruby community can no longer afford to stand silent in the face of DHH and his toxic ideas.
Using an old BlackBerry as a portable SSH or Telnet terminal
EDIT 2022-07-22: With the shutdown (or imminent shutdown) of the 2G/EDGE/3G network in the US I'm now switching to a BlackBerry Q10, which supports LTE and is able to run ConnectBot.
Rune 1.1: adds Python, an Emacs editor, a symbol index and is now free
Rune 1.1 makes Rune free for personal use and adds a perpetual commercial license, a workspace symbol index, first-class Python support, an Emacs editor, and substantial improvements to SSH workspaces.
Getting started with NodeGUI, a Qt-based library for desktop applications
A beginner’s guide to NodeGUI, an open-source library for building native desktop applications with JavaScript and CSS-like styling.
The Switch from Heroku to Hardware
Shop a wide selection of domains at HugeDomains.com. Find the right domain name today.
Allocgate: Restructuring how allocators work in Zig
Version 0.9 of the Zig programming language is planned to release in about a week. One of the major changes coming in this release is a restructuring of how allocators work, which has been termed Allocgate . This is a breaking change to the Allocator API provided by the standard library, so pretty much any code that…