Skaffa en egen hemsida   

Ladda om sidan/Synkronisera inloggning
 

P1 Kaliber om tågförseningar

För tre år sedan lanserade jag Tåg.Info, en webbtjänst som samlar in och presenterar tågdata. Syftet var att presentera statistik över mina resor, som motvikt till Trafikverkets punktlighetsstatistik som jag upplevde reflekterade verkligheten illa.

 

Detta blev upptakten till appen Tågtavlan, ett uppdrag för myndigheten Trafikanalys, webbtjänsten Tågstatistik.se och idag medverkade jag i P1 Kalibers granskning av tågförseningar.

 

Öppna data ger större möjligheter än man kan ana. 

 

Söndagen den 24 februari 2013

Allmänt | Permalänk | Kommentarer [3] Kommentera detta inlägg

 

Tågpositioner och SSL i Tåg.Info:s API

Tåg.Info har sedan en tid tillbaks använt öppet tillgänglig data från Trafikverket för att räkna ut var varje tåg befinner sig, baserat på tågplan, tidtabell och förseningsinformation. Resultatet visas bland annat på www.tågkartan.se och i iPhone/iPad-appen Tågtavlan.

 

Det finns ingen GPS-information om Sveriges tågtrafik fritt tillgänglig, och därför har det varit svårt att bedöma korrektheten i de positioner som Tåg.Infos algoritm räknar fram. I och med releasen av SJ:s app "Min Resa" som har en liknande funktion har jag dock kunnat göra stickprovskontroller och jämfört positionerna som SJ:s app visar med dem i Tågtavlan, och än så länge är det förvånansvärt likt.

Jag tror inte detta beror på att Tåg.Info verkligen lyckas räkna fram tågens verkliga positioner, utan snarare att SJ inte heller använder "äkta" GPS-data i dagsläget utan istället visar vilken trafikplats tåget senast passerade. Att det kan ta 5-6 minuter innan positionerna uppdateras i SJs app tyder också på detta. Metoderna är i så fall alltså likartade, Tåg.Info uppdaterar dock positionerna varje minut genom att extrapolera från senast passerade trafikplats.

SJ har tillgång till GPS i sina modernare tåg, och man får anta att de i framtiden kommer börja sammanställa och visa denna information i sin app också.

 

Eftersom Tåg.Info:s tågpositioner visat sig stå sig ganska bra gentemot de positioner som SJ:s app visar så finns de hur som helst numera tillgängliga i tåg-API:et, som även kan nås över SSL (HTTPS).

 


 

Jag får emellanåt kritik för att jag inte delar ut API-nycklar hur som helst, utan ställer vissa enkla krav på motprestation och hur API:et används. Så här ser jag på saken:

 

Tåg.Info:s API är baserat på öppen offentlig data från Trafikverket, men den bearbetas och kompletteras med algoritmer som t.ex. beräknar ny förseningsinformation när sådan saknas i Trafikverkets data och ovan nämnda tågpositioner. Dessa algoritmer (och den data de producerar) är resultat av arbete som jag lägger ned mycket tid och energi på, och de förfinas och justeras ständigt. Att tillhandahålla ett API som är så flitigt använt som Tåg.Info:s kräver dessutom både resurser och löpande underhåll.

 

Skälet till att offentlig (dvs skattefinansierad) data börjar öppnas upp är inte att staten vill vara bussig. Genom att ge företag tillgång till offentlig data ger staten oss möjlighet att skapa tjänster och produkter baserade på denna data, som vi kan tjäna pengar på och därmed ge staten ökade skatteintäkter.

 

Syftet med öppen offentlig data är inte att vi som skapar derivat av denna data ska tvingas lämna ut resultatet av vårt arbete till utvecklare som vill att någon annan ska göras deras jobb. Alla gillar öppen data, men applåder betalar inga räkningar.

 

Missnöjd med Tåg.Info:s API-villkor? Datan som API:et bygger på finns öppet tillgänglig för alla. Sluta gnäll och lär dig programmera.

 

Lördagen den 1 oktober 2011

Taggar: , , ,

Allmänt | Permalänk | Kommentarer [3] Kommentera detta inlägg

 

SJs app läcker resenärsinformation

Uppdatering 21:56: SJ har under kvällen täppt till informationsläckan. Det är inihelvete snabbt agerat, och möjligheten att kartlägga deras användare är därmed eliminerad. Nedanstående information är således att betrakta som inaktuell och hopplöst föråldrad.

 


 

Igår lanserade SJ till slut sin efterlängtade app. Många har påpekat dess likheter med Tågtavlan, vilket må vara hänt - Tågtavlan kom till för ett och ett halvt år sedan på grund av att SJ då saknade en dylik app, så att det finns likheter är egentligen inte särskilt konstigt.

 

SJs app kommunicerar, likt Tågtavlan, över ett öppet HTTP-baserat protokoll. Erik Petterson har kartlagt detta protokoll, och gjort en intressant upptäckt: Om du använder SJ:s app, så exponerar de öppet alla bevakningar du och alla andra har lagt upp på nätet, tillsammans med telefonernas unika ID (UUID) som i förlängningen kan användas för att identifiera användarna. Låter det illa? Det är det:

Vem som helst kan ladda ned denna information och använda den för att identifiera deras kunder och kartlägga deras resevanor.

Att få tag i informationen är så enkelt som att klicka på en länk. Att koppla telefonernas ID-nummer till deras ägare är lite trixigare, men det finns goda skäl till att både Google och Apple är tydliga med att telefonernas unika IDn inte ska strösslas med hur som helst.

 

En annan pikant detalj är att samma öppna gränssnitt till och med kan användas av illvilliga individer för att lägga till, ta bort och/eller ändra alla bevakningar.

 

Jag publicerar inte direktlänken till datat här, men utförlig teknisk information om kommunikationsprotokollet hittas på en länk som jag har raderat eftersom det inte finns någon poäng med att fortsätta banka på den här hästen.

Att använda sig av det tror jag dock är en dålig idé - detta är ett uppenbart privat gränssnitt mot ett företags data, även om de har lämnat ytterdörren på vid gavel. Ett skolexempel på security through obscurity, kan man säga.

 

Vid 15-tiden kom svar från SJ: "Det finns ingen personlig info i appen, inte ens UD ID. Det vi kallar device ID är endast kopplat till appen. Trots det ska vi göra om den så den blir krypterad så fort som möjligt."

 

Det finns inget fel, men det ska ändå åtgärdas. Glasklart?!

Min iPhones UUID (hämtat med Ad Hoc Helper):

 

 

Optisk illusion Min iPhones UUID i subscriptions.json:

Jag kallar slarvigt denna teckenserie för UUID (Universally Unique Identifier), en mer generell term än UDID (Unique Device Identifier). Båda uttrycken används av hävd i iOS-världen för att beskriva samma sak, nämligen telefonens unika ID-nummer. Se t.ex. http://www.ispeeddial.com/how-to-find-your-iphone-uuid/.

 

 

Strax efter att dessa bilder postades återkom SJ med följande besked på Twitter: "Vi var övertygade om att vi hade rätt. Nu undersöker vi vad detta beror på och ska åtgärda snarast. Vi hade fått försäkringar från vår dataleverantör att mobildevise-ID inte skulle synas. Nu går det bevisligen att spåra användartelefonen. Det är olyckligt och ska ändras snarast". Jättebra, och föredömligt snabbt agerat med tanke på att problemet upptäcktes vid lunchtid.

 

Jag har även pratat med SJ:s projektledare Tobias över en svajig mobillinje. Jag kunde inte urskilja några svordomar (vilket hedrar honom), och såvitt jag kunde förstå hade de alltså beställt en lösning där interna, slumpmässiga ID-sekvenser skulle användas istället för UUID och även fått detta bekräftat av leverantören idag. Därför var de helt säkra på att ovanstående beskrivning av problemet var fel, och därav deras tvärsäkra, men felaktiga, första svar. Sannolikt är det dessutom endast iPhone-appen som har detta fel.

 

Lösningen läcker UUID:s som ett såll i dagsläget, men det beror alltså på att leverantören har tabbat sig. Foliehatt av, således, och som utvecklare som också gjort sig skyldig till ett och annat misstag genom åren tänker jag inte börja kasta sten i det glashuset.

 

Torsdagen den 29 september 2011

Taggar: , ,

Allmänt | Permalänk | Kommentarer [4] Kommentera detta inlägg

 

Driftstörningar

Internetleverantören TDC har för närvarande driftproblem i Katrineholmsområdet, vilket påverkar de tjänster jag driver. All datatrafik går för närvarande över en reservanslutning med låg kapacitet, vilket bland annat innebär att webbtjänsterna upplevs som tröga och Tåg.Info inte kan hämta information från Trafikverket i den takt som behövs.

 

Felet beräknas vara avhjälpt vid lunchtid imorgon. Se även http://driftinfo.tdc.se/.

 

Onsdagen den 7 september 2011

Driftinformation | Permalänk | Kommentarer [0] Kommentera detta inlägg

 

Tågtavlan Jumbo på Espresso House!

Igår installerades den första jumboversionen av Tågtavlan på Espresso House, Vasagatan 1 i Stockholm. Nu kan tågresenärer i lugn och ro ta en fika i väntan på att tåget ska gå, istället för att stå och trängas framför tavlan i centralhallen på Stockholm C!

Tågtavlan Jumbo består rent tekniskt av samma applikation som närmare 50,000 personer har laddat ned till iPhone och iPad, men den körs på en specialanpassad linuxplattform kopplad till en stor LCD-skärm. Tågtavlan anpassar sig automatiskt till den enhet den körs på och storleken på displayen. Denna höga portabilitet är möjlig tack vare att Tågtavlan är en javascript-applikation baserad på ramverket Phonegap, istället för att vara skriven i ett plattformsspecifikt utvecklingsspråk och därmed låst till en viss plattform.

 

Tågtavlan Jumbo kan visa alla stationer i Sverige, och levereras färdig att anslutas till en befintlig internetanslutning och bildskärm. Den sköter sig helt själv - bara att koppla in och starta med en knapptryckning!

 

Tisdagen den 5 april 2011

Taggar: ,

Tågtavlan | Permalänk | Kommentarer [0] Kommentera detta inlägg

 

 
nil

 

Taggar

Tågtavlan App Store iPhone Tåg.Info Cloudmade dubbelmoms Apple moms Skatteverket API Android gaming location services McDonalds Rovio Zigi.com SMS apputvecklare iJuholt Tågkoll SSL tågpositioner HTTP SJ EU

Kategorier

Allmänt

Driftinformation

iPhone

Tågtavlan

Webb

Arkiv

 2013

 2012

 2011

 2010

 2009

Bloggar

Zoomin: Nyheter & feedback

Länkar

Nyligen.se

Flöden

RSS-flödeRSS 2.0

 

.

Follow tstorm on Twitter

View Theodor Storm's profile on LinkedIn