miniblog.

Encoding a spell checker in Typescript types: https://github.com/kkuchta/TSpell (Very impressive, though unsurprisingly it's slow)
On writing code to communicate an idea or intent: https://buttondown.email/hillelwayne/archive/codebases-as-communication/
Shower thought: presumably keyword length affects naming habits? Are programmers more willing to write verboseFunctionName if the keyword is `fn` rather than `function`?
Many of the GNU manuals are incredibly good. For example, the diff manual includes worked examples: https://www.gnu.org/software/diffutils/manual/html_node/Example-Context.html What's the secret? My docs are getting better, but they're not on this level.
Nvidia is open sourcing its kernel drivers! Looks like the popularity of Linux in data centres meant it was valuable from a sales perspective. Still, everyone wins. https://www.phoronix.com/scan.php?page=article&item=nvidia-open-kernel&num=1
Modern computer systems are hard to bootstrap. If you had to rebuild computing from older tech (say 20/30/40 years old), which would you prefer?
Bugs being embarrassing is a great motivator. I've just fixed a silly crash on one of my Emacs packages.
"What do you call a pointer we stole the high bits off? An ointer." https://docs.rs/ointers/latest/ointers/ Brilliant name for a pointer tagging library.
Reading this blog post on the author's experience report in Go, it's striking how much compiler error messages and docs come up. Sometimes these matter more than language semantics! https://typesanitizer.com/blog/go-experience-report.html
"Mark of a chef: messy apron, clean sleeves" -- Ratatouille What's the programming equivalent? Clean code, lots of stashes?
Difftastic 0.28 is out :) * Added support for HCL, Swift and limited Perl * Fixes to directory diffing and inline display * Difftastic now performs some work in parallel!
Photo Photo Photo
A deep dive on ABI design tradeoffs, and how Swift approached the problems in this space; https://gankra.github.io/blah/swift-abi/ (Compared with C++/Rust, it avoids monomorphisation and does more boxing, with attention to details that affect performance)
The examples coverage in Rust is exceptionally good. It's weird how few languages include an example in their stdlib docs for sorting.
Photo
I'm trying to factor out the interior mutability in my Rust code. It's a little more verbose, but surprisingly readable. foo_old(&syntax); foo_new(&syntax, &mut change_map); Signatures are way more self-documenting with this approach.
Every time I make difftastic faster, people give it larger files! Performance is adequate these days (I've not seen >10 seconds for several releases), but I was even forced to look at scaling of the textual diffing parts :)
Autocomplete for keywords is a surprisingly nuanced problem. public | In this case you need to work out what keywords can appear next, and there may be multiple valid syntaxes! public | function In this case you want to narrow the modifiers based on context before and after.
Excellent discussion of how REPL programming enables you to write code incrementally, going beyond what you can do with e.g. ipython or ghci. https://mikelevins.github.io/posts/2020-12-18-repl-driven/
It is really impressive how quickly different distros are shipping new versions of difftastic. Less than a day! AUR has a bleeding-edge git package whose version tag is always 1. It's a shame, I would like to be able to download v1 too :P
Photo
Difftastic 0.27 is out! In this release: * Added support for Kotlin and TOML * Updated to latest tree-sitter parsers, including TS union types, C++ fold expressions and Java modules * Improved the scaling of diff algorithm on large expressions
Photo Photo
I've finally added an incremental search option to deadgrep! https://github.com/Wilfred/deadgrep/blob/master/CHANGELOG.md#v012 I also learnt that incremental tools don't do anything clever with the minibuffer: they just call read-char in a loop.
Showing 221-240 of 384 posts