Live data from Hacker News

Bttf is a command line datetime Swiss army knife

github.com

41–50 of 104 posts

Re: Bttf is a command line datetime Swiss army knife

#41
post #3

% biff 2026 M05 28, Thu 17:27:46 Ahh, the month of M05

This is a fair critique actually. And this shouldn't be the default. It is for now because I haven't gotten around to making Biff read your POSIX locale settings and converting them to a Unicode locale. If you build with `cargo build --release --features locale` (or get Biff from a release binary), then you can do: $ BIFF_LOCALE=en-US biff Thu, May 28, 2026, 6:38:09 AM EDT If that doesn't work, then you can enable lo…

I came here to complain about this. Please read `LANG` like everything else :)

Re: Bttf is a command line datetime Swiss army knife

#42
been hand-rolling date -d plus a wrapper script for newsletter scheduling for years. Stuff like "next second Tuesday after a holiday" and "convert these timestamps to a reader's local time before send". biff time seq monthly -w 2-tue would have replaced about 40 lines of bash for me.

Re: Bttf is a command line datetime Swiss army knife

#43
post #2

No, Biff informs the system whether you want to be notified when mail arrives during the current terminal session.

Yeah the name collision is unfortunate, but probably fine. The name Biff was just too good to pass up. The name comes from the fact that Biff is a character in Back to the Future, and it rhymes with Jiff[1]. Jiff is the datetime library that Biff uses. "Make like a tree and get out of here!" https://www.youtube.com/shorts/9Jabplo2pZU [1]: https://github.com/BurntSushi/jiff

As the author of a different project also named Biff, I do have to warn you that half the comments on your HN posts will be people quoting back to the future--though I haven't decided yet if that's annoying or an engagement hack!

[1] https://github.com/jacobobryant/biff

Re: Bttf is a command line datetime Swiss army knife

#45
post #2

No, Biff informs the system whether you want to be notified when mail arrives during the current terminal session.

Yeah the name collision is unfortunate, but probably fine. The name Biff was just too good to pass up. The name comes from the fact that Biff is a character in Back to the Future, and it rhymes with Jiff[1]. Jiff is the datetime library that Biff uses. "Make like a tree and get out of here!" https://www.youtube.com/shorts/9Jabplo2pZU [1]: https://github.com/BurntSushi/jiff

B1FF IS LIMITED TO 22 COLUMNZ

Re: Bttf is a command line datetime Swiss army knife

#47

been hand-rolling date -d plus a wrapper script for newsletter scheduling for years. Stuff like "next second Tuesday after a holiday" and "convert these timestamps to a reader's local time before send". biff time seq monthly -w 2-tue would have replaced about 40 lines of bash for me.

Yes!!! To spell it out (with the new biff -> bttf name):

    $ bttf time seq monthly -w 2-tue -u 1y | bttf time fmt -f '%c'
    Tue, Jun 9, 2026, 11:15:11 AM EDT
    Tue, Jul 14, 2026, 11:15:11 AM EDT
    Tue, Aug 11, 2026, 11:15:11 AM EDT
    Tue, Sep 8, 2026, 11:15:11 AM EDT
    Tue, Oct 13, 2026, 11:15:11 AM EDT
    Tue, Nov 10, 2026, 11:15:11 AM EST
    Tue, Dec 8, 2026, 11:15:11 AM EST
    Tue, Jan 12, 2027, 11:15:11 AM EST
    Tue, Feb 9, 2027, 11:15:11 AM EST
    Tue, Mar 9, 2027, 11:15:11 AM EST
    Tue, Apr 13, 2027, 11:15:11 AM EDT
    Tue, May 11, 2027, 11:15:11 AM EDT
More examples here: https://github.com/BurntSushi/biff/blob/master/GUIDE.md#date...

Implementing the RFC 5545 recurrence rules was quite a lot of fun: https://github.com/BurntSushi/biff/blob/4c75d5cf6e09310e74ca...

I'm quite proud of it, because if you look at the implementation, it's almost entirely about dealing with the specification rules. All of the datetime bullshit (including handling time zones) is all deferred to Jiff.

Plus, the tests are nearly 4,000 lines. While the implementation is 2,000 lines.

Re: Bttf is a command line datetime Swiss army knife

#49

Earlier quoted context omitted.

I.e., NAME biff -- be notified if mail arrives and who it is from […] HISTORY The biff command appeared in 4.0BSD. It was named after the dog of Heidi Stettner. He died in August 1993, at 15. * https://man.freebsd.org/cgi/man.cgi?query=biff Eric Cooper, a student contemporary to Foderero and Stettner, reports that the dog would bark at the mail carrier,[4][5] making it a natural choice for the name of a mail notifica…

From the excellent "A Quarter Century of UNIX" (by the late Peter H. Salus): Heidi would bring her dog with her to class and to her office. He was a very friendly dog, and a lot of the students enjoyed throwing a ball for him down the corridor to fetch. He even had his picture on the bulletin board with the graduate students: the legend read that he was working on his Ph.Dog. John decided to name the program after th…

Yeah this was before my time. I never did email from a terminal. Which probably explains why I was okay with naming it Biff.

In any case, I've renamed the project to bttf: https://github.com/BurntSushi/bttf/pull/14

Re: Bttf is a command line datetime Swiss army knife

#50

Earlier quoted context omitted.

That's... not terrible. Biff isn't exactly popular (yet?), so a name change isn't out of the question. Both of those names (and `biff`) are already taken on crates.io. Which is maybe not a huge problem. IDK. Naming is hard.

https://crates.io/search?q=bttf // backronym bttf stands for biff time to format

You win the naming contest. The project has been renamed: https://github.com/BurntSushi/bttf/pull/14
Post reply on HN