Topics /

Software Engineering

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

Any year
17851

Kernel debugging for newbies

This week, I’ve been working on an application that sets up IPsec connections. PF_KEYv2 is the standard interface for configuring IPsec. PF_KEYv2 is widely-available; even systems with more advanced IPsec stacks (like XFRM on Linux) provide a PF_KEYv2-compatible wrapper. I want my application to work on OS X and…

17853

KDevelop 5.0.0 release

Almost two years after the release of KDevelop 4.7, we are happy to announce the immediate availability of KDevelop 5.0. KDevelop is an integrated development environment focusing on support of the C++, Python, PHP and JavaScript/QML programming languages. Many important changes and refactorings were done for version…

17854

Syncing and merging come to Bitbucket

When developing on a feature branch or a fork, your code can often get out of date. There are a number of reasons this might happen: You’re concentrating on a feature rather than syncing. You’re not yet ready to worry about integrating just yet. You’re returning to a stale branch or fork to pick up […]

17857

Xerox Alto Source Code (2014)

Depending on your age, your first computer might have been an Apple II, a Radio Shack TRS-80, an IBM PC, an Apple Macintosh, or another of the early personal computers. If you missed these early machines the first time around, perhaps you have seen them in the Personal Computer section of the Revolution exhibit at the…

17863

Why Constant-Time Crypto?

In 1996, Paul Kocher published a novel attack on RSA, specifically on RSA implementations , that extracted information on the private key by simply measuring the time taken by the private key operation on various inputs. It took a few years for people to accept the idea that such attacks were practical and could be…

17869

Go, REST APIs, and Pointers

One of the more interesting design challenges with go-github (and subsequently the one that results in the most questions) is the use of pointers for most all of the fields in our structs that are marshaled and passed to the GitHub API. After a fair amount of trial and error, I settled on the approach that I’m going…

17876

Clojure from the ground up: Macros

In Chapter 1 , I asserted that the grammar of Lisp is uniform: every expression is a list, beginning with a verb, and followed by some arguments. Evaluation proceeds from left to right, and every element of the list must be evaluated before evaluating the list itself. Yet we just saw, at the end of Sequences , an…

17878

Faster JavaScript parsing

Over the past year or so I’ve almost doubled the speed of SpiderMonkey’s JavaScript parser. I did this by speeding up both the scanner ( bug 564369 , bug 584595 , bug 588648 , bug 639420 , bug 645598 ) and the parser ( bug 637549 ). I used patch stacks in several of those bugs, and so in those six bugs I actually…