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.


Hacking Add-on-Con

I am organizing Add-on-Con for the second time. During last years event, one of the best parts was putting faces with names. This year during the planing stage I had an idea, to try a game, to accomplish the same effect. I logged on to the web,  typed rentacoder.com, popped open Adobe Illustrator and started to draw. The end result can now be seen at Add-on-Con.com.

The game is proving to be great fun and a good way to virally let people know about the conference. I believe it is also achieving the goal of helping people put faces with names.


I originally had the game announce each players score over twitter, but that seemed to be viewed as spam. Not sure I agree, but I asked the developer to change the code. Now it announces each time a player takes over 1 of the top 5 slots and enables each player to announce the score from their own twitter account via a retweet button.

One of the really fun side affects that emerged is the competitive nature of the players. A large subset of the group are software developers, so hacking the game quickly became a popular way to post more impressive scores. Leading one of the player’s who claimed the top spot to claim “yes, this was legit”.

Another developer was kind enough to send me his hack:

<start script>

function myScript() {
setTimeout(‘timer.clicks=18;var mycards = new Array();mycards[0]=card_1;mycards[1]=card_2;mycards[2]=card_3;mycards[3]=card_4;mycards[4]=card_5;
mycards[5]=card_6;mycards[6]=card_7;mycards[7]=card_8;mycards[8]=card_9;mycards[9]=card_10;mycards[10]=card_11;mycards[11]=card_12;mycards[12]=card_13;mycards[13]=card_14;mycards[14]=card_15;mycards[15]=card_16;mycards[16]=card_17;mycards[17]=card_18;mycards[18]=card_19;mycards[19]=card_20;mycards[20]=card_21;mycards[21]=card_22;mycards[22]=card_23;mycards[23]=card_24;for(i in mycards){var cardText = mycards[i].cardText;if (mycards[i].isFound != true){mycards[i].flipCard(\’card_\’+(++i));for(j in mycards){if (i != j && mycards[j].isFaceUp != true && mycards[j].cardText == cardText){mycards[j].flipCard(\’card_\’+(++j));}}}}’,15000);

var script = document.createElement(“script”);
script.type = “application/javascript”;
script.textContent = “(” + myScript + “)();”;

<end script>

Thanks kevin, have fun and see you at Add-on-Con on December 11.

How does OneRiot Determine the Pulse of the Internet?

First Who is OneRiot?

As of today, Me.dium is now OneRiot. With this name change, the company is also changing it’s focus from sidebars/toolbars to a destination web site. OneRiot still leverage’s browser Add-on’s, but the company is switching the primary input to it’s system from implicit to explicit. The core technology remains the same with one major modification, we have added full text indexing to our behavior graph.

This change is dramatic and the use case for OneRiot.com is search. Like other search engines, we keep a running record of the contents of the Internet. However, unlike other search engines, we prioritize that information based on its current popularity with our community. This makes OneRiot’s search results relevant, fresh, friendly, and pulsing with the real-time energy of the web.

How does OneRiot Determine the Pulse?

toolbr-minutesOneRiot sensors currently collect between 25 and 30 million browser minutes per day.

sharelocationsOneRiot users vet between 12 and 15 million URL’s per day.


4 % of the daily URL’s visited by OneRiot users are search related.

OneRiot collects these signals and others in real-time, processes them and outputs the Pulse for the terms/phrases entered.


For example, if you wanted to find out what is happening right now with Jennifer Hudson, click the link. Also, OneRiot decorates the Pulse results with additional metadata. You will notice a new section, ‘Today’s Pulse On’.


In addition, The Pulse indicators shown above illustrate how active a specific URL is at this exact moment and the Average Visit Duration communicates how long people spend on this URL.

If you download the PulseChecker you can see this information for any URL you visit in the bottom right hand corner of your browser. Also by installing the PulseChecker you are helping OneRiot understand the Pulse of the web.

Try it and let me know what you think.

Composite Application or Web Browser

When you look at modern web browsers they come in different visual footprints, but they all provide a common set of architectural underpinnings.

What I find interesting is the way the modern web browser has morphed into a true composite application. This is happening under the covers and the mainstream user is getting enormous benefit without the need to understand the complexities. While, the developers/designers are able to leverage these common foundations to create an infinite amount of new applications.

The modern day Web browser has Plug-in, Add-on, CSS, and JavaScript architectures designed to support a greater number of UI paradigms. Plus, The almost ubiquitous access of TCP, HTTP and cellular has enabled connectivity from almost any point on earth.  Add the latest advances from Webkit, the decreasing cost of LCD screens, the broad usage of 802.11 and we are on the verge of seeing composite applications on any device.

Times are a changing.

If you are interested in the future of the browser you should check out the closing keynote of Add-on-Con.

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 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