Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 21,843 posts.
Compiler Design in C
Compiler Design in C Download a copy! My book Compiler Design in C is now, unfortunately, out of print. You can download a complete copy, with the above button (pdf 19.1Mb OCR/Searchable—thanks to Marvin Hernández for adding the OCR). If you don’t want to print it out (the book is 984 pages long), you can…
Improving the performance of WAT parser
The personal blog of Pig Fang.
Build a CMS, no forms allowed
You may have noticed that quite a lot is happening in the Midgard land. Nowadays Midgard2 itself is a generic content repository that can be used for both desktop and web applications. Midgard MVC is a generic web framework for PHP5 that can be used with Midgard2 or without it. And then there is Midgard Create, the…
How to make sure no dynamic memory is used
How to disable heap (dynamic memory allocation) in an embedded application? This article goes into the details of linker files and how to detect dynamic memory allocation.
Is Unicode Safe?
Unicode is just too complex to ever be secure.  — Bruce Schneier, 2000 Over the last 25 years Unicode has succeeded. It hasn't displaced all other character encodings, but it's clearly on its way there. It's supported widely enough that it's a compatible choice, new projects use it, and it's becoming the…
Codex: A Legal Scripting Language for Ethereum
Pax is using Ethereum to build a peer to peer legal system. The best way to explain Ethereum is by contrasting it with Bitcoin. What…
A Lap Around Python in Visual Studio 2017
We’re delighted to announce that our rich Python toolchain is fully available in Visual Studio 2017. Installation of Python tools, interpreters, runtimes,
Making all your integers positive with zigzag encoding
You sometimes feel the need to make all of your integers positive, without losing any information. That is, you want to map all of your integers from 'signed' integers (e.g., -1, 1, 3, -3) to 'unsigned integers' (e.g., 3,2,6,7). This could be useful if you have a fast function to compress integers that fails to ……
How to write cross-platform code
Get all of the latest cloud storage news and insights from Backblaze - the leading independent cloud storage provider.
What’s New In Emacs 24
Part one of my annotated NEWS file for Emacs 24
Rust for JavaScript Developers – Pattern Matching and Enums
Part 4 covers pattern matching, destructuring, and enums
Making the obvious code fast (2016)
Jonathan Blow of “The Witness” fame likes to talk about just typing the obvious code first. Usually it will turnout to be fast enough. If it doesn’t, you c...
Goodbye to Painful Image Loads on Small Devices
We've been working in the responsive realm for a while now and one of the most painful parts of the process is dealing with images. Large images can cause extremely long load times on small devices that might not have a huge data bandwidth. There have been many "best practices for now" movements to deal with this.
SQLAlchemy 0.9.0 Released
The Database Toolkit for Python
Django 4.0 alpha 1 released
Posted by Mariusz Felisiak on Sept. 21, 2021
Knuth-Morris-Pratt string-searching algorithm: DFA-less version
You see, there are two memory accesses per one character of the input string (at average). Hence, the total number of all memory accesses can be len*2 at worst.
Ruby's private keyword is weird
Ruby's `private` keyword means something different compared to basically all other object-oriented languages. Most other languages don't even have a feature matching what Ruby calls `private`, but incredibly, Scala does, which it calls `protected[this]` (meaning
Computation Graphs and Graph Computation
Research has begun to reveal many algorithms can be expressed as matrix multiplication, suggesting an unrealized connection between linear algebra and computer science. I speculate graphs are the missing piece of the puzzle. Graphs are not only useful as cognitive aides, but are suitable data structures for a wide…
TLA+ Action Properties
There’s not a whole lot on TLA+ technique out there: all the resources are either introductions or case studies. Good for people starting out, bad for people past that. I think we need to write more intermediate-level stuff, what Ben Kuhn calls Blub studies. Here’s an attempt at that. Most TLA+ properties are…
90x Faster Than Pgvector – Lantern's HNSW Index Creation Time
Index creation time is a critical database metric. Learn more about how Lantern enables 90x faster index creation times than pgvector, and how Lantern compares to Pinecone.
Everything Is an X
Analysis and examples of the popular high-level pattern of making all the things in your system conform to a common interface.
Iterated Log Coding
I've created a new format for encoding real numbers on computers. I'm proud of it! Let's dive in.