miniblog.

Really elegant way of understanding macros: generate railroad diagrams for them!
Photo
I've released difftastic 0.22! * Added PHP, and improved C++ and Rust * Files are split on clearly unchanged regions before diffing, hugely improving performance * A ton of improvements to nested diff heuristics
PhotoPhoto
Flamegraphs are an indispensable tool, but sometimes I overuse them. Here's an example for difftastic -- it spends most of the time computing the shortest path. I was able to make the diff graph smaller, making difftastic much faster -- but the new flamegraph looked the same!
Photo
Difftastic uses the same parse tree for diffing and highlighting. This has a really nice side effect: you can spot parsing bugs from highlighting! It's subtle, but difftastic shows parentheses/braces in bold. I noticed that < and > weren't bold, and fixed the parser :)
Photo
It makes sense to worry about writing code that is accidentally quadratic. Turns out you don't need to worry about accidentally exponential code. It's painfully obvious.
Google now makes data available on common streaming times and ISP quality by location!
Photo
There's definitely something about shipping a binary that feels more like 'real' software. I find it's easier to ship a website but there's much more historical precedent in delivering an executable.
I've been playing with https://github.com/orium/rpds as a replacement for im in difftastic, and it's a significant speedup! I saw a 30% runtime reduction in one case. im is great but sadly seems unmaintained. I suspect its 'small vector as a vec' design doesn't suit my use case.
Multihash is a rather nifty format for hashes, where you can distinguish between e.g. a SHA1 and a Blake2b: https://multiformats.io/multihash/ It originates from the IPFS project, where they want flexibility in how they implement content-addressable storage.
I've been experimenting with grouping top-level syntax items in difftastic. It works surprisingly well so far. Here's a CSS example (old, then new). Although the old screenshot is a smaller diff, the second diff seems much more readable overall.
PhotoPhoto
I've released difftastic 0.21. A fairly small release, but some nice improvements: * Supports Emacs -*- syntax as another hint for language detection (handy for dune files). * Improved alignment heuristics (see screenshot) * A bunch of Unicode fixes
Photo
I'm prototyping HTML output from difftastic, and I'm really excited about the initial results. I can provide full syntax highlighting with HTML (in both changed and unchanged regions), and I can have multiple levels of transparency to highlight the changed syntactic elements!
PhotoPhotoPhoto
Setting expectations as a freelancer offering services to modify OSS projects: https://raccoon.onyxbits.de/blog/software-development-cost/
So many computer components have a name 'FooCorp ABC456QX'. It must make life harder for both users and marketers. My current theory is that names are chosen to be unique when googled. It's a glorified UUID.
Phabricator does a great job displaying diffs. It has subword highlighting and puts the previous section (based on indentation) in the header, shown as `namespace llvm {`. The moved line highlighting is a really nice touch too. (screenshots of https://reviews.llvm.org/D71126)
PhotoPhoto
Showing 826-840 of 7,549 posts