Da Follobanen åpnet og det ble mulig å kjøre gjennom tunnelen fra Ski til Oslo følte jeg et enda større behov for et tilpasset og forbedret rutesøk, særlig for oss som bor ved de første stoppene for lokaltoget fra Ski. Selv om rutesøkene viser både direkteruter med lokaltoget og reiser via Ski var det likevel mye jeg ikke var fornøyd med i søkene:
- Appene bruker unødvendig mye tid på å starte. VY skal i tillegg tegne logoen sin hver gang.
- Enkelte forbindelser blir ikke vist dersom en annen forbindelse anses som bedre. Men ofte kan det være bedre å få sitte og jobbe sammenhengende på et tregt tog enn å bytte flere ganger.
- Det vises ingen varianter i avgangene, kun den antatt beste sammensetningen. Om jeg f.eks. trenger 8 minutt ekstra i Ski for å kjøpe noe må det gjøres flere søk.
- For å se alle mulighetene må ofte til flere søk til, det har vært dårlig støtte for dette i de fleste appene, og det har blitt en tidkrevende prosess.
- Togtidene er veldig optimistiske, selv når det er åpenbart at det kommer til å bli forsinkelser. Om det går ett tog hvert kvarter og det forrige er 20 minutter forsinket, er det jo ganske åpenbart at det neste også blir forsinket. Om en rushtidsavgang pleier å bli full med to vognsett, da blir det overfylt og forsinket hvis avgangen kjøres med ett vognsett.
- Ønsker du å se tidligere avganger må du gjøre store endringer i søkene.
- For oss som pendler er ikke pris på avgangene særlig interessant, den informasjonen tar unødvendig plass på skjermen.
Da Follobanen åpnet ønsket jeg å se hva jeg kunne få til. En venn hadde fortalt meg at Enturs API er tilgjengelig for alle, så det ble et godt sted å starte. Målet mitt var å lage et rutesøk tilpasset oss som bor på Langhus (Langhus stasjon og Vevelstad stasjon) og pendler til en av stasjonene i Oslo. Det skulle være raskt på alle måter, enkelt og oversiktlig. Jeg ville at det skulle vise tydelig reiser med lokaltoget og reiser via Ski. I tillegg ville jeg vise status på passerte avganger, siden det gir en mye bedre indikasjon på om det er problemer enn den evig optimistiske sanntidsinformasjonen om togene gir.
Når togene blir forsinket er det ofte at avgangstidene bare "sklir". Etter hvert som det er åpenbart at toget ikke går når det skal, blir tidene oppdatert gradvis ved at det blir lagt til 2-3 minutter. Da er det gjerne forskjellige tid i appen, på tavlene på stasjonen og på høyttalermeldingene. Det er ganske åpenbart at ingen vet når toget egentlig går. En morgen før Follobanen åpnet sto jeg og ventet på toget da dette skjedde. En kjøreledning var revet ned, så all togtrafikk på linja sto, men det var det ingen høyttalermeldinger om. Alle meldinger kom bare med stadig nye tidspunkt for når toget skulle gå. Selv BaneNor sitt sanntidskart viste at det skulle stå tre tog synlig ved stasjonen, men ingen var å se. I frustrasjon gikk jeg hjem og programmerte.
En utfordring med sanntidsinformasjonen er "crap in - crap out". Det er ikke så lett å gjøre informasjonen god når råmaterialet er elendig. Da Follobanen ble stengt få dager etter åpning tok det lang tid før noen klarte å endre togene til de nye (gamle) rutetidene, også i sanntidsinformasjonen. Som nevnt tidligere endres avgangstid ofte ikke før den aktuelle tiden er passert, selv om det er åpenbart at det ikke kommer til å være flere tog ved samme plattform samtidig, eller i samme skinneblokk. Og hvis et tog blir innstilt hele eller deler av strekningen brukes ikke "isCancelled" eller "isPartiallyCancelled", som er tilgjengelig i APIet. Da skrives det heller en melding. Denne er selvfølgelig ikke standardisert, men kan være "Toget er innstilt", "Toget er dessverre innstilt", "Toget er innstilt mellom ... og ...", "Bruk neste tog" eller "Ta neste tog" osv. I VYs eget rutesøk vises dette som et varsel ved reisen. Og et varsel kan være at en heis er ute av drift eller at toget tilfeldigvis er innstilt. For fjerne avgangen, eller melde den innstilt, nei det ødelegger sikkert en eller annen statistikk eller er for vanskelig.
Det er ganske åpenbare grep store aktører som VY eller BaneNor kan gjøre for å bedre sanntidsinformasjonen. Gjort den mer troverdig. Eller til og med sannsynlig. Det går typisk to minutter fra ett tog står på en plattform til det neste kan stå der, de står der ikke samtidig eller med bare ett minutts mellomrom. Men informasjonen er evig optimistisk. Jeg klarte ikke å ta høyde for alt når jeg utviklet. Det ville uansett ikke blitt komplett siden det vil være godstog, fjerntog og arbeidstog som ikke vil vises i rutesøk. Og dette problemet har uansett blitt mindre nå som lokaltoget ikke lenger deler linja med så mange andre og Ski har fått flere spor.
![]() | ||
Nei, det neste toget kommer ikke samtidig på samme spor
|
Målene mine ble etter hvert klare:
- Lag en nettside: Ingen treg åpning av app. Teknologi jeg kjenner.
- Få all informasjonen inn på en skjerm.
- Vis tydelig hva som er lokaltog og hva som er reiser via Ski og Follobanen.
- All relevant informasjon må være tilgjengelig, alt annet fjernes.
- La det være mulig å søke opp sammensatte reiser via Ski. Gjerne med mer realistiske overgangstider, og muligheter for å se alternativer dersom noe blir forsinket.
Jeg gikk i gang. For en gammel backendutvikler er ikke javascript favoritten, men jeg har da plukket opp litt her og der og lærte stadig mer. Jeg er ikke så god på farger og design i 2D, så jeg fikk litt hjelp, men rota det nok sikkert til en hel del etterpå... Jeg burde sikkert laget meg et system for å simulere ulike svar fra APIet, særlig for ulike typer avvik. Men strengt tatt var ikke dette nødvendig, for som vanlig oppsto alle slags avvik hele tiden og de varte gjerne en del timer, så det var ikke sjelden det var et nytt avvik å lære av og justere koden for å håndtere bedre. Og så skjedde det samme avviket igjen få dager etterpå så jeg kunne teste de siste endringene.
Til slutt hadde jeg en løsning klar. Teknisk interesserte kan ha glede av å høre om tech stack, og her er den:
- En HTML fil
- En javascript fil
- En CSS fil
- En del små bildefilerLast alle data fra Enturs API, prosesser dem i browser
- En .htaccess fil. For meg er det uaktuelt å ikke tenke applikasjonssikkerhet og få en god karakter på Security Headers.
Alt leveres som filer, ingen logikk på webserver, alt skjer i browser. Filstørrelsene er så små at siden antagelig vil fungere greit selv med 2G på mobil. I en nylig oppgradering ble også størrelsen på responsene fra Enturs API redusert.
Resultatet kan du selv se på https://langhuspendler.no.
Tidligere åpnet jeg en app, ventet på at den var klar, valgte en strekning eller stasjoner å reise mellom og fikk et resultat. Nå går jeg til browseren som allerede er i gang, hopper til fanen med Langhuspendler, trykk på en knapp og får resultatet. Noen ganger mener browseren at siden må lastes på nytt. Da er det som regel bare 9kb som må lastes, så det går fort. Og Entur svarer vanligvis raskt.
Noen sekunder her og noen sekunder her kan du kanskje tenke. Men når jeg løper for å rekke toget, og ønsker å finne ut om jeg egentlig trenger å løpe, da er det genialt å bare måtte trykke på en knapp. Og ikke forholde seg til en app som mener at siden det nå har gått noen minutter siden sist du søkte opp en reise, har du sikkert lyst til å starte helt på nytt og fortelle hvor du har tenkt deg fra og til. Når jeg er på jobb og innser at det snart går et tog det kan passe å ta, da kan et raskt svar være forskjellen på å rekke det første toget eller innse at jeg bare skal fortsette å jobbe fram til neste tog.
Den største forskjellen har jeg merket ved avvik når jeg skal hjem fra jobb og det er få tog som går gjennom tunnelen mellom Skøyen og Oslo S. Da er det bare å komme seg på første tog som faktisk går. Før satt jeg typisk hele veien til Oslo S og sjekket hvilke tog som kan gå og når de går for å finne ut hva som kunne være mulig å rekke på neste etappe. Ofte måtte flere søk til for å vise alle avgangene og få med seg de siste endringene. Og til slutt måtte jeg finne ut hvilke spor toget går fra og hvilke spor jeg kommer inn på. For å få til det siste må jeg endre søket og endre tidspunktet for reisen tilbake i tid. Hele denne prosessen pleide å fylle mesteparten av reisetiden gjennom tunnelen. Det kunne tross alt være forskjellen på å komme seg hjem eller bli stående i lang tid på Oslo S.
Med Langhuspendler sitter jeg og gjør andre ting hele veien. På vei ut døra på Oslo S ber jeg om en oppdatering. Så finner jeg sporet jeg er på (ja, jeg har glemt å se ut vinduet) og sporet på det neste toget jeg skal ta. Tre klikk. 5 sekunder.
I tillegg til å gi raske svar når tiden er knapp gir Langhuspendler meg også mye mer informasjon på kortere tid. Jeg ser lynraskt hvor mye forsinkelser det er, på hvilke linjer det er problemer og om det er relevante meldinger. Alle meldinger om heiser ute av drift fjernes, så de meldingene som er igjen er relevante for togavgangene. Mindre tid brukt på rutesøk, mindre venting på perrongen og mindre irritasjon over rutesøk som var litt for optimistiske eller skjulte viktig informasjon.
![]() |
Dette er en oppsiktsvekkende nyhet |
No comments:
Post a Comment