Clippy was ahead of his time.
I'll let that sink in.
Clippy, the infamous Microsoft Office assistant, was introduced in November 1996. He was refined three years later, in Microsoft Office 2000. He went into retirement two years later, when he was turned off by default. And he finally departed this digital veil in 2007, when Microsoft Office dismissed him all together.
While he was eventually consigned to the dustbin of failed software, like Microsoft Bob, at the time, his novelty spun off a wave of "conversational agents." I worked on "Seemore the Sock Puppet" - a conversational agent for Payless ShoeSouce back in the 90s who you would click to "See more" - get it? He waggled his eyebrows, and danced around the screen. In a juvenile Easter Egg, there was one pixel on the screen that would make him pass gas, if you knew where to find it.
Clippy is famous for being one of the worst user interfaces ever deployed to the mass public. He stopped users to ask them if they needed help with basic tasks, like writing a letter or making a spreadsheet. In user experience terms, Clippy was “optimized for first use”: amusing the first time you encountered him, and frustrating after that. He was a puppet who only knew one script and kept repeating it, at you, throughout the workday.
Today, we have Conversational Agents again! Apple's Siri, Amazon's Echo and Google Home, not to mention all manner of chatbots on the web are all examples of the evolution of the conversational agent. A conversational agent is a software program which interprets and responds to statements made by users in ordinary natural language. It integrates computational linguistics techniques with communication over the internet.
Why are these agents so much more successful than clippy? - I have a few hypotheses:
Conversational agents only work when they are truly conversational. They require the semantic awareness and ability to follow a conversation that has only been recently possible in technology. Poor Clippy was just a victim of timing (and poor animation).
Elsbernd.com has returned to Joomla.
Elsbernd.com started as hand-written HTML, and as my knowledge grew and I looked into content management systems, it moved to Joomla. This was a good fit and I used Joomla for years. After a while, though, a few things bothered me about the platform. Each time there was a major upgrade, I had to migrate things by hand. There were few options for automatically updating the site to the latest version, and a lot of my extenstions and templates broke between the versions, so I had to either sit on obsolete technology or spend a weekend upgrading my site and finding replacements for the parts that no longer worked.
I moved to WordPress in 2014, and thought I had the world by the tail. It was an incredibly powerful and popular platform and I was learning a lot of things about their template system. The upgrade paths were good and they had a lot of extensions available. Unfortunately, being the most popular platform makes you the largest target for malicious actors. I was hacked twice in the past two years, with my traffic being redirected and my site being blacklisted from Google and Bing.
After the second hack, I decided to come back to the familiar turf of Joomla, while upgrading to the latest version, including things like two factor authentication. I have a nifty new responsive design and was able to preserve the Elsblog archives.
I think if I had more time and were more interested in the back end of security and databases, I could have made things work in WordPress, but I now prefer the comfort of a secure, familiar and powerful platform, even if it isn't the largest one out there.
Have you ever tried justifying hiring an artist for a project? In this age of the Internet and nearly limitless clip art, it can be daunting to ask for more money to create one-off imagery for your app or site. Why should you purchase bespoke images for your project?
Remember “Who Framed Roger Rabbit?” In that 1988 movie, Roger Rabbit hires Eddie Valiant, a real world private detective, for a job in Toontown. While the groundbreaking interaction between the live and animated characters was visually compelling, the styles clashed. The toons were overly bright, flattened and followed different rules of physics than the real-world characters.
When you mix clip art styles, you get much the same effect, without the wonder and enjoyment. Flat active tabs next to overly rendered, gradient tabs with shadows look like an obvious mistake. Icons with flat graphics interspersed with images drawn with perspective lend different meanings to the buttons that are unintended. Even things like using solid silhouettes for your icons along with outlines is setting you up for misunderstanding. People will always assign meaning to their cognitive dissonance, and usually their mental models have little or nothing to do with the developers’ intent.
Spending the time or money to have a consistent look and feel to your interface provides the polish and experience that allows the interface to fade into the background and the activity to come to the forefront for the user.
For more information on mental models, check out my blog entry about superstitious users.
An analogy that caught the industry interest recently is a comparison of IT delivery styles with how we treat pets versus cattle.* In a nutshell:
I was feeling pretty good about myself for proposing moving to commodity servers, until I realized I am guilty of the same thing.
In my CSS files, I often write a quick patch for a specific use, and name it with something that seems relevant at the time. I sometimes ignore the larger applicability of the style, or flexibility within SCSS, or neglect to migrate these larger style patterns to common repositories. These styles are pets, and lead to anarchy and redundant CSS.
Going forward, we are adopting the BEM standard for CSS naming. BEM stands for Block, Element, Modifier. It is a method used to construct CSS class-names so they are consistent, isolated, and expressive. The naming convention follows this pattern:
.block represents the higher level of an abstraction or component.
.block__element represents a descendent or dependent of .block that helps form .block as a whole.
.block--modifier represents a different state or version of .block.
This standard focuses us on global uses for styles and makes it easier to find a style than guessing what unique name was chosen at a given time.
A few good resources for learning more about BEM methods are:
• Smashing Magazine
*This analogy was developed by Bill Baker at Microsoft, and expanded on by presenters at CloudScaling and CERN
Sometimes I get an idea that won't leave me alone. The elsblog is where I put my ideas and hopefully share them with the world.
I enjoy working with modern frameworks like Twitter Bootstrap and AngularJS and tools like WordPress and Joomla.
I work with my friends to design and develop mobile applications for Android and iOS.
I’m developing an autonomous robotic platform with sensors, but don’t worry – no weapons. I’ve seen too many movies.