Archive for February, 2007

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.

Flickr And Self-Referential Folksonomy

Wednesday, February 21st, 2007 at 12:05am

I’ve been thinking a lot about Flickr and tagging recently, having just had to bash a load of tags onto my BarCamp pictures.

Lots of my mates are members, and when we’ve got together for socials, we share the pictures via Flickr afterwards. Many tag the images by subject, or use something like Upcoming’s machine tags: upcoming:event=138806, which refer to the relevent event tag, and can be used by Upcoming’s API to display photos from that event (held on Flickr), in the event page on Upcoming. “Old hat”, some of you may say.

The other thing that regularly happens is that folks tag pictures with people’s names or nicknames. Thus, you can see all the photos of me on Flickr (which have been appropriately tagged), whether they be in my photostream or someone else’s. But here’s where we get the problems.

Some people have particular tags by which they would like to be known, as well as their normal names. Ben (74 results currently) is a case in point, who also goes by the nickname of Kapowaz (56 results, some of them the same). Mark Norman Francis (390 pics) (aka Norm! - 2,324, not all of them him) thinks he’s King Of The Britons (122). Adding all these tags by hand every time gets very tedious.

Now Flickr is very good at letting you organise your pictures, by set, date of upload, geographical position, etc. Their drag and drop interface is easy enough to get your head round with a bit of practice.

So I was thinking, why not let each Flickr user asign their own tags to describe themselves. Then give the Organiser Panel the facility to set which Flickr users appear in the photo, and that user’s tags then get applied automatically. As long as you know that a person in one of your pictures is a Flickr member, you ought to be able to drag their icon onto a picture to set up the tagging, even if they are not in your friends, family or contact lists (these could easily load by default in the appropriate new “choose Flickr member” panel):

[mockup of the "choose member in photo" facility, via the Organiser panel]

Or when you come cross an individual picture in your Flickrstream, you can currently add it to a group via one of the fuction buttons at the top. Similarly, you could have:

[mockup of the "add member in photo" facility, in the Flickrstream view]

I’m sure that would save some donkey work on everyone’s part, and would be quite interesting to follow the reference tag trails around Flickr until you get dizzy.

Comments anyone?

BarCamp Day 2 - Morning & Afternoon

Sunday, February 18th, 2007 at 8:42pm

Simon Willison on OpenID
Simon talked about systems for single sign-on across multiple sites. You don’t give away your user name to the site, but do it via a third party signon, such as Yahoo!. MyOpenID https://www.myopenid.com

Attribute Exchange
Registering personas. You can set up personas which lets you act as different people on each site, with perhaps a different circle of friends or interests..

A bit prone to phishing - an evil site could redirect you to a phishing site which could catch your ID and password (if you are signing into openID via any old site (rather than at the mothership). AOL have turned OpenID on for 68 million accounts now.

idproxy.net is a site which Simon has written, which acts as a middle man for yahoo signin/openID.

[Simon demos openID signon for Magnolia]

What happens if your provider goes away? You can use your own url as a delegation by inserting a couple of lines of HTML in the code of your site.

If you log into a blog to comment, you can populate a white list of trusted friends’ openIDs which would then bypass comment spam moderation.

http://jyte.com is a way to enhance your reputation as a distributed profile. Other users vote yes or no to say if they agree with your opinion. Jyte has a group for BarCamp (effectively a white list) which could be exported to another social network, lock, stock and barrell.

Janette Girod on Optimising The Everyday: Finding Flow
Janette’s presentation was all about the art of training your attention. You get out what you put in - pay attention and you’ll get more benefit. Also need to set up circumstances to allow you to pay full attention to what you’re doing. This can be helped by:

  • Defining clear goals
    Focus one one small thing to achieve per session.
  • Heighten concentration
    Can be increased by practice. Make it easier on yourself by removing apps you’re not using, ban im, email, twitter!! Don’t sabotage yourself.
  • Loss of self-consciousness
    Become absorbed in what you’re doing.
  • Distorted sense of time
    Specifically allot a period of time to concentrate - it can take 15-20 minutes to zone-in. 48 minutes on, 12 minutes off. Fun to race against the clock. At the end, it gives you break - get up, make tea, check email: this break means your next session of 48 minutes is more productive.
  • Direct & immediate feedback
    Test all the time, immediate reward for your work, seeing when something works
  • Balance between ability level and challenge
    T oo hard, you freak out, too easy, you switch off. If you have a really hard task, break it down into smaller chunks and get those out of the way one by one
  • Sense of personal control of activity
    Master your tools, then you will feel in control of what you are doing
  • Intrinsically rewarding action
    If you have a choice, do something you want to do, rather than something you have to
  • Focus of awareness narrowed down to concentrate
    Be strict with yourself if you find your attention wandering off track. If you keep practising this, you will need to do it less often.

[Janette, in full FLOW]

As a soon-to-be freelancer, I found her ideas and suggestions most welcome, as self-motivation will be a big factor in my success!

Erin Staniland on Web Sites For Photographers
Erin demonstrated With Associates‘ Flash-based galleries for photographers, with a cms. The customer gets their own domain name, a unique design on a small budget, they manage pictures themselves. Some examples of the system:

http://justice.withassociates.com/
http://www.jameshatt.com/
http://www.175pairslater.com/

The CMS is Ajax on Rails, which creates an XML file which can be manipulated with Flash.

Minibooks - cheap, quick and dirty website for quickly showing work to potential clients. These have standard templates, slight customisations.

Ben Ward on ASP.NET Active Standards Pages
Ben concurred that ASP1.1 not designed with standards in mind. Therefore it was crap at it, at times. Visual studio tends to insert nastyinline JavaScript in certain circumstances, eg Image Buttons, form validation, hyper link pagination on datagrids.

Some controls need to be nested inside forms. Gridview (.NET2) MUST be inside a form. <label> is a pain. The code will generate unique codes for each element - it can screw up css id selections. Page doesn’t validate under some circumstances - viewstate can cause problems.

.NET2.0 Master Page templates are better now to set header, nav, footer and define content area into which we can drop the form controls etc. Easy to pass unique page ID for body class switching. Other useful stuff in the header - such as setting the RSS feed link for auto discovery of feeds.

Wrapping Up
After such an action-packed couple of days, there were a few dropouts by the end, but the vast majority made it to the final session. Thanks were given all round, especially to everyone who helped out or organised. There was a discussion about the format of the whole event, and it was general concensus that sleepover was an integral part of the event, and a one-day format wouldn’t be the same (besides, when would we play Werewolf?!).

As a first-time BarCamper, would I go again? Most definitely! It was fantastic to meet such great people - going to PubStandards with some of them regularly is one thing, but this is a chance to “jam” in a completely different way. There was laughter in the air virtually all the while during social times, and you could almost see the ideas sparking off each other during the speaking sessions.

So, we departed until next time, full of inspiration and in need of some sleep!

[All wrapped up, and the photos are posted on Flickr already.

BarCamp Day 1 - Evening Sessions

Saturday, February 17th, 2007 at 11:59pm

Mark Norman Francis on Don’t Be Scared of Code Reviews

Norm explained that the purpose of a code review is not to criticise other people’s code. The findings are not escalated, there is no formal output - just for folks involved. Except Security problems, which are tracked in Bugzilla. So why bother?

  • Verification - adhere to internal standards.
  • Training - informal education of expectations of new hires
  • Collective wisdom - [you will be assimilated!] Experts pass on their knowledge.

They are looking for, in HTML - valid, semantic, accessible.
CSS - valid (hacks separated out), modular (hung off ONE id - means you can reuse code on another part of site without relying on cascade), cross-browser (graded browser support)
Javascript - unobtrusive (pull it out into separate files, still get to the content with JS off), optimised, cross-browser.

Don’t care too much about programmed page weight - ads multiply page weight hugely anyway. Page weight is not very relevent to each user but is to Yahoo!, since so many hits could mean server overload.

Perl/PHP must be documented (in the code, externally), understandable, standardised

[Olé Norm!]

How do they work? Time taken doing them is minimised. Quiet time is set aside beforehand for people doing the reviewing, away from email, IM etc.
During review, items are explained by reviewer, while the coder keeps quiet. A mooderator takes notes for them both, which are tabled for later. Then follow-up - the lead developer confirms that the problems identified have been rectified before code goes live.

Me on Taking Better Pictures
I’ll post the main contents of my presentation in later posts, but it seemed to be fairly well received, with about a dozen folks coming to listen.

Andy Mitchell & James McCarthy on “Free Schmee”
Andy and James were talking about APIs and using them in a modular fashion - why invent the wheel again when you could reuse another API to do certain tasks, such as user verification. They freely admitted they’d been penning their presentation hastily when they’d rather have been attending mine. But never mind, it was still an interesting few minutes!

[James and Andy argue about who's going to work the slides...]

Next was dinner: geeks + pizza + beer = culinary carnage. At least there was no washing up!

[Colin Schlüter surveys the carnage]

I stayed chat with Andy Mitchell and John Wilson for quite a while after dinner, but made it to the main auditorium , back end of Ask Us Anything panel. Someone rashly asked to see the panel dance!

[Norm! shakes his booty, watched by Simon, Steve, James and Aral]

Of course, it wasn’t long before someone asked “when can we play Werewolf!” So, most reconvened to the restaurant area and three groups started. Not sure how many games were played altogether, but I think it was at least nine, with various permutations of people flitting from one circle to anther.

[a wolf in gnome's clothing, perhaps? Tom Coates ponders who he's going to bite next; James Wheare (Wolf??) and Cristiano Betta don't seem worried by his proximity!]

And so to bed, perchance to sleep, at 4am… fat chance - wished the floor wasn’t so hard. Got up again 4 hours later to find most still comatose:

[geek dorm, aka conference room]

BarCamp Day 1 - Afternoon Sessions

Saturday, February 17th, 2007 at 6:50pm

Tom Scott on Open Source Incremental Backups For Windows
Tom’s presentation was useful for those who want to manage incremental backups for Windows in a sensible way. His full presentation is available here: http://www.thomasscott.net/barcamp2/

I backup my system less often than I probably should (photographs aside, which get saved in at least 3 places regularly - I’m paranoid!). So perhaps I should take the time to have a go at this myself.

Meri Williams on Project Management For Busy Geeks
Meri’s talk started with the Basic lifecycle of a project. Few projects go through the whole lifecycle properly. The Big Secret is that, for smaller projects, PM is all about Initiating, Planning & Closing (and not worrying too much about execution and control). Planning should NOT be about planning a step by step guide - but something that helps you understand what you’re doing. And communicating this to stakeholders. She also mentioned that lots of projects are not closed properly - haven’t we all been plagued by customers that just won’t go away but pester by saying “can you just do this bit extra?”.

[Meri's running order]

Leisa Reichelt on Design Consequences
Leisa’s was a hands-on session where she demonstrated her techniques for initial brainstorming of site layouts and designs. We all had to break out the pen and paper (and post-its!), and “mock up” a screen to show the BarCamp Schedule (the real thing was done the low-tech way as you can see):

[Day 1 Schedule - done the low-tech way - but it works very well]

Then we talked about what we’d done and why. It was nice to get away from the computers for a bit, and everyone had fun explaining how they had implemented their solution to their neighbour.

[Andy and Nat listen intently to one BarCamper's version of the schedule solution]

Robert Lee-Cann on Over-Engineering Is Fun!
Leeky’s presentation was a light-hearted and thoroughly enjoyable look at solutions to problems which have been hugely over-engineered, and he wondered if this was a typical trait of geeks in general?

[right, Leeky having a geeky- brained moment]

Problem: Is the coffee machine full?
Easy Solution: get off your butt and go and look
Geek Solution: we all know where a bit of over-thinking can get us: webcam trained on the coffee maker

[below: The man needs coffee!]

Problem: Who’s going to make the tea round?
Easy Solution: Press-gang someone into doing it
Geek Solution: Web-based ordering of drinks, LED display in the kitchen showing the round required, online voting afterwards to see how well it was made!

Confessions:
Having described the above solution which is in use at his work (!), he asked us all if we would like to confess our most ludicrous over-engineered solutions. Some of the best were as follows:

  • Meri - private IRC channel to decide the flavour of your pizza before ordering it - used by people living in the same house
  • John - set up a telly, Freeview box and video transmitter in one room and a reciever in the other room - when they could have run a cable through the wall!
  • Brave Geek: had written 112K JavaScript file to write a whole web page on the fly, built in the days of Netscape 3 and IE3! He got a round of applause for that one!

Pitch An Idea
The final part was for the audience to come up with a solution to the perennial problem of putting the loo seat up or down in the bathroom. Many outrageous examples were put forward, which ranged from having a finger-print recognition pad on the loo door, so the loo “knew” who was about to sit down, to weight/position sensitive pads just in front of the loo, so it knew if gents were standing or sitting down! All great fun.

Andy Budd on The User Experience
Andy started by talking about the early desktop interface, when abstracting the interface made it easier for “non-tech” users. At the time, it was revolutionary. Similarly, Joe Bloggs doesn’t want to learn Unix to use their iPods. People DON’T read the manual. No wonder we say RTFM so often.

We learn by experience - programming DVD recorder is very similar to programming the video. So the building blocks are there and users learn the metaphores. It makes it important not to break common interaction habits.

Users learn new technology by exploring - you switch it on and start clicking buttons to see what happens! So make buttons look like buttons. And make sure it’s not fragile so that inexperienced users can’t break the system with one click.

Modern life constantly demands our attention. How easy is it to send a text while crossing the road? Rarely do people give your application 100% of their attention. Design it to make things easy, as people are adept at multitasking.

Make error reports blindingly obvious. I
t’s a great place to make the user experience a good one - as soon as something breaks, you want immediate service or fix, or at very least, a human-readable error message. Don’t make users feel stupid when they do something wrong.

[I'm no dunce]

Usability is all about making technology easier to use. Plan user experiences carefully. Create wireframe storyboards - think how filming is never done without paper mockups. Then test it on REAL users. Can be as simple as chatting to coffee shop customers - feed them donuts and buy them a coffee and get their feedback on your site - one day user testing, low budget - anything is better than nothing.

UCD is sometimes confused with Business Centred Design or Marketing Centred Design. You should not have to deal with politics. But we all know how hard that can be. Designing with a focus on business unit function is also horribly bad. Technology Centred Design - designing around our own technical ability - we do it that way because we can - is also a no-no.

Get out and talk to the users - find out what they’re trying to do with your site. Users don’t just want to know what the weather is going to do for the sake of interest, they are more likely to need to know if whether to take an umbrella with them today!

Build up Personas for each broad type of user. Design with these in mind. Very easy isn’t always best - maintain a balance. Sites or games companies know about flow - you lose time when you are interested in something.

Starbucks are masters of the “coffee experience” - which is why we are willing to shell out 3 quid for a cup coffee!

Lastly, he made the point that the iPod would probably fail user testing. People buy into the brand. You might struggle through learning the interface, but you’re willing to learn it because your friends tell you it’s a cool gagdet. So for the right brand, people are willing to take the time to learn new ways of working.