miniblog.

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.
Photo Photo
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!
Photo Photo Photo
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)
Photo Photo
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.
Photo Photo
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. https://blog.llvm.org/posts/2022-01-07-moving-to-discourse/
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.
Photo Photo Photo
I've been consistently impressed by the Doom Emacs community. I get really high quality bug reports (sometimes patches too!) from both the users and the maintainer :)
I wish that build tools considered *current* CPU and memory utilisation. $ make -j $NUM_CPUS This is problematic if some jobs use a lot of memory (common in linking) or if you're using your machine for anything else.
Showing 781-800 of 7,506 posts