Wednesday, June 27, 2007

M$ - Microsoft ? Myspace ?

Myspace has still been holding up, against all odds and all the predictions by sensible people, just defying the logic - how can something so crappy be still so popular ?

And the moment we ask that question, we realize the error in our thinking. All it takes is to look back. But is being crappy the only thing thats similar between Myspace and Microsoft, or is there anything else we can learn and predict ?

Firstly, believe it or not, both Microsoft and Myspace are in the same kind of business - building platforms. Microsoft built a desktop platform, whereas myspace built a networking platform. But on the technology front, Microsoft built a platform to run 3rd party applications, whereas myspace built a online platform to run 3rd party widgets. Niether of them started with that grand scheme, but rather their shortcomings prompted the developers to plug in the gaps and before we know there was a whole new market segment. Entrepernuers, whose forte was identifying all the limitations and building new companies just to fix it. All this is very similar between the two M$'s.

So what does the future hold? If past lessons are anything to go by Myspace will continue to be very open ("absolutely nothing worth keeping a secret"), developer friendly ("we are too lazy to fix our own bugs"), will face a lot of security issues ("users are not worth protecting") and continue building the money muscle ("quality is nothing").

But the fatal mistake of Myspace unlike Microsoft is that they don't have a good plan to 'lock' users in, except for their over-hyped critical mass of users. But in this dynamic age critical mass just gives you a head start. Even the mighties like Google have started to realise (TODO: Add references to backup my bold claims!). Over time, (hopefully in less than a year or two), there will be an awesome addon to myspace which gets the users so hooked that they will forget to go back to myspace.

Labels: , , ,

Friday, May 25, 2007

New take on Google's "personal time"

As almost everyone knows, Google started an unique trend in the industry. At first they allowed, then encouraged, and now they require their employees to put aside one day of the week to work on their own pet projects. It was a revolutionary idea that attracted two kinds of reactions. The starry eyed programmers everywhere said what a noble company Google was, they had the employee's best interest in their heart. As we all suspected, Google has a heart of gold. On the other hand, industry veterans like Steve Balmer mocked google's personal time concept
calling it naive and insane.

However what most people missed is that the motivation for this concept was neither altruistic nor misguided naivety. It was a carefully calculated, but bold move, that any entrepreneur would appreciate. Think what happens in most companies that attract great people. These people do their day job to earn a living and spend the rest of their free time thinking up other great ideas. If they come up with a hit, they take off, start their own venture and eventually make millions or move on to the next big thing. The company where they were earning their living didn't really gain much from this.

Companies do try throwing their lawyers at such ventures, trying to claim the intellectual property, but except for the fear factor they create, they rarely succeed. So how do you take advantage of such great ideas fomenting in the brains of their employees ? Why, encourage them to work on these in company's time. This is exactly what Google is saying, and I don't think its as evil as it sounds. If I were working for such a company, I would probably work on less spectacular ideas during the personal time, and still keep the more spectacular ones for after work, in the quiet comforts of my basement, ensuring no evil hands can ever reach them ...

It would be great to hear opinions of new and old Google engineers about this :)

Labels: , , , ,

Wednesday, December 14, 2005

Yahoo! Widgets

Yahoo just announced their new version of Konfabulator - Yahoo! Widgets.

For those of you who cared to read my previous rants, I must say,
Yahoo! is eerily headed in the right direction. They even have one
widget (The 21st century sticky notes) which can be accessed from
anywhere and the notes are stored at the server. This is such a classic
example of the desktop reinvention I have been going on about.

I have to check their developer APIs to see if they support standard
HTML (like Tiger Dashboard) or some custom scripts. I bet its going to
be regular HTML
(just a I predicted).

Friday, December 09, 2005

An Interlude - Ajax Tutorial

After the ranting in the previous entries, I think its time to take a break from the philosophical side and get our hands dirty. I am going to put together a tutorial which explains how to you Ajax. I plan to start from the simplest tricks all the way to the most complex ones.
But one step at a time.

To begin with I will demonstrate what I have been discussing - the "world-wide-wait" syndrome everyone is so familiar with. In this demo I have two pages. The first one is a traditional template based web site and the second one is Ajax based. Both of them provide you the exact same information (reviews on 7 latest car models) but you can see thedifference for yourself!

I call the first one Click-and-Wait. You click each link and you wait for the page to load up. The second one, in contrast, is Wait-and-Click-click-click. The page loads the data which is packaged in an XML file and after the initial wait, you are free to click asfast as you can!

Page 1 - The typical Click and Wait website

Page 2 - Same information, but with nifty ajax at work.

Next: I will dissect this demo and explain how it all works. This will be useful to anyone who wants to learn the nuts and bolts of ajax orwants to implement their own ajax code.

Monday, December 05, 2005

The Desktop Reinvention - Part II

Previously I discussed how the advent of a simple approach called Ajax, made developers realize that online apps can be made as crisp and enjoyable as the desktop apps. Infact world-wide-wait was the unfortunate byproduct of poorly implemented websites rather than a
inherent flaw in the Internet. Today I am going to argue that we are headed in the right direction but we are still not yet there, and talk about what needs to happen, to make it possible.

Lets start off by dreaming about a future in which the OS Platforms (Windows, Mac, etc) take a back seat to the Browser Platform, and regardless of what kind of PC a user owns, they would predominantly be running Internet Apps on their computer. Infact at this point computers
will come in all shapes and sizes, because all they need is a JavaScript enabled browser and an internet connection. As an example think of Mr Foo who is a computer programmer playing Solitaire on his office computer everytime he is waiting for his program to be compiled. Instead of playing the lame version that comes with the Windows he actually plays the latest version that runs off of the internet. It looks and feels just like the 'real' solitaire but in reality it is an online game being displayed by the next generation web browser (think in terms of Mac Dashboard widget).

So what's so great about this internet based Solitaire ? For one thing, he can stop playing anytime he wants (like when the boss comes in), and continue the game from any computer. Maybe his home PC or even the little dashboard computer on his car while waiting for the traffic lights, or his latest hand-held computer (something like a PSP) while waiting in the grocery line. Regardless of where he plays it from, he is playing the same game continuing from where he left off. The point is, this program is not tied to a single computer since it actually
internet based. Is this possible ? Very much so. Today, such an internet based program will look and feel like a web page because the web browsers are still in their infancy, but in future, there will be web browsers that are specially designed for these internet apps. They will be able to render HTML/DOM/CSS/XML/XUL based data (of course all these standards will under go revisions and enhancements in the meantime) to display apps that likes not like a web page but rather a real desktop application.

Infact this is a reality even today to some extent in the form of the fancy Dashboard widgets on Mac OS X Tiger. These widgets are simply HTML page embedded with Javascript code (or Objective-C if you desire) but can produce the most enviable widgets with fancy animations, transparency and what not.

At this point many of you will be wondering as to why I am so amazed and fascinated by the prospects of Internet Apps when web applications were the buzzwords of yesterday. I have to make it clear that we are not talking about the traditional web services or web applications which as really application portals built around some specialized online service. For example, a bank which has abundant data related to the financial markets might provide an online service related to stocks and portfolios. Companies like Yahoo! which have abundant directory information could provide online portals for finding and browsing anything, but I am not talking about such services. They need to be online because there is no other choice. Instead, I am talking about applications that need not have anything to do with the internet. Apps like Solitaire, games, graphic tools, development tools, word processors etc. Things that have no business running off the internet, and yet a future where it makes sense to do precisely that.

Talking about word processors, there is an interesting online service called Jot Spot which already do something like this. And guess what? they indeed use a lot of Ajax techniques and make you feel like you are typing into a regular word processor, not an online one. Infact you can use this as an example to see the advantages of internet apps. It is so easy to add collaboration and data sharing to any app that runs off the internet, that JotSpot turned a simple word processor into a unique collaboration tool.

So why do I say that we are not there yet ? To take an rough analogy, the internet platform is like the advent of microprocessors. Ajax is like the assembly language. Yes you can build entire systems in assembly language, but very few in their right mind would. What we need is a set of development tools and standards for building the internetapps. Toolkits for creating truly reusable components and libraries.

In short an operating system is needed to bind all these together and to harness this new powerful platform.

Today, there are a lot of places you can download bits and pieces and put together something. In the next part I am going to discuss these bits and pieces and how a comprehensive solution could incorporate some of these pieces in creating an real operating system for this Internet
Platform.

Saturday, December 03, 2005

The Desktop Reinvention - Part I

Computer desktops are so common place that we take them for granted. However in the next few years of technological innovations, Desktop will probably get reinvented a few times before getting a complete overhaul. Infact, right now the first generation of this invention is happening as we speak, with the advent of AJAX and related technologies.

What does AJAX have to do with desktop reinvention ? I will try to explain shortly, but first we need to understand what this Ajax beast is, anyway.

Ajax stands for Asynchronous JAvascript XMLHttpRequest. That sounds like a lot of gibberish. But be patient, I will be explaining each of the terms in my future entries. But for now, I just want to talk about what it means to the desktop paradigm. If you want to hear about Ajax from the horse's mouth you can go here

To begin with lets look at the acronym itself. I love this acronym: AJAX. It is catchy, and it creates an impression of something mysterious. But thats not the reason for liking this acronym. Contrary to the practice by the usual suspects (think M$) who churn out acronyms faster than their products, where they tend to take an infinitesimal piece of technology and create grand sounding, all encompassing acronyms Ajax is unpretentious and is exactly what it says: It comprises of exactly one function, namely XMLHttpRequest, allowing Javascript (most common language understood by your web browser) to be asynchronous,that is not having to wait, tapping your fingers, waiting for the data to get loaded while you surf the web.

Okay, that sounds fantastic, but is that all ? Actually no, there is a lot more to it. By adding this missing piece to the web browser, you start seeing a fundamental shift from the older client-server model used by most web services. Long ago (late 90s) when dot coms were mushrooming under every corner and every VC used to talk about B2B solutions and web services, people started building very complex web applications based on the client server model, which contained a database server, a web server and the good old web browser to access all this. In those days the browsers were stupid, browser developers stubborn and evil who wanted to tie in the user their proprietary standards, and pretty much everything other than simple HTML looked and behavedvery differently in different browsers.

Things started to change. People started to realize that it was not the web browser itself that enabled them to conquer the world but rather what you displayed in that browser. Soon things got standardized , and XML became the craze of the month, and javascript became the least common subset for displaying funky stuff. Still it was hard to do anything than the fancy scrolling tickers with javascript (and of course, those annoying animated menus) because if you pushed the javascript too hard, your browser would start hanging and you would get hour-glassed (or the lucky Mac users got beach balled).

At around this time, smart folks at google implemented Google Suggest and gmail which turned out to be quite amazing applications. I personally know a lot of smart engineers who shifted to gmail not because of the 1 GB disk space, or the much touted targeted ads (or rather inspite of the much taunted targeted ads) but because of the feeling of absolute joy when using the interface. They were online services, but their interactive UI could rival any desktop application written for Windows or Macs. Unknowingly (or for all you know, very much knowingly) these smart engineers had finally found a way to make online apps far more interesting and interactive than anything so far. The approach they used to do this was to keep the data in XML format on their server and let the browser load this data in background (i.e. asynchronously). Once the data (or part of it) is loaded, user can navigate around without having to wait for pages to load from the server. And so was invented a technique, (quite intuitive but novel nevertheless because others failed to do it the smart way) which has commonly referred to as Ajax. The actual name was something a bit longer, but was cut short right way.

At this point the more curious audience is encouraged to visit this here to learn more about
Ajax.

Finally the days of World Wide Wait was coming to an end and web could actually be a rival platform like Windows or Mac for serious applications. Hmm, now you can see where I am going with the desktop reinvention. Yes, internet is becoming the new feature rich platform and the humble web browser is becoming the new desktop.

Welcome To Technosophy Unlimited

In this blog I jot down my philosophical thoughts related to
technology, both past and future.