Topics /

Software Engineering

The most popular blog posts about software engineering on Hacker News. 994 posts.

2020
696

Controlling My A/C with a Gameboy

Last year, I was lucky enough to be gifted a Gameboy Color in great shape. Apart from its intended gameplay features, I also wanted to try and build something meaningful with it, so I made this application to control my air-conditioner over its existing, reverse-engineered infrared protocol.

701

Rust testing or verifying: Why not both?

Dijkstra famously dissed testing by saying “Program testing can be used to show the presence of bugs, but never to show their absence!” As if you should choose one over the other. I don’t see them as opposites but as complementary techniques that should both be used to improve the quality of your code.

708

Doing a math assignment with the Lean theorem prover

Note: this post was written for Lean 3; the latest version, Lean 4, is a very different language. Turn back the clock to 2009: a confused physics major newly infatuated with math and computer science, I enrolled in MATH 273: Numbers and Proofs at the University of Calgary. This wasn’t my first encounter with…

715

Don't trust default timeouts

Modern applications don’t crash; they hang. One of the main reasons for it is the assumption that the network is reliable. It isn’t. When you make a network call without setting a timeout, you are telling your code that you are 100% confident that the call is going to succeed. Would you really take that bet? If you…

716

A Little Clojure

This expression: (1 2) represents the list containing the integers 1 and 2 in that order. If you want an empty list, that’s just () . And the list of the first five letters of the alphabet is just (\a \b \c \d \e) .

718

F# Data Type Providers in .Net Core (2018)

As one of F#'s killer features; type providers have the ability to make rooms full of developers gasp when shown for the first time. Support has recently been added to the FSharp.Data library [https://www.nuget.org/packages/FSharp.Data] for .Net Standard 2.0, allowing us to