Iztacalco til Mixcoac

Det jeg har lavet denne uge har mestendels været at gøre det sådan at app’en kender til byer og geografisk steder i det hele taget. Så man kan sige “jeg skal fra Samsø til Jylland” og så finder app’en ud af hvad det vil sige, i stedet for at man skal sige “jeg skal fra Sælvig Havn til Hou Havn”. Man kan stadig gøre det men hvis man hellere bare vil bruge nogle bredere geografiske betegnelser – og det vil man typisk – bliver det muligt. 

Jeg har lavet det meste af benarbejdet nu, det primære der er tilbage er at få det testet grundigt og så at få lavet brugergrænsefladen i app’en. Af forskellige grunde tester jeg ikke med danske køreplaner, til det bruger jeg gerne data fra Mexico City. Det er fordi betingelserne for de danske køreplaner gør at jeg ikke må bruge dem til at teste med. Plus de mexicanske data er meget mindre og nemmere at have med at gøre.

Det betyder at for at teste nye funktioner til de danske køreplaner bliver jeg nødt til at sætte mig ind i hvordan det tilsvarende virker for Mexico City, så jeg kan afgøre hvordan testene skal opføre sig. Så så lærer jeg osse lidt om det.

Yikes!

Jeg fik en grim overraskelse forrige uge. Der kom en mail fra google om at A til B var blevet fjernet fra Google Play. Mailen kom fredag først på aftenen så det var bare super, jeg endte med at arbejde over weekenden for at løse det.

Det der viste sig at være galt var en kombination af uheldige omstændigheder. Jeg bruger et system der hedder firebase til at gemme fejlrapporter hvis der sker fatale fejl i app’en, det er det der er indbygget i Google Play. Samtidig så gemmer jeg ingen data om brugere af app’en hvilket betyder at jeg ikke behøver en en datapolitik – der er ingen data at lave politik omkring. Så alt var okay, tænkte jeg.

Bortset fra at det var ikke okay. Når der sker en fejl og firebase laver en fejlrapport gemmer den en masse om brugeren af app’en. Det er ikke noget jeg bruger eller er interesseret i så det var ikke lige sunket ind hos mig. Så det var forkert når jeg troede at der ikke blev gemt brugerdata, og jeg derfor ikke havde brug for en datapolitik.

Løsningen burde jo bare være at slå fra at firebase gemmer en masse information om brugere men det kan ikke slås fra. I stedet blev løsningen at jeg har lavet mit eget system til at rapportere fejl så jeg har 100% styr på hvad der bliver gemt og ikke gemt. Og nu bliver der ikke gemt noget om brugere, så app’en er tilbage i Google Play. Men det kostede lige det meste af sidste uge.

Køge til København

Jeg arbejder stadig med at gøre app’en smartere omkring danmarks geografi. Jeg har nu al det data jeg har brug for (tror jeg) og er gået i gang med at få systemet til at fordøje det.

Det punkt jeg er nået til nu er at der findes steder – byer, bydele, øer, og nogle få andre – og stop er markeret med hvilke steder de ligger i. Det sidste jeg har lavet er at systemet har en forståelse af hvilke ruter der bevæger sig mellem stederne. Det skal stadig pakkes sammen så det kan bruges i app’en så der er noget vej endnu men jeg kan godt allerede nu lege lidt med det og få et indtryk af hvordan det vil fungere i praksis.

Ovenfor er nogle eksempler hvor man giver to vage geografiske steder: fra Aarhus til Viborg, fra Køge til København, og fra Samsø til Kalundborg. Selv om det er vagt er det nok til at systemet ved hvilke ruter der kan være tale om. (Det er ikke nødvendigvis helt korrekt – der kan være ruter der faktisk ikke går mellem de to steder – men de kan sorteres væk i det næste trin så der er præcis dem tilbage der er relevante)

Østerby, Østerby, Østerby

Efterhånden som jeg begynder at få integreret mere geografisk viden i det data jeg bruger bliver det osse mere håndgribeligt – jeg kan begynde at danne mig et bedre indtryk af hvordan det faktisk ser ud.

F.eks viser det sig at bynavne ikke, slet slet ikke, altid er en god måde at identificere steder i Danmark. Vi er ikke specielt opfindsomme når det kommer til navne. Der er f.eks 24 steder der hedder Østerby, 19 der hedder Sønderby, og så videre derud af.

Af ren nysgerrighed fik jeg lyst til at plotte Østerbyerne og se hvor i landet de ligger. Det første kort viser byer der hedder Østerby med rød og bydele i andre byer der hedder det med blå. Ironisk nok bliver der flere Østerbyer jo længere vestpå man kommer. De ligger osse overraskende tæt. Jeg tænker det måske skaber lidt forvirring at Østerby ved Stauning ikke ligger mere end 19 km fra Østerby ved Bølling? Nåja det finder de nok ud af.

Det at de fleste Østerbyer ligger vestpå gjorde mig endnu mere nysgerrig: er det fordi retningsbyer (altså byer med en kompasretning) gerne ligger i den modsatte r

etning? Måske hvis man bor vestpå er det med vest det normale, så det at ligge mod øst er usædvanligt nok til at det er det man opkalder byen efter? Eller måske er det bare populært i det vestlige Danmark at opkalde byer efter retninger?

For at afprøve det plottede jeg osse alle Sønderbyer. Hvis de gennemgående lå nordpå tyder det på at modsat-retning teorien holder. Hvis de gennemgående lå vestpå tyder det på at retningsbyer-i-vesten holder. Svaret var ret entydigt: Vestjylland er klart overrepræsenteret og Nordjylland er ikke. Så navne med retninger i er vist bare ekstra populære i Vestjylland.

Og så skal jeg have fundet på en måde der gør det nemt for folk at skille byer med det samme navn fra hinanden. Det er de to konklusioner jeg har kunnet drage indtil videre.

DAWA ❤️

Efter at have arbejdet på at kunne gå mellem stop sidste uge og begyndelsen af denne uge har jeg skiftet til at arbejde på en af de andre hovedområder jeg har på programmet indtil jul: stednavne. Helt kort fortalt går det ud på at i stedet for at sige at man skal fra Vejle Station til Odense Banegård skal man bare sige at man skal fra Vejle til Odense og så finde app’en selv ud af detaljerne, f.eks hvilke stop/stationer i de respektive byer man kan bruge til at komme det. Det er måske oplagt for Vejle og Odense men i mange tilfælde er det ikke – og selv hvis det virkelig er oplagt er det stadig alt andet lige nemmere. 

Det er ved at være noget tid siden jeg først dykkede ned i at løse det problem og jeg smækkede en hurtig prototype sammen som viste sig at virke virkelig godt. Det umiddelbare problem var at jeg havde brug for en masse viden om hvilke steder der findes i Danmark. Hvis app’en skal vide at der findes noget der hedder Vejle og Odense skal jeg have den viden et sted fra.

Det viser sig at den slags data kan man få fra Danmarks Adresse Web API (”DAWA”) som er en gratis service fra Styrelsen for Dataforsyning og Effektivisering, som er en ting jeg aldrig havde hørt om før jeg skulle bruge det. Der kan man få at vide præcis hvor alle byer er, og øer, og bydele, og lufthavne, og stort set alt af betydning i Danmark. Hvis man henter det hele fylder det omkring 85MB. Denne uge har jeg arbejdet på at hente data fra DAWA og massere det så det passer ind i det jeg skal bruge det til, nemlig at afgøre for et givet stoppested hvilket sted det ligger i. Screenshottet ovenfor er et eksempel på hvordan det ser ud nu jeg har fået hul igennem: du giver programmet en position og den fortæller hvilken del af Danmark, inklusiv by/bydel hvis det er indenfor en by, hvilken ø det ligger på. Man kan osse given en radius så selv om det ikke er indenfor et bestemt sted, hvis der er et sted i nærheden kan man få det at vide.

I det næste stykke tid kommer jeg til at arbejde videre på at få de data helt ind i app’en. Det virker måske som en triviel ting men ideen er at app’en selv bliver nødt til at forså de steder man rejser imellem på en tilsvarende måde til dem der bruger den. Så jeg tror det potentielt kan gøre en stor forskel i længden.