How I failed to replicate an $86M project in 1 line of code
When an experiment with existing open source technology just cherry-picks results to make it look good
When an experiment with existing open source technology just cherry-picks results to make it look good
Many times a scientist is choosing a programming language or a software for a specific purpose. For the field of scientific computing, the methods for solving differential equations are one of the important areas. What I would like to do is take the time to compare and contrast between the most popular offerings. This…
We describe a full implementation of algebraic effects and handlers as a library in standard and portable C99, where effect operations can be used just like regular C functions. We use a formal operational semantics to guide the C implementation at every step where an evaluation context corresponds directly to a…
Propositional logic was discovered by Stoics around 300 B.C., only to be abandoned in later antiquity and rebuilt in the 19th century by George Boole’s successors. One of them, Charles Peirce, saw its significance for what we now call logic circuits, yet that discovery too was forgotten until the 1930s. In the ’50s…
This post covers essentially the same material as a 5-minute presentation I gave at RC .
Making Photos Smaller Without Quality Loss Stephen Arthur, Software Engineer Jun 1, 2017 Yelp has over 100 million user-generated photos ranging from pictures of dinners or haircuts, to one of...
I wrote a todo app. Unlike TodoMVC (where I took the design from) it doesn’t use JavaScript and instead all interactions are driven by CSS.
Using the right tool for the right job
If you enjoy this article, I have published a book explaining the internals of Git through implementation: Building Git .
Today, we are releasing .NET Core Tools 1.0. It’s an exciting day and an important milestone in the .NET Core journey. The tools are supported on Windows, macOS and Linux. You can use them at the command-line, with VS Code or as part of Visual Studio 2017. You can download the new .NET Core tools […]
A blog about programming and modern web development, particularly Node.js and React
I wrote Flare, a Dynamic Neural Net library in Clojure.
In the jungle of new programming languages, Crystal is one of the most popular ones, but also the most mysterious. Let's take a look at it.
A reflection on the first six months of the year, ext/sodium landing in PHP 7.2, and where to go from here.
Floating point numbers have limited precision. If you are a game programmer, you have likely encountered bugs where things start breaking after too much time has elapsed, or after something has mov…
Update, February 2019: Two years later the VC++ bug I reported here still exists, even in VS 2019 preview. However Chromium no longer builds with VC++ so I’m reverting the changes where I del…
Rust bindings for GTK and GLib-based libraries
It's difficult to get the Windows Console to display Unicode characters, so here's a C++ WinForms program that will display the arguments in a TextBox.
QuickCheck is the grandfather of property-based testing libraries. Despite being imitated in over thirty languages, the original implementation remains pre-eminent due to the type system and consistent logic of the Haskell language in which it is written.
A notorious ‘second-system effect‘ often afflicts the successors of small experimental prototypes. The urge to add everything that was left out the first time around all too frequently leads to huge and overcomplicated design. Less well known, because less common, is the ‘third-system effect’; sometimes, after the…
Oftentimes when I am conversing about the design of Rust with other users - as on RFCs or the internals forum - I witness a peculiar remark about “explicitness.” It usually goes something like this: I do not like Feature Design X because it is too implicit. Magic is okay in Other Language Y, but Rust is supposed to be…
Recently I was listening to the excellent DotNetRocks podcast and they had Steven Sanderson (of Knockout.js fame) talking about ‘WebAssembly and Blazor’.
ReactJS Elixir Erlang Golang D3 scalable web services developers