Topics /

Software Engineering

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

Any year
18124

JIT and Ruby's MJIT

If you already know lots about JIT in general and Ruby’s MJIT in particular… you may not learn much new in this post. But in case you wonder “what is JIT?” or “what is MJIT?” or “what’s different about Ruby’s JIT?” or perhaps “why in the world did they decide to do THAT?”… Well then, perhaps I can

18126

ClojureScript Core.async Todos

Edit: The following post is still a great way to learn about how core.async works. However, it is not a good example of how to write a web application unless you are just exploring and having fun. There are many good times to be had playing with core.async and I highly recommend giving the examples in this post a try.

18131

Racket v5.3

_posted by Eli Barzilay_ Racket version 5.3 is now available from http://racket-lang.org/ Release Highlights:: Submodules are nested module declarations that can be loaded and run independently from the enclosing module. See also the overview of su...

18132

YC Fall Hackathon 2019

This November we’re hosting a hackathon at YC. You can find out more about the event and apply here [https://apply.ycombinator.com/events/236]. Applications close on 10/25/19 at 11:59PM PST. We’ll send out the first round of acceptances shortly afterward. The top team will get a YC interview and the top three teams…

18137

Solving “Two Sum” in C with a tiny hash table

I came across a question: How does one efficiently solve Two Sum in C? There’s a naive quadratic time solution, but also an amortized linear time solution using a hash table. Without a built-in or standard library hash table, the latter sounds onerous. However, a mask-step-index table , a hash table construction…

18139

Useful use of cat(1)

Rather special example: This was useful for me on a Redhat Linux, where man(1) otherwise annoyingly would intersperse the output with headers and footers for a print version, which is rarely used, though... I tried: ( echo -e ".pl 1100i"; cat "$1"; echo ".pl \\n(nlu+10\n" ) | tbl | nroff -man

18140

Static Analysis

Nim is in an excellent position to “get married” with static analysis, and it doesn’t have to be based on some intermediate representation but can achieve a solution more similar to Spark.

18143

Linker, can you spare a meg? (2021)

Tailscale on iOS runs as a special kind of app, a Network Extension. This lets us run in the background, so we can secure traffic from all of your applications, without them having to change anything. But with this power comes a memory straightjacket. Normal iOS apps can use 5GB or so of memory before iOS kills them…

18149

When the Compiler Bites

So far this year I’ve been bitten three times by compiler edge cases in GCC and Clang, each time catching me totally by surprise. Two were caused by historical artifacts, where an ambiguous specification lead to diverging implementations. The third was a compiler optimization being far more clever than I expected…