simple command line tool inspired by https://xkcd.com/1017
Go to file
filifa 00ed30838a add readme 2024-03-19 20:31:33 -05:00
.gitignore add basic go program 2024-03-19 20:31:32 -05:00
Makefile slight restructure 2024-03-19 20:31:32 -05:00
README.md add readme 2024-03-19 20:31:33 -05:00
go.mod change module path 2024-03-19 20:31:32 -05:00
go.sum add basic go program 2024-03-19 20:31:32 -05:00
main.go use env var for db path 2024-03-19 20:31:32 -05:00
timeline.sql add infra for unknown dates 2024-03-19 20:31:32 -05:00

README.md

xbit

xbit (xkcd backward in time) is a program for outputting historical events while completing a task, inspired by xkcd. The program reads a SQLite database that stores event descriptions and timestamps, allowing you to easily add your own events of interest.

The provided SQL file will pre-populate the database with thousands of events scraped from Wikipedia. Of these events, over 300 were manually given timestamps.

How to use

First create the database:

sqlite3 timeline.db < timeline.sql

Then set the XBIT_DB environment variable to the database file.

export XBIT_DB=./timeline.db

Call the program with xbit -p <percentage>, like xbit -p 0.25. This will calculate a timestamp using the formula from the xkcd comic, then output information about the event in the database closest to that timestamp. See xbit -h for more args.

Database details

  • Due to the time-consuming nature of manually assigning timestamps, there are many events that were scraped from Wikipedia but not given timestamps. You may wish to skim through these and add timestamps to events you personally find interesting.
  • For an event to be output by xbit, it must have an entry in the database with a unix timestamp of when the event occured. You can optionally set bools in the "known" columns to indicate how precise your timestamp is. These may be used to modify how the event is output.
  • There are a few other columns that mainly exist as artifacts from the scraping process. These are not used by xbit and do not need to be populated.