Topics /

Software Engineering

The most popular blog posts about software engineering on Hacker News. 21,843 posts.

Any year
18661

Exploiting a Go Binary

Earlier this year, tylerni7 showed us a proof of concept for a 32 bit Go exploit using this issue . geohot and I had a wager over who could get the first remote code execution on play.golang.org : he won, but just barely ;-). Props also to ricky for helping to find the underlying cause/writing the patch. Here is a…

18663

Pascal's Apology, or why computer science is complicated

Blaise Pascal once famously ended a letter with an apology : I'm sorry that this was such a long letter, but I didn't have time to write you a short one. Computer science has pretty much the same problem. It's a young field, and young fields are, by their nature, messy. As we race to generate new knowledge, we also…

18666

Quadrupling code performance with a "useless" if

So I was optimizing a domain-specific compressor the other day, as one does. One important problem was chunking the input string and optimally choosing the most compact encoding for each chunk (different encodings compress different characters better, so where to split is not immediately obvious). The previous post…

18667

Xcode UI Improvements

Xcode is a fantastic development environment for developing Mac, iPhone, and iPad applications. But it has some areas for improvement. In this post, I’ll explore some improvements to how documentation and autocompletion is integrated into the development workflow and how Xcode could provide specialized interfaces for…

18671

Coding with gumption

The first and only mention of Gumption Theory in modern writing is found towards the end of Robert Pirsig’s Zen and the Art of Motorcycle Maintenance. The author sets out a plain and uncomplicated approach to attaining and maintaining the state of mind required to repair a motorcycle. It takes about 20 pages. And the…

18680

Writing HTTP Middleware in Go

In the context of web development, "middleware" usually stands for "a part of an application that wraps the original application, adding additional functionality". It's a concept that usually seems to be somewhat underappreciated, but I think middleware is great.

18681

The Six Stages of Debugging (2012)

[ This is not mine. I posted it in the interest of personal archival because the oldest mention I could track down on the web appeared on a now-defunct weblog . In the meantime, Mike W. Cremer (who bills himself The Newton™ Scapegoat ☺ ) has claimed credit for coining it after a particularly frustrating DMA debugging…

18682

Lock-Free Bugs

[ I wrote this post in mid-2014 for debuggers.co, which seems to have gone at least partly defunct, so I am reproducing it here. That site collected answers from programmers to the prompt “What’s the most interesting bug you’ve encountered?” ]

18684

Racket 8.4

_posted by John Clements_ Racket version 8.4 is now available from https://download.racket-lang.org. Command-line Racket provides a new expression editor by default for its read-eval-print loop (REPL). The new REPL is based on the Chez Scheme expr...

18686

Anatomy of a Compiler Bug

Some people have a favorite color or a favorite food. It may come as no surprise that I have a favorite compiler bug. Today, I'm going to demonstrate it and pick it apart, a topic suggested by reader Daniel Jalkut.

18688

MySQL Text vs. Varchar Performance

Starting with MySQL 5.0.3, the maximum field length for VARCHAR fields was increased from 255 characters to 65,535 characters. This is good news, as VARCHAR fields, as opposed to TEXT fields, are stored in-row for the MyISAM storage engine (InnoDB has different characteristics). TEXT and BLOB fields are not stored…