Please use the comment form under each blog entry to give us feedback items on blog items.

If your comment is not related to a blog entry, please use the general feedback form.

CycleStreets blog

News from CycleStreets

Archive for the ‘Developers’ Category

Upgraded hosting for CycleStreets (Technical post)

Saturday, October 29th, 2011

We’ve recently completed a switch over of the whole CycleStreets system to upgraded hosting. Our previous primary server has been extremely reliable and, having just checked, I find it has been up for 795 days, and has only been rebooted once in the last two-and-a-half years.

The new primary server is needed to support expansion of the journey planner, to handle the growing amount of data we manage in the CycleStreets system and to provide increased reliability of our services,  as well as for our new project, Cyclescape. We now also have additional redundancy.

The switchover has turned out to be a rather more complex procedure than expected as there are quite a number of different components that are required to make CycleStreets all work smoothly. This recent switchover it has helped to tighten up a number of areas. This will make future switchovers easier to handle, and a major benefit has been a restructuring of our documentation.

We have tighted up how we handle file permissions and this means that developers no longer need sudo access to rollout code onto the live server. The structure we’ve got for that feels a lot cleaner and has improved the security of the system.

The hardest part of all this was the moment of switchover itself. As the system is live and being used to generate thousands of routes per day we aimed to have as little downtime as possible. The data on both systems was synchronised before turning off the live server and switching over the DNS. This was done in the small hours and because of careful prepartion was completed in about 15 minutes. When the new server became live it was impossible to tell that anything had changed. Only a few things were missed out in the switchover – the automatic tweeting of our photo-of-the-day, and the updating of a missed DNS record – but both of these are now fixed.

The system does feel more responsive now, and we’ve noticed that some of our scripts run twice as quick as previously.

We are very grateful to our hosts, Mythic Beasts, for their continued support and technical advice.

Funding for this upgrade has been partly helped by a grant from Cycling Scotland and from donations.

Cycling Scotland

Cycle campaign toolkit: introducing our developer team

Friday, September 23rd, 2011

GeoVation

Progress on our cycle campaigner toolkit is steaming (pedalling?) ahead! Coding work began on Monday, and will continue solidly for the next few months.

The development of the toolkit has been possible thanks to our GeoVation award, which secured us £27,000 of funding. GeoVation is an Ordnance Survey initiative and forms part of the Ideas in Transit project with funding from the Technology Strategy Board and the Department for Transport.

We're pleased to introduce our developer team, Andy Allan, Andrew France, plus myself (Martin Lucas-Smith) from CycleStreets as project manager. Andy and Andrew will be working in it on solidly for the next few months so that a large amount of development can be done.

We're also approaching various designers and design companies for the work on the design and information architecture aspects of the project.

Andy Allan is a freelance developer and cartographer, specialising in all things related to OpenStreetMap. He is the creator of opencyclemap.org, the award-winning map for cyclists used by hundreds of websites and mobile applications, along with his recently developed transport map. He has helped develop the technology that powers OpenStreetMap including the online editor, Potlatch2, and is a member of the OSMF Operations Working Group. Andy lives and works in London but prefers cycling elsewhere.

Andrew France is an experienced web application developer specialising in Ruby on Rails. A generalist by nature, he is just as happy designing intuitive front-end interfaces and writing JavaScript as he is constructing database schema. Andrew has worked on a variety of systems from charity sites to hazardous chemicals management and always looks forward to implementing new ideas. He is a keen traveller, cyclist, runner, and imbiber of ale.

Martin Lucas-Smith is one of the two lead developers of CycleStreets. He'll be project-managing the toolkit project and getting involved in the Rails coding in the latter half of the project. For CycleStreets, Martin tends to deal with non-routing code and structure of the CycleStreets codebase; he also deals with most of the CycleStreets project management so that fellow developer Simon can concentrate on the complex routing work. Martin's actual job is as a Web Developer at the Department of Geography , University of Cambridge.

Get involved in an exciting open source project!

The toolkit is to be developed as an open source project, with the code on Github. It will be written using the technologies of Ruby on Rails (v3.1), PostgreSQL, and jQuery.

Volunteers are needed to contribute to the code from the end of October. If you'd be interested, do let us know.

We're aiming to build a project team who will develop and look after the system from December onwards. By that stage, the grant-funded development work will mean that the system is already fully-featured and well coded so should be in a good state to add functionality to.

Timeline

We'll have:

  • Screenshots of our 'alpha' available by 21st October.
  • A beta available to a few campaign groups from by 4th November. If your group would like to be a 'guinea-pig', do let us know! We'll start to open it up to more groups in the month following.
  • General availability of the site around 2nd December, with bugfixes and additional features leading to the week before Christmas.

Stay tuned to this blog and our Twitter feed for updates.

We're also seeking an additional grant of around £10k to enable us to undertake solid coding on some of the more advanced features that groups have suggested, particularly do deal with more complex issues like cross-group sharing, which will increase the utility of the system considerably.

Designing the toolkit

We held our first developer meetings this week to develop the specification further and do some wireframing:

   

   

New section: Points of interest, UK-wide, easily browsable

Thursday, September 22nd, 2011

We're pleased to announce the launch of a major new section of our website:
Points of interest that you can click on to view and select for your journey.

Points of interest

We've integrated OpenStreetMap location data so that you can now click on points on the map. Just go to our journey planner tab and you can use the presets like bike shops, cafés, pubs, and many more.

(Mobile app developers: This data is also available through our API – see below.)

For instance, stations:

If you select a point, it is clickable. A Google Street View picture of the location will be shown, if it's a roadside location:

There's a link in the popup to the place's website if it has one.

There are lots of different POI types available:

You can browse locations anywhere the UK, for instance to find these independent bike shops in London:

Please add locations to the map!

If a place you know of doesn't appear in the map, please contribute your knowledge to OpenStreetMap by using the Edit section of our website. Warning: it can be quite addictive!

Or perhaps no-one's added a location's website yet? Click on the 'add it' link in the popup shown above. Follow the link, click on the icon, click on 'Advanced' and then enter 'website' on the left and the URL on the right, and click Save. You'll need to create an OpenStreetMap account if you don't have one already.

You must not copy things from other people's maps, however – additions and edits must be based on your local knowledge of an area.

API

This data is now all available through our API so that it can be integrated into your cycle routing app.

For full details, see our API documentation.

(We hope to have this functionality in our own apps shortly. If you can help patch it in, please branch our app repo and pitch in!)

Cyclestreets iPhone app updated with new features and fixes

Tuesday, August 30th, 2011

A new release of our iPhone app is now out. Go to the app store updates page and update today, or download the app if you don't already have it (it's free!).

Version 1.5.1 fixes various reported bugs (including the 'freezing map' bug that affected some installations).

So what's new?

Firstly, we've made various improvements to the itinerary listing page. There are more icons on the listing view to help distinguish the type of paths you'll be cycling on. We've also rearranged the itinerary map view to put the left/right buttons nearer your thumb, and enabled the Photos-en-route to be disabled. In areas like London and Cambridge these sometimes obscured the road names.

   

We've also added a new feature for Ordnance Survey fans – the OS Street View (open data) map is now available experimentally. You can switch the app over to this OS style (or to OpenCycleMap) on the settings page.

   

Next, the OpenCycleMap map view works much better. This is the second map option which highlights cycle paths and shows hills.

The app was previously using an older and slower map server (entirely our fault, not Andy who runs it!). We've updated to the recommended server, and ensured that you can zoom all the way in. As a result, OpenCycleMap now loads much quicker and in all its beautifully detailed glory!

   

Station codes have been added to into the search results – a mini-feature which some people will find useful.

If you take your bike on trains, or perhaps travel to London before hopping on a boris-bike (or indeed now to Newcastle on a ScratchBike!), you can enter the station code (e.g. KGX for King's Cross, CBG for Cambridge), and the app will find that directly. This is particularly useful if you regularly make cycle journeys to/from particular stations.

   

The full list of changes is:

  • OpenCycleMap map style now loads faster and to a higher zoom level.
  • New Ordnance Survey map style option (OS open data Street View).
  • Can now search for stations using the station code (e.g. KGX for King's Cross)
  • Better support for journey road types.
  • Ability to toggle route photos on/off in the itinerary view.
  • Freezing map bug fixed.
  • Bug fixes and UI enhancements.

An open source project – developers wanted!

This update to the app is thanks again to the hard work of Neil Edwards, who has done a few more days' work on it in his spare time. We can really recommend Neil if you need any iPhone app development doing.

The app is open source, and we'd really welcome volunteers to join our team. The code is on GitHub is available, and there are a range of new features and fixes we'd like to add – both small and big. So if you know Objective-C and would like to contribute to an app that's planned over 2 million km of cycle routes, do get in touch. Neil will be doing a tech posting soon, but don't let that hold you up.

Other platforms

Users of other types of phones need not feel left out … Our Android app will see another update soon. And our mobile web site is almost ready for release, meaning Blackberry/Windows/Symbian owners should have access to our routing on the go shortly – stay tuned for a blog post soon.

Toolkit: technical options report

Thursday, August 18th, 2011

This is a technical post – you can stop reading now if you're not into web development!

We've been continuing to develop the spec that we recently published for the toolkit.

Several options for development have emerged.
We outline these in our Technical Options Report.

We'd welcome any comments.

CycleStreets has secured £27,000 of funding as a winner of Geovation – GeoVation is an Ordnance Survey initiative and forms part of the Ideas in Transit project with funding from the Technology Strategy Board and the Department for Transport.

CycleStreets Android app: join our code team

Thursday, August 4th, 2011

Jez Higgins is the lead developer of our Android app. Here he writes about getting involved in the project.

Until Christmas last year, I'd never even thought of writing software for an Android phone. Yet within a month of googling "Android development quick start" I was committing code to the CycleStreets Android app. This indicates two things – writing code for Android is pretty easy to get in to, and the chaps at CycleStreets are pretty welcoming.

I don't remember quite how that happened. I'd used the website for a while and probably registered in the back of my mind that an Android app was in the works. When I wanted something more substantial than a toy example to play with, there it was on GitHub just asking to be forked. The basic shape of the code was there, laid down by Theodore Hong and incorporating pieces from Jono Gray's BikeRoute and Christopher Fraser's Cycloid. I made a little change and submitted a patch, something GitHub makes very easy, and that was that.

Because I have a job, and kids, and a dog, and the other joys and encumbrances of modern life I worked on the app in my space in between. Half an hour in the evening perhaps, an hour on the train. Bit by bit, piece by piece, it came together and really quite quickly. Because the heavy lifting of mapping and routing, provided respectively by the osmdroid library and by the CycleStreets website via its API, work could concentrate on wiring things up and making things happen. It wasn't without incident, of course, but the Android platform is well documented and surprisingly few quirks. Most of the time it was more a question of "how do I do this?" rather than "why is this happening?"

The app went live in the Android Market last month. At time of writing it's installed on around 3,250 people's phones. It might not (yet) be the most widely used piece of software I've worked on, but it's by far the most useful, and one of the most fun and satisfying.

Android developers: come on in

If you feel like dipping your toe into Android development but didn't know where to start, come and have go. If you're already swimming around in there, but fancy working on something that really does make a difference to people's lives this could be the project for you.

  1. Install the app so you know what it does
  2. Grab the code from GitHubgit@github.com:cyclestreets/android.git
  3. Have a read through the current issues list or just get in and start working the code.
  4. and .. Say hello [info@] – we'd love to hear from you!

Jez

CycleStreets iPhone app – new version now out

Wednesday, July 6th, 2011

We're pleased to announce the launch of our updated iPhone app – version 1.5.

So what's new? Well, it's mainly a tidy-up release (looks prettier!) with a few new features. We've also been getting the app ready so we can add new stuff next.

  • The itinerary shows route summary details – a much-requested feature
  • Addition of Shortest route as new route type – for those who like hills (since this mode ignores hills!)
  • Fewer geolocation requests, so battery lasts longer
  • Nice new icons throughout (thanks to designer Jamie)
  • New settings page
  • Various screens redesigned
  • Tidier interface for planning
  • Tile refreshing more frequent, to avoid stale map images
  • Clearer 'Start' and 'Finish' markers
  • Confirmation dialog when setting a marker
  • Various bug fixes
  • Code rewrites to enable future new features

Download the updated version from the App Store, and please do review the app!

This release has been the hard work of Neil Edwards, who also wrote the great Red Nose Day app earlier this year. Neil's contribution to the CycleStreets project has been tremendous, and his changes set the scene for future improvements.

The top priority feature for our next release will be the ability to switch directly between different route types, e.g. change to fastest route having planned the quietest route. We've added this to our other apps for Android and mobile web (under testing).

If you'd be interested to help develop the code, please do get in touch! Here are the features we'd like to add - can you help?

   

The itinerary screen is now a bit more helpful, with the route summary shown and walking bits more obvious:

   

We love Jamie's new icons for the Photomap (which have also been used in our other apps)! :

Settings and saved routes are also improved – and you can see that Shortest route is a new option now available (though in practice the routes are not as usable, since it's not a very clever form of routing – it really is just the shortest route!) :

   

CycleStreets: Our Story – presentation to Net2Camb event

Friday, January 14th, 2011

We really enjoyed the January Net2Camb Meetup event, where one of our lead developers, Martin, gave a talk 'Our Story'. Thanks to Claire for organising the event and everyone who came!

It was particularly enjoyable as it was a rare opportunity to talk about the business and competition aspects of CycleStreets, about the challenges we face, and the future opportunities for the project.

We were also pleased that a couple of people came forward as new volunteers!

Here is our presentation [link]:

 

 

 

 

View more presentations from CycleStreets.

iPhone app open sourced – and can you help us develop it?

Sunday, October 31st, 2010

iPhone app screen

Our iPhone app has now been open-sourced and available on GitHub under the GPL version 2 license!

Roadmap – project team needed!

A few weeks after the initial release of the app, a crashfix release (1.01) was issued. We've not heard of any more crash reports since.

In terms of a roadmap (no pun intended!), if people come forward to help:

For version 1.1 we'd like to implement a range of small fixes, which basically tidy up rough edges, usability fixes, text changes, and implement smaller improvements that didn't make it into the 1.0 release. Also, any improvements in stability and responsiveness would be good to include, if developers can spot optimisations that could be achieved.

For version 1.2, we'd like to add native iPad compatibility (we understand this doesn't involve too many changes – mainly screen layout definitions), a places directory, and a few new features related to the Photomap.

For version 2, we'd like to fulfil our long-standing and ultimate aim for the app, which is a full turn-by-turn satnav mode with speech directions. We obtained a quote back in January for voice synthesis of street names – which would be on a share-of-app-price basis. This means that such a feature would mean a 'CycleStreets Pro' paid-for upgrade. However, we want to keep the standard app free, and so that would have voice directions that don't involve reading street names. The other key feature for version 2 would be upload of GPX files.

These are our own ideas and those of people who have submitted feedback so far. Naturally we'd welcome any further ideas and the priorities of developers who can volunteer their time.

We also have an innovative proposal that we are about to submit to GeoVation which would benefit the app (and potentially other mobile apps using our routing) – stay tuned.

Bug list – can you spot how to fix these bugs?

Can you spot how to fix these bugs or implement suggested new features? :

If so, we'd love to hear from you!

Project team

We're keen to build a project team to take the app forward. There are various changes and bugfixes we'd like to put in that didn't make it in time for the release, as well as add new features that people have been requesting.

If you'd be interested to implement fixes, and thus join our project team, drop us a line and we can give you rights to write to the repository.

Just to be clear – we don't have any funding, so this is an open source effort, but you will receive the warm glow of users of the app, who are planning thousands of route km per day!

The license

The code has been licensed under the GPL version 2, as it's the one we're most familiar with already and as it is a true copyleft license.

However, we recognise there is debate within the iPhone development community about the suitability of this license given the rules applying to release of software on the app store, so we are happy to consider applying dual-licensing, preferably a copy-left license, but will need some advice on this as we are less familiar with other licenses.

PS – Other apps

Our other apps – Android and Mobile HTML versions – are coming along. We hope to have news soon, though they will be released more quickly if further volunteers come forward to help out and/or if funding can be found.

Android app screenshot    Mobile HTML app

Current priorities

Monday, April 12th, 2010

At present, we've a couple of areas of work that we've been prioritising, to address known weaknesses with the system.

Firstly, we've been working to reduce the 'wigglyness' of some routes. The problem is that the journey planner engine does not yet take account of turn delays. Once this is finally rolled out, routes will be straighter and easier to remember.

Secondly, and following our recent Developer Day, it was very clear that we need to rewrite the core network traversal algorithm in a more efficient programming language, and we've started some exploratory work on this. The effect of this will ultimately be to speed up the route planning considerably, and to enable us to add long-awaited features like draggable way-points. It will also mean that we can tackle more quickly problems where the weighting of the data is wrong – e.g. how the engine sometimes gives busy roads when that is potentially avoidable. These are all things which we will address before moving out of 'beta'.

Thirdly, we're keen to address user interface issues, particularly increasing the map size and de-cluttering some screens such as the itinerary result page. If you are a user interface designer who could help us with this, please do get in touch!

Lastly, we're working hard to get more funding. The project so far has been achieved on under £12,000, and our two main developers have worked entirely unpaid so far. Our main target is to get 1 full-time plus two half-time funded developer positions for 12-18 months, so that the project can then be self-sustaining. This will enable us to enable us to ramp up routing quality much more quickly – including adding more attributes in – and to implement new, innovative features faster.