Home Blog

Archive for 2008

Understanding Microsoft Azure: The Fight for the Platform of the Future

Friday, November 21st, 2008

During the Microsoft’s PDC 2008 conference, a new technology platform was unveiled by Microsoft dubbed Microsoft Azure.

Microsoft Azure

Unsurprisingly, there was a lot of confusion surrounding Microsoft Azure. The sheer variety of features, interfaces and details that are part of Microsoft’s Azure made things hard to grok. But in the end, I think the core concept is actually simple and it actually is a fundamental building block for software applications of the future. Here’s my take.

So what is Microsoft Azure?

Azure is a software development kit (SDK) as well as the runtime environment for building and running highly scalable applications for the cloud.

How is it different from normal frameworks?

From a developers perspective, Azure is no different from the .NET runtime or from the C++ runtime or the Java runtime. Instead of the application being executed on your local machine, the application actually runs on the “Cloud” (in this case Microsoft’s Datacenters).

 Why do we need Azure?

If you read my previous post(The future of software applications), clearly the trend is towards migration of software apps from the desktop to the cloud, running via the web browser. The desktop is becoming more and more irrelevant today and the OS that powers the desktop matters even less.  The next big thing is already mostly upon us and it is web-based applications. The good news with web-based applications is that you don’t need to worry about a lot of things that you needed to worry about when developing desktop applications. The bad news is that you now need to worry about a whole host of other things, security, scalability, infrastructure management, bandwidth costs etc. And building these kinds of applications correctly is difficult, not to say sometimes almost impossible.

That is where Microsoft’s Azure comes in. By building applications for the Azure platform, which abstracts these problems away from you, it promises to make developing scalable web-applications as easy as developing desktop applications.

How is it different from Amazon’s EC2 or Google’s App Engine?

As a general concept, it is not wholly different, but the whole integration of various services + the advantage and productivity of using Visual Studio to build apps appears to make the Azure development platform attractive to legions of developers who work with .NET. Amazon’s EC2 allows any kind of technology to be used within the virtual machines that are deployed, while Google’s AppEngine currently requires applications to be written in Python.

What does this mean for the future?

In one way, Microsoft’s Azure platform actually tells you that Microsoft realizes that a lot of applications are going to migrate over to the web. This means that their traditional dominance of the desktop is going to wane as the desktop OS matters less. However, they have also correctly realized that by providing a development platform for the web, they can be dominant in the emerging software platform of tomorrow. In my opinion this is a brilliant move. A lot of companies today are trying to get market and mindshare by writing the web applications (Google Apps, Photoshop Express and others etc). Meanwhile Microsoft skipped that and wrote the platform *for* writing web applications. It remains to be seen how easy the Azure development environment is to use, but if it is even only 10x as hard as writing a .NET applications there will be a lot of applications running on Microsoft Azure.

However, I think that the other big companies are not going to keep still. Microsoft’s Azure is the opening gambit for the fight for the platform of the future. It is now clear to all the big players what the fight is about. Even if Azure is not successful, I think that this is an important turning point in the history of software applications.

Web 2.0 Heroes: Some Comments

Friday, November 21st, 2008

 Web 2.0 Heroes

I recently read the book “Web 2.0 Heroes: Interviews with 20 Web 2.0 Influencers and it was interesting from several perspectives. The book’s format was Q&A with several luminaries who are shaping the user experiences in the internet today. From behemoths like Ebay, Microsoft, Skype, Adobe, IBM, Sun to startups like Ning, Technorati, StumbleUpon, Twitter, Meebo, Zoho etc. The questions were mostly about trying to define the term Web 2.0 as well as about other terms like Semantic Web, SAAS, S+S etc.

The first interesting thing was the absence of Google or Yahoo. Well, maybe they are not big into the whole Web thing. :-)

The second interesting thing was this frequent mention of the fact that Web 2.0 was about giving more control back to the users.

For example, the guy from Bloglines says:

Greater user control is really one of the key things for Web 2.0. The users are now in control, whereas in the past they were not in control. It was really what big companies wanted to broad-
cast or distribute, whether it is a broadcast via a media model or via an old software model. Now, you can modify and take apart your application. Kind of like the modders who souped up their Toyotas, jack them up, or do whatever. A lot of people are doing that. That is one of the really cool things in how the users take control of their user experience.

How could that be? Allowing programmable APIs access does not equate to greater user control. Yes, it means greater developer control, but for the normal user, the programmable API doesn’t change his experience that much. I also don’t understand when he mentions that a lot of people are doing that. Just because something is programmable doesn’t mean many are doing it. It is like saying that just because the COM controls and widgets on your PC are programmable, a lot of people are actually going ahead and using them in new, unexpected ways. In my opinion, user control equates to greater control on stuff that actually matters, like control on the user data, how it is shared, how it is made available, who is looking at it etc.

The same kind of comment from Zoho

But what we really like is the movement that’s happening at the grassroots level where control is given back to the users. That is the key thing and if you want to have a term, then yes, that is probably where Web2.0 is a good marketing term.

and from Adobe

We’re taking advan-tage a lot of that infrastructure in the trends that have defined Web 2.0, which is user-generated content; content is king, giving the users a lot of control, opening up APIs, opening up feeds and being able to bring lots of different content types together to create new experiences.

Maybe the definition of user control is different for these folks, but my perception has been that the whole new software paradigm that is being rolled out is ultimately lesser user control. With all these ways of now combining information, someone can combine your LinkedIn Profile and all your pictures and comments(and rants) from MySpace, Facebook and the Web into a single page for an employer to look at before offering a job. Thats a scary thought.

The Future of Software Applications

Sunday, October 26th, 2008

That is really the million dollar question everyone wants the answer to. Being at the right location at the right time pays off immensely especially if you are in the start-up business.

Some History

To make sense of the direction that software is going, one needs to study the evolution of computing. Evolution in living organisms (if you remember your Biology) happens due to environmental mechanisms that favor one form vs another (aka natural selection) as well as due to small random changes to existing forms that might get passed down from one generation to another (mutation).

The analogy of software applications to living organisms breaks down at several levels including time (a few billion years vs about 50 years) but it still is a useful model to use.

Early computers were monstrous in terms of size, cost and inefficiencies. And it was almost impossible for computers to exist without an army of attendants keeping it alive. Over time, major advances in technology, the invention of the transistor, improvements in manufacturing etc made computers affordable by big corporations, most Governments, then by medium businesses and finally by almost everyone. This was the Personal Computer revolution, which wrenched computing power from huge central servers and distributed it to the hands of the individual user. For the first time, a person could do what he wished with his machine without affecting anyone else. For the first time, he needn’t get a time slot for doing computing; the computing resources were his alone, waiting for him to use. This was the Personal Computer.

The advent of the PC (and macs) lead to huge strides in computing. Users free to tinker with the hardware and software figured out innovative things to do as well as started demanding more and more from their machines; from dot matrix printers to color laser printouts, from command line interfaces to rich GUIs, from primitive pixelated games to full blown virtual worlds, the changes were tremendous. This evolution was so rapid that a PC about a couple of years old became obsolete and unable to run latest applications.

The Internet

However a small mutation appeared, that completely took PCs into a completely new direction. The Internet. The Information Super-Highway. The World Wide Web. A simple protocol over a copper wire (HTTP over TCP/IP) changed the history of Software Applications.

The Internet started out humbly as a communication medium for people to send simple messages (email etc) to each other. With HTTP and Web browsers, it became a means for people to access, disseminate information effectively.

The key driver behind the web was information, whether it be a recipe for a favorite dish or figuring out the reason the PC won’t post from reading myriad forum posts. Because the information was so easy to access and could cross operating system walls unfettered, more and more people realized that the WWW can actually become a platform than just a conduit for information.

The Browser is the new PC

Along with this development came a lot of other economic changes which drove most desktop application developers out of business (except for the big software companies like Adobe etc). The factors were many, but one of them was the growing realization by software developers that building software applications for the desktop has lot more perils than building applications on the web. The perils included rampant piracy, almost impossible to administer software licensing, increasing competition from open source and free software and so on. On the other hand, building (good) web applications was (and is) a several orders of magnitude harder than desktop apps, but there was far less chance that what you build will become useless or pirated. Once consumers started using the application and invested some time and energy into it, they were bound to remain loyal, held captive by the immobility of the data. This sounded like a brilliant business model for many companies.

To consumers, on the surface, this seemed good too. No more worrying about installing applications, just do it all from Internet applications. Upload all your files/photos/information into online services and access them anywhere a browser works. The allure was unmistakable.

It is the scenario that we find ourselves in today in late 2008. Web 2.0, AJAX all lead the charge in promising the new internet. You know the old world is crumbling when Adoble previews a new Photoshop application running on the “Cloud”!

So have we now come a full circle? We went from huge servers to completely independent standalone PCs and then back to huge server farms. For most people a day on the computer has become synonymous with using the browser. Reading email, news, writing a document on Google Docs etc. (A browser has become what Emacs used to be, the center of the computing universe).

But Look Ma, I got all these cores!

So most new applications are definitely headed towards the “cloud”. Almost all new exciting apps/ideas you hear about will somehow or the other use the HTTP protocol. Developers love it, consumers do too and what more do you want?

That brings us to the next interesting question. What about all this horsepower we now run under the hood of our PCs? Core 2 Duos, Core 2 Quads. All pretty powerful, but pretty much useless if a browser is limited to making no more than 2 connections at a time to the web server and almost all the heavy lifting is done by a server on the server farm.

But then the hardware companies assure you - “hey! you need to buy the latest machine so you can surf 5x faster”. It cannot be farther away from the truth, since without changing your network connection for instance, you are not going to do anything significantly faster. I can attest to this personally as I am owner of a laptop that is more than 7 years old which can browse the Internet and be perfectly usable as my new screaming fast Core 2 Quad. Go figure! So where does this leave the hardware manufacturers? In a pretty hard place. It is becoming harder to convince anyone to upgrade to the newest hardware. Also because CPU improvements have been increasing number of cores and not raw CPU speed you are going to see far less improvements in performance (Remember: Most software still don’t take advantage of multiple cores). You are probably better off upgrading your network and connectivity.

And Operating systems? Well they matter even less these days. Almost any operating system offers almost the identical experience if all you are seeing is the borders of Firefox all day.

But what about Games?

And so I believed too that games alone will stem the time against web applications. But here too things are changing. Not many standalone titles are being released these days on the PC. The consoles are where the action is. Of course, there will always be RPGs that can never be played on a console, but those are few and far between.

The new direction towards some form of central server based applications have affected games as well. Look at the World of Warcraft and the other MMO games available. The game companies have finally figured out that online games are the perfect anti-piracy mechanisms.

Are we done yet?

So if all I have said seems to imply that the future of software applications is in the “cloud”, you might be right. That’s the future the big software businesses want to take the consumer towards. That’s the direction of the most profits, maximum control and complete lock-in. That’s the direction most of them are going toward.

But there are a few of us out here who believe that this is not the direction that is the most beneficial over the long run for the average user. What you get from web applications, you lose in reduced freedom and the erosion of privacy.

Trading up privacy and security of your data for the convenience of anywhere access doesn’t work. The scales don’t balance. Most people don’t see the threat yet or the incredible potential for misuse.

What we need is something that balances the risks and rewards. We need applications that offer customers the accessibility of web applications with none of the risks. We want applications that can leverage all that computing horsepower to the max instead of rendering a paltry few pages every few minutes. We need applications without boundaries, that empower customers in the connected world. That might not be the future that businesses want, but thats the future that consumers will want.

Tonido is a small step closer towards that future.

Graphical Installation of SuSe Linux in VMware

Tuesday, October 14th, 2008

Problem:

When creating a new virtual machine image with SuSe Linux, the installation doesn’t start in proper graphics mode. Installation screens are visible only if the installer is started in text only mode.

Solution:

The problem is caused due to a problem with VMware framebuffer. To start the installation in graphical mode,before selecting install from the grub menu, enter the following value in the boot options text box and then press Enter.

x11i = fbdev

Youtube user demographics vs Face book user demographics

Thursday, October 2nd, 2008

I recently compared the youtube user demographics with facebook user demographics (By age distribution).   35+ age category constitutes 42% of youtube users. At the same time, 35+ age category constitutes only 19% of facebook users. It seems like youtube attracts older crowd compared to facebook. If you keep the assumption that age 35+ group has more disposable income than the younger gen, companies are better off spending thier Ad dollars in youtube rather than facebook. It raises the question why age 35+ crowd is not interested in social networking sites as the younger crowd?

Is it because they view social networking sites are for young people? or is it because the older crowd doesn’t have time and they are more task oriented?  Is there an opportunity for building social networking  sites strictly for age 35+ and above. I am thinking loudly. Let me know your thoughts.

Youtube Age Demographics

Facebook Demographics - Distribution by Age

Women more frequently update thier online profile than men.

Thursday, October 2nd, 2008

 According to the market survey conducted  by Youth Trends, It seems 82% women updated their online profile compared to 65% men. The survey was conducted among 1239 full-time 4-year college students ages 18-24. My hypothesis is that women are concerned more about their image, Both real and virtual. Is that true?   Also, women uploaded photos more than men (46% vs 35%).  One more interesting aspect is that dating/personals sites don’t have much following among college students. I think that data is self explanatory :).  I guess photo sharing apps like photobucket and flickr need to concentrate more on women .

Activities of College Students

Woman Rule Social Networking

Thursday, October 2nd, 2008

Last one week, we were doing some market research on Social networking user demographics for our impending product release codenamed  “Tonido”.  We came across some interesting statistics about use of social networking sites by women. It seems like women use social networking sites such as facebook and myspace more than men. According to Rapleaf, 63% of facebook and myspace users are women. sounds intresting huh.

Facebook Users

  • 2.6 million users identified in Rapleaf
  • 63% female, 36% male
  • 17% <18 yrs, 52% 18-25 yrs, 21% 26-35 yrs, 5% 36-45 yrs, 5% >45 yrs
  • 2.9 major social networking sites used on average
  • 62% are on MySpace, 5% are on LinkedIn, 9% are on Friendster, 10% are on Plaxo, 22% are on Hi5

MySpace Users

  • 11.3 million users identified in Rapleaf
  • 63% female, 36% male
  • 20% <18 yrs, 40% 18-25 yrs, 27% 26-35 yrs, 7% 36-45 yrs, 6% >45 yrs
  • 2.4 major social networking sites used on average
  • 15% are on Facebook, 2% are on LinkedIn, 9% are on Friendster, 6% are on Plaxo, 17% are on Hi5

Source: http://blog.rapleaf.com/2007/11/13/statistics-on-googles-opensocial-platform-end-users-and-facebook-users/

We just wanted to double check on the numbers. I punched Facebook and Myspace on www.quantcast.com.

Facebook Demographics

Facebook Demographics

The numbers are little different. But still biased towards women.  Why is that?  Is it because women seek more attention than men?May be they are more concerned about the relationships both real and online? May be women are more interested in gossip? I really don’ t know. I think i need to ask my wife :) .

So any social networking applications has to keep in mind the wants and needs of women? remember the Mel Gibson movie “What women want?”.

Any comments….

Out of action with RSI

Tuesday, September 30th, 2008

So what do you get when you work non-stop 12 to 14 hours every day on your computer, almost continuously for 10 months? You get acute pain on your wrist that completely immobilizes you from working on the computer.

It starts innocently enough on the upper right hand. You mostly disregard the pain as you dismiss it as a strain or a pull from something. You continue typing merrily,mainly because you can and then it hits you like a truck. You can barely move your fingers or change your wrist position without yelping in pain. Welcome to RSI.

It took me a while before I understand what I got. It was pretty serious, because for the first time in many months, I had to basically sit still without interacting with my computer. Then you realize how much you take for granted. A software guy without the ability to use his keyboard is pretty much dead on the water. Similar to a pianist, there is no way to make software music. That was the day the music died.

The next 4 days were pretty much nursing my wrist back to health; a wrist support brace helped a lot in the recovery.

Since then, I have realized the error of my ways and take all the precautions to avoid the same injuries. I replaced my keyboard and mouse with the ergonomic versions (Microsoft Natural Ergonomic Keyboard 4000 and MS Natural Mouse 6000). Mainly to avoid twisting my wrists into unnatural positions.

MS Keyboard 4000

It appears to help a bit. The downside is that my typing speed went down from 50 WPM to about 20 WPM on the natural keyboard (but I am improving slowly).  However, I would take 20 WPM rather than 0 WPM any day. :-)

The other thing that helped immensely is Workrave. A little opensource software that sits in your system tray and makes you take breaks every once in a while that helps your body from being forced into an bad posture too long. It is annoying and I do make it “postpone ” the break many times when I work on something with full concentration, but nonetheless, it is helping me quite a bit.

Only time will tell whether these precaustions are enough. But the good part of this episode is that I am now acutely aware of the potential for injury and what it means for my career. So its been an eye-opener for me. It should be one for you too. Be warned.

Sharing your SSH commandline

Thursday, September 11th, 2008

Our small team has a wide ranging set of skill levels in Linux. Sometimes, it is particularly illuminating to see how something is setup. Particularly, we want the equivalent of a bunch of people huddled in front of a monitor while one person types.

Surprisingly, this can be accomplished quite easily in Linux.

Actually, this is one step better, anyone can type in the commandline at any time, so no one actually monopolizes the keyboard.

One person can create the screen by selecting a name for the session and then typing

sudo screen -L -S <SESSIONNAME>

Then others can ssh into the machine, and join this screen

sudo screen -x <SESSIONNAME>

Any after the session, you can view all the commands that were typed by looking at the .screenlog

Very cool!

Browsing from office via home network

Wednesday, August 6th, 2008

Introduction
Many of us would like to do free spirit internet browsing while at office and working hard :-). However not all offices will allow you to do unrestricted internet traveling. Most of the day-to-day websites, email sites etc., will be on the restricted list. While some of the sites are restricted for security reasons, most of them are restricted for loss of productivity during office time.

Here is a way we can quickly bypass browsing restrictions and get to any site we want. This article assumes a fairly working knowledge on computers. In this article, we setup a browsing proxy service on the office system which will route all the internet traffic via a remote home system. Also the entire communication between office and home system is over a secure channel, so there is no worry of privacy concerns.

Our environment will have two systems:
(1) Local/Office System:
Windows operating system such as xp, 2000 etc.,.
Putty - Very useful telnet/ssh client for windows.
(2) Remote/Home System:
Preferably a linux operating system with SSH service started. If you don’t have a machine with linux system handy, you can use cygwin/openSSH on windows platform. In a nutshell this system should have a SSH server running on it.

Additional Requirements:
If home system is directly connected to internet, then public IP address of the home system will be needed for this setup. To make life easier a free dynamic dns account for mapping the IP address to a URL can also be created. Check http://www.dyndns.org for details.
If home system is connected to internet via a router, then add a port forwarding on port 22 to the home system. Again public IP address or dynamic dns name of the router will be needed for this setup.

Setup steps:

1) On the office system, open putty enter the ipaddress or dynamic dns name in the host name field. Select “SSH” as connection type. Port 22 will be selected which can be left alone unless you run the SSH service on a different port. Note: Though your putty screen might look a little different than the one seen here due to version differences, the basic steps would be still the same

In our example,
Host Name = demo123.dyndns.org
Port= 22

Remote home system network details

2) In putty, on the left-hand navigation panel, open SSH option and select “Tunnels”.

In the tunnels screen, set these values
Source Port: 3000 (this is the port at which our proxy service listens to, this port can be changed to any but preferably a number larger than 1024)
Destination Port: (Leave Blank)
Finally, select “Dynamic” from the radio button options.

Tunnelling information for the proxy

3) Important: Click “Add” to add the tunnel settings to the connection.

Tunnel settings added

 

4) On left-hand navigation panel, move the scrollbar to the top and click session. You will be seeing the settings entered in step(1). Now we can save the whole connection settings. Add a name for this connection in the saved sessions textbox and click save.

Saving the connection settings

5) Click open, to open connection to home machine, and enter login and password information for the remote machine. This user need not be root user, but it needs to be an user with network access on the remote machine. That brings to the end of putty configuration. Now you have a proxy connection pipe from office machine to home machine. Now we need to configure our browser to use this pipe instead of the direct connection.

6) Open up a browser window and make the following changes to the connection settings.
On FireFox,
Select connection settings from the menu item Tools -> Options. This will bring up the option window, Select “Advanced” from the icon and then switch to “Network” tab.

FireFox Connections Tab

Click on Settings, which will bring up the network settings screen for the browser. Normally, the browser will be set for no proxy. If you have any other proxy settings remember to note those values. We might need to put that back when we are done using our own proxy service. Click on “Manual proxy configuration” option and enter “127.0.0.1″ for SOCKS Host and 3000 (or the port you’ve used) for Port. Finally click “OK” to save the changes.

Browser connection settings: Before changes Browser connection settings: After changes

On IE,
Select connection settings from the menu item Tools -> Internet Options. This will bring up the option window, switch to “Connections” tab. Click on “LAN Settings”. IE network settings window will open. In this window select “Use proxy server….” and click “Advanced”. In the proxy settings window, enter 127.0.0.1 as socks proxy host and 3000 as socks proxy port. Click “OK” and save the changes. Note: Make note of the existing LAN settings to put it back after using the proxy service.

IE Connections Tab IE LAN Settings IE Proxy Settings

7) Now we are ready for browsing any website through our home network and not through the office network. To verify this you can close look at the putty logs. Also another crude test will be to close the putty session to sure browser cannot connect to internet anymore. Once you are done using the proxy service revert back to your original browser network settings.

Entries (RSS)