Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 21,828 posts.
How I Start: Elixir
Portal is a game that consists of a series of puzzles that must be solved by teleporting the player’s character and simple objects from one place to another.
Reducing Memory Usage in Ruby
I’ve been working on building a compacting garbage collector in Ruby for a while now, and one of the biggest hurdles for implementing a compacting GC is updating references. For example, if Object A points to Object B, but the compacting GC moves Object B, how do we make sure that Object A points to the new location?…
Advancing the realtime web
Over the past few months the team at RethinkDB has been working on a project to make building modern, realtime apps dramatically easier. The upcoming features are the start of an exciting new database access model – instead of polling the database for changes, the developer can tell RethinkDB to continuously push…
Brian Harvey: Why SICP matters
In 2011, to celebrate the 150th anniversary of MIT, the Boston Globe made a list of the most important innovations developed there. They asked me to explain the importance of SICP, and this is what I sent them:
Go: Best Practices for Production Enviroments
Best practices for writing Go code, from the halcyon days of its youth.
Understanding the math behind 0x5f3759df and the fast inverse square root (2012)
This post is about the magic constant 0x5f3759df and an extremely neat hack, fast inverse square root, which is where the constant comes from.
Clojure Concurrency Tutorial
In this tutorial, you'll learn 16 ways for doing concurrency in Clojure including how to start threads and how to communicate between them.
Dolphin Emulator Progress Release 2606
Welcome to the Progress Report for Dolphin Release 2606. We usually prefer to launch toward the beginning of the month, but a slew of important, large, and technically challenging changes had us working overtime. Strap in, because we have a lot to cover! For April Fool's we teased that Dolphin now had support for the…
An interactive intro to quadtrees
An interactive exploration of quadtrees. Start with brute-force spatial search, build recursive space partitioning step by step, then use it for point lookups, range queries, nearest-neighbor search, collision detection, and image compression.
PostgreSQL EXPLAIN Output Explained
UPDATED July 2023: How to use EXPLAIN ANALYZE in PostgreSQL, learn tools to visualize the output. See query execution time and row count.
“Vibe Coding” vs. Reality
Reviewing the capabilities and limitations of LLM agents in software development and their impact on skilled and less skilled developers.
Emacs and Vim
Personal Website and Blog of Martin Klepsch
How often do people copy and paste from Stack Overflow?
April Fool's may be over, but once we set up a system to react every time someone typed Command+C, we realized there was also an opportunity to learn about how people use our site. Here’s what we found.
A lock-free ring-buffer with contiguous reservations (2019)
Building a lock free continuous ring buffer
Modern C++ gamedev: thoughts and misconceptions
C++ remains one of the leading programming languages in game development despite the emergence of new technologies and languages. Its flexibility, performance, and extensive ecosystem make it the preferred choice for building complex game systems, engines, and high-performance applications.
C will never stop you from making mistakes
Short answer: because we said so.
The software development final exam: Algorithms and Data Structures
If you would like me to grade your answers, please send an email to cperciva-exam-part1@tarsnap.com [EDIT: I have now finished marking part 1 answers; please do not send me any more] with your answers to the above questions along with the following two:
Programmer's critique of missing structure of operating systems
Patterns and structures of current operating systems and some thoughts about how that could be improved, with lessons learnt from Self, Smalltalk and other "structured" systems.
The worst tool for the job
Using the best tool for a job may slow things down. It may be "best" in a sense you don't need. The actual best tool might be relatively crude.
Modern PHP without a framework
I’ve got a challenge for you. The next time you start a new project, try not using a PHP framework.
Fun vs. Computer Science (2016)
It's not about technology for its own sake. It's about being able to implement your ideas.
Ruby's Creed
Every programming language has some fundamental idea(s) that drives its design and evolution. For Haskell that’s functional purity and state-of-the-art static typing, for Erlang that’s distributed programming and fault tolerance, for Clojure that’s simplicity and stability. What all these examples have in common is…