Spacestategeschiedenis

From RevSpace
Revision as of 22:55, 19 June 2018 by Joepie91 (talk | contribs)
Jump to navigation Jump to search

Doel en aanleiding

Zo compleet mogelijke log van alle spacestate met een redelijk hoge resolutie, om dat vervolgens eeuwig te bewaren. Met 1 byte per minuut heb je jaarlijks slechts ongeveer een halve MB aan data, dus veel ruimte kost het niet.

Vooralsnog zijn we verwend met de heatmaps van flok op https://keetweej.vanheusden.com/revspace/openhm.php maar die gaan slechts terug tot 2014, en er zijn wat twijfels bij de juistheid van de data (in de "alles"-heatmap staan veel 100%-scores waar alle eerdere heatmaps een lager getal hebben, dat kan niet kloppen). Bovendien wilden we graag een open source implementatie op eigen infrastructuur, omdat het denkbaar is dat voorgenoemde openhm.php niet altijd beschikbaar zal blijven. We voeren de resolutie meteen op van 6 naar 60 momentopnames per uur.

Subprojecten

  • Statelogger en dump van heatmaps (Juerd)
  • Importeren van oude space-states (Juerd, eightdot)
    • Bron 1: twitter (ca. 2010-01 - 2013-06)
    • Bron 2: irc-logs (ca. 2012-05 - 2018-06)
    • Ondanks diverse handmatige fixes klopt 't niet helemaal, maar het is goed genoeg voor bruikbare heatmaps.
  • HTML/CSS van de heatmaps (f0x)
    • Work in progress

File format

  • First 8 bytes (64 bit, little endian): unix time_t epoch time of first data point
  • Subsequent data: one byte per minute, byte offset = 8 + floor((time() - $start_time) / 60)
    • ASCII '0': space was closed (or mostly closed)
    • ASCII '1': space was open (or mostly open)
    • ASCII '?': script did run but could not determine space state (not currently in use)
    • ASCII '\0' (NUL): space state was not recorded
    • Any other value: treat as '?'

Statelog na iets minder dan 18 uur loggen: (* = meer van hetzelfde)

00000000  ce 39 24 5b 00 00 00 00  31 31 31 31 30 30 30 30  |.9$[....11110000|
00000010  30 30 31 31 31 31 31 31  31 31 31 31 31 31 31 31  |0011111111111111|
00000020  30 30 30 31 31 31 31 31  31 31 31 31 31 31 31 31  |0001111111111111|
00000030  31 31 31 31 31 31 31 31  31 31 31 31 31 31 31 31  |1111111111111111|
*
00000240  31 31 31 31 31 31 31 31  31 31 31 31 30 30 31 31  |1111111111110011|
00000250  31 31 31 31 31 30 30 30  30 30 30 30 30 30 30 30  |1111100000000000|
00000260  30 30 30 30 30 30 30 30  30 30 30 30 30 30 30 30  |0000000000000000|
*
000002d0  30 30 30 30 30 30 31 31  31 31 31 31 31 31 31 31  |0000001111111111|
000002e0  31 31 31 31 31 31 31 31  31 31 31 31 31 31 31 31  |1111111111111111|
*
00000433