Christian Heilmann

Author Archive

B3TA.com in Web2.0 confusion

Thursday, April 13th, 2006

B3ta.com is a place where people post photoshop-manipulated photos and animations. Unlike Worth1000 where the main idea is skill and immaculate photo manipulation b3ta thrives on novelty, skill, crudeness and, yes, immaturity. The joke of the picture is more important than the technical quality. Chances are you found a lot of b3ta pictures as “funny attachments” in your inbox over the years.

Every week there is a new challenge what pictures should be about and this week they picked “Imaginary Applications for Web 2.0”. The results are quite funny, although not up to the normal quality of b3ta as the contributors are utterly confused as to what Web2.0 might be about.

Warning: Some of the entries of the competition are not work safe as they might be deemed inappropriate, political incorrect and show crudely drawn comic genitalia. I warned you.

And the winner of cheekiest SPAM attempt is

Tuesday, April 11th, 2006

This just blew my mind:

Attempt to spam my comments by pleading for help how to get rid of a spam adware infection

I would believe that it could be a person really asking for help to get rid of a spyware/trojan infection if he hadn’t used a naughty site as his own URL.

Anyways, why should I know how to get rid of it. I never surf naughty parts of the internet, honestly!

Making AJAX navigation optional

Monday, April 10th, 2006

I just put up a proof of concept for the AJAX chapter of my book. For years I have ranted about DHTML multi level menus simply assuming that every user wants to have every page in the sitemap as an item in the navigation.

My idea was to make the enhanced navigation optional and allowing the user to decide initially.
Check out the example:

It uses PHP to only provide a chunk of the full navigation automatically replacing the current link with a strong when JS is unavailable and when JavaScript is available it offers a link that turns the navigation into a multi level tree menu loading the main page content via XHR.

What do you think? Helpful? I think it is a lot less obtrusive than a lot of fancy menu systems out there while offering the same options.
[tags]menu,accessibility,hierarchical menu,treemenu,ajax,javascript[/tags]

FeedNav – an unobtrusive AJAX RSS displayer

Wednesday, April 5th, 2006

I finally reached the AJAX chapter in my book and had to dabble with it for the first time (yes I know I should have done it earlier, but I work behind a proxy in the office that doesn’t let any outgoing requests through).

The first outcome is FeedNav, a RSS feed displayer: Have a look and I’d be happy about feedback here on the blog.

New free article – From DHTML to DOM scripting

Wednesday, March 29th, 2006

I just published a new longer article (40 pages) trying to explain the differences between DHTML and DOM scripting. The article explains what DHTML, the DOM and DOM scripting is and shows how to create a web page with dynamic elements like tabs, a slide show and a big product shot in both ways.

The DHTML explanation is annotated with explanations why some of the techniques are a bad idea and the DOM scripting version explains why some of the assets are good ideas. As a summary:

DHTML issues:

  1. Script dependence – Users without JavaScript get stuck or get elements that only work with JavaScript but don’t do anything for them.
  2. Mixing presentation and functionality – If you want to change the look of the effect you need to hack around the JavaScript.
  3. Assuming functionality without testing for it – what it says
  4. Keeping maintenance JavaScript based – Maintainers are expected to change the script when they want to change the effect, and search through the whole script.
  5. Mixing HTML and JavaScript – what it says
  6. Blaming the user – Users get messages like “you cannot use this as your browser doesn’t support it, update your browser” instead of just not getting the functionality if it is not 100% necessary.
  7. Taking over the document – one onload to rule them all

DOM scripting assets:

  1. Progressive Enhancement – check if things are available, then apply those dependent on them
  2. Ease of maintenance – keep the maintenance as easy as possible via dynamic CSS classes and properties at the beginning of the script
  3. Separation of Presentation and Behaviour – add dynamic classes instead of changing the style collection
  4. Separation of Structure and Behaviour – use dynamic event handlers and generated elements instead of onclick and NOSCRIPT
  5. Using modern event handling – more than one onload please
  6. Avoiding clashes with other scripts – avoid global variables and encapsulate functions as methods in an object

Of course, you can disagree :-)