Blog
-
Benchmarking my parser generator against LLVM: I have a new target
This is a follow-up to my previous post, I built a 2x faster lexer, then discovered I/O was the real bottleneck. In that post, I benchmarked my ARM64 assembly lexer...
technical performance parsing -
I built a 2x faster lexer, then discovered I/O was the real bottleneck
I built an ARM64 assembly lexer (well, I generated one from my own parser generator, but this post is not about that) that processes Dart code 2x faster than the...
technical performance parsing -
Statistical Methods for Reliable Benchmarks
Benchmarking is critical for performance-sensitive code. Yet most developers approach it with surprisingly crude methods: run some code, measure the time, compare the average against another piece of code. This...
technical dart performance -
The Case for Snake Case: A Kolmogorov Complexity Argument
Software engineering is drowning in complexity. Much of it is unintended, implicit, and hidden beneath layers of convention we rarely question. Today, I want to examine one of these conventions:...
technical -
IIFEs are Dart's most underrated feature
IIFEs in Dart are severely underrated and barely anyone seems to agree with me. This is a hill I'm willing to die on, and I've decided to collect my thoughts...
technical dart flutter -
I failed to run Dart on the web (but FYI you can run Linux on the web)
I had what I thought was a fun idea: what if you could compile and run Dart code entirely in the browser? No server, no cloud VM, just pure client-side...
technical -
Concepts Reader: a backup plan for my life
I manage my entire life in Concepts, the infinite canvas drawing app for iPad.
technical flutter tools -
Understanding Dart class modifiers by using lattices
Dart 3.0 introduced class modifiers, and at first glance, the combinations can feel overwhelming. base, final, interface, mixin. How do they all fit together? What combinations are valid? Which ones...
technical dart visualisation