Archive for March, 2007

WPF/E competition

Thursday, March 29th, 2007

Yesterday was a fine day that ended with a talk about the website (now offline). It’s made with WPF/E technology and is made to mimic the look & feel of the real Vista operating system. A great showcase of the technology.

There’s been much talk about WPF. The whole Windows Foundation Platform seems to be competition to the Adobe Apollo platform. They’re both made to create desktop applications. Apollo seems to be on top with the cross-platformness while Microsoft is putting its hopes on the size of the Windows developer community.

When we come ‘down’ to WPF/E (the E stands for Everywhere), the competitor everyone is talking about is Adobe (formerly Macromedia) Flash. They both solve a lot of common problems – animation, multimedia, drawing – stuff that you can’t do in HTML. But when you look under the hood of you’ll find there’s a bunch of JavaScripts that seem to do all the magic. And the code looks much like when you’re working with the infamous <canvas> tag.

This was also confirmed by the developer of the page – due to the limitations of the current plugin and it’s work with XAML everything on the page is dynamically created with JavaScript and is not present in the source XAML file. Since there are no components available he actually wrote all the controls himself – tabview, scrolling, panes, menus, windows,…

Two things come to mind:

  1. Direct3D vs OpenGL battle that went on about a decade ago
  2. document.layer vs document.all and the time of the DynamicDuo

Seems like a good idea would be to write a library that will seamlessly switch between WPF/E, and Flash whether they’re present or not. Especially since the tag will obviouslly never be trully cross platform (at least for a while) and that WPF/E doesn’t yet have a plugin for all platforms & browsers. Then again – what’s wrong with Flash?

Theshow is no more

Thursday, March 29th, 2007

Ze Frank finished the show. He continues on the ORG.

This is really not fun

Thursday, March 29th, 2007

Kathy Sierra has been getting death threat comments.

Dear Apple

Friday, March 16th, 2007

Coolness is like trust. It’s hard to earn and easy to lose.

Update: Others seem to have finally gotten why this is more than just an IP issue.

The tables – part 1

Wednesday, March 14th, 2007

In this post I’ll go into the semantics of tables. Tables are still hated by many web developers and since sometimes a firm ‘NO’ is the best way of changing things some people are still scared of using them. I’ll say it out loud:

Using tables in HTML is OK.

That is if you’re using them for tabular data. Some things are a table no matter what. To rephrase – if it looks like a table it IS a table.

The beginning

The table is a block level element so it goes anywhere a block level element can. It can even fit inside the button element.

Every table begins with a table tag. Needless to say that the table needs to be opened and closed.


The table element can have attributes. One of them that should be user more often is summary that describes the contents of the table. There are a few attributes that actually control the display of the table and should probably not be used, or at least be used as little as possible. These are all still valid even in XHTML1 strict: frame, rules, cellspacing, cellpadding, width and border. Align and bgcolor attributes were dropped in strict and should not be used anymore. You can achieve almost everything that the last two groups of attributes are there for with CSS. You might stumble upon some problems though.

List of attributes:
  • summary
  • frame
  • rules
  • cellspacing
  • cellpadding
  • width
  • border
  • align
  • bgcolor

The regular attributes apply, a special case is the dir attribute that sets the direction of the table. With tables right-to-left (RTL) means the first cell will be on the right and the text will start on the right.

The header that’s not the head

Before we get to the content of the tables we need to check some other tags.


The caption tag is used to “describe the nature of the table“. The caption element is visible to all users and should be rendered as wide as the table. With the summary attribute it should provide all the information about the table to people using non visual renderers. There can only be on caption element and it has to be the first child in the table element (ignoring whitespace nodes of course).

There are some issues with rendering the caption though:

  • Firefox renders the tables border differently that the captions border which creates a 1px difference – corrected with margin-left:-1px
  • Internet Explorer 6 ignores margines on the caption element entirely. It also ignores the border collapse between the table cells and the caption
  • caption-side property that defines if a caption is placed at the top or the bottom of the table is not really supported across A-grade browsers at the time of writing (Firefox supports it, but not changing top to bottom via scripting)

Read more about styling table captions.

Next time…

In the next edition of the tables we’ll go into rarely used colgroup and col tags.