Compiler basics: Lisp to Assembly
Writing a lisp compiler from scratch in JavaScript: 1. lisp to assembly
The latest blog posts to take off on Hacker News. 14,543 posts.
Writing a lisp compiler from scratch in JavaScript: 1. lisp to assembly
WebAssembly is all the rage these days. And for good reasons. It’s pretty exciting to see many compiled languages adopting a common intermediate represe...
Using graph theory and Ryanair route data to find cheap multi-city flight loops through Europe.
Maybe the most misunderstood design pattern.
Map any 3D point on or above a triangle-subdivided sphere to a triangle index in constant time, without recursion, table lookups or complicated branching logic.
Most widely-used programming languages have at least one regular conference dedicated to discussing it. Heck, even Lisp has one . It’s a place to talk about the latest developments of the language, recent and upcoming standards, and so on. However, C is a notable exception. Despite its role as the foundation of the…
CUDA 10 support has just landed in ClojureCUDA with the latest version 0.6.0.
🦑 Informal definitions of terms used in concurrency modeling
While working on my current project, the constant creep of increasing compilation times was becoming more and more noticeable. Even after throwing my usual tools at the problem, the total time was still over 7 seconds.
Why use something bloated when you could use something minimal.
More or less all the big APIs are RESTful these days. Yeah, you can quibble about what “REST” means (and I will, a bit) but the assertion is broadly true. Is it going to stay that way forever? Seems unlikely. So, what’s next?
This is a tutorial on building your own shell using Rust, in the spirit of the build-your-own-x list. Creating a shell is a great way to understand how the shell, terminal emulator, and OS work together.
How I wrote GoAWK, how I tested it, and how I measured and improved its performance.
A short essay about the evolution of programming languages.
tl;dr: Rebuilding a target because its mtime is older than the mtimes of its dependencies, like `make` does, is very error prone. redo does...
In this article we’ll go on a journey from 4-bit microcontrollers to room-sized mainframes and learn how porting C to each of them helped people separate the essence of the language from the environment of its birth. I’ve found technical manuals and videos for this article to help bring each computer to life.
Type inference is a major feature of several programming languages, most notably languages from the ML family like Haskell. In this post I want to provide a brief overview of type inference, along with a simple Python implementation for a toy ML-like language.
Since February 2016, I have been participating in DIYRobocars meetups here in the SF Bay Area, wherein a bunch of amateur roboticists compete in autonomous time trials with RC cars. I had been doing very well in the competition with essentially just a glorified line-following robot, but have lately upgraded to a full…
One of the main use cases for the Zig Programming Language is operating system development and embedded development. So, what better way to make sure the language is suitable than to work on a project in this field?
My dad started teaching me Basic when I was about 7 years old, and since about that age I knew that I wanted to build software for a living. It was obviously a fun and useful thing to do, and something that I could do well. But there is a big — and I mean Grand Canyon-scale BIG — difference between “programming” and…
Tensorflow 2.0 will be a major milestone for the most popular machine learning framework: lots of changes are coming, and all with the aim of making ML accessible to everyone. These changes, however, require for the old users to completely re-learn how to use the framework: this article describes all the (known)…
In this article we will look at the various ways an object can be copied in Javascript. We will take a look at both shallow and deep copying. While shallow copying is rather straightforward, deep copying is more tricky. Currently, there is a HTML5 specification for a deep copy algorithm but it is not publically…
An exploration of NFL play-by-play statistics with Bokeh and Pandas.
How to parse the Excel .xlsx spreadsheet format with Swift? How is this implemented?
When I got started using the Datomic database, I remember someone describing it to me as 'Event Sourcing without the hassle'. Having built Event Sourcing systems both with and without Datomic, I think this is very well put, although it might not be obvious, especially if you don't have much experience with Datomic.
Whether or not you believe that the iPad is the future of computing, it does bring a ton of interesting new features and capabilities to the table, especially with the latest release of the Pro version. This week, let’s take a look at how we as third-party developers can take advantage of some of those capabilities to…