Word-wise Diff Highlighting

FreshBSD now has support for word lightlighting in Split diffs.

This makes it much easier to notice small changes between two versions of a file, such as fixing a typo or changing a version number.

Effort is made to stop it being too noisy, so not every change will be highlighted, only lines that would otherwise be sufficiently similar. This may need some tuning.

This does break my with_optional_linebreaks helper that prevented wide diffs from making the page extend off too far into the horizontal, but this should be relatively rare.

Fixing that, and adding support for Unified diff view are on the TODO.

A Few Updates

A quick rollup of changes since the new server a few months ago:

Support for HTTP/3

The web server has been advertising HTTP/3 support to clients for months now, but because port 443 was only opened for TCP connections by my firewall configuration, it didn’t actually work.

I’ve rectified this, and will keep and eye on whether it’s actually getting used. There’s currently a roughly 60:40 split between HTTP/1 and HTTP/2 requests, respectively.

Diff line numbers disabled on small displays

Line numbers take up quite a significant chunk of space on mobile devices, so they are now suppressed on displays of less than 800 pixels. If you’re on your phone and need them back, flip it to landscape mode.

Thanks to Mina Galić for requesting this feature.

Titles now include a commit summary

When a single commit is being viewed, the first line of the commit message is now added to the page title to make it more useful for remote link summaries.

Commit IDs are also shortened to the first 7 characters so long Git commit IDs are a bit less overwhelming.

This was also requested by Mina Galić.

You can now link to git commits by shortened hashes. i.e. instead of:

https://freshbsd.org/freebsd/src/commit/1dc1f6bd3138760a9e96e13017cc3c05e5e1b1e9

You can provide a link with just the first 5 or more characters:

https://freshbsd.org/freebsd/src/commit/1dc1f

This is an alias to a prefix search query:

https://freshbsd.org/freebsd/src?q=commit%3A1dc1f*

Which is what you’ll see in the URL bar after the page loads. Perhaps not entirely ideal?

Thanks to Daniel Ebdrup for requesting this improvement.


My contact details are at the bottom of every page, so if you have any requests of your own please do get in touch.

Downtime for Upgrades

You may have noticed a couple of hours downtime today, bringing our current 90 day uptime stat to a shameful 99.854%. But this was for a good cause – working within the venerable guts of the server in order to rip out and replace components long past their prime.

Previously we were powered by a pair of Xeon L5639’s providing 12 Westmere-EP cores running at 2.13GHz, attached to 192GB of memory. They’ve served well, but with their underwhelming performance in the modern era and an idle power of 170W during an eye-watering energy crisis, it’s time for them to join the e-waste/ebay pile.

Their replacement is a single solitary AMD Ryzen 5 5700X – 8 Zen 3 cores at 3.4GHz – with a more modest but hopefully sufficient 64GB of ECC memory. Paired with an Asrock Rack X570D4U motherboard, I also finally have remote management capabilities, woo.

Preliminary tests suggest a very welcome performance uplift of 2-3x across a wide range of workloads, including FreshBSD page generation. Typical front-page loads now take closer to 10ms instead of 20ms, and I measured drilling down to FreeBSD/src taking just 50ms, down from 130ms. Nice, if not exactly life-changing.

More importantly, power – testbench runs measured an idle consumption of just 30W, which is about what I expected. Sadly rehomed in the old Supermicro server case with its redundant hot-swap PSUs, a few more fans and a couple more hard disks, it’s somehow eating 100W. Better than nothing, but clearly more work is needed.