Finding your way in vim: tags, cscope, grep and more
Vim is quite powerful programmer's editor, but has a very steep learning curve and it takes time to configure it properly. In this tutorial...
Topics /
The most popular blog posts about software engineering on Hacker News. 14,544 posts.
Vim is quite powerful programmer's editor, but has a very steep learning curve and it takes time to configure it properly. In this tutorial...
I'm building an 80386-compatible core in SystemVerilog and blogging the process. In the previous post , we looked at how the 386 reuses one barrel shifter for all shift and rotate instructions. This time we move from real mode to protected and talk about protection .
What are Gray codes, and why are they so useful?
Ante has taken the first step towards something we all thought was impossible: blending reference counting and borrow checking without run-time crashes. 0
A guide to debugging in Clojure, using the REPL
In early December 2023, I wrote a drawing program called WigglyPaint and published it on Itch.io.
But, I guess he did win the Nobel Prize for Physics in 2020 so I can't really brag. However, it was a great surprise when looking at two pa...
MOAR DOX! Whenever we ask curl users what they lack in our project and what we should improve, the response is always clear: documentation. Here are the most common curl command line options when doing HTTP operations. This is the web page rendered as an image, click it to get to the web version. The … Continue…
Much has been written about fuzzing compilers already, but there is not a lot that I could find about fuzzing compilers using more modern ...
After spending most of the past decade without a decent computer, all laptops with GPUs more able at toasting bread than proper gaming, I finally cracked the spare Bitcoin piggy-bank and built my d…
Easy wins for Haskell beginners
A book I was recently reading mentioned a mathematical curiosity I haven't seen before - Tupper's self-referential formula . There are some resources about it online, but this post is my attempt to explain how it works - along with an interactive implementation you can try in the browser.
Understanding the real world is not always easy. A Python simulation can help. And let's find ways of making it efficient, too.
The parallel parentheses matching problem can be parallelized in different manners depending on the use case and is a good example of how stacks map to parallel hardware.
Last year, I discovered that the Kosinski compression format is actually LZEXE, which was used for compressing DOS executables back in the 90s and the late 80s. Its developer catalogues three versi…
Heap's algorithm for constructing all permutations is efficient and simple but not easy to understand. This article explains Heap's algorithm by example.
They have potential to be more than "no static types", but that hasn't happened.
Note: This post was originally titled “Stop writing lambda expressions in Python” but I’ve changed the title after deciding that it was a little...
Rewriting the Inhyped.com React frontend in ReScript brought a sound type system and easy JS interop, at the cost of a small community.
There are many problems with the existing Internet email system, such as spam, scam, surveillance, insecurity, centralization, and complexity. The problems are starting to outweigh the benefits of the system. Fixing the problems by evolving the current system seems overwhelmingly difficult. This essay examines some…
What's wrong with the term "REST API", and what should we use instead?
How in the world do you pirate an API?