A Letter to Steve Ballmer

Steve —

We’re already hearing stories of people trying to run the latest version of Windows on older machines and having issues, but that’s not the biggest issue IMO. My fingers are crossed for the success of Windows 8, but i’m concerned. The first OS to try and pull off multi device support is going to be riddled with platform design issues. The post PC era is all about designing mobile first, but which mobile device: phone, tablet or laptop. Combine this with resolutions spanning 320×640-to-2560×1440,  varying processor speeds depending on the device and a large majority of our existing designers trained in print or TV are we destined for a UI/UX nightmare.

One thing i do know Steve, If Microsoft is going to crack the mobile apple/google juggernaut it has to focus on the designer/developer. IMO traditional ad spends like this one below is a waste of money in the next 8-12 months.

Steve, you need to keep innovating and take as many risks with the marketing budget as you did with design and vision of Windows 8. You need to modify your launch budget ASAP to focus on the designer/developer ecosystem and I would suggest the following:

  • Create a 100 million venture fund
    • Average deal size of 100k
    • Lead deals and do not wait for co-investors
  • Allocate  100 million to designer/developer education, mobile design patterns, and community evangelism
    • make everyone better and Microsoft will become the cool kid again
  • Spend 100 million on ads to get developers excited about the platform
    • The families and friends of IOS and Android developers should be asking why they aren’t developing for Windows
  • Allocate 50 million to design and engineering schools across the county
    • 25K in product per school
    • 50K in cash for research on multi device

Now the really crazy part, all of this activity needs to be driven from your retail stores thats right urban malls are now VC’s offices.

  • The retail staff should be made up from product evangelists, developers, support people, VC’s, but no sales people
  • No commission
  • Appropriate salaries to attract awesome local developers
    • Weekly hackathons, developer presentations, end user support – you are building up the ecosystem in local communities across the world
  • All employee bonuses are tied to the success of the investments made in each store

Steve its time to Think Different, I know you can do it.


The iPad Review

I am writing this post on my iPad and wow what a device, it just feels good in my hands. I am still wrestling with the purchase decision only because it does so much so well, but just not enough to replace a laptop or computer.

Apple’s focus on detail makes you just want to stand up and cheer even though you do not understand or agree with some of the decisions. For example, I agree HTML5 is the way we should consume web video and game content, but so much of the video and game content on the web today uses Flash and it’s loss really hurts the browsing experience.

The standard has been set and just like the iPhone everyone else will be playing catchup and innovating around the edges.

The Positives:
1) The keyboard works
2) The transitions are perfect
3) The browser is great
4) Existing iPhone applications just work and the larger size gives them new life
5) Device orientation no longer matters and thats just cool
6) Multitouch is so intuitive
7) The device does not get hot while sitting on your lap for extended periods of time
8) Battery life so far seems good, I used 65% of the battery my first day, put it on the base as a clock and upon waking up it was fully charged

The Negatives:
Writing this post in WordPress was painful: simple things like selecting the text box, moving the cursor position in the selected text box, fixing typos or importing images all proved to be challenging. The issues are mostly software related, but they are large because they will require wide spread change in how people design and build UI’s.

1) No Flash support
2) No camera
3) Applications need “Undo” built into the menu
4) Fingers are not precise pointing devices and get in the way
5) Swipe is a cool effect but should be augmented with a hardware next button
6) Required authorization before starting

Apple you Rock, great work. I can feel the future and that’s the problem. The device is so close, but because of existing points of reference, mostly software, also so far. I look forward to version 3.

An Alternative UI for Public and Private Timelines

I decided to spend a few hours creating an alternative timeline client. Timeline clients are great for interacting with applications like Twitter and Facebook.  If you are going to critique, and I hope you do, please think functionality over style. I am calling the application “TwitterTime“.


Using the Dashboard Controls of TwitterTime I can determine what is happening in my network, and then focus my attention on specific messages using the Timeline Controls.

Breaking Down the Components

The Dashboard

The dashboard represents an overview of the information and people I am following. The control highlights 4 key types of information: time, messages, people and location and I simplify the data by only showing it in aggregate.

Retweet Activity Widget

The Retweet Activity Widget track all retweets by the people that I follow over a 24 hour period. Hovering on the graph shows the user and the retweeted message, clicking creates a TimeLine. These can also be filtered by location

Term Tracking Activity Widget

The Term Tracking Activity Widget displays the global activity of all terms and phrases, I’m following. I can pick an individual term by selecting it from the Terms Drop Down. Hovering on the graph displays the specific messages that mention the terms and clicking creates a TimeLine of the people discussing the term or phrase.

People/Lists Alerts Widget

The People/Lists Alerts Widget is used to see the number of messages created by the people I follow. I can customize the control by changing the time horizon, selecting the size of the grid or choosing one or more locations. The default value is 24 hours and 12 tiles. Hovering over a user/list displays the most recent messages, clicking adds that user to a Timeline. If the user has mentioned me or sent me a direct message an icon will be added to the image. The tiles of the grid can be pinned for consistency or dynamically update.

Geo Widget

The Geo Widget highlights the regions that have the highest activity for my network, hovering on an area displays more detail about the people, double clicking drills into the area. Once zoomed in I can hover to view messages or click to add people to the Timeline.


The timeline is used to view the stream of messages. Some important things to notice about the Timeline Control:

  • The stream moves from left to right
  • Absolute time is a central part of the control and it represented by ticks above the Timeline.
  • You can move the triangle to any point in the Timeline and all Timeline controls will reflect the request, giving you the ability to backtrack
  • “N” number of Timelines can be active
  • All Timelines can move in sync or independent

TimeLine Control

Like a video editing application the Timeline Control can be expanded or contracted by clicking on the black resize bar, which is part of the scroll bar.

  • Reducing the size of the messages allows the user to see additional messages at a glance
    • this action also summarizes the messages making them understandable at very small sizes

User Control

The User Control is displayed by hovering over the cards to the left of the Timeline Control. This control shows all pictures of the people currently in the Timeline and allows the user to quickly filter them in or out.


The TwitterTime application allows me to quickly see at a glance what is happening and then determine where I should focus my attention. The combination of controls looks like it would meet my message processing needs, how about yours?  Round one complete.

How to Become the Next Google or Microsoft

Search is almost never the task, it is always a step in the process.  The task maybe trying to fix an old DVD player or trying to get directions to where you should vote.

One large problem with today’s web search engines is context switching. When a user needs to perform a search on the web, they are required to stop what they are doing, and transfer some portion of their current mental model to the web search engine. This is like the game of telephone, but each application has a different interface and requires a different piece of information. And just like the game of telephone you never really know what is going to come out at the other end.

We are training people to think in fragmented terms in order to support antiquated input requirements. This must evolve and web search engines must figure out how they can plug into the user flow and leverage context. The first company to figure this out will change history and become the next Google or Microsoft.

A simple example where applications work together and automate the flow are on the mobile phone. If I am looking at an email showing voting locations in my district, the phone number’s and addresses are represented as links.  Clicking on either of them launches the appropriate application and set’s its context. For example, if I selected the map link on my iPhone it would launch Google Map’s, highlight the voting location on a map, and provide a method to get directions from my current location. This is a seamless context switch integrating search into the process.

As we begin thinking about tasks instead of applications, we will change how we develop software. I personally think this change will be as fundamental to the future of software development as writing multithreaded applications.

Processor speeds are peaking and the current trend of multi-core is here to stay. We need new ways of thinking about writing computer programs if we want to change the world. Integrating search into the user flow is a logical step. Who wants in?

Why are gestures starting to appear in web browsers?

A gesture is a form of non-verbal communication made with a part of the body, according to Wikipedia. A simple example would be waving hello or goodbye. When gestures are applied to a computer program they provide a method to execute common commands. You can think of a gesture as a quick way to invoke application functionality. 

Why are gestures starting to appear in browsers?

The browser has been morphing over the past 10 years from a rendering engine into a composite application framework. Robust API’s, universal install base and developer friendly content controls provide an obvious choice for most large and small software projects. 

As the browser continues to grow in popularity, it also grows in functionality. Making this functionality available without complicating the user experience is challenging. Gestures are one method to accomplish this goal.  

One of the new features introduced with IE8 is called Activities. Activities move entire website’s into the user’s right mouse, removing multiple steps from the user’s process. This has the opportunity to change how people interact with the web; things like searching, looking up word definitions and exploring addresses can now be accomplished in context with a single gesture inside of IE8. 

At Me.dium we rolled out an activity as part of the IE8 beta 1 launch. Try it, and let us know what you think.

Where is this going next

When I think of Apple’s IPhone or Microsoft’s surface technology multi-touch takes the concept of gesturing to a whole new level. A pinch or stretch in these UI paradigms visually changes the experience. The next wave in UI design might be completely gesture based, what do you think?

Why are sensor based applications popping up everywhere

Wow! In the past week, 2 new companies that want to leverage a sensor started making noise in the tech blog press. Very cool and welcome.

  1. socialbrowse.com
  2. Kiobo.com

The History of Me.dium

I thought this would be good time for a history lesson on Me.dium. When we were brainstorming the concepts behind Me.dium we were coming from a very different space than most would have expected, enterprise publishing.

We built a technology that focused on sharing information in large work groups. Our experience told us that when people in large work groups created information they usually started from existing documents or templates and not from scratch. We developed an application that made it easier for people to reuse information.

This was initially accomplished by adding some code to our proprietary application. The code monitored and stored the actions people took, like copy, paste, drag, drop and save as.

The monitoring application or sensor also captured the offsets into the documents or the location on the disk, the user name, date, and time the action occurred. We stored the information externally from the document and added additional meta data. This allowed us to update the content from one document to another based on business rules or explicit user actions.

We built two graphical tools to interact with this new meta data. The first was a visual differencing engine that understood structure, content and the new meta data. The second was a hyperbolic tree that allowed the user to crawl around the meta data and see all the local and global relationships. They both offered tremendous value to the end user, but the hyperbolic tree provided an aggregate picture of the system we were not expecting. This became the original idea for Me.dium.

We started putting monitors in all types of applications, Microsoft Word, Adobe Acrobat, Internet Explorer an open source XSLT parser and the Windows OS. Quickly, learning that most applications were great at being automated and terrible at describing what they were doing internally, I called this new type of information activity context.

The activity context was a new piece of meta data that could be stored and leveraged by any user, not just the original creator. Once we were aware of the Activity Context, we were able to do things we could never do before and the most impressive one was connect people in real time based on their current interests.

We envisioned sensors everywhere, all creating activity context, and Me.dium’s Matching Engine gluing it all together. Everything from consumer software applications, internet applications, proprietary enterprise applications, hand held GPS devices, mobile phones, home appliances, computer games and automobiles could operate more efficiently if they had access to Activity Context.

Part 2 of Me.dium’s history comming soon.

Why personalization is going to be the next big thing in Web Search

Intent is the holy grail of search. Crawlers and ranking algorithms are continuously being updated to try to squeeze more from the 2+ words people enter into a search box. Google has added web history within the past year, and they are getting much more aggressive with attention data, but as of today no one is leveraging personalization (this feels like an opportunity for a startup).

The big 4 are talking about it. In a recent interview “Search 2010: Thoughts on the Future of Search” , many of the participants Marissa Mayer – Google, Larry Cornett – Yahoo, Justin Osmer – Microsoft and Daniel Read –  ASK, all stated personalization as one of the top areas for innovation over the next few years.

Why Is Personalization Important

The search problem is always fuzzy, a web search engine does not have enough information to return the perfect result and the perfect result for one person may be different than it is for another. For example, searching for the single word ‘apple’ at any of the top 4 web search engines would produce results that included ‘Apple Computer’, ‘Apple Vacations’ and ‘Fiona Apple’. Depending on the intent of the user, the search term ‘Apple’ could be expanded to include ‘Apple Washington State’ or ‘Apple IPhone’ to produce a search result with significantly more relevant results.

Personalization is one method for accomplishing this goal and if done correctly can significantly reduce the number of results a single user has to scan to find the correct information.

How Does Web Search Personalization Work?

Personalization requires the user to give information about their likes and dislikes. This can be done explicitly like Facebook during the sign up process, implicitly like Google with search history and cookies or implicitly like Me.dium with a browser extension.

Both explicit and implicit data collection can be misleading.

  • To be Explicit, you would tell a web search engine all of your likes and dislikes. This would be time consuming, partially complete and out of date quickly
  • Implicit data capture has a tendency to weight informal but highly repetitive actions as important

My experience has shown that combining the two yields the best results, because you are able to gather initial data about the users interests explicitly and then continually refine them implicitly based on their behavior.

Once a web search engine decides to personalize its results, rather then keep them consistent for all users, it must modify its core ranking algorithms and, in Me.dium’s case, also its crawling policies. Personalization, when done correctly feels like magic, when done poorly can be unbelievably confusing.

Let’s review a few services that personalize results:


Amazon uses implicit historical purchase data to recommend additional items.
“people who purchased this also purchased this”


Pandora uses explicit songs and or band names to create custom radio stations


Facebook uses explicit social graph data to assist in ranking people’s search results

Why haven’t the big 4 search engines adopted personalization?

When I run a search using today’s top 4 search engines I pretty much get the same answers from each. Try it I was personally surprised. Google, Yahoo, Live and Ask all use a publisher-centric model. This produces consistent results day-to-day, week-to-week and sometimes year-to-year. A query like ‘Bill Clinton’ produces results from his presidency, instead of his campaign issues with Hillary.

If I look at this from a financial and historical perspective, not from user value, I believe I understand how and why the web search industry has evolved. My hypothesis: consistent, non-personalized results were an appropriate way to monetize, and implement systems at scale. These challenges became the requirements for the systems we use today. I think we should label these web search engines as Stage 2. Stage 1 type systems were developed prior to Google and Teoma. Next generation web search engines, or shall we say Stage 3, will need to tackle the personalization challenge.


Get every new post delivered to your Inbox.

Join 2,208 other followers