Why is Rust difficult?
Rust is considered difficult to learn by many people. Indeed, when I learned it, I considered it to be the hardest programming language up to that time I’ve met. And that says something, since I have a habit of learning whatever language I find interesting. Looking back, I’m not sure I was correct, C++ is probably…
A Not-Called Function Can Cause a 5X Slowdown
Subtitle: Making Windows Slower Part 3: Process Destruction In the summer of 2017 I wrestled with a Windows performance problem. Process destruction was slow, serialized, and was blocking the syste…
Javascript: call functions without using parentheses
A nice to know feature, good for impressing others
Arguing against using protobuffers
I’ve spent a good deal of my professional life arguing against using protobuffers. They’re clearly written by amateurs, unbelievably ad-hoc, mired in gotchas, tricky to compile, and solve a problem that nobody but Google really has. If these problems of protobuffers remained quarantined in serialization abstractions…
You might not need Kubernetes
Why use something bloated when you could use something minimal.
Flutter: the good, the bad and the ugly
Having created my first app using Flutter, I weigh up the technology’s pros and cons against React Native
JavaScript fundamentals before learning React
All the fundamentals in JavaScript for learning React. Often React beginners realize that most of the learnings are JavaScript, because React has only a small API ...
Is Rails still relevant in 2018?
Few days ago I’ve received email where I was asked for an advice from a web developer who was considering switching from Ruby to something else. I was asked ...
Ruby 2.6.0-preview2 released with JIT
We are pleased to announce the release of Ruby 2.6.0-preview2.
One Windows Kernel
In this blog post, I will talk about the evolution of the core pieces of the Windows kernel that allows it to transparently scale across a low power NVidia...
How to start a Go project in 2018
This post is fairly old. See the updated version Starting a Go project in 2023 Getting started with a Go project in 2018 is frankly a little more painful then getting anything else started IMHO. With …
Why Searching Through 500M Pwned Passwords Is So Quick
In the immortal words of Ricky Bobby, I wanna go fast [https://www.youtube.com/watch?v=_qJGsSuFRIg]. When I launched Pwned Passwords V2 last week [https://www.troyhunt.com/ive-just-launched-pwned-passwords-version-2/], I made it fast - real fast - and I want to talk briefly here
The Wavefunction Collapse Algorithm Explained
The Wavefunction Collapse Algorithm teaches your computer how to riff. The algorithm takes in an archetypical input, and produces procedurally-generated outputs that look like it.
One year of C
It’s now nearly a year that I started writing non-trivial amounts of C codeagain (the first sokol_gfx.h commit was on the 14-Jul-2017), so I guess it’stime f...
Python Data Visualization 2018: Why So Many Libraries?
Anaconda Scale Customer Event Join us live October 15th Save Your Seat Anaconda Blog
Notes on structured concurrency, or: Go statement considered harmful
Every concurrency API needs a way to run code concurrently. Here's some examples of what that looks like using different APIs:
Worst Computer Bugs in History: Therac-25 (2017)
The Worst Computer Bugs in History is a mini series to commemorate the discovery of the first computer bug seventy years ago. Although these stories are more extreme than most software bugs engineers will encounter during their careers, they are worth studying for the insights they can offer into software development…
Ruby 2.6
Christmas is around the corner, but I couldn’t wait and I have already been trying the new Ruby release! :christmas_tree: :tada: Ruby 2.6, apart from efficie...
CockroachDB 2.0 released
Since our 1.0 release, we have been hard at work making CockroachDB 2.0 the database that enables a company’s data layer to evolve with their business -- whether they are in a single datacenter or expanding around the world.
Python’s Weak Performance Matters
Here is an argument I used to make, but now disagree with: Just to add another perspective, I find many “performance” problems in the real world can often be attributed to factors other…
Concurrency I can finally understand and write correctly
I wrote my Advent of Code in D. The programming language. It was the first time I used D in earnest every day for something substantial. It was fun and I learned things along the way, such as easy metaprogramming, concurrency I could write correctly, and functional programming that doesn’t feel like I have one arm…
Putting the I back in IDE
Imagine a system for editing and reviewing code where:
Why I never finish my Haskell programs
From the highly eclectic blog of Mark Dominus