WPF/E competition

March 29th, 2007

Yesterday was a fine day that ended with a talk about the WindowsVista.si 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 WindowsVista.si 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

March 29th, 2007

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

This is really not fun

March 29th, 2007

Kathy Sierra has been getting death threat comments.

Dear Apple

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

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.

<table>

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.

<caption>

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.

Sources

The web battle #2

February 12th, 2007

There’s been a lot of buzz lately about the development of HTML. There’s WHATWG developing the Web Application 1.0 specification also referred to as HTML 5 or XHTML5. The document is edited by Ian Hickson and copyrighted by Apple, Mozilla and Opera. On the other side there’s a W3C group working on XHTML2 (the old HTML WG) and then there’s talk of a new group that would work on incremental improvements of both HTML and xHTML. There’s a nice comparison available here (via Juicy Studio Colour Contrast Analyser).

The last fight “we” fought was “against” the browser makers. The browsers were going in different directions and something needed to be done. Fortunately the solution was a relatively easy one – set a standard and make/beg the vendors to create browsers that respect it. Not an easy task but it seems “we” succeeded. By “we” I mean web developers in general, the WaSP and the W3C. The standards support is not perfect yet, but it’s good enough that we are left without an enemy.

The unfortunate thing is that most people actually need an enemy. At work it’s probably their boss; at home it’s their mother-in-law… We keep making up new enemies – they give us the drive to give more than we normally do, create new things. And sometimes we just really don’t like what “the enemy” is (not) doing. I see this happening now in the world of web standards. We have many initiatives on a few fronts – we’ve got the WCAG issue and the HTML issue. It seems that on one side we have the W3C and on the other the real-life web developers community. Or do we?

As I see it we’re all on the same side. We need to figure out what to do next. And this unfortunately cannot be a democratic decision. Committees can agree on a solution but can’t really make a decision. Think about it – all the stuff we use now has a name to it. Somebody went over the line to set something as they thought it was right. The question is who that person should be now.

The trick is we will never know. We can just hope that again we’ll gain more than we lose.