Don’t interrupt me.

Cell phones make sense. No matter how annoying they might be to some people and regardless of the quirks of the early technology, they are an irrefutably logical step in personal communication. It simply doesn’t make sense to have a phone number associated with a building. We don’t call buildings – we call people.

We have good cell phone coverage where I live and the pricing of cell phones vs. land lines make a home phone line unnecessary. So, I have a cell phone, and as of next month, no phone line at home. The only trouble with this is that I don’t need, or want, to take most phone calls while I’m driving or waiting in line at the grocery store. My options are quite simple; I can turn off my phone or not answer it. I have an answering service and caller ID (even if I don’t pick up), so I can quickly return calls when appropriate.

Now, part of the reason I have a cell phone in the first place is to take time-sensitive calls for work in emergencies. When the server room is on fire (note to clients, this is just an example), it doesn’t matter that I’m at the grocery store.

The solution follows quite naturally from the problem. We need (I realize I’m abusing the term ‘need’ here) a way to gauge the priority of individual communications. Priority could be based on two factors. First, my ranking of the caller – I can give certain callers a higher priority letting some into my ‘inner-circle’. This isn’t enough though. Sometimes a caller I’ve deemed ‘important’ might be calling for an unimportant reason, or vice-versa. The caller themselves also needs the ability to rank the importance of a call.

There are at least two different key factors of an ‘important’ communication. First, how important is it? Are you asking me to go to the movies or are you telling me that a family member is ill? Second, how time-sensitive is it? Can I finish brushing my teeth, or will that be too late?

Right now, in order to vary the demand placed on the recipient we need to vary the medium of communication. If I have a query for someone but don’t need the answer immediately, I courteously give them control over the timeline of our exchange by sending them an email. They will receive it, and have the freedom to reply when they want, without me waiting on the line for them. This is a courtesy.

If I want something faster, and the medium is available to me, I use instant messaging. This way, I can know that they received my request immediately and they know that I’m waiting for an answer. Still, they have the freedom to reply or not too, but there is more social pressure for a reply, since they know that I know that they know I’m waiting (say that again).

If I need something immediately, I phone. I’m on the phone with them and they need to either reply to my request or tell me why they won’t. This is an imposition and I only do it when I need to (or, of course, when I want to chat with someone or hear the sound of their voice).

I would like the ability to choose my level of imposition, the level of demand for immediate reply, regardless of the medium. I want to be able to tell my technology that I’m really enjoying this album and that I don’t want to be interrupted, unless one of the people that I know understand when I do and don’t want to be interrupted has good reason to interrupt me.

We’re getting used to the idea that we don’t always have to meet in the same location in physical space. We’ll also get used to the idea that we don’t always need to meet at the same location in time. Friends of mine run a business that involves frequent short and simple phone calls. A move to email allowed them to cut the cord, so to speak. Rather than having to be near the phone all day, constantly interrupting their activity, they are able to choose time to respond. The most important factor is that the customer still has control. If they need an immediate response, they can still call. However, most don’t need an immediate response and are quite happy with an email. Sounds simple, but it can make a big difference in how you spend your day.

People hate cell phones because jack-asses talk loudly and obnoxiously while in the line at the grocery store but mobile personal communication is a good thing. Skeptics often ask, why do we need to be able to check out stock prices when we’re on the beach? We don’t – and I won’t. But I do want the freedom to be able to be contacted and to contact when and where I want to. The key is control. I want more precise control over my privacy than being in my house and not being in my house.

I’m sure smarter people than me are working on this somewhere, but here’s a brief summary of what I want from my communications technology:

  • The ability to broadcast my status – so you can tell if I’m sitting next to my computer/phone or if I’m indisposed (in the shower).
  • The ability to override status – “I don’t care if you’re busy – your house is on fire.”
  • The ability to provide different levels of access (to myself) to trusted individuals. This requires each person to have their own device or some other means of being uniquely identified.
  • Control, control, control. Ability to control wh0 knows what about my presence and status. Ability to ignore people without them knowing I’m being ignored (and, by extension, the possibility of being ignored and to knowing I’m being ignored).

A few simple examples of steps in the right direction:

  • Instant messaging status (If I’m away from the computer for a few minutes, you’ll know not to expect an immediate response).
  • Instant messaging user groups (My mom sees I’m online, but my boss doesn’t).
  • Caller ID – changed the way I used the telephone.
 

Long Bets

Wanna bet that by 2025, we will receive intelligent signals from outside our solar system? Put $2,000 where your mouth is and go do it!

Co-founded by Wired’s Kevin Kelly, LongBets.com is a forum for those of us with big ideas and money to burn. For example, inventor/author/futurist Ray Kurzweil has bet Mitchell Kapor, founder of Lotus, $20,000 that “a computer will pass the Turing Test by 2029.

See the open bets and bets on the record for a glimpse into some neat ideas by some interesting people. Betters so far include blog-dude Dave Winer vs. NY Times-dude Martin Nisenholtz and Microsofty Craig Mundie vs. Lord-Google, Eric Schmidt.

 

the many faces of instant messaging

MSN and ICQ emoticons
These are a selection of the ’emoticon’ graphics included in Microsoft’s Windows Messenger, and AOL’s ICQ.

The left column comes from Windows Messenger – included in Windows XP.

The right column is from the latest version ICQ, (perpetual) beta 2002a.

Uncanny.

 

BlogML: The Weblog Markup Language

A simple thought experiment in weblog semantics

1:37 PM – Joe makes a post on his blog about his golf vacation on Prince Edward Island

3:24 PM – Joe makes a post on his blog about hang gliding in Newfoundland

Two weeks pass.

Sam searches Google for hang gliding in Prince Edward Island. Joe’s blog is the first result.

The trouble with this picture is that Joe never wrote anything about hang gliding on Prince Edward Island. The thought never even crossed his mind.

This is a fundamental problem with searching by keywords – the page is not necessarily the finest unit of web content. Often, especially on weblogs, any given page will have dozens of completely independent posts – made by different authors, on different days, about different topics. Google has no way to tell one post from another and can only link to general archive pages rather than to individual posts.

With all the talk about separating design from content and encoding semantics, it occurred to me that this current level of separation isn’t particularly useful to most of us. It can help with accessibility, which is important; but the cruel fact is, that for truly semantic code to become universal, people are going to have to see concrete results (ie. cool stuff happening).

BlogMLBlogML (weblog markup language) doesn’t exist yet (as far as I know), but I think could save us.

The average weblog has a relatively simple set of fields for each post: title, author, date/time, permanent URL, # of replies, URL of replies, and main content (I’m sure I’m missing some, but you get the idea).

If we could somehow code our weblogs with this structure, Google and other services would be able to see the content as it really is: a loose collection of independent posts. When Google indexes weblog archives, search results could include individual blog posts with the appropriate links (rather than linking to an archive page with 30 posts).

This is not a new idea – it’s the semantic web and it’s been coming for a while. Here’s the key: The weblog community is in the unique position situation to affect significant change through nimble and collective action.

Think about it – if some kind of markup could be defined for this, it wouldn’t take years to be adopted (like most standards). Rather, it would take the cooperation of a few key weblog players. If Blogger, Moveable Type, GreyMatter, and the UserLand suite all started pumping out BlogML-enhanced HTML, it would be instant critical mass. The majority of weblogs would be on board in a matter of days and it wouldn’t take long for the rest of us to jump on the bandwagon. Search tools like Google, BlogDex, and DayPop would be able to offer better search results to their customers.

Webloggers are in a unique position to take collective leaps and bounds towards the semantic web.

Ok, so how do you actually do this? What is BlogML? What does it look like? I’m not sure – I’m shooting from the hip here. Perhaps a simple markup could be hidden in HTML comment tags. Or perhaps a set of reserved keyword DIV and SPAN titles could be established (eg. <div id=”BlogMLtitle”>) as this would be an appropriate use of the ID element according the W3C specs.

Implementation can be dealt with. What I want to know first is: Does this make sense? What hasn’t it already been done? Had is already been done? What am I overlooking? I look forward to your feedback.

 

robots to persuade humans with human-like voices

AT&T Labs is commercializing their recent advances in text-to-speech processing (a.k.a. talking computers) with Natural Voices. While the live demo still reveals its robotic ancestry, a few of the pre-recorded demos could really pass for human. Listen to one of the better samples (70Kb Windows Media).

It’s a big step from the standard text-to-speech quality available only a few years ago (hear a sample).

And so the anthropomorphization of robots inches forward.

 

Simple for sale.

37signals.com
The web interface specialists at 37signals have turned their experience on themselves and served up at nice redesign of 37signals.com. The old site lives on as the 37signals manifesto (worth reading for any web professional).

With the new site comes a White Paper on Contingency Design (‘design for when things go wrong’) that builds on the examples of contingency design, good and bad, at the previously linked Design Not Found.

The guys at 37signals also maintain a fine blog, Signal vs. Noise.

 

when I grow up I’m gonna be a physicist

Brian Greene's The Elegant Universe
While aov rages with debate about web standards and development techniques, a regular reader speaks up for those who aren’t enthralled by cascading style sheets and asks us to throw them a conversational bone. Fair enough, how’s general relativity for a Sunday conversation topic?

Brian Greene’s The Elegant Universe is an introduction to string theory, the latest stepping stone in the scientific quest for the ‘unified theory of everything’. The book is intended for a general audience without an academic background in physics (that describes me pretty well – Physics 101 was at 8:30AM and my hair was always frozen from a quick shower and cold walk to the campus).

Greene’s book has been worth the price if only for the simple and graceful explanation of Einstein’s Theory of General Relativity in the first few chapters. Taking the leaps from Newton to Einstein as if they were steps in a walk through the garden, Greene’s gives a sort of history of modern physics for dummies. His ability to simplify and explain the abstract concepts of relativity remind me of how C.S. Lewis can simplify theology without sacrificing the integrity of the topic.

I remember torturing my high school physics teacher when learning about the laws of gravity. ‘What is gravity?’ I would ask. The answer would come straight from the textbook: ‘Gravity is the attraction between any two massive bodies, which is directly proportional to the…’

Of course, this is a descriptive definition. ‘Yeah, I know what it does, what what is it?’. I was genuinely curious, though my primary motivation was to illustrate that the teacher didn’t know – nobody knew.

Looking back, I give my teacher credit for not screaming that gravity was the warping of space-time but my puny 16-year-old brain was incapable of grasping the concept. She was a good teacher. Conceeding to our weak collective attention span, she read to us from a book called Einstein’s Dreams.

I feel, having begun The Elegant Universe, that I’m getting the answer to questions like ‘what is gravity?’ as well as they can be answered by modern physics to someone with no academic background.

Greene’s steers clear of the arrogance (however justified) of Stephen Hawking’s A Brief History of Time. Hawking’s writing leaves the reader feeling as though the author had to be persuaded by editors that it was worth writing for the average reader. Greene seems to relish in the potential of the much broader impact of simple and accessible writing.

Most fascinating of the many revelations in these first few chapters is the compounding of human achievement. Einstein found out what was wrong with Newton’s ideas (a profound discovery, of course) just as today’s physicists are trying to find out what’s wrong with Einstein’s ideas.

I am constantly amazed by this compounding effect of scientific and technological progress. In 1997, our beautiful Island province was connected to the rest of Canada with the construction of the 12.9Km Confederation Bridge. Every time I drive across the bridge, I marvel at how anyone was able to build such a fantastic structure.

I was wondering about this aloud at work one day (as I often do) and a co-worker drew an apt analogy to our work with software.

Each individual engineer and construction worker did their part, building upon each other’s work and expertise. The person who drives the crane (there was a very cool crane involved) doesn’t have to understand the effects of cold on the strength of concrete. The person who paints the lines doesn’t have to understand the aerodynamics of the structure in high winds.

Progress in software works in a similar way. When I call on a simple PHP function to show the date on a website, I don’t need to understand how PHP is interpreted. I don’t need to understand the network protocols used to transmit the process page to your computer. Basically, I don’t need to understand how computers work because someone else has done it for me.

All of this nonsense brought to mind the recently asked question: Is evolution finally over?. Could it be that this growing external knowledge base (as opposed to being stored in the memory of individual human beings) is the new evolution?

Today’s average civil engineer isn’t any smarter than a scribe of 3000 years ago. The difference is that the civil engineer has Newtonian physics and centuries of progress in chemistry at his disposal.

Futuretastic guru Ray Kurzweil has drawn this parallel between natural evolution and the progress of technology. He proposes that evolution and eventually technological progress fall on the same grand timeline. He goes so far as to suggest that this scale of progress, both natural and technological, has been accelerating according to an expanded version of Moore’s Law.

We are not standing on the shoulders of giants. Rather, we are standing on the shoulders of millions of average people.

 

An open letter to the web design community: Why should I redesign my site with Cascading Style Sheets?

Update – May 31, 2003: It’s been over a year since I wrote this and a lot has changed, this post about web standards better reflects by current view.

This article assumes a basic knowledge of web standards and languages, including HTML, XHTML, and most importantly Cascading Style Sheets. You don’t have to be an expert, but I’m assuming you at least know what they are (if you don’t, start here).

I’m in the early stage of planning a redesign of actsofvolition.com. Plans include a series of minor refinements and, most significantly, a move from ColdFusion to PHP for the programming. What I haven’t yet decided for the redesign, is what formatting standards to use. Should I stay with the tried and true HTML tables, or should I take the leap into the emerging world of Cascading Style Sheets?

The purpose of this article is to seek feedback, suggestions, answers, and ultimately a better understanding of the state of web design practices in the face of emerging standards. To immediately deflate any would-be critics, let me clearly establish that I welcome critical feedback. I’m going put forward complaints and grievances about designing with CSS and I want you to tell me why I’m wrong. Notice the italics, telling me that I’m wrong without telling me why won’t do any good.

Zeldman Rules, Netscape sucks
I do not criticize or question the work of Jeffrey Zeldman and The Web Standards Project in promoting the adoption and proper implementation of web standards. Over the past few years, I’ve grown to hate Netscape (version 4.x, that is) as much as any web developer. The non-standard nature of the Netscape 4.x rendering engine has cost my company and many others like it loads of time, sleep, and money. Like many web developers, I’ve had to become an expert in browser quirks. It is enormously important that someone is lobbying Macromedia, Microsoft, and Netscape to ship products that produce and interpret standard-compliant code. This is important work that I don’t have time to do – and neither does Jeffrey Zeldman, but he’s doing it anyhow.

Let it be understood that standards are inherently good. If every browser rendered HTML as defined in the W3C (World Wide Web Consortium) specifications, the world would be a better place. This cannot be understated. Broken browsers are a significant drain to productivity for web developers. Everyone should close their <p>’s and nest tags properly. I’m not questioning web standards. Rather, I’m asking why I should use CSS to design my site. These two issues are often confused, to the detriment of the dialog surrounding both topics.

Writing standard-compliant code and designing with CSS are not the same thing. However, confusion between the two is understandable. CSS is latest method of formatting web documents recommended by the W3C. This recommendation supplants the old HTML 4.x recommendations. Therefore, it is not unreasonable to suggest that in order to comply with the latest standards, one must use CSS. However, the latest standards are not the only standards. The HTML 4.x specifications have only recently gained real and complete support across a significant user base with the release of browsers like Microsoft Internet Explorer 5 & 6, and Netscape 6 / Mozilla. Web developers do have the option to design to the HTML 4.x specifications – these standards have not been depreciated.

Yes, I know, FONT tags suck
FONT tags are like my car – they suck, but they work, and they were respectable in their day.

HTML 4.x does have serious problems. The best example I’ve come across was during the development of an ecommerce site with FONT and TABLE tags. The design included a long list of product categories that was displayed on every page. The best possible formatting solution in this particular case involved each item being in its own cell in a table, each with its own FONT tag. In some sections of the site, there were as many as forty list items, meaning forty iterations of this tag <font face=”verdana, sans-serif” size=”-2″></font> in the code.

At the time of the development of the site I can remember thinking, there has to be a better way. Well, CSS is the better way, and it was just emerging at the time – the trouble is, CSS is still just emerging.

Watch out for the small print
In the hands of a knowledgeable developer those cursed FONT tags could be very powerful. Like many web developers who cut their teeth developing for Netscape 3, Netscape 4, and eventually Internet Explorer 4, I know the quirks of each browser and can get them to render text exactly the same way. By defining relative and absolute font sizes (relative being “-1” and absolute being “2”) developers could control whether fonts were resizable by the user.

If you’ll pardon the pun, user-resizable fonts are huge. The benefits of being able to increase the font size to users with accessibility issues are obvious – but there is more to it than making the text easier to read. User-resizable fonts were part of the Zen of web design – don’t struggle for control of every pixel, don’t use images where you can use text, build flexible liquid layouts, and make fonts user-resizable.

CSS as currently supported in widely-used browsers (the highest courts, in my opinion) kills user-resizable fonts. While CSS dictates that size can be defined by several methods, including keywords (small, x-small, etc.) and percentages, it is generally understood that the only safe method to define font size in today’s browsers is to use pixels.

The W3C is getting out of font resizing game altogether. In CSS2 they basically leave resizing up to the user agent (the browser). Opera and Mozilla comply with this recommendation, allowing the user to resize all fonts, even those defined in pixels by CSS. However, Internet Explorer 4, 5, and 6 (together comprising a huge majority of users) lock the size of pixel-defined fonts, regardless of users setting. Internet Explorer does allow the user to resize fonts defined by keyword and by percentage.

For many new sites, developers have given up on the idea of user-resizable fonts in favour of the benefits of defining fonts with CSS. I’m not content with this compromise – user-resizable fonts are simply too important. The best solution I’ve come across, and one I’ve used on several client sites is messy, but works. We’re using server-side browser sniffing to show some browsers percentage font sizes (thereby allows IE 4, 5, & 6, the majority of web users to resize their fonts), while showing other (dumber) browsers pixel font sizes.

This solution stems from a rule of thumb I use when deciding on technologies for clients: It has to work perfectly for most people (preferably 95%+) and it has to work for everyone else.

Separating style from content – Isn’t that what databases are for?
The strongest case for the adoption of CSS is the ability to separate style from content. A series of documents formatted with CSS can all be styled centrally with one CSS file. Emphasis and structure can be coded with HTML, while style and design of how that emphasis and structure are visual represented can be controlled separately. This makes sense.

Separation of style from semantic content is, in theory, necessary for content to be accessible via alternative means (screen readers for example). Whenever someone says “in theory” and it turns out not to be true, the theory must be examined. The self-proclaimed accessibility curmudgeon, Joe Clark has stated that “the accessibility defects of tables are overblown or outright false.” Screen Readers have gotten smarter at handling table-based layouts.

In response to skepticism towards CSS by web writer Dave Winer, it has been argued that CSS will allow for better forward compatability. Winer boasts a significant archive of web writing compiled over the last five years. What happens five years from now, when desktop web browsing may be be a historical anomaly and Dave’s pile of HTML archives will be dated and potentially inaccessible? If Dave’s archives were a pile of HTML files, this would be a legitimate concern.

However, Dave knows better then to store precious data in text files – he’s using a database. Everyone’s using a database. I think this simple fact has been missing from the dialog surrounding the separation of style from content. If Dave has his archives in a database, he can pull the content into whatever format display technology is standard in 2007 – probably with 5 minutes of work.

I’ve been involved in ecommerce sites with thousands of products (each with their own ‘page’) that are based on a handful of simple HTML templates. If I want to redesign all product pages, I redesign the product template. If the site started with HTML 3, I can update the entire site to XHTML 4.01 in a matter of minutes. That is separation of design from content, in practice.

The power of databases and templates don’t necessarily negate the benefits of smart formatting standards, but the discussion of separating style from content is incomplete without discussing databases.

actsofvolition.com currently comes in three flavours: Classic (the normal HTML version), Handheld-Friendly (a simple text-only version intended for small screens), and RSS (an XML format for syndication of headlines). After the HTML version of the site was setup, the alternative versions took literally minutes to build – and I am not an expert programmer (I’m really not a programmer at all).

Separation of content and design is, in some ways, a myth. Content can not be thoughtlessly and automatically repurposed for different medium (for example, aov for handheld computers strips out images but occasionally there will be a post that loses its meaning without the image – it doesn’t make any sense out of context).

The semantic web is going to happen on the server side, in the hands of the content creator, not the client side.

For example, when Wired News wanted to deliver tech news headlines to the handheld-equipped startup-happy tech masses, they had two options. First, they could have designed a website that used the latest standards and used medium-specific style sheets for all layout and formatting. Then, they could just have a simple ‘handheld device’ style sheet that would make the site readable on a handheld. To be fair, the standards still aren’t implemented well enough to pull this off today, let alone three years ago, but it’s the ideal goal, so bear with me. The second option was to pull content out of their database, have good editors re-work it for the ridiculous reading-style of a tiny handheld screen, and create a completely separate handheld news site.

In a move that went on to make them one of the most popular handheld news services on the web, Wired went beyond building a separate handheld-friendly layout. The editors at Wired actually created handheld-friendly writing. References to external links, images, and the general length of stories, headlines, and story-teasers were all edited with the handheld reader in mind. The success of the services that Wired built on these principles is a positive example of how content needs more than just new templates to make sense in a new medium.

So, do I use CSS or not?
I reserve the final decision on whether or not to use CSS in my pending redesign until I’ve had and chance to absorb the feedback I get from this article. However, I am leaning towards a solution that is intended to backup the points made here about the importance of the database in the separation of style from content.

I’m going to do both. I will build a solid XHTML/Tables-based layout that will work on the popular browsers, and I will build a CSS-only/table-free layout. Why do both? It’s certainly not to entertain readers. I’ve never been one for the user-customizable layouts. Rather, I’m planning to do both to show how easily it is to customize presentation with a database.

Zeldman points out that on the web, “tutorials are misread as manifestos, and wee improvements are heralded as breakthroughs”. Absolutely true. This article is neither a tutorial nor a manifesto. Rather, it is thoughts of a web develper who spends his days building web systems, wondering out loud as to the best coding practices. As I’ve stated at the begining of this article, I welcome feedback, but don’t bite my head off – explain your position in relation to the points I’ve made here.

Update – May 31, 2003: It’s been over a year since I wrote this and a lot has changed, this post about web standards better reflects by current view.