Christian Heilmann

You are currently browsing the archives for the General category.

Archive for the ‘General’ Category

TTMMHTM: Wallace and Gromit details, CSS scrubbing, accessibility stuff and UX London

Monday, January 5th, 2009

Things that made me happy this morning:

  • Wallace and Gromit’s “A matter of loaf and death” (for the Brits available on iPlayer for others on bittorrent) – I just love the amount of detail the people at Aardman put into their work. Check for example that the cardoor claims “dough to door delivery” and “flour to the people” , the car license plate is “doh nut5” , Piella’s shoes are real Poochi’s and there’s a TankTopMan shop: . All the details are listed on Wikipedia. If you have that much fun with your work, you’ve done something right!
  • Braille is 200 years old – let’s celebrate accessibility
  • The Videos of Scripting Enabled are ready and uploaded – I am now putting together video pages with the transcriptions and all
  • A backup strategy full of win
  • CSS Super Scrub a tool that analyzes CSS and removes redundant selectors
  • Uncoverr is a pretty cool site uncovering all the other media around a certain book – interviews, videos and such. Doesn’t find me though, maybe it is time for another book.
  • Wulffmorgenthaler showing the first ever Bimbo
  • I didn’t make the list of sexiest geeks what’s with that?
  • Guidedogs are just the start The NYT reports about helper monkeys, miniature horses and parrots!
  • Ticket sales for UX London have started. The new event by the dconstruct team.

Will a new browser war help web innovation?

Friday, January 2nd, 2009

Aircraft in formationI just spent an hour on the cycle in the gym watching the video of Douglas Crockford’s Web Forward presentation on my iPod touch. Douglas makes some great points about the state of the current technology for the web – especially browsers – being counterproductive to innovation.

I agree with all of what Douglas says (especially the security aspects of JavaScript and the need for vats), but I am not too sure about the notion at the end that we need another browser war to go forward.

I understand Douglas’ point about browser vendors and users knowing what they need, but I also see a big danger in allowing the way we work on the web to become multi-track once again. I worked through the first browser wars, and I am thoroughly sick of having to write code to work for one or the other browser. This is why we use libraries to work around these issues. The thing that is a bit academic about the view that browser vendors could fuel innovation by navel-gazing is that the end users are not really going to upgrade their browsers just to make our lives easier. Even serious security flaws don’t really get people to upgrade their browsers (I am not talking about us geeks, I am talking about offices and home users that just want to read their mails and get the news). We can innovate until the cows come home, but if it doesn’t reach the people we work for this is progress that makes us move away rather than forward.

I agree with Douglas that the W3C standards are a failure when it comes to innovation. For starters they haven’t moved in ages and the standards are not nearly as good as they should be to make us work efficiently. The DOM standard is too complex, HTML does not really provide what we need to describe interfaces and interaction and CSS is not the layout engine it could be and we need to hack with positioning and floating just to get a multi column layout.

You have to cut the W3C some slack though – if browser vendors hadn’t concentrated on putting bespoke functionality in browsers and followed the guidelines we’d have had a much easier life as web developers in the last few years and could have concentrated on working with the W3C to get the standards extended. This has improved immensely in the last years and even the biggest evildoers now got the CSS2 specs supported in the 8th revision of their browser. Communication is happening, the problem is speed.

The process of the W3C is academic and broken, I do very much agree with that. The WHATWG are kicking butt left right and center with the HTML5 specs and got a good gig going working with browser vendors to get support for what they do. I think this is a great approach and seeing that the W3C is now looking at HTML5 in favour of the overly complex XHTML shows we are moving in the right direction.

What I lack in the proposals of innovating with techies is that a standard is much more than how it works technically. This is what we have already done in the first browser wars: we coded to make it work. It bit us in the butt a few years later as what we built was either flaky and broke or bloated and full of hacks that are not needed any longer (I doubt you’d ever need a if(document.layers){} these days).

Web Development is a very frustrating and complex job. Simply making things work to me is not enough – it needs to work, be usable and easy to understand for developer who take over from you. Hacks and browser specific solutions are the opposite of that.

To me, pragmatic development means “keep it easy to understand”, not “make it work in all browsers” as “all browsers” is a very moving target. The danger we are running into right now is that we are looking at (bleeding) edge cases and see them as innovation and great pragmatic ways of working. I am a big fan of performance tweaking and saving bytes wherever we can. However you can overdo that. As Dustin Diaz explained Google are using as their doctype to save on some bytes and David Calhoun proved that it is working across the browser board right now. Fine and in the case of Google or Yahoo this does make quite a difference. However, a DOCTYPE is not only there to trigger standards mode – this is a nice side-effect. Its purpose is to tell user agents (and that is more than a browser) what the document is, how it is structured and what elements are allowed in which hierarchy. If you wanted to convert a document with this “skinny doctype” you are in trouble as the conversion tool has to hope that all is fine and dandy. Systems like Yahoo Pipes or YQL are a great way of getting data from the web and re-using it. If the data we put out on the web is not in a format we can rely on being valid, this data is unavailable.

I like to see the web as a pool of semantic and linked information, not as a collection of documents that render correctly.

At least one thing is for sure: this year will be interesting in terms of innovation and how we build for the web.

Check out Douglas’ video:


Douglas Crockford: "Web Forward" @ Yahoo! Video

(I am tempted to add VNV Nation’s Darkangel as the ambient soundtrack)

Small change in the flickr API output breaking my bad code

Wednesday, December 31st, 2008

During my absence I got an email that the first version of my unobtrusive Flickr badge has stopped working. The reason was that Flickr changed the output of the API. I the old version the JSON object contained an HTML description that was run through htmlspecialchars() first. I always considered this a bit of a nuisance and wondered about the reason. Now the Flickr feed does not have the encoding any longer as you can see for example in the JSON output of my latest photos:


{
"title": "Terminal 5 animated discs thingamabob *",
"link": "http://www.flickr.com/photos/codepo8/3141566868/",
"media": {m"},
"date_taken": "2008-12-27T08:10:35-08:00",
"description": "

codepo8 posted a video:

Terminal 5 animated discs thingamabob *

* technical term, really

", "published": "2008-12-27T16:10:35Z", "author": "nobody@flickr.com (codepo8)", "author_id": "11414938@N00", "tags": "london art heathrow awesome animation t5 ba britishairways terminal5" },

Before the change this would have been:


{
"title": "Terminal 5 animated discs thingamabob *",
"link": "http://www.flickr.com/photos/codepo8/3141566868/",
"media": {m"},
"date_taken": "2008-12-27T08:10:35-08:00",
"description": "

codepo8 posted a video:

"Terminal

* technical term, really

", "published": "2008-12-27T16:10:35Z", "author": "nobody@flickr.com (codepo8)", "author_id": "11414938@N00", "tags": "london art heathrow awesome animation t5 ba britishairways terminal5" },

This broke my code as I was relying on regular expressions to get the photos. Taught me a lesson, and as we have a media property now there is no need for this any longer. The fix for the badge code was:


// buggy, bad
temp=obj.items[i].description.match(/src="([^&]*)"/)[1];"
// works :)
temp=obj.items[i].media.m;

Lesson learned: Don’t trust regular expressions and data scraping.

Thanks to Jennifer Forman Orth for flagging this up!

TTMMHTM: Back online, news draught, monkeys, squirrels

Wednesday, December 31st, 2008

Things that made me happy this morning:

Squirrels with coffee - OMG!

Time to go to the gym to work on those lazy bones.

So what will I try to do in 2009?

Monday, December 29th, 2008

(Normally I tend not to write any personal posts here, but hey, why not?)
It is the end of the year and time for new year’s resolutions. Luckily I had a great year and did most of the things I planned to do (the classics like losing weight, cleaning up the flat, changing my work and so on) worked out swimmingly. I gave a lot of talks, trained a lot of people, re-invented my job and organized my own event. All in all I am very happy about all that.

So then, for the coming year I’ve just written an article for Digital Web that will be released in the new year that covers a lot of my thoughts on what I want to do. Generally I am seeing harsh times ahead – people are spooked out by the financial recession and the short time fixes (yes, layoffs). This means to me that I am planning to do a few things differently to give myself space to work with colleagues and contacts to get through this.

My laundry list for the year:

  • be more moderate – I can get very cross about things that in the big picture are not of that much importance (this has improved constantly over the last few years though)
  • concentrate my work on markets and environments I hadn’t covered much this year – specifically universities as environments and South East Asia as markets (I am already scheduled for 3 university hack days in the US and India and plan to find more Hong Kong/China/Signapore/Australia/Taiwan/Korea assignments)
  • finish my work for the Opera Web Standard Curriculum (sorry Chris, I have delayed a lot)
  • write (or at least start) another book – this time for O’Reilly
  • look closer at my finances (I am terrible at that)
  • turn my flat into more of a home than a place to change suitcases
  • take Scripting Enabled more on the road. Somehow the “go forth and do it” doesn’t work that well…
  • clean out icant.co.uk ;)

Let’s see how I will succeed.