miniblog.

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
Suppose I want to convert a string to uppercase in a language. (1) Google it. (2) Read the official docs or a Stack Overflow answer. (3) Copy-paste the function/method name to my program. This is an absurd number of keystrokes! Do any languages aim to minimise this?
Wow, GitHub shows a table of contents on https://readme.md/ files! I did not know this until https://github.com/casey/just added a helpful icon pointing it out.
PhotoPhoto
GitHub now allows you to group your starred projects into lists: https://github.blog/changelog/2021-12-09-lists-are-now-available-as-a-public-beta/
LLVM is moving mailing lists to Discourse! I'm a big fan of Discourse's ability to summarise threads and richer formatting options.
Line alignment is a *massive* problem in syntactic diffs. Line-based diffs don't have this problem -- either lines are equal or they aren't. In this example, it's not clear whether line 11 on the right should align with line 9 or line 10 on the left.
Photo
I'm really pleased with how well difftastic handles removal of `if` statements. Here's an example I hit today. It's definitely harder to see which curly braces are removed in the `git diff` example. `git diff` does combine everything into a single hunk though, which is nice.
PhotoPhotoPhoto
Showing 301-315 of 384 posts