This blog is no longer updated, and is here as an archive. To find out more about my work, visit jordanh.net →

September 4, 2011

WhoDoTheyKnow

I’m very late to the party in posting about my Young Rewired State 2011 project, but better late than never I guess!

For YRS 2011, I worked on my own from home on a project called WhoDoTheyKnow, which is a really easy and accessible way to browse the recorded meetings between government and media representatives, aggregated from several datasets recently released by Downing Street.

I had lots of fun building this. It’s quite interesting to have a look through, and see just how frequently some members of government were meeting with certain members of the media.

You can take a look at the prototype at whodotheyknow.heroku.com. It was built with Rails – and a fair bit of data input – and the source code can be found on GitHub (although be warned, it is a pre-alpha stage and run at your own risk!).

February 24, 2011

Young Rewired State 2011

The splash page for this year’s Young Rewired State event has gone up courtesy of myself and Dan Morris. It should be another great Rewired State event and build on the tremendous success of the last two years’ YRS events too. If you know anyone under 18 who has an interest in tech, let them know about it – after all, YRS was how I got into all this in the first place :)

February 1, 2011

New Rewired State Site

I was thrilled to be asked to design the new Rewired State website and this week we’ve finally launched it and ironed out any bugs, just in time for next weekend’s SXSW Hack Day at The Guardian. The new site runs on WordPress with lots of magic behind the scenes to handle projects and events. There’s also a very nice mobile stylesheet to make it look beautiful on iPhone too.

January 5, 2011

RapidHackr Reloaded

Well, it’s been about three weeks since the Rewired State DotGovLabs Weekender event and I’ve had some spare time over Christmas and New Year to make quite a lot of changes and to take it into a direction in which it is much more usable. It’s almost unrecognisable from the RapidHackr I posted back in December. I’ll step through the big changes we’ve made, starting with the biggest one – a new user interface.

Ignore the sample data, this screenshot was taken very quickly! :)

I spent quite a while trying to decide on the best layout for the project view. I decided quite early on that I didn’t want to try and fit everything onto one page (as was in the prototype), as it looked pretty cluttered which made it difficult to digest the information. On the other hand, I didn’t want to split a project into lots of pages – this would just make it difficult to digest the information quickly, which is often the problem with traditional project management systems. Obviously it felt logical to use tabs to combine pages of a project together, but that had to be combined with a higher application-wide navigation (ie ‘Projects’ and ‘Ideas’), and having one tab strip almost on top of the other wasn’t going to cut it either. Finally, I decided on using tabs at the side of the project pages, which keeps the project view combined and giving me the chance to put a beautiful blue gradient behind the project title :)

The main view for a project is the Dashboard. This shows the update stream alongside the project description, the list of members who have joined the project, and any upcoming milestones. Milestones which have less than an hour to their deadline get a nice red background to reinforce the urgency ;) The update stream combines any project activity with updates from users. Through AJAX and JSON, further updates can be loaded at the bottom of the list. Once I’ve figured out a good way to do it, I want to pull the version control commits directly into this stream too. All the user avatars here are Gravatars from the email address stored in the user profile. I figured that doing this would make it quicker to develop, less of a resource strain on people who deploy RapidHackr, and quicker for users to sign up and get started immediately.

This is the EtherPad we used back at the DotGovLabs event, but it’ll do for now :)

The other main feature we talked about in our presentation at Rewired State was the EtherPad integration, which made it a little bit easier to keep tabs on the project – such as not having to remember a long garbled URL to get to your EtherPad. Here, the EtherPad nicely fills up the width of the page and can be interacted with and edited as if it was a normal page in your web browser.

The final feature I’d like to show is still a little buggy, but I think it’s worth it. We mentioned the possibility of integrating some sort of voice chat VoIP directly into the application so that developers on more remote hack events can keep in contact with each other. Obviously with any sort of streaming media system there would be hurdles. If we decided to throw the weight of a voice chat server onto the host of the application, then bandwidth costs and server load would increase significantly, but on the other hand, until recently, any other sort of third-party VoIP service would lack the integration we wanted with the application. Enter Phono, a jQuery plugin which integrates with the Voxeo Cloud. You can create ‘phones’ with JavaScript and call other ‘phones’ through a web browser. Unfortunately, it doesn’t support conference calling out-of-the-box, and you’d need to sign up for a Tropo account (which is only free for development use), so I worked on building an alternative solution.

The chat feature works seamlessly – all you do is click the “Join Chat” button and you can instantly start talking with anyone else in the project’s chat room. Behind the scenes, multiple “phone calls” are created with Phono to transparently create a peer-to-peer conference call between everyone in the chat room. Whenever someone joins, their client creates the new calls to all the existing members of the chat room, which avoids the problem of multiple calls being sent to each user at once. However, there are some problems with echoing and a slight delay, but these appear to be problems on Voxeo’s side which they say they plan to try and fix in the future.

I’m really pleased with how the project is developing, and Josh and I hope to continue this project further, to a point where RapidHackr can be the major rapid development tool for hack days. We have had significant interest from DotGovLabs and hope to be working alongside them on this project in the near future. Of course, the app is open source and you can clone a copy of the GitHub repository if you want to give it a try.

:)

December 14, 2010

RapidHackr

One of the apps we worked on at Rewired State’s DotGovLabs Weekend event was RapidHackr. RapidHackr is pretty much project management for hack days. Whereas with traditional project management systems projects may be worked on over weeks or months, hack days last for a matter of hours at the most! This called for a different approach.

The idea came about mid-way through Sunday when I’d finished building my other project, Digital Champions, and was looking through the EtherPad our team had setup to see what other ideas we could maybe work on. We stumbled upon the fact that we’d been using the same set of tools for the past few hack days, and then the idea hit us that we could build a tool which just helped to co-ordinate rapid development. After all, regardless of whether the project won or not (or even if it was finished in time!), we would still end up with a great tool we could use in the future. I started work on a Rails app and Josh got to work on the frontend user interface, and soon we had a decent project system where milestones could be created and statuses could be posted. We also embedded our EtherPad into the bottom of the page. Additionally, private “rooms” could be created so that teams working on several projects could choose to host them at a secret URL. To top-it-off, we added a countdown timer to the corner of the page which counted down to the weekend deadline.

There were lots of things we didn’t manage to add in time, but would love to add to the project in the future. Tags can be added to a project, so we would like to be able to use them to suggest data sources from Data.gov.uk to help kickstart an open data project – for example a project tagged with “tfl” would result in TfL data sources being suggested in the sidebar. We’d also like to add built-in voice chat, which could possibly be done with a jQuery Plugin like Phono. Finally, we could add a generic idea board where ideas could be brainstormed in the early stages of a hack event, and then taken through to be a full project.

Hopefully we’ll get some chance to continue to develop this app when we get some free time, but our half-complete source code is on GitHub if you’re interested in taking a look.

Rewired State: DotGovLabs Weekend

It’s been an absolutely great weekend. Emma’s blog post sums it up pretty well. Our team won two prizes and made a whole load of apps which we’re really pleased with. Again, massive thanks to Emma, the Rewired State team and the sponsors for making it possible.

November 16, 2010

Rewired WordPress

We’ve just rolled out a new version of the Rewired State website which I’ve developed in WordPress. Everything looks pretty much the same – there were mainly just backend changes and migrating from the previous Rails app, but there’s a few extra touches on the frontend, such as blog posts, the beautiful new project form, and a mobile stylesheet to make it easier to browse on the go.

Everything runs seamlessly on WordPress’ Custom Post Types (including the events) and there’s some very slick admin work on the backend to bring each post type into their own element. I’m tempted to write a blog entry later this week on a few of the problems and techniques we encountered when working on the new site.

September 30, 2010

GovSpark

Great to see that Isabell Long’s Rewired State project GovSpark has been taken forward and picked up by Number 10. It’s a fantastic app and is yet another example of what useful tools can be made out of open data.

July 5, 2010

Hello Young Rewired State Manchester

I can’t make this year’s Young Rewired State, but I’m going to pop along to the pre-event in Manchester this Thursday. It’s at MadLab and should be really good. Even if you’re interested in open data but not that interested in the hack week, come along and you’ll find it really interesting!

April 16, 2010

National Hack the Government Day and Rewired State: Culture

You might remember Young Rewired State held at Google’s UK offices in August last year. It was fantastic, and several really good ideas came out of it. Towards the end of March, Rewired State – an awesome bunch of people who organise hack days to show the government the benefits of open data – held a few more events over a series of weeks which were aimed at furthering this goal. I was lucky enough to be able to attend National Hack the Government Day, and Rewired State: Culture held the following weekend, both at The Guardian’s offices at King’s Place.

National Hack the Government Day was really fantastic. I met a load of people who I knew from Young Rewired State, and was thrilled and extremely grateful that other devs would happily lend me a hand with my project. I decided to look at the Digital Economy Bill, and soon took up @charlesarthur’s challenge to try and develop a tool to compare differences between subsequent revisions of a Parliamentary Bill – something which he originally described in a Guardian article, and I discussed in a post on the Tomorrow’s Web blog before the event.

I first decided to look at the PDF versions of Bills – after all, they came in one file which contained everything, and I could just strip away all the headers and footers, line numbers and page numbers, and it would all be fine, right? Nope. After doing all that, I ended up with paragraphs of text with odd line breaks, formatted for print, yet rather unreadable by machine. I went back to the drawing board. I was rather reluctant to use the HTML versions because I knew they contained even more external formatting such as the site headers and footers, but I was determined to give it a try. With a little beginner Ruby help from Ben Griffifths, I scraped the contents page of a Bill, grabbed all the links to other sections of the Bill and scraped the contents of those as well. I stripped away all the nonsense such as line numbers and page numbers and combined it all together to get a finished, clean copy of a Bill. I then modified some code written by Ross Scrivener to compare the two bills and it worked really well.

After adding a caching layer, I’ve made it available for download here, and an online version has been kindly hosted by GetAVote.org here. The Rewired State project page for more info can be found here. I won a Vodafone 360 phone* for my project, along with a project called expendituremap. There were some really cool projects shown at the presentation, which ran alongside the presentation for the DotGovLabs event.

The following Saturday, I was back again for Rewired State: Culture. After having some really nice bacon barms on arrival at The Guardian, I worked with James Darling, Dan Morris, Johnathan Lister and Lawrence Job (who I worked with on TFHell last year :-) ) to create TAPCulture, a concept to encourage young people to visit cultural venues such as museums and art galleries through location-based social networking. We mainly made more of a concept, but James and I did manage to geocode every museum and art gallery in the UK (resulting in a ban from the Google Maps API), so you could type in your town and see all the museums nearby.

I thoroughly enjoyed both events, mainly because of the amazing developers who attend, the fantastic people who organise them and the great sense of community spirit you get when you’re working on a project. I can’t wait for the next events and give a massive thanks to everyone who helped make it what it was.

* Quite bizarrely, the phone was in Spanish, the power supply was European and the phone is locked to Vodafone Spain. Any help would be appreciated in getting it unlocked for use in the UK :-)

Next Page »