Topics /

Software Engineering

The most popular blog posts about software engineering on Hacker News. 14,541 posts.

Any year
9752

Why CoffeeScript Isn't the Answer

CoffeeScript is an open source project that provides a new syntax for JavaScript. I have to say that I have a lot of respect for CoffeeScript and it got a lot of things right. The “golden rule” of CoffeeScript is “It’s just JavaScript” . That means there is a straightforward equivalent to every line of CoffeeScript…

9753

Frameworks Don't Make Much Sense

Frameworks are one of the hugest anti-patterns in software development. They're hard to learn. They limit your creativity. They increase your project's complexity and dependencies. They go out of business and get abandoned. You have to maintain and upgrade your code to match the latest framework versions for no good...

9758

Fibers: An Elegant Windows API

The Windows API — a.k.a. Win32 — is notorious for being clunky, ugly, and lacking good taste. Microsoft has done a pretty commendable job with backwards compatibility, but the trade-off is that the API is filled to the brim with historical cruft. Every hasty, poor design over the decades is carried forward forever…

9761

How to use array reduce for more than just numbers

The array reduce method is really powerful. But people often run into trouble as soon as they step beyond the basic examples. Simple things like addition and multiplication are fine. But as soon as you try it with something more complicated, it breaks. Using it with anything other than numbers starts to get really…

9764

What would it take to add refinement types to Rust?

A few years ago, on a whim, I wrote YAIOUOM. YAOIOUM was a static analyzer for Rust that checked that the code was using units of measures correctly, e.g. a distance in meters is not a distance in centimeters, dividing meters by seconds gave you a value in m / s (aka m * s^-1). YAIOUOM was an example of a refinement…

9767

Git add -p

The Pragmatic Programmer advocates you should know your editor inside and out. So why don't you know your version control system just as well? Discover git add "patch mode" and learn how to make more concisely crafted commits leading to a cleaner git history and more friends.

9768

Your code is fast if you're lucky

Recently, while working on an optimized Quicksort implementation, I came across a rather interesting quirk. Modern compilers (especially Clang) optimize loops using fast, branch-free instructions - provided you use the right programming style.

9770

What I learned from my first C coding challenge

Last week at Vimeo we had a challenge. Build a better query string parameter sorter for a Varnish plugin. The gauntlet was thrown down at 5pm on a Friday and by 2am Friday night we had our first contender. I arrived home to see the code and decided to throw my hat into the ring. I had made some attempts at c plugins…

9773

Is This a Branch?

Let’s try a new format – “shorts”; small blog posts where I elaborate on ideas that I’d discuss at my twitter, but they either come back over and over, or the short form doesn’t convey all th…

9776

Adventures in Advent of Code

I’ve been participating regularly in Advent of Code for the past couple of years. It’s one of the highlights of my holiday season. The puzzles are fun, the stories are appropriately ridiculous, and it’s a neat way for me to keep the cobwebs brushed off some of the things I learned years ago that I don’t regularly use…

9777

You're Using JSON, Why not MessagePack?

JSON is a fantastic format, anywhere people in your organization want to reach for XML, it’s always a good thing to ask the question “Why not JSON?”. The question I’d like you to ask the next time you’re reaching for your JSON hammer, is “Why not MessagePack?”.

9778

WebAssembly without the browser

Most WebAssembly tutorials and examples you will find online focus on using it inside the browser in order to accelerate various functionality of a website or web app. However, there is an area where WebAssembly is really powerful but not talked too much about: outside the browser usage scenarios. That is what we’ll…

9780

The Perfect Voxel Engine

What is it about voxels that makes people go crazy? Throughout the past decade, there have been SO many developers obsessed with shrinking them down to have as many as possible ( 1 , 2 , 3 , 4 , 5 ), admittedly including myself. It’s exciting both as a developer and to the gaming community to see amazing algorithms…