Kotimaa

Mainos

Mies väsyi VR:n lippukaupan hitauteen – koodasi pai­kan­va­lin­nas­ta mutkat suoriksi

KUVA: Moilanen Jukka-Pekka
Kotimaa 30.1.2016 9:43
Janne-Pekka Manninen

– Milloinkaan en tule tällä härvelillä säästämään yhtä paljon aikaa kuin sen tekemiseen meni. Enää ei kuitenkaan harmita käyttää VR:n verkkokauppaa, koodari Tuomas Salo nauraa.

Tampereella asuva Salo matkustaa usein junalla työnsä ja vapaa-aikansa vuoksi ja käyttää muiden junamatkustajien tavoin paljon VR:n lippukauppaa netissä tietokoneella ja mobiililaitteella. Saloa ärsytti VR:n lippukaupassa kaksi asiaa: puhelimella ei pysty lainkaan valitsemaan istumapaikkoja, ja tietokoneellakin selaaminen on hidasta, sillä istumapaikat pitää tutkia junavaunu ja kerros kerrallaan.

– Latausaika kahden vaunun välillä on puolitoista sekuntia ja se on nykypäivänä verkossa järkyttävän pitkä aika, Salo sanoo.

Salo päättikin muuttaa turhautumisensa hyödyksi ja kokeilla, olisiko VR:n lippukauppaa mahdollista "puukottaa" koodinpätkällä niin, että paikanvalinta näyttäisi koko junan kerralla, myös puhelimessa.

Ja olihan se.

– Aloin tutkia asiaa ja heti kun se näytti mahdolliselta, tuli sellainen olo, että nyt voisi signaloida jotenkin, että kamoon, näin se olisi pitänyt heti tehdä.

Salo käytti koodaamiseen "aika monta iltaa", mutta ennen pitkää No Flash oli valmis.

Yksinkertaistettuna Salon Javascript-koodi ohittaa VR:n lippukaupan paikanvalinnassa käytetyn Flash-sovelluksen, jolloin varaustilanne näkyy käyttäjälle koko junan osalta eikä vain junavaunu kerrallaan.

Eli siis. Sen sijaan, että tilanne olisi tämä:

VR:n lippukaupan paikanvaraus näyttää varaustilanteen junanvaunu ja kerros kerrallaan. Muut vaunut pitää ladata erikseen.

Tilanne onkin tämä:

Tuomas Salon No Flash -bookmarklet piirtää koko junan ja paikkavaraukset kerralla käyttäjän näkyville.

Lisäksi Salon koodia voi käyttää kuka vain. Koodin voi tallentaa verkkoselaimen kirjanmerkkeihin niin sanottuna bookmarkletina ja kun sen kerran on tehnyt, sitä voi käyttää aina paikanvalinnan yhteydessä. Tai, no, periaatteessa kuka vain voi käyttää sitä, mutta käytännössä se vaatii aika paljon viitseliäisyyttä tavalliselta käyttäjältä.

Salo teki No Flashin omaksi huvikseen, lähinnä kokeillakseen onnistuuko käyttöliittymän muokkaaminen.

- Oppimisprosessina tämä oli minulle antoisa. Lisäksi motivaationa oli näyttää, että tämän voisi korjata aika helposti. Pistin koodin jakoon, että sitä voivat ainakin muut nörtit käyttää, ja siinä on myös VR:lle viestiä, että tulisivat tälle vuosikymmenelle.

Harrastusprojektit voivat kannustaa muutokseen

VR on ollut aikaisemminkin yleishyödyllisen nörtteilyn kohteena. Julkisuudessa kerrottiin hiljan espoolaisesta Joonas Rouhiaisesta, joka koodasi junat.net-nettipalvelun, joka näyttää juna-asemien lähtevät junat ja niiden lähtöajat reaaliaikaisesti eli saman näkymän, joka on asemien näyttötauluilla.

– Loistavia parannuksia, ei muuta kuin lisää tällaista.

Mika Heijari, VR Groupin viestintäpäällikkö

VR on myös huomioinut harrastajien tekemiä parannuksia. VR twiittasi palkitsevansa Rouhiaisen kehittämän junat.net-palvelun. VR Groupin viestintäpäällikkö Mika Heijari on mielissään ihmisten tekemistä "hackeista".

– Kannustamme tällaista ehdottomasti. Se on myös meille painetta, meidän täytyy pystyä pistämään paremmaksi, Heijari sanoo.

Salon mukaan julkiset hakkeroinnit ovat osoitus koodarin omasta innokkuudesta ja saattavat olla myös urakehitystä jollekin. Oulussa vuosituhannen vaiheessa opiskellut Salo itse tekee päivätöikseen palvelinpuolen kehitystä melko laajalla työnkuvalla, mutta käytettävyys ja käyttöliittymät ovat lähellä hänen sydäntään.

– Sitä aina miettii, miten asiat voisi tehdä ihmisten kannalta paremmin. Tällaiset harrastusprojektit eivät välttämättä itsessään muuta maailmaa, mutta ne voivat ainakin kannustaa parempaan kehitykseen, Salo sanoo.

Salon tekemä No Flash -bookmarklet käyttöohjeineen löytyy osoitteesta http://vr.aarre.net/

Nörttiosasto – Miten No Flash toimii?

Tuomas Salo: "VR:n sivusto lataa Flash-palikan, joka kysyy kaupan varausjärjestelmästä tiedon, minkälaisia vaunuja junassa on ja miten niissä on vapaata. Varausjärjestelmältä voi kysyä, miltä tilanne näyttää edellisessä vaunussa tai seuraavassa vaunussa, ja jokainen kysely kestää puolitoista sekuntia.

Yksinkertaistettuna homma toimii siten, että Flashin lataamisen sijasta ladataankin vaunukartat ja käydään varaustilanne läpi kunkin vaunun osalta ja näytetään ne käyttäjälle kerralla. Vaunutyyppien vaunukartat on leivottu Flash-kikkareeseen ja isoin homma olikin saada sieltä Flash-tiedostosta vaunukartat järkevästi kuvina ulos, siten, että ne voi näyttää ilman Flashiä.

Flash-tiedosto kyseli varaustiedot XML-tiedostosta. Konvertoin vaunukartat SVG-tiedostoiksi, joita tuo korvattu loadFlash-funktio sitten lataa lennossa ja täyttää varaustiedot XML-pökäleen perusteella.

Loppu oli triviaalia.

Tätä penkoessani näytti siltä, että taustajärjestelmä on älyttömän kömpelö. Flash oli jo aikanaan huono valinta verkkokauppaan, sillä silloin oli jo iPhonet ja iPadit ja tiedossa se, että Flash on väistyvä teknologia."

MAINOS
Tiedätkö aiheesta enemmän?
Lähetä vinkki, kuva tai video!
13222
Mainos

Kommentoi

Näytä kaikki kommentit (137)

Vielä kun näkyisi suunta, johon juna kulkee. Ja kunpa täällä Kalevan sivulla toimisi tämä kommentointimahdollisuus myös Androidin Firefoxilla eikä vain Chromella. Kukahan ne koodais?

Vastaa Ilmoita asiaton viesti

Sen sijaan että kinastelette siitä, kuka ensin hoksas ko. homman, osaisiko joku "vääntää rautalangasta", miten tuon kirjainmerkin saisin iPadiin?

Vastaa Ilmoita asiaton viesti

Ota paksu kirja, ja siitä yksi sivu, aseta sivu IPadisi näytön päälle ja kun kopautat kunnon vaudilla vaikka vasaralla tai paistinpannulla niin kirjanmerkki tallentuu myös Ipadiisi.

Tulisit sinäkin tälle vuosikymmenelle ja heittäisit sen omenan roskiin. Apple ei käytä avoimia lähdekoodeja tai mahdollista tälläistä kehitystä vaan sulkee ja estää kaiken luovuuden ja kehityksen.

Vastaa Ilmoita asiaton viesti

Kiitos neuvosta! Tuon kyllä tyhmempikin ymmärtää. Taidan kuitenkin tehdä paikkavaraukseni läppärillä, jossa Windows ja jossa tuo No Flash toimii hyvin. En kuitenkaan viitsi kuljettaa sitä mukana, iPad kevyempi.

Vastaa Ilmoita asiaton viesti

Minulla iPad air 2 ja sain toimimaan helposti. Eli ohjeiden mukaan vaan asetat ensin kirjainmerkiksi sen # version siitä "NoFlash" koodista ja sen jälkeen menet kirjainmerkkeihin ja muokkaat sitä kirjainmerkkiä ja poistat sen # merkin ja sitä edeltävät kirjaimet. Sen jälkeen menet vr.fi ja valitset junan. Sitten kun näet valitse paikka napin niin samalla välilehdellä avaat kirjainmerkin "No Flash ❤️" Silloin pitäisi tämän paikanvalinta nappiin ilmestyä sydän ja siitä sitten painamalla pitäisi toimia. Jos ei tällä toimi niin joita ensin yrittää valita paikka jolloin tulee laatikko että vaatii flashin...paina ruksista ja tee sama että avaat kirjainmerkin no Flash jne.
Toivottavasti muutkin saavat tämän toimimaan sillä ei se niin monimutkaista lopuksi ole.
Ja kiitokset hänelle joka tämän nyt tekikään

Vastaa Ilmoita asiaton viesti

Kyseisen firman palvelu on erinomaista ja verkkokauppa on toiminut loistavasti aina. Sinänsähän kaikki ohjelmointityökalut ovat tuontitavaraa ja niitä soveltaa itse kukin omista tarpeistaan käsin parhaaksi katsomallaan tavalla. Jos haluaa parantaa jo toimivaa niin ei kun kauppaamaan vaan omaa tekelettään vaikka maailmanlaajuisesti! Onnea yritykseen!

Vastaa Ilmoita asiaton viesti

Eikö VRn IT-osastolla yhtään hävetä? Mikäs olikaan teidän osaston budjetti?

Vastaa Ilmoita asiaton viesti

Voi ! ja voi! sentään olen ollut tuosta kovasti tietoinen jo pitkään ja soveltanut käytännössä. Kysyisinkin mitä uutta ja ihmeellistä tässä Javascript-koodin ohittamisessa asian perehtyneelle on?

Vastaa Ilmoita asiaton viesti

Ohittaa julkisen kauppapaikan tuoteominaisuuden yksityisellä sovelluksella omalta koneelta käsin? Käyttää joka uskaltaa.

Vastaa Ilmoita asiaton viesti

Pointti on toki validi jo kolmannen osapuolen injektiona tai siis uudelleenkirjoittamisena.. mutta Who Cares?

Lokaalia .js on kyllä käytetty kiertämään ärsyttäviä alkuperäistuotteen bugeja, urlejen obfuskointeja ja uudelleenohjauksia.

Vastaa Ilmoita asiaton viesti

VR voisi lisätä maksumahdollisuuksiin puhelinlaskussa maksamisen. Ei tarvitsisi niitä korttinumeroita aina erikseen näpytellä.

Vastaa Ilmoita asiaton viesti

Kiitos paljon 🌼 iPad ja puhelin/VR:n paikkavaraus on saanut minut vaihtamaan junamatkat lentoihin. Tosin hintakin on ollut halvempi..

Vastaa Ilmoita asiaton viesti

Tämän on seuraus siitä kun tilaa luulolta ylikalliin järjestelmän sen sijaan että palkkaisi muutaman asiantuntijan jotka oikeasti tietävät mitä ovat tekemässä.

Vastaa Ilmoita asiaton viesti

Tai kysyisi käyttäjiltä. Järjestelmälähtöisyys ei ole kauhean käytyäjäystävällinen ajattelumalli.

Vastaa Ilmoita asiaton viesti

Hieno koodaus, jolla on hyvä osoittaa kuinka paljon me tavalliset kansalaiset teemme ja joudumme tekemään eri organisaatioiden ja firmojen työtehtäviä päivittäin.
Tällä perusteella kansalaispalkka pitäisi saada suomalaisille.
Nyt olisi korkea aika tehdä selvitys; Miten paljon tunteja viikossa teemme eri organisaatioille ja että sen laskennallisen työtuntimäärän perusteella sitten kyseiset tahot joutuisivat maksamaan "kansalkaispalkkarahastoon" korvauksia kansalaisten tekemästä työstä.

Vastaa Ilmoita asiaton viesti

Järkevä juttu. Seuraavaksi Tuomas voisi koodata Trafin ajoneuvon omistajanvaihdoksen uusiksi. Nyt kun ensikertaa teimme ostajan kanssa vaihdoksen niin koko homma meni täysin arvontana. Ohjeet olivat pitkät ja monimutkaiset ja vaihtoehdot olivat moninaiset. Looginen etenemis järjestys myyjän kannalta puuttui tyystin. Asia tuli hoidettua yritä ja erehdy -menetelmällä.

Vastaa Ilmoita asiaton viesti
Näytä kaikki kommentit (137)
Mainos
Mainos
Mainos

Paikallissää

Varoituksia voimassa!

Maan keski- ja itäosassa, Varsinais-Suomen, Uudenmaan, Kanta-Hämeen, Päijät-Hämeen, Pohjois-Pohjanmaan ja Kainuun maakunnissa sekä Etelä-Lapissa kehittyy iltapäivällä ukkoskuuroja, joiden yhteydessä esiintyy voimakkaita ukkospuuskia, yli 15 m/s.

Juttutupa

Päivän tykätyin viesti

Orjatyö 2.0

Nyt TENAVATÄHTI puhuu täyttä asiaa. Asia koskee kaikkia yhteiskuntaluokkia vain rikkaat ovat out. Halpatyövoima työntyy ... Lue lisää...
hh66

Jari ja sarjakuvat

Jari

25.6.
Jari on tauolla. 26.6. - 3.8.

Naapurit

30.7.
Mainos

Uutiset osastoittain

Palvelemme sinua

Asiakaspalvelumme auttaa sinua mielellään Kalevan tilausasioissa ja muissa lukijan palveluissa.

Asiakaspalvelu

(08) 5377 610 (ma-pe 9-16)

www.kaleva.fi/asiakaspalvelu

Kalevan medioilla tavoitat 370 000 lukijaa.

Yrityspalvelut

(08) 5377 180

www.kaleva.fi/yrityspalvelut

stats-image