Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 14,540 posts.
Write Junior Code
A plea to Haskellers everywhere.
Replacing Python
In the first post, I took a brief look at the programming languages ATS, C#, Go, Haskell, OCaml, Python and Rust to try to decide which would be the …
Error handling in Rust
Like most programming languages, Rust encourages the programmer to handle errors in a particular way. Generally speaking, error handling is divided into two broad categories: exceptions and return values. Rust opts for return values.
Alan Kay and OO Programming
Dr. Alan Kay invented the term "OO Programming", but he states that modern OO programming isn't what he meant. What did he mean?
New string formatting in Python
For a language that claims to focus on one right way to handle most situations, string formatting in Python is quite a buffet and it’s getting more diverse by the year. Starting with Python 3.6 we now have three ways to format strings (outside of simple concatinating things or using string.Template ):
Hexadecimal clock counting down to 2038 problem
It is now ??????????.??? ( ????-??-??T??:??:??.???Z ) in Unix time , according to your local system clock.
Time to look beyond Oracle's JDK
From Java 11 its time to think beyond Oracle's JDK. Time to appreciate the depth of the ecosystem built on OpenJDK. Here is a list of some ...
Shenandoah GC in production: experience report
Update: I've made several edits to the post since Aleksey Shipilëv was kind enough to suggest many corrections and improvements.If you closely follow JVM development scene, you've probably noticed ...
Retiring a Great Interview Problem
Interviewing software engineers is hard. Jeff Atwood bemoans how difficult it is to find candidates who can write code. The tech press sporadically publishes “best” interview questions …
Why BPG will replace GIFs and more
BPG not only is way smaller than JPEG but also delivers a better quality. And that's not all! It also supports animations! Goodbye GIFs!
Literate programming is much more than just commenting code
Most programmers haven’t heard of literate programming , and the few that have tend to think it means writing a lot of comments around your code. However, simply explaining code with prose, does not constitute literate programming. Consider the following quote from it’s inventor:
More Good Programming Quotes (2016)
In my previous post, The Wisdom of Programming Quotes, I called out some quotes that look good on the surface, but turn out to promote the wrong ideas about software development. I have also posted…
Braid Code Cleanup (part 1)
I am still puzzling through the right way to think about some ideas in compression, so let’s take a break from that and talk about generally cleaning up the ...
Magit Is Amazing
I was reading a post about Jujutsu version control system the other day and that just made me realize how awesome is Magit!
What I learned from others' shell scripts
I am big fan of shell scripts and so love to learn interesting stuff from other's shell scripts. Recently I came across the authy-ssh scripts which eases two-factor authentication for ssh servers. When I walk through scripts, I learned lot of cool things that I am going to share it with you.
How Quaternions encode rotations: derivation and sample code
In the post on matrices in Codea I mentionned that an affine transformation (things like rotation, scaling, translation) ℝ 3 → ℝ 3 could be specified by giving four vectors. In this post I want to examine that a little more closely for the special case of a rotation. That is to say: how can I encode a rotation in ℝ 3…
Why I like XSLT
I first fell in love with XSL in 1999, when Microsoft rolled an XSLT processor into MSXML. I got my hands on the works of Shakespeare marked up in XML
Pictures of a working garbage collector
C++, a "Reality sandwich", and an Octopus.
Materialized views are obviously useful
As programmers we spend a lot of time shuttling data back and forth between different systems and transforming it from one format to another. Sometimes it gets pretty miserable!
Why a mock doesn’t work
Mocking is a powerful technique for isolating tests. But yours isn’t working. Why!?
A guide to error handling in Rust
The first half introduces Rust’s language features and libraries for error handling. The second half should help you write good error handling code in Rust.
Clojure to die for
A selection of the details that makes Clojure such an enjoyable language to work with.
A love letter to jQuery
A very tongue-in-cheek article about why jQuery is good for the web.
Windows 8 Doesn’t Want Your App. Try Again Later
A developer blog about the small things that make good software great.
How to implement a spreadsheet
My friend Lindsey Kuper recently remarked on Twitter that spreadsheets were commonly understood to be the most widely used dataflow program...
Reverse Engineering the DualShock 4
This year I got a very special gift for Christmas: a broken DualShock 4. :smile:You may say it’s a relatively poor gift, but the person who gave me this know...