boogdesign posts

Longer posts on standards based web design, portable web development and Linux, intermingled with some stuff on my other nerd interests.

Rob Crowther, London, UK based Blogger, Web Developer, Web Designer and System Administrator - read my Curriculum Vitae

Buy my book!

Book CoverHello! HTML5 and CSS3 available now

Buy my other book!

Book CoverEarly access to HTML5 in Action available now

Category: Semantic Web and Microformats


12:51:15 pm Permalink Things I did last year (part two)

Categories: Web Design, Web Develop, Gadgets, Blogging and Internet Culture, Semantic Web and Microformats

Following on from Wednesday's post, this post covers the last six months of 2008 and the early part of 2009. This should finally get me up to date and back to the point where I can post about things I did last week without a guilty conscience :) Even in summary form this is taking me a lot of time (that OpenTech event had a lot of stuff!), so I'm just going to publish it half finished and fill in the later events over the next few days.

Summer 2008

  • London Geek Nights: Ajax - I managed to write this one up
  • SearchMonkey Developer Event - obviously in a purple patch of productivity, I got this event written up too, I also wrote a tutorial for developerWorks a few months later.
  • Open Tech 2008 - Session 1
    • Rembrandt, Pr0n and Robot Monkeys (Kim Plowright) - An interesting talk on the relationship of man and machine, how we think into our tools, and the refreshing view that porn is one of the ways we reunite with our bodies.
    • Living with Chaos (Simon Wardley) - I was to see variations of Simon's talk several times over the coming months, and if you get a chance I recommend you go see him too as he's a very entertaining speaker. The message of the talk is that open standards are a necessary end result of the technology curve as we travel through the Innovation -> Bespoke -> Products -> Services continuum. By the time everyone is selling services you're at a commercial disadvantage if you're still on a bespoke solution or selling a locked in product.
    • What the Frog's Eye Tells the Future (Matt Webb) - A talk about the connections between the founding fathers of neuroscience, computers and cybernetics, eg. The Macy Conferences, Pitts and McCullogh, Norbert Wiener, Vannevar Bush, Ted Nelson and Douglas Engelbart. Cybernetics is a cross domain concept language, and the people in cybernetics are the 'dark matter' which link everything together.
    Session 2
    • Sponsor Presentation: TiddlyWiki Tales (Jeremy Ruston) - TiddlyWiki is a javascript driven, single page wiki - no need for a server, everything is saved directly into the file, so it can be used offline from your desktop.
    • Android and the Open Handset Alliance (Michael Jennings) -
    • Social networks and FOAF (Tom Morris) -
    Session 3
    • OpenID and Decentralised Social Networks
    • Distributed, Federated, Partial
    • The Web is Agreement
    Session 4
    • From Stealth Mode to Open Source in 90 days
    • No Comply: or Why the Paranoid Android Approach to Security is a Bad Idea
    Session 5
    • Publishing with Microformats
    • Power of Information: Rewiring the London Gazette with RDFa
    Session 6
    • Finding Good TV on the Interwebs with RDF and REST
    • The Bastard Child of Baird and Berners Lee
    Session 7
    • Intro to Hadoop
    • building for the open web
    This was a really good day, I would recommend going along to the 2009 event if you can fit it in (unfortunately I have a prior commitment :( )
  • Momolondon July - Enabling location in applications - A set of lighting talks: Interesting stuff from Ted Morgan of Skyhook (the iPhone geolocation provider) about using wireless network signatures to determine where you are; a talk on FireEagle; Charles Wiles explained how Gears for Mobile is R & D for HTML5; there was a talk on the W3C Geolocation API; Rummble and BuddyPing, location aware, mobile based social network apps; finally Mark White on Locatrix who are a platform/service provider for people looking to provide location based mobile services.
  • CloudCamp - this has now turned into a regular event, so the original links are long gone. Saw Simon Wardley again, with a similar talk to OpenTech but with cloud, and standards therein, substituted for open source.

Autumn 2008

  • Google Developer Day 2008 - I attended four sessions as well as the starting and concluding keynotes: Intro to Android, after seeing a real, live Android phone in the keynote this was a nice talk to get a closer look - the questions went on longer than the talk though :) ; A Deeper Look at Google App Engine, I was getting quite into the whole cloud computing concept at this point and I likle the way App Engine allows you to just write code and then get started without the bother of setting up VMs etc.; Codelab: Gears, although I went to this I couldn't get very far as my hurried Ubuntu install the day before had left me with a 64bit build - I had built a version of Gears but it didn't contain APIs compatible with what everyone was using so I skipped out of this half way through; this allowed me to got to V8 - the Chrome engine which described some of the techniques used in the recently announced V8 (it was a very popular talk!) including native code compilation and behind the scenes static classes. I wore my Ubuntu 'Linux for human beings' t-shirt which got featured on the closing video/photo montage (the message on the back, rather than me).
  • Scripting Enabled - This was an excellent event, I think videos of all the presentations along with text transcripts and slides are available at the website so I won't go on about it too much. Highlights for me were seeing videos of real users with screen readers and Jonathan Hassell on Dyslexia which both made accessibility issues real to me in a way they hadn't been before.
  • Mobile Location-Based Services
  • YUI 3.0
  • CloudCamp
  • London Perl Workshop 2008 - Since I'd enjoyed his introductory tutorial at the 2007 event, I went to Dave Cross's Introduction to Web Programming tutorial: some interesting stuff on how CGI actually works which I'd never really investigated before, how to work with HTTP in Perl, some hints on security (check all input variables - good advice in any language, and use taint mode, which is Perl specific solution for that) and he finished off with a short introduction on how to use template toolkit to make life easier. After the tutorial I went to a number of short talks: Regexp mini tutorial: Character Classes; Painless OO <-> XML with XML :: Pastor; and‎ ‎Intermediate Moose where things started to get a little beyond me and my rudimentary knowledge of Perl.‎

Tweet this!
Send feedback »PermalinkPermalink


10:50:48 pm Permalink Blogging motivations and things I did last year (part one)

Categories: Web Design, Web Develop, Gadgets, Blogging and Internet Culture, Semantic Web and Microformats

In the admin pages of this blog (when I first started writing this post, five months ago!) I have a 'list view' for posts which has a few pertinent details alongside the post title - notably date and visibility (published or draft). In pages thirteen to four (twenty per page), covering July 2003 up until June 2007 all the posts are at status 'published.' On page three, starting about August 2007, there were a couple of posts at 'draft', on page four there were six, on page one, even with the couple of posts I finally published in January, there were seven. There's a definite trend developing here &amp;#58;&amp;#41;

There are a few factors at work here: a major one is that last year I switched from never going to the gym to going five or six times a week meaning that not only did I go to events less often but I had less free time to write them up; getting paid to write articles also decreased my motivation to write 'for free' - plus after spending a week or so where my entire evening (up until the early hours in the morning several times) had been spent writing I did feel like I owed myself some time off.

This led to me starting a number of 'place holder' posts and, once I had a few posts sitting in draft status it was very easy to leave the next one in draft too and say to myself "I'll finish them all off at the same time." What this led to is a whole mountain of unpublished, half-finished posts which eventually put me off even starting new ones.

I read some advice on another blog about not writing things out straight away - hold off seven days and see if it's still worth writing about. For me this just led to not writing anything at all (this may have been the effect he was after). If I'm going to write posts and keep writing them, I've got to do it that day, right there and then, and get it published. It turns out that getting paid to write stuff actually puts me off writing for free on my blog (other than a short burst of activity as the first thing was published just to make it look a bit more up to date).

So, in an effort to clear the decks, I'm going to attempt to summarize 18 months of event attendance in just a few long posts, then delete all those draft posts and make a fresh start. I did manage to spit out some blog posts in this period and I'll link to those where appropriate. The final part of this exercise will involve me finally publishing the few 'technical/tutorial' type posts I have in draft status which I'll then link to from a short post.

Autumn 2007 / Winter 2008

  • Going Beyond REST - This was a fascinating talk. Applying the principals of REST architecture on the inside of a system rather than between systems - all functions are represented by URIs, which it turns out has some nice side effects. For instance if one process within the system calculates 2+2 then the result is cached and any other process gets to use the result 'for free' (I know this is hardly significant for 2+2, but imagine a collection of more complex calculations). This means recursive stuff can be automatically optimised - the results of each iteration are cached and so the minimum number of operations are performed. As I was listening to this talk, Greg Egan's Permutation City kept popping in to my head.
  • Know IT and Share IT - This was an evening about how to go about facilitating enterprise knowledge sharing: "What knowledge do you have and where is it? Employee minds: 85%, Other media: 15%." Three talks on the themes of social network analysis, knowledge networks, communities of practice and tools to support it. A quote I noted down from the final talk which resonated with my experiences: "Any solution which requires significant change in behaviour will be difficult to implement. Any solution which requires significant consistent behaviour will not be possible."
  • Erlang for five nines - Since I've found a video I won't go on about it, but a good introduction.
  • London Perl Workshop 2007 - Attended the 'Beginners Perl Tutorial' Dave Cross which was quite enlightening - certainly an explanation of the default variable made a whole load of code suddenly more comprehensible to me (slides).
  • Javascript as a disruptive language - I went to this mostly because I enjoyed Ajax in Action so much. Again, you can see the video yourself so I won't go on about it.
  • Momolondon February - Mobile Operating Systems - four talks on the current state of mobile operating systems. Mark Burk's talk was interesting as it showed the strong divisions between the US phone market and the rest of the world, also notable the lack of penetration the iPhone had on the world market despite all the hoo ha. David Wood of Symbian takes the in retrospect prize for his strong defence of the closed source development model for mobile OS development (though misrepresenting several aspects of open source in is argument) only for Nokia to open source Symbian five months later.
  • Momolondon March - Mobile London - Excellent venue at the London Transport Museum for this event focussing on mobile apps for Londoners. Some of the trials LUL had been conducting with audio travel guides and travel news while actually in underground stations looked very interesting, also the trial to add Oyster payment functions directly into your mobile phone. The "Huh!?" moment of the evening was provided by the O2 marketing person who claimed (with a straight face) that customers thought it was really important that they could always see the O2 branding on their phone display - yes I just love having 20% of my screen taken up by the operator logo...

Spring 2008

Tweet this!
Send feedback »PermalinkPermalink


02:57:28 am Permalink hCard Buttons Across the Web

Categories: Semantic Web and Microformats

A while back I made some buttons for various microformats, then discovered the official home for them and so added them into the wiki. This has had the side effect that many naive developers simply copy and past the code for the button from the wiki into their pages and then use the image hosted on my website. It's not a big problem for me - the image is small and it gets cached for a month whenever someone requests it so not massive bandwidth, and it's mostly just blogs and small sites which do it. Or so I thought...

hcard button on the website

This was brought to my attention this evening as I was switching my default from PHP 4 to PHP 5 and then breaking everything by putting invalid entries into my .htaccess file. After I was done I checked the error log and noticed several errors with a referrer of, I went to look at the referring page and, sure enough, there was my hcard button. You'd think they'd be able to afford to host their own rather than leeching my bandwidth, but times are tough &amp;#58;&amp;#41;

I thought I'd do a little anecdotal analysis of hcard adoption so I downloaded the December log file. There were 76936 requests for microformat_hcard.png in December, 58792 from Comet - by far the most common. Next up was itself with 8661, then one (apparently) very prolific blogger with 3715. There were a few smaller sites with a noticeable number of requests - a New Zealand electricity supply contractor had 85 hits while hcard is also popular among German universities with Universität Potsdam scoring 307 hits and Universität Bielefeld with 172 hits in what looks like an intranet application.

So not very meaningful in the grand scheme of things, but it is clear from the slightly eclectic set of sites I've listed above that Microformats and hcard in particular have seen adoption across a broad range of different websites. Hopefully we'll see more and more services which take full advantage of all this semantic data.

Tweet this!
4 feedbacks »PermalinkPermalink


02:42:30 pm Permalink Internet Explorer Gets Some Oomph

Categories: Semantic Web and Microformats

Microformats are supported quite well in Firefox these days thanks to the Operator extension, but the 70-80% of web users still using Internet Explorer might have been wondering what all the fuss is about. Now, thanks to MIX Online, they finally have a chance to find out. Oomph: A Microformats Toolkit was released yesterday and can now be downloaded along with full source code.

There are various parts to the toolkit, some CSS stylesheets and authoring tools, but the main bit I'm interested in is the IE Add-in. The install is a standard MSI but, once installed, the Add-in is quite low profile - no toolbar or other buttons appear in the browser chrome. However, if you browse to a page with some Microformatted content, a little icon appears in the top left corner of the browser window.

Oomph discovers Microformats on the page

Clicking on the icon expands an overlay with an interface into the page's Microformats - it only appears to support hCalendar and hCard and you get a box for each even if there's only one type on the page. Microformats are displayed one at a time with some buttons to scroll through if there are more than one, then there's a toolbar beneath for exporting to Outlook, Yahoo! and others.

Oomph displays the Microformats found on the page

I did run into a few problems on some pages where the next and previous buttons didn't work (on this page, for example, the next and previous buttons transferred me to the blog engine skin folder) and also it seemed to be confused on my CV where I'd used the include pattern for my contact info (it's been a while since I updated it, so I'll have to check I'm doing it correctly before I investigate further). One really neat feature of Oomph is the maps interface, which you get by clicking the little globe symbol near the top left.

Map these Microformats!

As you can see above a map appears, this seems to be based on a search of the address information rather than geo but it worked pretty well for the example pages I tried. Overall, pretty good for a first release and a welcome addition to the range of user tools for Microformats.

A page with both hCalendar and hCard

Tweet this!
Send feedback »PermalinkPermalink


03:12:01 pm Permalink SearchMonkey Developer Event

Categories: Web Develop, Server Side Web Development, Semantic Web and Microformats

Review: SearchMonkey Developer Event at Wallacespace, 2 Dryden Street, Covent Garden, London, England. WC2E 9NA. 18:30 to 20:00

I'd heard quite a lot about SearchMonkey, Yahoo!'s new search platform but not got around to checking it out, so I was hoping this event would be a useful introduction. The evening involved a couple of presentations from Yahoo! developers coupled with free drinks and food - a promising combination!

The first presenter (sorry, didn't make a note of the name - a Yahoo! developer from the US) talked about the motivations behind SearchMonkey and some of the technical features. One of the main obstacles to more semantic data appearing on the web is that there's a chicken and egg problem. It's not worth having features supporting semantic standards like RDF and Microformats on search engines until there's content available, and it's not worth making content available until you get benefits on things like search results. SearchMonkey cuts through that whole issue by allowing users to add features to the search engine to make use of the semantic data they've added to their website. It allows you to modify the presentation of search results from particular sites (not just your own) using semantic data taken either directly from the page (if there are Microformats or RDFa available) or through an XSLT transformation which you can provide.

Next we had Neil Crosby walk us through building a couple of example SearchMonkey applications. It really is fairly straightforward - you pick a URL pattern for your application to apply to and then it's more or less point and click (especially if you have standard Microformats or RDFa available). A couple of noteworthy points came up:

  • You can ask SearchMonkey to automatically generate ten sample URLs as you go through the process, but it's best to pick the first one by hand as that's the one used in all the previews once your monkey is done
  • You can use XSLT to extract data if your target page doesn't have pre-parsed Microformats or RDFa available, but that will be slower (though it will at least get cached for 15 minutes after the first call)
  • The presentation part of the monkey is entirely separate from the data source, multiple monkeys can use the one data source, and you can use data sources provided by other developers in your monkey

At present all SearchMonkeys are opt-in on the part of the user, which means if you're not targeting a big site it's unlikely your finished application will see a lot of use. However, we were promised that 'within a month' there would be options to set a default SearchMonkey for a website if you're the registered owner of the site (ie. you've registered yourself on site explorer) - so I have that long to think of something clever to do with my search results &amp;#58;&amp;#41;

The evening ended with free pizza, hand prepared in the kitchen behind us, and there were free drinks throughout. We also got a nice SearchMonkey hat, a sticker and a rather weird USB stick (Grolsch style opening mechanism). All in all an excellent evening, 5 out of 5. It has taken me nearly two weeks to get the review finished off, but some folk were a bit quicker off the mark if you'd like an alternative perspective.

Technorati tags for this review:    

Tweet this!
Send feedback »PermalinkPermalink


11:59:28 pm Permalink WSG London Findability Meetup

Categories: Usability & Accessibility, Information Architecure, Front End Web Development, Standards, HTML and CSS, Semantic Web and Microformats

Review: Web Standards Group London Meetup at Westminster University, New Cavendish Street campus, London 19:00 to 21:00

Concepts of Findability (Cyril Doussin) - This was a whirlwind tour of the subject of findability, mostly based on Peter Morville's Ambient Findability, since you can probably just go and read the book I'm just going to mention a couple of things Cyril talked about that caught my ear, first - what's the difference between data, information and knowledge?
An unevaluated set of symbols
An evaluated, validated or parsed set of symbols
A set of symbols which have been understood

You can easily see this definition in the context of the Semantic Web project - moving the web from data/information into the realms of knowledge. Cyril then discussed several general strategies for making things findable: The "In Your Face" Discovery Principal (basically, traditional advertising); Hand Guided Navigation (web directories and drill-down hierarchical menu systems); Describe and Browse (search engines); Recommendations (forums, mailing lists, Digg and other interactive systems). Several websites combine two or more of these to improve findability, for example Yahoo now suggest categories for drill-down with your search results. Cyril then discussed how to measure the relevance of search results, by considering the precision (lack of false positives) and the recall (exhaustiveness) against the requirements for the type of search (for some searches recall is more important than precision and vice versa) before finishing off with a brief chat about content organisation.

Building Websites with Findability in mind (Stuart Colville) - This talk was mostly regular SEO type stuff, five basic requirements were covered:

  • Understand your potential audience - this almost goes without saying, but you everything in the design and structure of your website should be driven from who your visitors are and what they're after.
  • Have compelling content - with the wealth of content already available on the web, you've got to find a way to make your content stand out. Either be completely original, which is difficult, or aim at a niche market where there isn't so much competition. This could also come from presenting existing content in a new way to better serve the needs of your target audience. Also, try and keep your content focussed - pictures of your cat might be very cute, but unless they're relevant to the main topics of your website consider hosting them elsewhere.
  • Use quality markup - this was the meaty bit of the talk and ranged across a number of sections:
    • Follow web standards in your markup, while it won't turn poor content into compelling content, it will improve the ratio of content to code on your page
    • Pay attention to your meta tags, while keywords are ignored the description is often displayed in search engine results so should have something relevant to the current page
    • Titles and headings are important,. Titles always appear in search results and will also be the default link text for any of your content in social bookmarking services (ie. they're link juice keywords - check this out for an idea of how bad many people are at this - I got "1 - 10 of about 36,900,000"). Remember your h1 heading is the most important visible text on the page, for most pages on your site this will not be your company name and/or logo
    • Text content should use the semantically correct element, strong and em can be used to give particular phrases higher weight but use them sparingly, duplicate content is not the issue it used to be especially if it's 'natural' (eg. a blog where the same post will normally appear on several pages)
    • Images which are purely design elements should be CSS backgrounds, images which have some data should use CSS image replacement and inline images should always be given correct metadata (where 'correct' sometimes implies 'none')
    • Microformats can improve findability, particularly after Yahoo!s recent announcement
    • Javascript should always be unobtrusive and you should practice progressive enhancement
  • Always keep accessibility in mind - remember a search engine has a similar view of the web to someone using a screen reader, improving your accessibility will usually also improve your findability
  • Present no barriers to search engines
    • Website performance affects indexation - search engine spiders only spend a finite time crawling your site, so the quicker you deliver pages the more will get indexed
    • URLs are an important opportunity to add keywords, and remember "A cool URI is one which does not change." Learn to use mod_rewrite and remember to give correct HTTP responses - 301 for content which has moved, 404 for content which you need de-indexed
    • Be careful that you don't block off important parts of your site with the robots.txt file

Finding yourself with Fire Eagle (Steve Marshall) - Fire Eagle is a service which helps you manage your location. It sits between your location provider (GPS device, mobile phone etc.) and your location dependent services and presents a uniform interface to those services while also letting you control your privacy. The key point is that it breaks the tight coupling that usually exists between 'location getting device' and 'location using software' which should therefore facilitate an explosion in location driven websites when it goes online (Google are experimenting with a similar thing in Gears, so it's an idea who's time has come). One very nice feature was it's use of OAUTH to set privacy levels - you can determine for each service the amount of geographical detail it will get and the API returns to the service a hierarchical object which goes down to the level of accuracy you specify (eg. country -> city -> locality -> postcode -> geo). This talk and it's associated demos/examples was very interesting, but you probably need to see it in action to really grasp how cool it could be.

Overall I enjoyed this event, though I was already familiar with a lot of material in Stuart's talk it's always good to have a refresher/reminder, and I learned some new things in both the others so 4 out of 5

Technorati tags for this review:    

Tweet this!
2 feedbacks »PermalinkPermalink


11:30:34 am Permalink Microformats vEvent

Categories: Front End Web Development, Semantic Web and Microformats

It's London Web Week, which means there are lots of events on. I plan to go to three of them myself, the first of which was last night's Microformats vEvent.

Review: Microformats vEvent at The Yorkshire Grey, Holborn, London 19:00 to 21:30

The venue was a function room in a pub which wasn't ideal - there weren't enough seats for everybody and, since I was a bit late arriving, I had to stand through both presentations which made it a bit awkward to make notes.

Putting microformats on the Semantic Web with GRDDL (Tom Morris) - Tom started off by talking about "Descriptive Markup", an alternate term for semantic markup to avoid "semantic" being every third word that would come out of his mouth. He then moved on to GRDDL and it's potential for creating a decentralised data web out of any HTML pattern you use on your website. An HTML pattern doesn't have to be a Microformat, it can be any HTML as long as it's used consistently on your site and you can provide an XSL transform to turn that pattern into useful semantic data. You can then write your own GRDDL profile to allow the data to be automatically extracted. He also discussed that the output from a GRDDL transform needn't be RDF, it could be anything you want such as RSS or JSON, which would allow you to very easily create an API for your website with nothing more than a few transforms. In the questions at the end he compared GRDDL to CSS and Javascript, except where CSS was for presentation and Javascript is for behaviour GRDDL would be for data. For an example of the potential he suggested we checkout Tom finished off with some "Design Patterns for the Web of Data":

  • Give everything a URI - your website, your house, your car, your pets etc.
  • Things (ie. URIs) linked together with meaning
  • Small vocabularies loosely joined - don't try and describe the whole world, stay focussed on your target domain
  • Do the right thing - practice wisdom
  • "Pragmatic" usually means you're doing it wrong
  • Don't mandate, don't limit - the less you restrict, the more room there is for freedom of expression

One Big Happy Family: Practical Collaboration on Meaningful Markup (Dan Brickley) - Dan's talk was a bit more political than technical and addressed the antagonistic attitudes which are sometimes displayed by Semantic Web folk towards Microformats folk and vice versa. Through a discussion of some of the history behind the current Semantic Web specifications at the W3C, a history which is largely obscured by the specs in their current state, he demonstrated that the two communities have far more commonalities than differences. Both communities are converging on the same goal but are taking very different routes to get there, and a bit more respect on both sides could allow each to learn from the other. That was a high level summary, the way Dan said it took longer but was also funnier with a liberal sprinkling of anecdotes &amp;#58;&amp;#41;

The talks themselves were very good, but I didn't enjoy the environment much - apart from the standing, the TV screen was a bit hard to read so 3.5 out of 5 overall.

Technorati tags for this review:    

Tweet this!
3 feedbacks »PermalinkPermalink