Implementing Logic Programming
I just think it's neat!
Topics /
The most popular blog posts about software engineering on Hacker News. 14,537 posts.
I just think it's neat!
To learn how optimizing compilers are made, I built one targeting the 6502 architecture . In a bizarre twist, my compiler generates faster code than GCC, LLVM, and every other compiler I compared it to.
Exploring a peculiar bit-twiddling hack at the intersection of 1980s geek sensibilities.
Connecting to a database 1 2 $ psql postgres # the default database $ psql database_name Connecting as a specific user 1 2 $ psql postgres john $ …
Smaller files are downloaded faster, so making an asset file size smaller before sending it to a client is a good thing to do.
A little while ago I wrote about 16bitjs, a 16 bit virtual machine written in javascript. It implemented a custom CPU architecture and assembly language, assembler, and debugger. I had the thought …
Materials for book: “Markov Chains for programmers”
Eller's algorithm creates 'perfect' mazes, having only a single path between any two cells, one row at a time. The algorithm itself is incredibly fast, and far more memory efficient than other popular algorithms (such as Prim's and Kruskal's) requiring storage proportional to only a single row. This makes it possible…
The third edition of Automate the Boring Stuff with Python is now available for purchase or to read for free online . It has updated content and several new chapters, but one chapter that was left on the cutting room floor was "Working with Audio, Video, and Webcams" . I present the 26-page rough draft chapter in this…
In part one of this series we introduced the idea of a message log, touched on why it’s useful, and discussed the storage mechanics behind it. In part two, we discuss data replication. We have our log. We know how to write data to it and read it back as well as how data is persisted. The caveat to this is, although we…
DRY, or Don't Repeat Yourself is frequently touted as a principle of software development. "Copy-pasta" is the derisive term applied to a violation of it, tying together the concept of copying code and pasta as description of software development bad practices (see also spaghetti code ).
A little over 3 years ago Microsoft announced that they were open sourcing large parts of the .NET framework and as Scott Hanselman said in his Connect 2016 keynote, the community has been contributing in a significant way:
One of the established and most popular programming languages is the C programming language. It is relatively easy to learn, and highly practical. Maybe surprisingly, the C programming language keeps evolving, slowly and carefully. If you have GCC 13 or LLVM (Clang) 16, you already have a compiler with some of the…
Applying human ergonomics and design principles to syntax highlighting
A problem I experienced when pursuing my PhD and submitting academic articles was that I had built solutions to problems that required dramatic scale to be effective and worthwhile. Responses to my publication submissions often claimed such problems did not exist; however, I had observed them during my time within…
Make AI weird again.
APIs are like bones: sometimes you have to break them to mend them, and it fucking hurts. It’s not a perfect analogy, but it reflects an observation of (superficially) pragmatic behavioural t…
The Open 7400 Logic Competition is a crowd-sourced contest with a simple but broad criteria for entry: build something interesting out of discrete logic chips. It's now in its second year, and this time around I was inspired to enter it.
I have developed some interest in the Rust programming language. Rust is a systems programming language which means it gets out of the way of developers interested in reaching low-level internals of a system. What sets it aside from other systems languages though is: Borrow checking to guarantee memory safety…
My Helix editor config and how I am using it