Most cited
Posts that commenters keep linking to, ranked by how many different people have cited them in Hacker News comments. 2,232 posts.
Debugging Behind the Iron Curtain (2010)
I program my home computer, beam myself into the future
Distributed systems for fun and profit (free ebook)
git , Single page HTML , Kindle .mobi , PDF , .epub , HTML for printing , book cover .
Snowflake Server
a bliki entry for Snowflake Server
About HTML semantics and front-end architecture
A critical look the term 'semantic HTML' and the limitations it has created for web engineers
Steve Yegge: Lisp is not an acceptable Lisp. (2006)
Another enjoyable read. Thanks! One thing, though -- it's about time to update your understandings of Python's object system. Python's culture doesn't insist that traditional (Smalltalkish) OO is the One True Way to re-use code, but that doesn't mean that everything in Python is not an object (because they are, since…
Quines: self-replicating programs (2005)
A “ quine ” (or “ selfrep ”) is a computer program which prints its own listing. This may sound either impossible, or trivial, or completely uninteresting, depending on your temper and your knowledge of computer science. Actually, it is possible, and there are some interesting ideas involved (in particular, writing a…
Why Vim uses hjkl keys as arrow keys
I was reading about vim the other day and found out why it used `hjkl` keys as arrow keys. When Bill Joy created the vi text editor he used the ADM-3A terminal, which had the arrows on hjkl keys. Naturally he reused the same keys and the rest is history. Here is how the `hjkl` keys looked. ADM-3A keyboard's hjkl…
Measuring context switching and memory overheads for Linux threads
In this post I want to explore the costs of threads on modern Linux machines, both in terms of time and space. The background context is designing high-load concurrent servers, where using threads is one of the common schemes .
bliki: Bounded Context
Don't try to build a single, unified model for a large domain. Instead DDD advises us to divide such a domain into many bounded contexts with explicit relationships between them.
Continuous Integration
Every developer integrates their work into mainline at least every day.
Proebsting's Law
This means that while hardware computing horsepower increases at roughly 60%/year, compiler optimizations contribute only 4%. Basically, compiler optimization work makes only marginal contributions.
There Is No Thread
This is an essential truth of async in its purest form: There is no thread.
Comparing Floating Point Numbers, 2012 Edition
This post is a more carefully thought out and peer reviewed version of a floating-point comparison article I wrote many years ago. This one gives solid advice and some surprising observations about…
Craft
Craft is a demo running on its own minimalistic demo platform. The demo platform is based on an ATmega88 microcontroller.
Raw Thought: Aaron Swartz's Weblog
As we’ve discussed, in Batman Begins 1960s-style full employment and antipoverty programs lead to skyrocketing crime while in The Dark Knight Rises 1980s-style tough-on-crime policies and neoliberal economics lead to a revolt of the economic underclass. The films are mirror images, one about the failure of liberal…
Replacing Python: candidates
This post evaluates the programming languages ATS, C#, Go, Haskell, OCaml, Python and Rust to try to decide which would be the best language in which …
Code: It’s Trivial
Remember that Stack Overflow thing we’ve been working on? Some commenters on a recent Hacker News article questioned the pricing of Stack Exchange – essentially, a hosted Stack Overflow: Seems really pricey for a relatively simple software like this. Someone write an open source alternative? it looks like something…
A Million-user Comet Application with Mochiweb, Part 1
In this series I will detail what I found out empirically about how mochiweb performs with lots of open connections, and show how to build a comet application using mochiweb, where each mochiweb connection is registered with a router which dispatches messages to various users. We end up with a working application that…
V is for Vaporware
Xe Iaso's personal website.
Where modules go to die
Another great post
Tail Call Optimisation in Common Lisp Implementations
While the Common Lisp standard does not require implementations to eliminate tail calls, some do—thereby allowing a more functional programming style. Especially in the prototyping phase, it can be useful to know where this functional style can be employed and where it's likely to cause stack overflow. Since I…
JavaScript’s internal character encoding: UCS-2 or UTF-16?
Does JavaScript use UCS-2 or UTF-16 encoding? Since I couldn’t find a definitive answer to this question anywhere, I decided to look into it. The answer depends on what you’re referring to: the JavaScript engine, or JavaScript at the language level.
Developers can run Bash Shell and user-mode Ubuntu Linux binaries on Windows 10
UPDATE: I've recorded a 30 min video with developers from the project as well ...
Rails is omakase (DHH)
There are lots of à la carte software environments in this world. Places where in order to eat, you must first carefully look over the menu of options to order exactly what you want. I want this for my ORM, I want that for my template language, and let's finish it off with this routing library. Of course, you're going…
OFFSET is bad for skipping previous rows
OFFSET doesn’t deliver stable results and makes the query slow. Key-set pagination does neither.