Show HN: A zoomable timeline of 4M Wikipedia events
app.everything.diena.co97 points by lortex 17 hours ago
97 points by lortex 17 hours ago
I'm building a journal app in Kotlin Multiplatform and for this purpose I have created a zoomable timeline interface.
This is a side-project where I reuse the timeline interface to display 4 million events imported from Wikipedia / Wikidata, scored using PageRank. There is more information on the about page.
If you're interested in the stack: I use Kotlin Multiplatform extensively, with Compose Multiplatform for the UI, communicates with the backend using Kotlinx-RPC and behind the hood a simple Postgres database on a Hetzner machine.
It feels a little strange on macbook touchpad, otherwise it's a cool project Also on a macbook, it took me a while to realise pinch to zoom doesn't do anything except zoom the page, pan is click and drag, and scroll is zoom. Cool project except for the controls, surely scroll should be to scroll up and down? Cool! I made something similar with the same datasets a year ago, but with geocoordinates instead of timestamps: https://theilemail.de/wikipage/ It shows a zoomable map with the "most important" wikipedia entries at specific locations. It was very hard to get the parameters right so that the text is always displayed in a good size, while showing not too few or too many entries. I never published it until now, I think. Not sure the page rank style algorithm is that useful from my limited browsing. Apparently https://en.wikipedia.org/wiki/Kellie%27s_Castle is the most significant entry in human history. It is quite strange indeed, it's probably a bug in the visualization because in my database I see that Kellie's Castle has a low rank. This is really nicely done, the log zoom makes 4M events feel navigable instead of like a wall. How are you serving a viewport at that scale: precomputed levels of detail, or a query against the raw events on each pan and zoom? Thank you ! It's indeed precomputed levels of detail, the backend serves a key-value store: for each bucket a top 10 events that start or end in this bucket. A bucket is described by its zoom level (from 1 day to 2^34 days) and time coordinates. You need some visual feedback that it's loading. I see a blank screen for 30 seconds. its a very promising idea, i recently god into the Bronze age collapse and this was a nice way to look around at other events happening at that time and put context to it. a few bugs to iron out but yeah good work See also my log-scale timeline of the universe — hand-curated rather than a giant import, and I hope also a bit nicer/simpler UI: https://deep-timeline.org Thank you for sharing your project, it must have been quite some work to curate the events. My plan is to at some point be able to implement various filters so that people can make usable timelines. Right now it's more of a tech demo. Nice! I can't help thinking it would be informative to see it on a linear scale. Vast, unfathomable stretches of time before humans come on the scene, and then human history is a blip at the end. Can you share the data, the view can be improved a lot, it's not really capturing the essence. Events in the future are labelled in past tense. Rather than "happened in 4.5B" you could write "forecast in 4.5B" Thank you for making this, it's very nice. I love a good timeline, everything seems to make a bit more sense when it's laid out spatially. An arbitrary data error I found is that https://en.wikipedia.org/wiki/Jekadefari is shown on the year 760251. That number is obviously wrong, it instead appears to be the postcode of the place. Wikidata is the source I used to get metadata about Wikipedia articles. Sometimes the data is automatically extracted from Wikipedia articles which introduces these errors. What's nice is that the timeline representation easily shows these outliers and will help us fix them ! +1, I noticed and fixed a few erroneous dates that would have presumably been difficult to surface otherwise The problem is that there's no guarantee that extraction errors will always end up as outliers. Instead, outliers are merely the errors that are easiest to find. <Insert bullet-ridden bomber image here> Almost everything further than a few years in the future and a few predicted pangea events appear to be data errors. Instantly freezes the moment I try to interact with it on firefox. Hi, thank you for giving it a try ! I test both on Firefox (152) and Chrome, mobile and desktop.
If you don't mind please send me (lucas@pluvina.ge) the error message that appears in the console. yeah, borked on Chrome Android too. too bad, i want to see it! Hi, I'm sorry for that, my backend is struggling a bit I didn't expect to be on the front page so soon.
On https://www.diena.co/everything/ there is a page with a video if you want to see how it looks and behaves. Very nice, I would like a similar tool for analyzing system logs and metrics. Cool, though I assume there's some accuracy shortfalls, when not close to zero the UI breaks when years are ~1 pixel in size. Probably doesn't matter for much of the content, though immediately comes to mind that for after big bang there is "known events" that happened at second-scale. Don't know if there's exact Wikipeida articles of those, but with an appropriately accurate timestamp storage & handling (128bit? more?), one could well zoom in to those if they did exist. Yes indeed, I'll fix them at some point ! For in-between events it doesn't really matter to be able to zoom in, but it'd be great to explore the birth of the universe on this timeline. Storage wise it's already supporting such precision, but the UI (which was made for the 1900-2100 range initially) still has issues.
est - an hour ago
willtemperley - 10 minutes ago
tomthe - 2 hours ago
tweetle_beetle - 3 hours ago
lortex - 2 hours ago
keynha - 7 hours ago
lortex - 2 hours ago
ks2048 - 13 hours ago
TealMyEal - 8 hours ago
darkstarsys - 15 hours ago
lortex - 15 hours ago
stvltvs - 15 hours ago
aayushdutt - 8 hours ago
kingo55 - 11 hours ago
Unearned5161 - 13 hours ago
maxlin - 15 hours ago
lortex - 15 hours ago
jcbe - 8 hours ago
GMoromisato - 7 hours ago
hobofan - 13 hours ago
Jtarii - 16 hours ago
lortex - 16 hours ago
0gs - 16 hours ago
lortex - 16 hours ago
UltraSane - 14 hours ago
maxlin - 15 hours ago
lortex - 15 hours ago