Git in layman's terms: isomorphic contours in source-code phase space
A website devoted to oneself has been described — by my own Father, no less — as the greatest act of hubris. Welcome aboard!
Topics /
The most popular blog posts about software engineering on Hacker News. 14,544 posts.
A website devoted to oneself has been described — by my own Father, no less — as the greatest act of hubris. Welcome aboard!
Programing in Clojure and ClojureScript
Modern browsers are some of the most complicated programs ever written. For example, the main Firefox library on my system is over 130Mbytes. Doing 130MB of IO poorly can be quite a performance hit, even with SSDs! :). Few people seem to understand how memory-mapped IO works. There are no pre-canned tools to observe…
This is the first in a series of posts on the principles of software engineering. There's far more...
A somewhat compact implementation of the awk programming language
Notes on using the Z3 constraint solver with the Clang Static Analyzer
What does it mean to add versioning to the go command? The overview post gave a preview, but the followup posts focused mainly on underlying details: the import compatibility rule , minimal version selection , and defining go modules . With those better understood, this post examines the details of how versioning…
Emacs , a programmer's text editor with roots in the 1970s, is a great tool for animation. In Fall, 2010 I taught a digital art class at NYU's interdisciplinary Steinhardt art school. Clearly, the thing to do was to teach how to make animations in Emacs by programming it in Lisp.
It’s hard to believe that its been more than 3 years since I opened RFC 2000 , which defined the const generics for Rust. At the same time, reading the RFC thread, there’s also been a huge amount of change in this area: for one thing, at the time the RFC was written, const fns weren’t stable, and consts weren’t even…
I’m Chris McCord, a programmer with a passion for science and building things. I spend my time crafting the Phoenix Framework, working with …
The Racket GUI library provides an "editor toolkit" which can be used to implement programs that use an interactive graphical canvas where objects can be moved around with the mouse. This toolkit has good reference documentation, however this documentatio...
Robert O'Callahan. Christian. Kiwi. Software guy. All content human-authored unless otherwise noted.
Silly, terrible, no-good very-bad jigsaw puzzles. Featuring Voronoi diagrams, KD-trees, and Clojure.
Learn how Backbone.js applications are organized using modules, namespaces, reusable Views, and scalable frontend architecture patterns.
Wherein I looked into controlling the RGB header on my motherboard without any access to public documentation.
A neural network written in pure Lisp without built-in numbers using only atoms and lists in SectorLISP, a 512-byte Lisp interpreter written by the authors of the SectorLISP project.
You’ve implemented some of your performance critical code using the new platform intrinsics API. The code is now running 10x or even 100x faster than before, and you might think that it can’t get any faster. This post will show you some less obvious (but almost universally applicable) techniques for improving the…
The execution of a program unfolds over some interval of time. The lifetime of every temporary resource (e.g., variable or object) is the time span between that resource’s “creation” and “destruction”. This lifetime is wholly contained within the typically-longer lifetime of the program.
Robert O'Callahan. Christian. Kiwi. Software guy. All content human-authored unless otherwise noted.
The craft of programming is almost universally concerned with different types of data and operations/algorithms that act on this data [1] . Therefore, it's hardly surprising that designing abstractions for data types and operations has been on the mind of software engineers and programming-language designers since…
Why unsafe Rust is a complex and user unfriendly experience.