Andrew Gallant
banner
burntsushi.net
Andrew Gallant
@burntsushi.net
I love to code.

https://burntsushi.net
Found what appears to be my oldest game save on a physical memory card. From about 18 years ago!

This is from The Simpsons: Hit and Run. On a GameCube memory card.

I do probably have some N64 memory cards lying around... Hmmm.
September 13, 2025 at 12:30 PM
FYI, I got an obvious phishing attempt in my inbox from `[email protected]` that was masquerading as a security breach notification. It made it past gmail's spam filters.

The link goes to the `github.rustfoundation.dev` domain.
September 12, 2025 at 1:26 PM
Here are a few more.

He was a great cat. I'd always tell the vet (on his many, many, many visits over the years) that while he was a squirmer, he didn't have a mean claw in his paws.
July 7, 2025 at 6:34 PM
Plato, Aug 2010 - July 7, 2025. You never did quite learn how to poop like a normal cat, but I loved you anyway. I'll miss you buddy.
July 7, 2025 at 6:34 PM
Surprise surprise. Hugo has yet again started failing to build my web site with an unactionable error message. Happens about once per year. I don't stay aprised of Hugo development. I just want it to work.

This has gotta be at least one of the reasons why people build their SSG.
May 17, 2025 at 3:01 PM
And finally, this example gives a brief glimpse at Biff's ability to generate sequences of datetimes via its RFC 5545 recurrence rule support.
May 12, 2025 at 2:05 PM
This shows Biff's tagging support, which lets you extract datetimes from arbitrary data while maintaining the relationship between the data and the datetime. This example shows how to use tagging to rewrite UTC RFC 3339 timestamps in your local time.
May 12, 2025 at 2:05 PM
These examples show how to get a duration between two datetimes. Biff also lets you round durations to your desired precision.
May 12, 2025 at 2:05 PM
These examples show how to subtract and add durations to datetimes.
May 12, 2025 at 2:05 PM
This example shows how to print the current time in another time zone and round it to the nearest 15 minute increment.
May 12, 2025 at 2:05 PM
This screenshot shows a few formatting commands with Biff. It even has localization courtesy of ICU4X.
May 12, 2025 at 2:05 PM
It seems likely that there will be a RUSTSEC advisory for `humantime` being unmaintained.

This is a reminder that Jiff should cover all of the use cases of `humantime`. Specifically, its friendly duration format was specifically designed with this in mind: docs.rs/jiff/latest/...
March 10, 2025 at 10:48 PM
Finally, here's an example showing how to use Jiff's new opt-in proc macros to embed a `TimeZone` into your binary without any heap allocation. This specifically works in core-only environments.
March 6, 2025 at 9:56 PM
This also helped improve a real workload where a user noticed a perf regression when switching from Chrono to Jiff:
March 6, 2025 at 9:56 PM
Here are some of the perf improvements to time zone lookups. This came from optimizing binary search to improve data locality and also from "fattening" TZif data to include more explicit transitions so that more code paths hit the binary search.
March 6, 2025 at 9:56 PM
jiff 0.2.2 is out with massive performance improvements for time zone lookups, and core-only (NO heap allocation) support for using time zones. This should bring Jiff into parity with what you can do with `chrono-tz`.

github.com/BurntSushi/j...
March 6, 2025 at 9:56 PM
jiff 0.2.1 is out with some massive performance improvements!
February 16, 2025 at 8:58 PM
And RFC 2822 (email and HTTP) support:
February 11, 2025 at 2:55 AM
The inane but ubiquitous `strptime` and `strftime` support:
February 11, 2025 at 2:55 AM
And different ways to write a duration in Jiff's "friendly" format:
February 11, 2025 at 2:55 AM
One nice documentation improvement in `jiff 0.2` is a set of tables giving a quick overview of the formats supported by Jiff. Here are the standard formats supported by `FromStr` and `Display` trait implementations:
February 11, 2025 at 2:55 AM
Finally, here's the text hard wrapped. It's done by `par` which has a good word breaking algorithm. It's also done automatically as I type. It's easy to edit. And bonus points, when I dump it to a terminal, it's still easy to read, and doesn't rely on a different soft wrap configuration.
January 14, 2025 at 3:55 AM
If you futz with vim's soft line wrapping features, you can get it to look like this. Which is better insomuch as your eyes don't need to scan across the entire scan, but the actual word breaking is awful. And editing is no better than the previous.
January 14, 2025 at 3:55 AM
The tooling isn't anywhere close to good enough in my experience. This first screenshot shows what soft-wrap looks like by default in neovim. It's grotesque. Not only is it hard to read, but it's hard to edit because vim is line oriented. Getting around is very difficult.
January 14, 2025 at 3:55 AM
Well, that's all she wrote. The UPS started it's incessant "battery is dead" beeping. I managed to log back in one more time to get the final stat before shutting it down. Managed 4.4 years of uptime with my old Intel mac mini in my home office.
January 14, 2025 at 1:05 AM