Dev Days, London

November 3rd, 2009 Mike No comments

On the 28th October I went to the StackOverflow DevDays event that was held in London. The event was organized by Joel Spolsky and Jeff Attwood with the help of Carsonified. It was one of ten cities that the event was scheduled in North American and Europe with local speakers talking about various technologies.

Twitter was used as a back channel for discussion during the event and StackOverflow Meta provides an opportunity for people to review the event.

Since I am doing some mobile development in my own time and working on Mobile Campus Assistant at work I was particularly interested in listening the talks on Android, Nokia and iPhone development. All three talks were focussed in native application development and didn’t touch on the mobile web.

The Android presentation was given by Reto Meir, Android developer advocate at Google. The talk started with an introduction to the platform, supported devices and finished with the creation of a simple application. Interestingly, this was the only talk that featured any Java.

Pekka Kosonen from Nokia gave a presentation on Qt … I’d never heard it pronounced “cute” before. :) Pekka is a very funny presenter but was, ultimately, let down by the presentation. The slide were certainly a wall of text and diagrams and the presentation would have benefited from code samples. After starting to learn Objective C I don’t think I’m quite ready to start C++ as well.

The iPhone talk was given by Phil Nash, the creator of vConqr. The presentation covered the history of Objective-C, introduced syntax and memory management and finished with the creation of a simple application. The presentation was polished and most objections on the Twitter back channel were directed at the beauty/uglyness of Objective C. Phil has written a blog post on his talk and why he concentrated on certain things and omitted others.

Other highlights of the conference include:

  • Jon Skeet on “Humanity: Epic Fail” with the help of a sock puppet! The talk covered the problems caused by users, architects and developers in creating software that models the real world. This included the problem of representing strings and time zones. Apparently, there’s a blog dedicated to timezone … this one?
  • Christian Heilmann of Yahoo! demonstrated the YUI Library – a toolkit that I’ve not looked at for a while. He also demonstrated YQL, “…an expressive SQL-like language that lets you query, filter, and join data across Web services”. After writing code to harvest public University data and transform it to other formats, YQL looks interesting. :)
  • Listening to the talks by Joel Spolsky and Jeff Attwood – they are great speakers with interesting things to say … that’s why I listen to their podcast ;-)

The event had a few niggles:

  • The catering couldn’t cope with the 900 attendees. For the morning break it was quicker to nip down the high street to get a coffee and a snack. At lunch time the queue was huge and, at one point, it looked like there wasn’t going to be any food by the time I got to the counter. Not to worry, a cheese sandwich appeared and I had a good chat with another developer.
  • The breaks were too short which made it difficult to socialize with other developers.
  • The chairs were narrow and pretty uncomfortable. :(

Despite the niggles I enjoyed the event and, at the cost of £85, the event was good value.

Announcing “Sensory Play”

October 27th, 2009 Mike No comments

Sensory Play is a small iPhone application that I created based on some ideas my wife, Alison, developed while playing with our son. We hope that others would find the ideas fun and interesting. Using little or no equipment these ideas for sensory play give plenty of ideas for games to play with children which enhance their development while having fun.

Sensory Play screenshotSensory Play screenshot

Ideal for use by parents, carers, teachers, nurses and siblings.

Available on the App Store

Categories: Sensory Play, iPhone, iPod Touch Tags:

Hello!

October 26th, 2009 Mike No comments

I haven’t blogged anything here for a while. I blame Twitter … although, I’m not a great user of that service either. :)

Within the ILRT I’m currently working on a project called Mobile Campus Assistant – this is a JISC-fund rapid innovation project in the Information Environment strand. The project has a blog where I update on progress. Funding finishes at the end of November when we should have a compelling prototype available.

The source code will be made available via GitHub under an open source license.

Categories: General Tags:

CREW, Caboto and RDF-Based Annotations

June 26th, 2008 Mike No comments

I’ve been busy for the last few weeks preparing the CREW web application for the project’s support of 3rd ESRC Research Methods Festival in Oxford. A version of the CREW application is available to view that includes some data for the Oxford event.

A lot of the work involved preparing the 0.1 release of the annotations engine, Caboto. Why call it Caboto? In the Web Futures office at ILRT we can see Cabot’s Tower which is situated at the top of Brandon Hill, Bristol. John Cabot’s Italian name is Giovanni Caboto. Simple, eh?

Caboto is basically an RDF-based web annotations system designed to meet the uses cases of a number of project that members of the Web Futures team are working on. It will allow users of systems to annotate things such as events, papers, photos, people etc. The annotations might be comments and criticisms about a presentation, linking to a relevant paper or resource such as a photo or ranking an event out of 10 (or some other arbitrary number). The 0.1 release just supports simple comments but this will be extended in the next release.

Caboto has the concept of public and private annotations – a public annotation is available for all to see while private annotations are restricted to the author. The 0.1 release only supports public annotations. The annotations themselves are stored as RDF in a relational database.

Caboto uses a number of technologies:-

  • The Jena Semantic Web Framework is used to handle the RDF querying and storage.
  • Jersey, the JSR 311 reference implementation, is used to provide a RESTful interface for the annotations so they can be added, retrieved and deleted with POST, GET and DELETE HTTP methods.
  • The Spring Application Framework is used to glue things together.

By using Jersey it is easy to make the URI of an annotaion a URL to access the RDF. For example, we could access the same data as RDF/XML, RDF/N3 or JSON:


curl -i -X GET -H accept:application/rdf+xml http://localhost:9090/caboto-web/person/user1/public/bcd6dbe7-fbd4-44a9-816e-57697720f2b9


curl -i -X GET -H accept:text/rdf+n3 http://localhost:9090/caboto-web/person/user1/public/bcd6dbe7-fbd4-44a9-816e-57697720f2b9


curl -i -X GET -H accept:application/json http://localhost:9090/caboto-web/person/user1/public/bcd6dbe7-fbd4-44a9-816e-57697720f2b9

The Caboto site has instructions on downloading and running a sample version of Caboto, with examples on adding, querying and deleting annotations via the REST interface. Its still in the early stages so is a bit limited and subject to change in further releases. :-P

Within CREW we have used it to allow people to make simple comments about the event.

Caboto in CREW

The functionality in CREW will expand with developments in Caboto. :-)

Categories: CREW, Caboto, ILRT, JSR311, Java, Jersey, RDF, REST Tags:

The case of the borked header field

March 7th, 2008 Mike No comments

I’m currently looking at RESTful web services using Jersey. When testing a simple application with curl everything worked fine. However, when I tried a request in Firefox on my Mac Intel I received the following error message:

The HTTP header field "Accept" with value "HTTP Accept=text/xml,application/xml,application/xhtml+xml,text/html;
q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5" could not be parsed."

The header should be …

"text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"

… and not …

"HTTP Accept=text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"

This is the request captured with tcpdump:


........GET /JerseyTest/people/ HTTP/1.1
Host: localhost:9090
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
Accept: HTTP Accept=text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive

A vanilla install of Firefox sends the correct header so either I have been fiddling with the configuration (I haven’t), or one of the plugins or extensions that I have installed is the culprit. If not, it must be gremlins. Fixed now, but for some reason went for a clean install of Firefox rather than editing the preferences in about:config

Categories: Firefox, Jersey Tags: