Nyt sideprojekt: hvor meget er dagen tiltaget siden vintersolhverv?
Endnu et sideprojekt ser dagens lys. Med SidenSolhverv.dk kan du nu holde dig opdateret om, hvor meget dagen er blevet længere siden sidste vintersolhverv.
På denne tid af året synes jeg vinteren er på sit værste; det er mørkt, koldt og vådt, og tegnebogen er slunken efter en måned med juleextravaganza. En af mine små hobbyer er at følge med på, hvor mange flere minutters dagslys vi har. Et relativt håndgribeligt bevis på at dagene bliver længere har en behagelig effekt på vintermørket. Derfor fik jeg lyst til at lave SidenSolhverv.dk, som gør det nemt at få netop den information.
Hvad er vintersolhverv?
Vintersolhverv er årets korteste dag og falder som regel på 21. eller 22. december. Det er ved vintersolhverv, at Solen er på sit laveste på den nordlige halvkugle. Dette er på grund af, at Jorden hælder ca 23 grader i forhold til dens bane om Solen.
Teknologier og implementation
Siden er lavet i Ruby og serveres med Sinatra og thin. Det overrasker mig stadigvæk, hvor effektivt det er at arbejde med denne kombination.
Da jeg begyndte at researche til projektet opdagede jeg, at det med at beregne dagens længde faktisk ikke er nogen enkel sag. Man skal i princippet vide en masse om Solens placering, afstand til Jorden, dato, skudår og en masse mere. Jeg har ikke en chance til at vide alt det (specielt fordi jeg ønskede at siden selv skal finde ud af hvor brugeren er og vise relevante data), men jeg fandt en formel, som kan beregne dagens længde. Den behøver kun at vide en breddegrad og hvor mange dage der er gået siden vintersolhverv plus nogle få konstanter, og det er til at have med at gøre. Den er naturligvis ikke så nøjagtig som rigtige astronomiske beregninger, men resultatet er godt nok til dette formål.
Breddegraden har jeg valgt at finde automatisk. Den kan findes ved at lave et opslag på brugerens IP-adresse mod freegeoip.net. Samtidig får man også en del andre nyttige data såsom by og land. Jeg har valgt at gøre det på denne måde, fordi brugeren ikke skal belemres med at foretage valg samt bruge tid på en ekstra round trip til serveren. Samtidig holdes grænsesnittet rent og antallet af opmærksomhedskrævende elementer nede. Det har den ulempe, at hvis IP-opslaget ikke virker, så virker sitet heller ikke.
Datoen for vintersolhverv er heller ikke en enkel sag for en lægmand som mig. Her skal man også vide en masse om Solens dit og dat, så jeg endte simpelthen til sidst med at sakse en liste fra Wikipedia og hard code den ind. Mental note: husk at opdatere tabellerne i år 2020.
Videre udvikling
Jeg kommer nok ikke til at foretage mig mere på dette site. Hvis jeg gør, vil jeg muligvis åbne for at bruge andre metoder end opslag på IP-adressen til at finde sin lokation. Det vil åbne for, at brugere kan lege med at sammenligne forskellige steder eller undersøge, hvordan det er hjemme, mens man er på farten. Derudover kan det være jeg vil pakke koden, der beregner dagens længde og hvor meget den er tiltaget siden vintersolhverv, ind i en Ruby Gem og frigive den sammen med kildekoden.
Ikke mere snak: prøv selv på SidenSolhverv.dk.
2
jan