JetsGo Frustration

Canadians, especially those of us who live in Charlottetown, have been excited about JetsGo lately. It’s a new airline which will hopefully provide less expensive airfare intra-Canadian (and a few US) locations.

Their website, lets you shop around for flights by feeding it an origin, destination, and preferred departure time. This is great to. I like being able to get quotes right away and enjoy shopping around a bit.

But my frustration comes from a single part of the interface that could easily be fixed. If there is no flight available the day you picked it will say as much, then offer two buttons “One Day Before” and “One Day Further”. Now, with bigger cities, this works great, because there is always a flight coming in or out (apparently) on any given day. Toronto to Montreal for example has a few on each day. But try Charlottetown to anywhere. It’s a wasteland of emptiness! And you can only iterate through day by day. It takes forever!

It would be great if there were “Skip ahead to next flight” buttons. And I doubt it would be difficult to implement.

 

Cereal Impostors

Generic-brand cereal names observed at the grocery store:

  • Oatie-O’s
  • Frosted Oatie-O’s
  • Neon Crunch (or in French, Croquant Fluon)
  • Fruity Hoops (right next to the Fruit Loops)
  • Lickety Split-O’s
 

Writing semantic markup: Robots to the rescue!

Some very smart people think that the next big leap in web technology will be on the foundation of the Semantic Web. However, some other very smart people are raising concerns that this semantic utopia may be unattainable.

Matthew Thomas is an interface designer from New Zealand. Yesterday on his website, he posted a summary of a few of these smart people’s concerns about the move towards semantic markup on the web. The biggest problem is that people just don’t care about the semantic web. It takes an essay just to explain what the semantic web is – but that doesn’t mean it’s not a worthwhile idea.

I’m sympathetic to Thomas’ points here. I’ve been working to move a web-based system to the XHTML standard. On top of the usual CSS struggles (my mind still thinks in [table] tags, but I’m slowly learning to love CSS), I’m running into a difficult problem. On this particular web system (and on many, if not most, web systems), the users generate most of the content.

First of all, the web is a crappy medium for writing. It’s good for publishing what you write, but it is terrible at the actual writing stage. Spell checking, periodic backup, saving drafts, etc. – all features we’ve grown accustomed to in word processing – are sitting there, in the next window, just a few pixels away from our arcane DOS-esque text-only [textarea] form input box. Lame.

First, we need the browser makers to put better text-editing tools at our disposal. However, here’s where it gets a little complicated. You’ve probably heard hot-shot web developers scoffing at WYSIWYG web-editors before. This is mostly because they product messy and convoluted code. There is, a deeper problem though. The web is not a WYSIWYG medium. The whole idea of XHTML and CSS technologies are that you can separate design from content – style from meaning. WYSI-not-WYG.

A simple (inane) example: I recently posted a reply to a post on the Signal vs. Noise weblog. I included a quote in my reply. I used the [blockquote] tag to indicate which part of my reply was a quote. When I submitted the post, I was pleasantly surprised to see that our friends at Signal vs. Noise had included some nice formatting for the blockquote tag in their stylesheet. As a result, my quote was nicely formatted to fit in their style and layout.

There is a powerful idea behind this simple example. When I used the [blockquote] tag, I wasn’t ‘formatting’ my post. I was adding meaning to the text – I was using machine-readable language to tell web browsers that the next few words are a quote. I didn’t know exactly what it was going to look like. (Note: there are better ways to cite a quote, but this example makes the point)

I’m not sure we can expect everyone to make this distinction. I do think, however, that people can produce writing with semantic markup if the software does the hard work.

We need a semantic-friendly-WYIWYG text editor for the web. Here are some proposed features:

  • Hide the code from the writer (but make it accessible to those who want it – as many current editors do).
  • Provide only semantic tools: lists, blockquotes, citations, links, emphasis, strong, etc.
  • Not quite WYSIWYG: show the text in real time in a typically styled format – perhaps even adopting the style of the destination website.
  • Automate the creation of meaningful markup. For example, when a link is created, prompt the author for a descriptive link title.

By the way, someone has come up with an apt name for what I’m doing here. It’s called the LazyWeb – when smart-asses like me rant and rave, but don’t do anything about it. The hope is that through the LazyWeb, people willing to write code and implement can meet up with the idea (read: lazy) people.

 

I know what you’re thinking

Cover photo of Emergence by Steven Berlin JohnsonIn dealing with the emergence of artificial intelligence, Steven Berlin Johnson‘s book Emergence points out that self-awareness – consciousness – may be secondary to our awareness of others. An animal, for example, is at a great evolutionary advantage if it can understand what other animals are, and are not, aware of. If I am the first to turn a corner, I am aware of what’s around the corner, while those behind me are not aware. When I am behind something, facing their back, they cannot see what I can see behind them. Obvious, isn’t it?

Quoted from Emergence:

“[our skill at imagining other people’s mental states] comes so naturally to us and has engendered so many corollary effects that it’s hard for us to think of it as a special skill at all. And yet most animals lack the mind-reading skills of a four-year-old child. We come into the world with a genetic aptitude for building “theories of other minds,” and adjusting those theories on the fly, in response to various forms of social feedback.”

“We’re conscious of our own thoughts, the argument suggests, only because we first evolved the capacity to imagine the thoughts of others. A mind that can’t imagine external mental states is like that of a three-year-old who projects his or her own knowledge onto everyone in the room? ?But as philosophers have long noted, to be self-aware means recognizing the limits of selfhood. You can’t step back and reflect on your own thoughts without recognizing that your thoughts are finite, and that other combinations of thoughts are possible? ?Without those limits, we’d certainly be aware of the world in some basic sense – it’s just that we wouldn’t be aware of ourselves, because there’d be nothing to compare ourselves to. The self and the world would be indistinguishable.”

If you follow the development of this ability to build a mental model of what others are aware of far enough, then you may eventually lead to the abstract realization that you too have a limited point of view, just like the others. The ability to form a mental model of what others perceive is extended to the self.

Reading Emergence coincided with my introduction to the Eastern philosophy that that there is no self – only a collection of action and thoughts. When you look deep inside, there may be nothing there. You are only the sum of your thoughts and actions without which, there is nothing (I’m not sure I believe this, but it struck a chord). So it is with software. Software is nothing but a set of instructions. When you take away the instructions, there is nothing left.

Putting these two concepts together left me thinking that artificial intelligence isn’t such a distant or impossible concept. Perhaps there is no difference between our own intelligence and artificial intelligence.

 

Stylish prose in the public domain

Having read the BoingBoing.net weblog for a while, I first discovered Cory Doctorow’s fiction when Salon published his dystopian digital-rights-management-inspired sci-fi short story, 0wnz0red.

Cover of Doctorow's Down and Out in the Magic KingdomDoctorow has recently published his first novel, Down and Out in the Magic Kingdom. The novel is published on paper by Tor Books, but it is also available for free download under a Creative Commons license (see previous aov post on the Creative Commons). The Creative Commons site features an interview with Doctorow about the release.

I have been reading the HTML version, but wanted to tweak the formatting to improve readability. Since the HTML version was in beautifully structured XHTML Strict markup, it was quite simple to modify.

With the kind permission of the author, here is the HTML version of Cory Doctorow’s Down and Out in the Magic Kingdom with my alternative stylesheet.

 

The Neglected Page Website Design Test

Something I like to do when evaluating the design of a new website I’ve come across is look for a neglected page – I often use the contact page, because they tend to be easy to find. Privacy policy pages are also good for this purpose.

The idea is that these pages are often neglected during the design process – with content dumped into a template after the designer has long since left or is busy prettying up the front page.

If a site is solid and consistent, even these commonly neglected pages will be well designed. They don’t have to be flashy. There’s nothing exciting about a privacy policy of contact information. Clear, concise writing and a clean layout and design will do nicely.

Try it out next time you come across a new site.

 

Browser of Babel

Apple Safari IconToday, Apple introduced a new browser, called Safari. Also today, every web designer and developer in the world let out a big sigh and said a big collective: Crap!

As you can see from my last post, the differences between browser rendering engines give us indigestion. That said, my first impression of Safari was quite good. For those that care, it is not based on the gecko engine as some may have expected (and hoped). Rather it uses the KDE’s KHTML library from the linux community. More web developer info on Safari is available at dive into mark.

An interesting note about Apple’s release of Safari and a few other Apple apps this past year: they are blurring the line between beta and final versions of software. This is a beta release of Safari, but it is launched and promoted with as much fanfare as any final product would be. For better or for worse, the public is now a beta tester (not necessarily a bad thing – especially since only those who want it will bother downloading it).

 

Taking our struggle with CSS font sizes public

Those readers not interested in web design issues, please pardon this post. For the rest of you, the following is a series of posts I made on the corporate intranet at work. We’ve been struggling with CSS font-size issues. It’s nothing original, but it is my hope that posting the explanation of the problem and one (of many, I’m sure) potential solution I wrote for my co-workers might be of help to others dealing with the same issues.

I’m also interested in feedback on the techniques we used. What did we miss? I’ve tested across a wide range of browsers, but if you notice any weirdness – please let me know.

My first post was an explanation of the problem – basically written so I could straighten it out in my head:

Posted to the silverorange Intranet by Steven Garrity
– January 3, 2003

We’re having some difficulty with font size issues with CSS and I thought it might be helpful to lay out everything we’ve been talking about in one location.

First, some history. We are using CSS percentages (eg. font-size: 75%;) to do font sizes on most of our current sites. We discovered last year that some Mac browsers were inheriting the font sizes recursively (since we put font-size: 75%; on all [td] tags, any table in side a table would be 75% of 75%, eventually getting to the point of being ridiculously small.

We couldn’t replicate this Mac browser inheritance issue ourselves, but it is documented, so we now sniff out all Mac browsers, and all Netscape browsers (on any platform) and show them pixel-based font sizes (eg. font-size: 12px;).

Pixel font sizes are by far the most reliable font sizing technique across all browsers, but unfortunately, none of the IE/Win browsers (including 4, 5, 5.5, and 6 – basically everyone on the internet), allow the user to resize fonts specified in pixels. This is really shitty – it was on Jakob Nielsen’s Top Ten Web-Design Mistakes of 2002.

Some browsers, like all mozilla/gecko-based browsers and Opera, allow the user to resize any fonts – regardless of how they are specified (including pixels). However, the majority of web users are running IE 5, 5.5, or 6. So pixels are easy to work with – but limit IE users from resizing.

The solution we have on most of our live sites right now (Horton Brasses, NovaScotian Crystal, The silverorange Intranet, etc.) works ok (percentages for smart browsers, pixels for dumb browsers). Any kind of browser sniffing is messy, but it works.

The trouble came when we started the move towards XHTML 1.0 (from HTML4.01). Using our current percentage font-sizing technique, if you change the DOCTYPE from HTML4.01 to XHTML, in IE 6, things go wacky. All of the sudden, IE decides to use the inheritance model correctly (which sounds good, but we were taking advantage of it’s weakness in this area – serves us right for leaning on bugs).

So, to make the move to XHTML, we have to figure out a different way to do font sizes. This really sucks, because we are very close to being XHTML compliant – it wasn’t nearly has hard (other than this issue) as we had anticipated.

Here are the options as I see them, let me know what I’ve missed:

  1. Switch to pixels entirely
    This would be a breeze from our perspective, but we would be locking font sizes for squinting IE users everywhere. We could make a font sizing widget in the pages themselves to resize, but I’ve always hated those.
  2. Stick with HTML4 for now
    We don’t have to move to XHTML. Stay with HTML4 would let us continue with our current tried and true font sizing technique.
  3. Avoid nesting of classes
    Inheriting percentage sizes only becomes and issue when you nest classes (or put classes on items that get nested themselves, like [td] tags). Wired News uses this technique to create a fantastic CSS layout with flexible font sizes in all browsers. This is my preference so far – however, it involves some annoying reworking of the way we use classes to avoid nesting.
  4. Use CSS font size keywords
    CSS has keywords that work much like the old [font size=”-1″] HTML tags. These work well, except for an inconsistency in IE5 and IE5.5 – but there is an elegant hack to get around this. Keywords don’t inherit – so a small inside an x-small is the same as outside. Sounds good – however, the default sizes aren’t great. For example, you can’t the equivalent of the 70% Verdana we use so widely (here on the Intranet, for example).

Ok – that’s the state of the union address on font size issues. I wanted to write it out to get all of us and I all on the same page – but I also wanted to write it out to help sort it out in my head. What a mess.

I might post this publicly (linked from aov, maybe) to see if we can get any helpful feedback, but I doubt it. [note: I thought I’d leave this in to show how resentful I am of all of you morons when in private 😉 ]

I think our best bet might be to follow the lead of Wired News (using option 3 in the list above). They’ve made a wicked site with out inheritance issues anywhere. However, this would prove to be very time consuming on existing sites. Maybe keep the current sites at HTML4 for now, and start our next site (and update small, easy-to-convert sites, like silverorange.com) using this technique and XHTML?

Bah.

Then, after some sleep and a night of feverish delieum battling the flu, I posted this possible solution:

Posted to the silverorange Intranet by Steven Garrity
– January 5, 2003

My subconcious brain has been working on this problem all week. Now, I think I have a potential solution for our CSS font sizing issues. This proposal is implemented on the stage silverorange site. Please report any weirdness. I’m going to do more testing before going live, but so far so good. Here’s what I’m doing:

  • I’ve moved from including the styles from a PHP file do doing the browser sniffing outside the CSS file. This allows us to include actually .css files rather than embedding the CSS in the HTML (browsers can cache the CSS – saving time and bandwidth).
  • I’ve simplified the browser sniffing. We were sniffing out Netscape 4 and below and all Mac browsers and showing them Pixels rather than Percentage font sizes. Now I’m only sniffing out NS4 and below (I’m not longer sniffing out Mac browsers). The trouble on the mac was with inherited percentages – and I’m not using them anymore.
  • There are three CSS files:
    • All browsers:
      • core.css – this file includes any styles (or part of styles) that are safe in all browsers
    • Netscape 4 (and below):
      • dumb.css – this aptly named file contains Pixel font sizes and a few other variations (line spacing is smaller, etc.)
    • All browsers other than NS4 (and below):
      • smart.css – this file is includes the combination keyword/percentage font size solution described below
  • Font size:
    • Netscape 4 and below sees only pixel font sizes – if we decide to ditch Netscape 4 at any time, we can lose all browser sniffing for stylesheets!
    • For all other browsers (on all platforms, including the mac), I’m using the Wired News solution: Declare keyword (small) font size as the base font size (for [body], [td], and any other key containers)
    • IE 4, 5, and 5.5 make the font size keywords one step larger than every other browser in the universe. There is a hack called the ?box model hack? that gets around this.
    • This base keyword font size is the basic full size Verdana used as the body text.
    • Any other font sizes (titles, and the beautiful smaller Verdana text used often on the site) and sized as a percentage of the keyword base font. These styles are never nested, meaning there are no inheritance issues.
    • This means that it you want the base font size (full size Verdana), then no style is needed at all (as it’s the base font size for the document).

I’ve done a bunch of testing and haven’t found any cracks in this method yet. However, dealing with the browsers is voodoo, so I’m going to do a bit more testing before implementing.

What separates this solution from the options listed in my previous post on the subject (above) is that I hadn’t thought of using CSS keywords as the base font size setting.

The solution discussed in this second post is now implemented at silverorange.com. Please let me know of any issues.

 

Acts of Volition in 2002: A statistical review

2002 saw Acts of Volition slip from being a multi-author weblog to a paltry 1-1/2 author weblog. While this may have cut the volume of posts, the participation of readers has been great. Writing for AoV has started to feel less like traditional writing and more like having a conversation with the readers.

This chart shows the relationship between aov posts and readers replies over 2002 (note – the chart is a little misleading – the two lines are charted on separate scales).

Here is Acts of Volition in 2002 in numbers:

Posts Replies Replies per Post Posts per Day Replies per Day
January 16 180 11.25 0.53 6.00
February 10 202 20.20 0.33 6.73
March 11 131 11.91 0.37 4.37
April 6 55 9.17 0.20 1.83
May 10 114 11.40 0.33 3.80
June 9 40 4.44 0.30 1.33
July 14 146 10.43 0.47 4.87
August 11 75 6.82 0.37 2.50
September 7 55 7.86 0.23 1.83
October 9 118 13.11 0.30 3.93
November 8 101 12.63 0.27 3.37
December 8 109 13.63 0.27 3.63
Total 2002 119 1326 11.14 0.33 3.63
Red bold type indicates the highest figure per column.
Blue bold type indicates the lowest figure per column.
* The NX Petition was only available for the first few days of November.
 

Year-end and Christmas Stuff

Despite advice to the contrary, I hereby confess my weakness for Dave Barry humour. I even own one of his books (which lead to much confusion as it caused my father to laugh out loud while giving blood).

Despite the use of a poorly formatted bullet list, I did enjoy Dave Barry’s Year in Review.

From March:

… on the music front, the U.S. recording industry is buoyed by a report that 14-year-old Jason Plempitt of Knoxville, Tenn., went into a music store and actually purchased a CD, making him the first teenager in three years to pay money for a recording, rather than download it for free from the Internet. The humiliated youngster quickly informs his classmates that his computer is broken.

A pleasant Christmas has left me with some new stuff, including: