Since this is the first week of working on this in earnest it’s a good time to consider: where did this project come from? Why start this particular week?
The origin of the idea is pretty simple. The first really good transit schedule app I used was TripView in Sydney, and I used it all the time – and most people I knew did too. I came back to Århus and wished there was something similar here. Then two years ago when they’d started building the new light rail I thought, a good transit schedule app would be so useful to people using the light rail. Most of the time I used TripView in Sydney was for their light rail.
I decided to look into what data was available and wrote to rejseplanen.dk that “own” the transit scheduling data. They had some restrictive open APIs for scheduling a concrete trip from A to B at a particular time, getting the next departures for a particular stop, etc, but no access to the underlying data. Also their terms of use were unreasonable: you had to show their logo and they could block you at their discretion. I asked if they would make the schedules available and they said they were considering it, but nothing beyond that.
I wrote a program that tried to reconstruct the schedules based on the data that was available from rejseplanen.dk and it sort of worked but it wasn’t a good solution. I was getting frustrated because I knew the data was there – they obviously used it themselves and they provided it to others, I’m sure they provide it to google – but I couldn’t get it. Also knowing that their usage terms gave them the right to pull the plug at any time just soured me even more. So I gave up.
After I worked for bookbites this summer I came back to working on my own projects. But getting back into it was just so hard. I’ve also noticed that people around me seem less inclined to believe that what I’m doing actually makes sense. It’s a really abstract thing, even to programmers, and the longer I work on it the more proof I need to provide for people – including future employers – that I’ve actually been productive for the last 3 years. I’m getting to the point where I’m failing at doing that. Though I’m confident that I haven’t.
I need to produce something tangible. So the transit idea came back. Maybe I could reconstruct the data after all, and maybe the terms were bad but not so bad that I couldn’t live with them. The week I was in Washington two weeks ago I convinced myself that I needed to revisit the idea.
This week I decided to dip my toes, I installed the android development tools and created a mapping app which was pretty easy and the terms of use of the google maps api looked reasonable. I looked at google’s transit scheduling app, where I know they use data from rejseplanen.dk, and noticed that the rejseplanen.dk logo had disappeared. Either the terms had changed or they’d managed to negotiate special terms so they didn’t have to show it. There’d been movement of some sort.
I wrote to rejseplanen.dk again and asked about getting the transit schedules and read the terms again and the part about the logo was gone. Then came the breakthrough: I looked around some more and found the schedules, exactly the data I was looking for. It didn’t say in the documentation but it was available in the place you’d expect if you didn’t read the documentation.
The problem, besides availability and terms of use of the data, was how to pay for doing the project. Reconstructing the data like I’d originally thought I had to is work intensive, it requires careful and tedious QA, so I didn’t think it’d be feasible to cover more than just Århus by myself. That’s a good place to start but it’s just too small a customer base to even pay for my expenses. But with the entire data set there for all of Denmark that means that the amount of work required to maintain things goes way down and my customer base explodes. The financials start making sense. It won’t make me rich but it’s realistic that it could cover my expenses at least.
So everything has kind of come together: I’ve had the basic idea for a long time and I know it’ll potentially be useful to a lot of people. I’m highly motivated to start working on it. The data I need has become available. All systems are go.