Semantic Camp Day 2

Sunday, February 17th, 2008 at 9:11pm

SC Logo
Semantic Camp Session 6 – Parsing Microformats
Gareth Rushgrove

Gareth gave us a quick rundown of the various parsers which are available.

Language Specific – most available apart from Java.
Language agnostic – web services

hKit – open source PHP stuff.
Mofo – for Ruby
Sumo Javascript (from Dan Webb) – generic parser for JS.
XSLT – at Brian Suda’s site
Optimus – is down at the moment
Google’s Social Graph API – parses XFN relationships

Semantic Camp Session 7 – WTF is RDF?
Tom Morris

Always worth hearing, Tom did an idiots’ guide to RDF, just the thing for a bear of very little brain such as myself.

RDF = Resource Description Framework! 1999 originally, 2004 updated into 6 docs:

RDF files at their simplest form:

3 things – subject, predicate, object (see above). The simplest form is – Triples (N3)
Subject and Predicate are Resources – Not literals; Object – Literal sting of text
foo.n3 – text file containing triples.

Tools to parse are available in – Java, C, Perl, Python, PHP, Ruby

He then talked some more about RDF validation and FOAF – which seems like the most friendly and usable aspect of RDF from this bear’s perspective. If you want to make your own FOAF file, why not use the foaf-o-matic

The Rest of the Afternoon

There were other talks going on, but I got distracted by a rather fab game, made by John Linklater-Johnson called Semantopoly. A fab idea [not in the least based on Monopoly] which had us all amused for some hours:

[Matt, Gareth and Isabelle get to grips with the rules of Semantopoly]

BarCampLondon3 – Day 1

Saturday, November 24th, 2007 at 7:00pm

BCL3 logoThe time for another BarCampLondon3 has rolled around, and I was lucky enough to get a ticket. We all turned up at Google’s swanky offices in Victoria knowing we would have a good time, but not quite realising what a great time we were in for.

The organisation went very smoothly, the wifi was rock solid, there was more food, beer and snacks than even a BarCamp-load of geeks could consume (well, apart from the beer – it’s the first time Google’s fridges have been emptied, oops!)

As usual with an unconference, it was all about the sessions folks decided to give, and we were treated to some really thought-provoking and fun discussions. It was a shame that out of the 100 attendees, about 30 chose not to present. So the schedule was a little light at times, but that’s not always a bad thing – nice to catch your breath every now and then! Jeremy marked up the timetable for us all to refer to easily.

The first session I went to was Tom Morris – Scraping Sucks – where he was giving us more usable alternatives to scraping HTML, namely doing clever stuff with GRDDL. He says it’s much easier that way. As usual, I nodded sagely at the time, and then a couple of hours later, wondered what it was all about. Tom is a great geek, but he’s several steps ahead of me when it comes to brain-wracking abilities :-) He’s put up a page of GRDDL Profiles here – which lets you look at (X)HTML and with an XSLT transform, spits out XML/RDF which can be used as you want.
[Tom gets stuck in to his presentation]

Norm’s Law
This was an excellent presentation from Mark Norman Francis. He gave us some very good reasons for doing code his way – especially for fostering interoperability betweeen different members of the team, or yourself coming back to code at a later date. Some points included:

  • Use spaces not tabs
  • Code goes no further than col 77
  • No-one ever died from using too much whitespace
  • Separate operators and braces – more of a cognitive burden to parse squashed up code
  • Always indent by 4 spaces ONLY
  • Line up assignments of variables (equals sign in the same place etc)
  • Line up data tables too (arrays or whatever)
  • Space keys out from brackets $vote[ $value }++; etc
  • Space keywords out not functions
  • Vertical rhythm - break bits up with comments for each sub part - make a story out of it
  • Respect left-to-right comprehension
  • K&R bracketing - opening brace should be tied to RHS end of line, closing brace should be on a new line - aligned with the starting coment
  • Don't cuddle and else!
  • One statement per line - you can easily miss the ";" in the middle of the line separating the two commands
  • Break lines before operators - EXCEPT in JavaScript or it won't work
  • Ignore operator precidence - use brackets to make it more "English readable"
  • Use single quotes where possible - ' in PHP will just be stuffed in, " will make PHP parse the contents looking for variables
  • Factor out long expressions and use intermediate variables (with english-sensible names) to break up
  • Always use x on regexpressions
  • Don't use camelCase! unless you're in JavaScript
  • Systems Hungarian is harmful, Apps Hungarian is too
  • All short variable names are harmful
  • Use grammatical variable names and function calls
  • Optimise for humans first! Machines - throw more hardware at it - but you can't refactor comprehension
  • HTML indents use 2 spaces not 4
  • Write the whole document FIRST before you do any CSS etc
  • Insert Microformat classes
  • Always use single quotes in attributes
  • Inline CSS means you've done it wrong
  • If it only works in JS don't
  • VALIDATE
  • Start with base stylesheets - reset, fonts, layout
  • Use Uppercase tags in HTML
  • Keep z-index below 50

[Norm - I can haz 4 skreenz]

Next up was a session about new developments from the BBC’s web team:

BBC APIs First Look
PIPs is the system to list all broadcasted stuff – telly and radio

  • bbc.co.uk/programmes
  • Gives a list of all current programmes – by genre or alphabetically
  • Nice URLs which can have .yaml or .json can be added for the feed in that format
  • bbc.co.uk/programmes/formats
  • Pid is the 8-character id for each episode – taken from user experience tests and will always be constant (never change)
  • JSON and YAML are the two formats currently supported – XML coming? – RDF ontology has been produced
  • RSS feed is coming so you could subscribe to know when “every episode of Doctor Who” is on
  • Data model – “programme” can be brand, series or episode – an episode can have multiple versions (signed, extended etc) which then have broadcast (tv) or ondemand (iPlayer) times
  • Historical data back to May 2006
  • Can filter out to network (tv or radio) eg Radio4
  • Next release (API stuff) in New Year
  • http://catalogue.bbc.co.uk/ – is historical data – grand plan is to have them merged

DIY User Research – Leisa Reichelt
Leisa gave us lots of good advice on how to carry out some DIY user research – her premise being that it doesn’t have to take days and days and cost big bucks – and often talking to more than half a dozen victims volunteers gives you diminishing returns. Leisa’s slides are already available at the Slideshare BarCampLondon3 group.

Building Lifestream with Yahoo! Pipes – Cristiano Betta
I didn’t take many notes as I was listening as I was actually playing with a real Yahoo pipe of my own and trying to follow along with what Cristiano had to say. I’ve been meaning to use Pipes to create my own Lifestream for some time, but had a quick go before and things weren’t coming out as I wanted. Cristiano has done a series of excellent blog posts to get you going, or you can watch Tom Morris’ video of Cristiano’s presentation. Or view Cristiano’s own Lifestream.

10 Things You Should Do In Project Management But Probably Don’t – Gareth Rushgrove
Gareth’s top ten tips:

  1. Use Source Control software
  2. Validate markup – XML, RSS, Atom and JSON
  3. CSS validation
  4. Broken Links! check them thoroughly – W3C Link checker
  5. Performance – do you have metrics for measuring the performance – YSlow is a Firebug enhancement, httperf – use uptime checker too such as Pingdom
  6. Maintainable Javascript – JSLint gives you good tips
  7. Carry out Unit Testing
  8. Carry out Functional tests
  9. Asset Compilation
  10. Building Scripts

More at morethanseven.net

Learning jQuery – Simon Willison
Simon gave us a lightining half hour tour of the jQuery Javascript library with great examples and succinct slides – you can get them from Slideshare. I’ve been meaning to beef up my JavaScript skills, and getting to grips with jQuery sounds like a good place to start.

[Simon talks about jQuery's Ajax capabilities]

Ask Them Anything
For the final sessions of day one, Norm and friends held an Ask Us Anything panel – just a bit of silliness to round off the proceedings before dinner. The guys from the Londonbubble did a live stream of the session to their mogulus chatroom, and it all got a bit recursive when this was put up on the main screen behind the guys:

[Behind you!]

The chatroom folks even got to ask a question or two – and Ross got a marriage proposal from a lady named Picki which he had to graciously decline!

[Ross, Norm and Ryan answer the online questions]

And so to dinner… but that’s for another post.

RDF – What’s It Good For?

Wednesday, February 28th, 2007 at 3:07pm

One of the presentations that I missed at BarCampLondon2 (I was attending another session) was a light-hearted debate about the similarities and differences between Microformats and RDF. The main protagonists were:

Thankfully, for those who didn’t see the debate, Ian has uploaded a video of the session. It makes interesting viewing! And shortly afterwards, I found Ben Ward’s insightful post about the whole subject too. I think Ben’s second paragraph hits the nail on the head:

The thing about RDF is that no-one has yet demonstrated any real-world reason to care about it. It fascinates academics who would love — just for the sake of it — to model the entire universe in triples but in the real world of web browsers the value has never really been promoted.

Spot on.

The Microformats advocates have been very quick to explain what they are for, what they do, and how to implement them. I use them regularly in this blog, and try to incorporate them wherever I can into new projects. It’s so easy to build them in from scratch when marking up events (hCalendar), people (XFN) or contact details (hCard).

But as yet, I’m really stumped as to what RDF – or more importantly, eRDF can do for me. Tom Morris has started a website called GetSemantic which hopes to chart the progress of developments about eRDF and spread the word. I’ll be keeping an eye on it from time to time, to see what’s cooking, but until then, I’ll be sticking to my diet of Microformats.