Bugs Block Blogs
When writer's block is actually the weight of the bugs you're papering over.
A collection of blog posts about programming, software, types, programming languages, Sorbet, Vim, Markdown, and more.
When writer's block is actually the weight of the bugs you're papering over.
I end up giving the same mechanical feedback on ~every shipped email draft I read. These are some simple tips for making a shipped email useful to busy readers.
Lower bounds expand the list of ways to create a value of that type. They behave similar to union types in that regard, but they fill a particular niche that only they can fill, relating to subtyping.
A discussion of how Sorbet's type syntax came to be, the problems it solves, and how it could improve.
Sorbet does not (yet?) have "abstract instance variables" for use inside abstract modules, but abstract methods are a close approximation.
What more would be possible if text input on phones was as fast and precise as text input on keyboards?
The other day I learned that Instruments.app can record file system activity on macOS!
A while back I picked up a tiny, folding, wireless keyboard to turn my phone into a passable laptop replacement when traveling. It's already incredible, and only one or two features are missing from iOS which would make it really amazing.
I love bug squash interviews.
Sorbet does not allow generic methods to have non-generic default arguments. The best alternative is to split the method into two methods, with one implemented by calling the other with the default value.