Speeding Up the Rust Compiler
I last wrote in October about my work on speeding up the Rust compiler. With the year’s end approaching, it’s time for an update.
How Rust optimizes async/await
The issue to stabilize an initial version of async/await in Rust has left final comment period. The feature looks slated to stabilize in an upcoming release, most likely 1.39. This represents the culmination of an enormous amount of work by people all over the Rust community. But it’s also only the beginning of…
A Julia Interpreter and Debugger
The authors are pleased to announce the release of a fully-featured...
Popcount CPU instruction
Most CPU architectures in use today have an instruction called popcount , short for “population count”. Here’s what it does: it counts the number of set bits in a machine word. For example (assuming 8-bit words for simplicity), popcount(00100110) is 3 and popcount(01100000) is 2 .
Zero Cost Abstractions
The idea of a zero cost abstraction is very important to certain programming languages, like Rust and C++, which intend to enable users to write programs with excellent performance profiles with relatively little effort. Since this idea is fundamental to the design of Rust and my work, I want to investigate, for a…
The Day I Fell in Love with Fuzzing
In 2007 I wrote a pair of modding tools, binitools , for a space trading and combat simulation game named Freelancer . The game stores its non-art assets in the format of “binary INI” files, or “BINI” files. The motivation for the binary format over traditional INI files was probably performance: it’s faster to load…
Async-std: an async port of the Rust standard library
A Rust library for easy and understandable async programming
Bytecode compilers and interpreters
Two fun things happened recently and the proximity of the two made something go click in my head and now I think I understand how bytecode interpreters work.
Elm 0.19.1
A delightful language with friendly error messages, great performance, small assets, and no runtime exceptions.
The Illustrated Word2vec
Discussions: Hacker News (347 points, 37 comments), Reddit r/MachineLearning (151 points, 19 comments) Translations: Chinese (Simplified), French, Korean, Portuguese, Russian “There is in all things a pattern that is part of our universe. It has symmetry, elegance, and grace - those qualities you find always in that…
I love coding in C
For the first time in almost a year, I brushed up on my C fundamentals and built a few toy programs. As I played around with pointers and printed out a memory location, I experienced a literal chill down my spine. I had almost forgotten how marvelous programming in this language was.
Add detailed message to NullPointerException describing what is null
Improve the usability of NullPointerException s generated by the JVM by describing precisely which variable was null .
Building a RISC-V PC
How we assembled a RISC-V desktop computer. (video at the bottom of this post.) While it’s clear that the most significant opportunities for RISC-V will
Generating a Java program with 90% less code
Painless, quick delivery of your domain name. Fast and professional service.
On SQS
In my position I probably shouldn’t have a favorite AWS product, just like you shouldn’t have a favorite child. I do have a fave service but fortunately I’m not an (even partial) parent; so let’s hope that’s OK. I’m talking about Amazon Simple Queue Service , which nobody ever calls by its full name.
React as a UI Runtime
An in-depth description of the React programming model.
Use links not keys to represent relationships in APIs
While links aren’t widely used in APIs, some very prominent web APIs use links based on HTTP URLs to represent relationships, which has several advantages. This post shows you why.
Django 2.2
Posted by Carlton Gibson on April 1, 2019
Why am I interested in Elixir?
I’ve had Elixir on the brain recently. And by recently I probably mean 2 years. In my defense I think it is fair to say it is blooming right now. I haven’t had much need of it, or opportunity for it, in my day-to-day of maintaining a Python legacy system, renewing another legacy or optimizing Elasticsearch. So I’ve…
Successfully Merging the Work of 1000 Developers
Collaboration with a large team is challenging, and even more so if it’s on a single codebase, like the Shopify monolith. Shopify changes 40 times a day. We follow a trunk-based development workflow and merge around 400 commits to master daily. There are three rules that govern how we deploy safely, but they were hard…
Go Turns 10
Happy 10th birthday, Go!
Falsehoods Programmers Believe About Search
105 falsehoods programmers believe about search, a complex field where competence is hard-won through training, practice, and experience.
Writing an OS in Rust: Advanced Paging
This post explains techniques to make the physical page table frames accessible to our kernel. It then uses such a technique to implement a function t…
Ruby 2.7
We are pleased to announce the release of Ruby 2.7.0.