Donate using PayPal

CycleStreets blog

News from CycleStreets

Archive for June, 2012

Journey planner for Samsung Bike Week

Sunday, June 24th, 2012

We’ve created a customised cycle journey planner for the Samsung Bike Week website.

We hope you’re enjoying Bike Week, and using it as an opportunity to spread the joys of cycling!

Each event has a new ‘Plan your route to the event’ link, which pre-fills the destination box, making it even easier to promote events and encourage people to come.

We’re able to create customised journey planners for a variety of organisations – such as councils, companies, and cycling promotion organisations. There’s a small fee to cover its hosting for 3 years and to support ongoing development of the routing. Do get in touch if you’d be interested to explore the possibilities.

Open sourcing update

Friday, June 22nd, 2012

We’re making good progress on this, after a stalled attempt to sort things out back in March when a busy period then struck. Our previous update has some background on this overall initiative.

Firstly, we’re planning a Developer Day in late summer – more news soon.

The last month or so has seen significant refactoring of some of the least clean parts of the codebase. In particular:

  • The XML API generation framework has been tidied considerably, with a long-standing and obstructive dependency finally removed. There is more to be done later.
  • The Photomap code has been restructured. For a long time it has been shackled by a wrong class hierarchy that saw all access (e.g. viewing photos, adding them, browsing on the map) going through an overarching class that really should just have been a resource class. Over a several-day refactoring this class hierarchy was reversed.
  • The code for addition of photos in particular has been rather a mess for a while because there are many different GUIs writing to it. Work to move the model-related code to a separate model class is seeing this cleaned up, and various lurking bugs have been removed in the process.

Some of the work has been very difficult even for us as the original authors(!), with some of it quite painful due to the age of the code and the number of hacks it had acquired. It is code areas like these which we know would have put people off even considering helping because the risk of breakage was very high to an unfamiliar author.

A Git server has just been installed (thanks Wookey!), so we are about – at long last – to move away from SVN which will enable us to move to a multi-branch model and, more importantly, then to move to GitHub.

We’ve thought long and hard about whether to retain the SVN history during the migration to Git. I’m pleased to say that we do intend to retain this (unless any big problems arise), with over 9,000 commits therefore being carried forward into the new Git repo to be created. In coming to this conclusion we took the view that, despite presenting some risks, it means that the history of the development of the system – which is effectively its documentation – is retained. This is particularly important because of the code was never designed with unit tests in mind (unlike our new Cyclescape codebase).

We’ve identified most of the sensitive strings such as passwords and API keys that will be stripped out as part of this process.

Initially we planned to split out the split the codebase into around 7 separate repositories (e.g. Journey planner, Photomap, common, API launcher, etc.), but in retrospect we think this would cause more problems than it solves in terms of ease of installation. So instead we are planning to split the sections of the code more simply into directories at the top-level, and do this after putting the code on GitHub.

Stay tuned for imminent updates!

CycleStreets Android app is one year old

Thursday, June 21st, 2012

Jez, the Lead Developer of our Android app, writes:

The CycleStreets Android app when live a year ago yesterday. At the end of that first day there were a mighty 4 of what the Android Market calls “active device installs”. As of June 19, there are 10,089.

Over the first six months, installs climbed pretty quickly for the first three months or so, then gradually plateaued at around 5500 active installs for the two months leading up to Christmas. Then Santa arrived. People obviously spent Boxing Day recovering, and then on the 27th of December installs ticked up and continued on a straight line of about 30 new installs a day ever since.

According to the stats, about half of all installs are on Android version 2.3.3. Installs on Android 4 have gone from under 100 at the start of March to over 2,000 now. The majority of new installs are now on Android 4.

95 people have rated the app in the Google Play Market, 79 of them rating it 4 or 5 stars. The people that like tend to say things like “awesome” and “excellent”. The more helpful feedback suggests the biggest problem people have is slow tile downloading. The less useful picks up on some specific quirk of routing locally (“Will not send me down ANY CYCLE PATH, even ones that are clearly show on the map”) or overlook a feature it actually has (“many missing features including a proper way to save routes”).

Other than “people are installing the app on their new phones and they seem to like it” I’m not entirely sure what these numbers actually tell us.

For me, it’s been an interesting 18 months. I only started writing stuff for Android by accident, and I can’t really remember how or why I offered to pitch into the CycleStreets App. I’m glad I did – it’s been good.

Thanks :) Wonder where we’ll be this time next year.


CycleStreets feedback triaging/handling system

Sunday, June 17th, 2012

CycleStreets gets lots of useful feedback, both on details of routes we provide and on system features. The quality of reported route feedback bugs is generally fairly high – users tend to give enough detail to enable the problem to be investigated properly. Simple “The route was problematic here” feedbacks are very rare.

The feedback system we have is basically little changed since we added it – an HTML table of data and a webform that is hooked onto a journey display that users with a ‘feedback’ privilege can see and respond to. There isn’t a proper map based view or lots of other facilities that would be useful.

What we have learned is that feedback needs triaging. Analysis of feedback is a skilled task and can take time to result in an actual resolution.

Accordingly, we’ve found that route problems tend to have one of four main causes:

  1. Small data problems such as misconnected ways, surface quality issues, or one-way streets in the wrong direction;
  2. Absence of data in an area, meaning that the network is not sufficiently complete to enable a good route solution to be created;
  3. Engine deficiencies such as over-wiggly routes, going away from the signed network unnecessarily, or poor handling of busy roads;
  4. Mistranslation of OSM data to the format used internally by the CycleStreets routing engine.

What this shows is that we don’t want to pollute existing bug display maps with engine-related problems or feature/Photomap feedback. Furthermore, discussion with the reporting user has often been shown to improve the quality of the data repair considerably. So we have long felt that triaging feedback (and a proper means to discuss) it is essential.

Following a lot of refactoring work in recent months to improve problematic parts of the codebase, we’re proposing to develop our feedback system to enable the useful routing data within it to be available to the OSM community more widely, and have drafted a spec:

Cyclestreets feedback triaging/handling system – proposed spec

We welcome any thoughts. Our key aim is to make the data problem feedback we receive much more visible to the OSM community, so that CycleStreets and, moreover, OSM generally, sees improved data.

PS Thanks to Shaun who gave useful feedback on this last year when we first started drafting this.

We welcome your feedback, especially to report bugs or give us route feedback.

My comments relate to: *

Your comments: *
URL of page: *
How did you find out about CycleStreets?:
Your name:
Our ref: Please leave blank - anti-spam measure

* Items marked with an asterisk [*] are required fields and must be fully completed.