With Day 1 being such a hit I was under the impression that the best of the conference was already behind us – but how wrong I was.
Thursday started off with another classic presentation from Damian Conway, this time with a crash course on how to deliver “Instantly Better Presentations” which is condensed highlights of a tutorial length course. (There’s an associated handout on his website which gives an overview.) He cited Steve Jobs as being a master presenter, and used some of the Apple keynotes as his examples of how to do presentations well. If I had to condense the information down into a series of memorable bullets, I would summarise it as:
- Be passionate about what you do – and sound like you’re enjoying it
- Be knowledgable about your subject – if that means learning it, so be it
- Slides are for the most important point only – don’t read along text from it
- If you have to demo running code, use animations to show code flow
- If you can’t use animation tools, use multiple slides and animate manually
- Handouts are for afterwards, not a copy of the slides
- Get rid of all unnecessary backgrounds/graphics/bullets
- Reharse, rehearse, rehearse (at least 3 times before giving it)
- Tell the audience when questions are OK (at the end, during)
- Talk to a picture of a large audience if you can’t find one
- Tell a story by choosing points carefully and threading a narrative through
The story point is an interesting one, which I’d not come across before. Instead of writing a presentation from memory or making it up as you go along, write down as many things as you can possibly think of on a notepad or mind map to enumerate everything that might be important. Then rank them in order of importance and select the top five (ish) items, and try to thread a story line through them. (For example, we needed A, we investigated B, we found C, we did D and conclusion E)
Arranging the presentation as a story helps the audience remember the flow even if they don’t remember the fine details, and from that they can go forwardsto fill in the details afterwards. It also helps what to put in or leave out of the presentation; in the cases where another point fits in better to make the story line work, swap it out for one of the existing chosen points.
If you ever have the chance to go and see Damian live, do so. He’s an entertaining speaker and you could learn both from his delivery content as well as his style.
Introducing Linked Data at the BBC with David Rogers
The first real presentation I went to on Thursday was David Rogers’ talk (@daverog) on linked data at the BBC (slides). This covered how the BBC are using graph databases and RDF to link data and events for their news and sports platforms, so that when an author is writing an article it will auto-suggest tags based on the content of the text, and those tags will then semantically link the story with other areas and parts of the BBC.
Some of the problems included how to uniquely identify the people involved – for example, there were many athletes which shared a name with another athlete at the games – as well as how to regionally associate stories. For categories such as counties the boundaries are known, but for voting areas (which change over time and can be quite complex) the problem is largely unsolved.
Ironically, any presentation after Damian’s one that morning was instantly subconciously scored against the points he had made, and whilst the style of the presentation was interesting (zooming in and out of areas to highlight points) the effect was more of showing a big tangled mess rather than a clear statement of what was done.
None the less, the presentation was an interesting look behind the curtain at a large data accessing and processing system, and the fact it scaled to the number of the data items was an impressive testament to the use of the RDF stores used.
Building Hypermedia APIs with HTML by Jon Moore
After an elongated lunchbreak in which I caught up with many outstanding tasks (such as the NSConference posts) I went to see Jon Moore’s (@jon_moore) presentation on building hypermedia APIs with HTML. Unfortunately, since most of the talk was based in the demo, the slides are not very useful; but fortunately, the video (which will be published on InfoQ later) is very useful.
The presentation sounds much more buzzwordy than it actually was; in fact, it was largely a set of common sense and careful use of HTML5 attributes for annotating structured data, along with a demonstration tool to read pages with suitably annotated data.
The general format is to encourage the use of HTML5 microdata, which
is a set of attribute names that can be applied to existing HTML elements,
and then processed by a tool that understands how to parse them. These can
either be attached to semantic nodes in the structure (such as h1
elements)
or wrapped with a standalone span
tag with an associated attribute value.
In this way, it’s possible to encode information in the same representation
that a user will use to read the content:
``` xml Example of HTML5 microdata http://en.wikipedia.org/wiki/Microdata_(HTML)
Hello, I'm Alex Blewitt, Eclipse guru, Mac fanatic, and occasional fair weather pilot and I live in Milton Keynes, UK
This would be rendered into a browser as "Hello, I'm Alex Blewitt, Eclipse guru,
Mac fanatic, and occasional fair weather pilot and I live in Milton KEynes, UK"
but a process that understood microdata would also be able to encode the structured information out of it, as shown by this
<a href="http://foolip.org/microdatajs/live/#json?html=%3Cp%20itemscope%3D%22itemscope%22%20itemtype%3D%22http%3A%2F%2Fschema.org%2FPerson%22%3E%0AHello%2C%20I'm%0A%3Cspan%20itemprop%3D%22name%22%3EAlex%20Blewitt%3C%2Fspan%3E%2C%0A%3Cspan%20itemprop%3D%22jobTitle%22%3EEclipse%20guru%2C%20Mac%20fanatic%2C%20and%20occasional%20fair%20weather%0A%20pilot%3C%2Fspan%3E%20and%20I%20live%20in%0A%3Cspan%20itemscope%3D%22itemscope%22%20itemtype%3D%22http%3A%2F%2Fschema.org%2FPostalAddress%22%3E%0A%3Cspan%20itemprop%3D%22addressLocality%22%3EMilton%20Keynes%3C%2Fspan%3E%2C%0A%3Cspan%20itemprop%3D%22addressCountry%22%3EUK%3C%2Fspan%3E%0A%3C%2Fspan%3E%0A%3C%2Fp%3E%0A">microdata testing tool</a>,
which if you click on the 'JSON' link will show you the information encoded
in the above.
Jon had a tool written in a scripting language (python or ruby; I forget which)
that took an example HTML page and used it to generate a list of elements with
semantic data in them. Furthermore, these were then exposed as dynamic
properties on an object returned by the caller.
The key addition to this talk (over and above being just an HTML5 tutorial)
was the use of introspecting forms and the ability to submit standard HTML
forms, with 'arguments' for the form values that needed to be submitted. This
allowed the tool to reach into the HTML and use it to represent not just state
(the objects) but also the transitions to other states (by submitting forms
and returning the data in that HTML page).
He then further extended the concept with a (non-standard) data-rel attribute
for objects, which allowed the contents returned from an object to provide
hyperlinks to other object types, along with global IDs (consisting of the URLs)
to join them together. With this he was able to construct not only direct
properties but also indirect ones (through resolving additional assets on
demand). The example given was from an IMDB search query; for example
the <a href="http://www.imdb.com/title/tt0094012/">SpaceBalls</a> page has
some metadata about the movie itself, including an `itemscope` containing
a <a href="http://schema.org/Movie">http://schema.org/Movie</a> description,
from which you can navigate individuals in the movie itself. There's a tool
which you can view to see <a href="http://tools.seomoves.org/microdata/?url=http://www.imdb.com/title/tt0094012/" rel="nofollow">http://tools.seomoves.org/microdata/?url=http://www.imdb.com/title/tt0094012/</a>
to see the microdata information associated with a page. In this case, the
name of the movie is encoded here:
``` xml Item property associated with the page
<h1 class="header">
<span class="itemprop" itemprop="name">Spaceballs</span>
</h1>
Summary
The second day of QCon London drifted off to a close, with a story on HTML5 and REST (which turned out to be less interesting than it sounds) and an ‘Open Space meetup’ (a kind of ‘unconference’ or ‘bof’). I’m not sure how popular these were, but I know a few drifted off earlier than planned, even with the beers present.
Next up: the final day.