Apple, Facebook, Google and Microsoft in a School

Back to School

Teacher:  Ok boys, we have these four innovative projects for this semester. Let us go one by one and see who is interested in what.

Apple: Ok, Mam. (Oh, goody goody. Time to be creative)

Microsoft: Ok. (Why do we need to do this innovative stuff every now and then?)

Google: Ok. (Really, are there more projects that I cannot think of)

Make a Computer/Laptop

Microsoft: I will do it

Apple: I will do it

Google: Me too

Develop an OS for Phones

Microsoft: I will do it (I just need to remove some 10 millions lines of code from my last semester’s computer OS project and copy/paste few things here and there.)

Apple: Me too. (What crap they are building these days. I think I can do cool re-design of last semester’s computer OS project)

Google: Me too.

Make a Phone

Apple: I will take this one up. Got some good ideas and I am already working on it

Google: Me too. (Damn, I need to buy from someone now)

Microsoft: Me too. (This is a good time, let me ask that (Nokia) guy whom I gave lot of money last time)

Teacher:  Next project: Make a Tablet

Apple: I will do it. I have been working on this. Here is how it may look like.

Microsoft: Me too. (I need to do something about this)

Google: Me too. (I hope at least this works out fine)

Teacher: Ok, great.I am excited to see the enthusiasm in this semester’s projects. Where is Facebook ?

Facebook (comes running): Yes, Mam. Sorry, I was fixing the website I created in the last semester’s project. Last night, it went viral and all Schools in the country are accessing it right now.

Teacher: That’s great. Good job, Facebook. So, what are you gonna work on this semester ?

Facebook: Sorry,  I missed the class,  but I will take up all the projects the other guys are doing.

Installing PIP & Virutalenv in “sudo” free way

Recently, I needed to install a python native module in my build environment.  My build environment had python made available by auto mounting an NFS python installation. As this mount is shared with many users, I only have read-access to it.

Instead of polluting the build environment, I wanted a clean way to install this python module. Obviously, virtualenv is the right way to go, but unfortunately, the shared python installation didn’t have any of virtualenv, pip, setuptools  pre-installed.

So, after googling a bit and looking at the documentation of pip, setuptools and this excellent stackoverflow link,  here is the solution I came up with:

  • Install setuptools first into user local

$wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
$python ez_setup.py –user

  • Install setuptools first into user local

$curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py

$python get-pip.py –user

That should have installed both setuptools and pip into user home directory (~/.local on linux). Put the ~/.local/bin directory on the path and move to next step

  • Install virtualenv into user local

$pip install –user virtualenv

 

That’s it. Now you have pip and virtualenv installed into user local directory without modifying global python installation. 

Samsung Galaxy S4 – Couple of hours of wait & greed for more silicon & plastic

Image

I have been tracking Samsung Galaxy S4 news for more than a month now,ever since it was announced on Mar 14th.  Finally, it was launched yesterday in India.

I have been pretty happy with my 3.5 year old HTC HD2. It is a great phone and best of the breed for its time (yes, looks like 3.5 years is like light years in mobile tech), probably bit heavier compared to the current generation smart phones.

I woud have dumped HD2 it long back if I had to stay put with Windows CE 6.5. Thanks to folks at xda-dev, I have been running all sorts of OS on this (including Windows 7, Ubuntu and Android).  I usually get custom ROMs for latest versions of Android on this phone way earlier than any latest phone can get its updates.  But running Jelly bean on less than 512 MB RAM, with most of it loaded from SD, is definitely slow. So, of late, I have been on the look out for a new phone 

iPhone is never on my mind (and probably never will be). So, that leaves me with a choice of Sony Experia Z, HTC One and Samsung Galaxy S4.   I liked the look of Experia Z and HTC One lot better than S4. S4 is no match from looks and external build quality pt of view.

I ruled out HTC one for couple of reasons. No external storage and locked-in battery. First of all, for 16G models, they eat away half of it for all the junk they put in there. So, literally they come with only 8G available space. With all my ever growing cached RSS feeds, music, books, podcasts and pictures, I am gonna run out of that soon. Second, HTC one in  India has a bad history of ignoring their customers. India is the last country they push updates to, if at all they do.

Although it looks great, I ruled out Experia Z it is so much focussed on camera etc.  I am not a very heavy user of camera on the phone anyway. Plus, when it comes to smartphones, I am not a big fan of Sony.

That leaves me with the just  Samsung for now.  So, I thought I will check out how does the phone feel like in the hand and went to UB City, Bangalore yesterday. I didn’t realize that they were actually launching the product on the same day, with all celebrities around. I was free for next couple of hours and was busy catching up on my reading while waiting in the line. Yes, there were tons of folks waiting in long queues. I just happened to time it well accidentally and ended up fairly in the front of the queue.

And this is where our “Customer Service” starts to fail. All across the world, companies are spending money to get customers inside the store and buy. And here we are, Samsung India is busy attending to celebrities and making customers wait. And if you think about it, the very goal of all these celebrities, marketing, ad spend is to get customers to buy their product.  Why can’t they decouple the two things and respect/value customer’s time – I guess, it will not happen here; we are just too many for any business here 🙂

Anyway, I finally shelled out approximately $700 for more silicon and more plastic this time around.  Here is my quick analysis:

Pros:

  • It is a great hardware.
  • In spite of 5″ and 2600 mAh battery, it is just 130g. Feels very light and comfortable in the hand
  • The touchscreen is so good, you can effortlessly use it with a single hand, swiping in & out. 
  • Samsung has added so much bloatware to the device that with just couple of usual apps running, phone is already using 80% of the total 2G RAM. But there is absolutely no lag as switch across apps, screens 
  • The back cover is plastic and so flimsy, you would cringe at the thought of spending $700 for this. But the nice side effect of this is that, the S-View flip cover (that is doled out free with this device) replaces this flimsy back cover and fits right into the phone.  It has a nice visible area from the top to look at all essential information.  The phone sensor recognizes the flip cover and automatically switches on the display when you open up the cover,  and displays the summary information in the visible area when closed it back.  And because the way it replaces the back cover, it is nice to hold the phone for reading even when you are lying down in the bed.
  • Full HD display is excellent. It is a joy to watch HD videos on the phone.
  • A nice little feature is that it has IR blaster and works well with  your TV, STB etc.  It is very handy when you are sitting in front of the  TV and your regular remote is not nearby.  But the TV remote app itself is very basic. There is good opportunity to build a great app that also combines TV listing

Cons:

  • If you are buying this phone for all the marketing talk about Smart Pause, Air Gestures, Air Move etc then beware. While these are pretty good ideas, they donot work very well yet. And when they work, they work with only few apps.   
  • Would have been good if this combined the looks of HTC and some ruggedness of Experia Z.  
  • It is not an iPhone killer. There is no question of this phone changing iPhone Fanboys yet.
  • For a black misty model, they ship it with white chargers, cables and headset.  Looks like Samsung is totally lost on the look & beauty sense. 
  • It needs a micro-SIM. So be ready to make yet-another-set-of-copies of your driving license, address proof, pan card (and what not)  to get your mobile provider to change the SIM.
  • While I managed to insert the micro SIM card into the slot, I believe there is no easy way to take it out.

 

ebooks, version control & software

Yesterday, I was trying to migrate a decade old VSS (Microsoft Visual Source Safe) version controlled project to a git repository.  Yes, this particular decade old project is still being actively maintained and in use – several customers depend on this software working:-)    So, I thought it is time to move away from VSS and migrate it to git.  Since the project was making use of all esoteric features of VSS such as shared folders, pinning etc, it is not a straight-forward migration to git.  I am using vss2git for the migration, but even this needed few fixes before I could attempt to create a git repo out of VSS project. As I was trying to re-organize the vss2git migrated repositories to better fit into git model, I realized I needed better understanding of  git subtrees, indexes etc. I got hold of the ebook Git Magicand was trying to read through. This statement by the author Ben Lynn in the preface made me stop and think about what version control could offer to ebooks:

…My gratitude goes to many others for your support and praise. I’m tempted to quote you here, but it might raise expectations to ridiculous heights. If I’ve left you out by mistake, please tell me or just send me a patch!

This ebook is open sourced under the GPL license and is maintained on the GitHub. These days, it is nothing new for authors to add errata, additional examples, diagrams or other commentary on a website associated with the book (ebook or print version). But there is simply no automated way for you to know about any of these updates. Most of my ebooks I read either on Kindle or other Android ebook software (particularly, if these are pdfs). Imagine, if version control tool is explicit part of the ebook publishing process, there are plenty of exciting things that can happen:

  • As authors make early versions of the book available (Rough Cuts as Safari calls it), readers could comment by submitting patches.
  • Multiple book authors can easily collaborate, esp with distributed version control systems such as git.
  • If ebooks are explicitly associated with their, say git repositories & rss feeds, and assume kindle like readers are aware of this fact (either by a convention or a standard). Now, every time I open the book, ebook reader can notify me that there are updates to the book, additional chapters, errata etc and update it in-place.  Better yet, give me a view of what is changed in a chapter, if I have already read that chapter.
  • Several popular books undergo revisions for various reasons. For example, If these books are about a programming language or a computer science concept, the book revision may be about new language features added in a recent version or recent advancements in a given CS area.  Most of the time, 60% the content is same. So, it doesn’t make sense for me to buy a new (e)book. Imagine, if Amazon could offer the new revision in the form of update to an existing ebook for a much lower price than that of a new book.  I should then be able to see two versions of a book in my kindle bookshelf and read any one of them.  Book writing is an extremely time consuming process – who knows, this  process may even motivate more authors to make revisions to their books or in most cases just add new additional chapters.

This doesn’t necessarily mean that authors and readers need to (know and ) work with git like version control systems. There can always be more layers abstracting the nitty gritty details of a version control system from authors and readers. But an ebook publishing process with such an infrastructure underneath and a deep integration with ebook readers has a potential to make us look at ebooks very differently

To put it simply, books just become software !!

Google launches full scale shopping in search

http://www.readwriteweb.com/archives/google-launches-full-scale-shopping-in-search.php

Today, Google begins an experiment to change the way you shop online. When you search for a product, Google will deliver paid listings for shopping options right next to the search results. By searching for a product, you’ve demonstrated a possible intent to buy it, so Google has extended its search results page to allow participating merchants to sell it to you.

Finally, Google making use of intent to buy in the right way.

Facebook, The Mighty’s inevitable fall – Predictions on Internet

Last week, blogosphere was full of predictions and analysis on Facebook’s not so bright (distant) future. I happened to read some good ones:

In Facebook Fallacy post,  Michael Wolff In MIT’s technology review notes:

But so far, the sweeping, basic, transformative, and simple way to connect buyer to seller and then get out of the way eludes Facebook.

So the social network is left in the same position as all other media companies. Instead of being inevitable and unavoidable, it has to sell the one-off virtue of its audience like every other humper on Madison Avenue.

Oh, yes … In its Herculean efforts to maintain its overall growth, Facebook will continue to lower its per-user revenues, which, given its vast inventory, will force the rest of the ad-driven Web to lower its costs. The low-level panic the owners of every mass-traffic website feel about the ever-downward movement of the cost of a thousand ad impressions (or CPM) is turning to dread, as some big sites observed as much as a 25 percent decrease in the last quarter, following Facebook’s own attempt to book more revenue.

You see where this is going. As Facebook gluts an already glutted market, the fallacy of the Web as a profitable ad medium can no longer be overlooked. The crash will come. And Facebook—that putative transformer of worlds, which is, in reality, only an ad-driven site—will fall with everybody else.

In a more detailed analysis, Doc Searl, in his blog post  “after facebook falls“, agrees with the above post while questioning the effectiveness of personalized advertising in the industry. Many claim that Facebook, knowing everything about a person and with ever growing massive data & analytics under its belly, can provide lot better targeting than google or anyone else in the industry today (and hence the justification for crazy valuations etc). But Doc goes on demonstrating, as an example, with Facebook ads on his own facebook page, that how irrelevant the facebook ads are. – Neither they make use of his interests, nor the page’s content.

There is lot to learn from Doc Searl’s post for me:

But Facebook isn’t the real issue here. Working only the sell side of the marketplace is the issue. It’s now time to work the buy side.

The simple fact is that we need to start equipping buyers with their own tools for connecting with sellers, and for engaging in respectful and productive ways. That is, to improve the ability of demand to drive supply, and not to constantly goose up supply to drive demand, and failing 99.x% of the time.

….

Imagine being able to:

  • name your own terms of service
  • define for yourself what loyalty is, what stores you are loyal to, and how
  • be able to gather and examine your own data
  • advertise (or “intentcast”) your own needs in an anonymous and secure way
  • manage your own relationships with all the vendors and other organizations you deal with
  • … and to do all that either on your own or with the help of  that work for you rather than for sellers (as most third parties do)

From his post, I have two more items added to my Amazon’s wish list of books to read:

The Filter Bubble

Intention Economy: When Customers Take Charge

Another interesting view is from Phil Wendley’s post, titled “Facebook Dominiation Isn’t Inevitable – It’s Not Even Likely“.  Phil explores “centralized” vs “decentralized” systems approach and how eventually “decentralized” systems prevail when it comes to scale, with generous examples, including that of AOL. History has demonstrated several times that “decentralized” systems prevail in the end because “centralized” systems, as they scale, impose controls and limit choice & flexibility to end users/consumers. He notes, while technology is necessary to be able to scale to massive numbers but not a sufficient condition. The question that he asks is, what value (or the big idea) facebook offers to its users as it grows. And he argues that a growing centralized system cannot easily satisfy all its users the same way.

From timing point of view, the facebook’s recent debacle in public IPO may have triggered many of these posts, but clearly there is more to be analyzed and understood here. A related point to research more about is the true Ad potential in the mobile world, inability for platforms like Facebook to better target ads in this small form-factor devices and even if they do in their respective apps, finally the potential choice of other free/ad-free apps that users will have with APIs.

On a positive note for facebook, listen to this podcast titled “How Are Brands Using Facebook Right Now?“. The Facebook scaling related numbers that Michael Lazerow presents are mind boggling. No company ever has probably dealt with such a mind-numbing growth rate. No doubt, It would be every software engineer’s dream to be part of building such a system.

 

Amazon and the Long term strategy

Was reading the post “Jeff Bezos Owns the Web in More Ways Than You Think” on Wired Magazine today.  One comment by Jeff Bezos really stands out for me:

Levy: You’ve also given $42 million to the Long Now Foundation for the development of a giant clock designed to last for 10,000 years. Does that project relate at all to what you’re doing at Amazon?

Bezos: It does fit into my view. Our first shareholder letter, in 1997, was entitled, “It’s all about the long term.” If everything you do needs to work on a three-year time horizon, then you’re competing against a lot of people. But if you’re willing to invest on a seven-year time horizon, you’re now competing against a fraction of those people, because very few companies are willing to do that. Just by lengthening the time horizon, you can engage in endeavors that you could never otherwise pursue. At Amazon we like things to work in five to seven years. We’re willing to plant seeds, let them grow—and we’re very stubborn. We say we’re stubborn on vision and flexible on details.

In these days of booming and lean startups in the internet tech industry, there are only handful of companies that think about long term, 2 to 5 years in to the future. Clearly, Amazon is one of them.

 

Nasscom Product Conclave 2011 – Day1 summary

Thanks to Dorai Thodla, I got an invitation (and motivation) to attend Nasscom Product Conclave. I was keen on attending this primarily for two reasons. One, I have never been to a talk by Dr Werner Vogels. Second, I have attended several focused (mobile, Hadoop, startups etc) conferences, but had not been to Nasscom. Being a Nasscom event, I thought that the event will be shadowed by big names, but was surprised to see the agenda and was delighted to see huge number of startups and speakers from startups.

By the time I got to the venue, it was late (thank you bangalore for the traffic jams).  The impact of billion people+ was felt  the moment I entered the venue.  By the time I navigated my way around people standing with millimeter gap apart, Vinod Khosla almost finished his keynote and Vivek Wadhwa was to speak next.

Vivek Wadhwa(Entrepreneur)

Vivek Wadhwa started off his talk with bunch of statistics on the success/failure of entrepreneurs across different age groups and concluded that people with bald hairs and above age group of 39+ can also venture into entrepreneurs, referring to an earlier statement made by Vinod Khosla that 45 is too old to be an entrepreneur :-).

He was very very upbeat about Akash tablet – not v1.0 but v 3.0 that he would expect would be out in another year. He talked about various trends, areas to focus on (cloud, healthcare, education, big data, voice recognition, robotics, AI etc). He advised Indian entrepreneurs to focus on serious Indian problems and have a TAM of over billion people instead of building a stupid twitter/linkedin clone or a social media application.

Overall, it was an interesting talk and was entertaining too.

Brad Smit (CEO, Intuit)

Brad Smith, CEO of Intuit started off the keynote with the slide “The only constant that we can count on is the Change”.  It was a very down to earth, no buzz words and highly focused talk. He talked about how a 30 year old company like Intuit survived, while watching other big companies like SGI and Sun Microsystems, who were sharing the same premises, went through some changes that no one expected.

He shared a very nice story on the importance of leaders setting a goal and then moving out of the way:

The story starts with his daughter’s desire to play football. He then with great difficult talks to other interested kids, their parents and finally forms a team. They get all the football gear, identify the court and get started on a fine sunny day. He narrates how the first 10 to 15 minutes of that day was a chaos with all the kids kicking the ball in different directions, fighting over things and all other kid stuff, while the parents are standing/sitting far away and watching in despair.  And after about 15 minutes, the coach walks in with two goal posts and nails them into the ground. Brad says, what happened after that was nothing short of magic. All of a sudden, all the kids started kicking the ball in the direction of the goal post.

His message was simple to the leaders: Define the goal and get out of the way!!

He talked at length about the innovation and how his company went about it, especially the “follow me home” concept where the engineers actually follow the customer (who bought quicken product), watch him install and use.

As an entrepreneur, if there is one message you want to take home from his talk, I would say that would be “Keep customers happy and continue to do that” and everything else would converge around that.

There were whole bunch of tidbits and nice quotes in his talk. Here are few I remember:

To leaders:

  • Define a vision that inspires action
  • Be a translator of dreams – with references to JFK
  •  The job of the leader is not to come up with right answers, but ask right questions…

Other quotes:

  • How God made heaven in 7 days ?  He didn’t have to worry about all the legacy, installed base…
  • To walk a mile with your customer, you must first remove your shoes …
  • The bottleneck is always at the top of the bottle – a quote from Peter Drucker
  • If you have teams bigger than two pizzas can feed, you have a problem – quote from Jeff Bezos
  • Don’t be Intellectually certain, be Intellectually curious.
  • Vision is the picture of how things will look when you get there…
  • “At 15, I thought my dad was the dumbest person on earth. At 18, I was wondering how fast he learnt in 3 years…”

Pallav Nadhani (Founder, Fusion Charts),  Paras Chopra(WingiFy), Amit Somani (MakeMyTrip), Mukund Mohan(Founder, BuzzGain ), Amit Ranjan (COO, SlideShare)

While the title of the talk is catchy, there were hardly any references or stress on $100 (or the spirit) part of it. It is great to see and nice to hear Young Indian entrepreneurs talk about their experiences and what worked for them and what didn’t. But the way sometimes these talks are given, one tends to believe that as absolute truth.  If what worked for one works for everyone else, then this whole startup learning would be reduced to a mere text book. One must realize that these are their stories and that those ideas worked for them in a given scenario. Take them as guidance, insight, experience but not as instructions.

I kind of felt that the they talked about too many things and spent too much time involving audience. It is neither a workshop nor a talk – sounds like good concept, but there was too little time to do this correctly.

There one quote/insight I liked from an entrepreneur in the audience. I am sure many of us would relate to this:-)

Have multiple options/packages in your product offering. It has the potential to make the customer thinking change from “Should I Buy or Not” to “Which One Should I Buy”

Vishal Sehgal(Founder, Lava), Ashish Aggarwal(Violet 3D), Dinesh Prasad(Qualcomm), Mohan Kumar(Norwest)

I should have read the abstract in more detail 🙂 This turned out to be a talk focussed on the hardware design for mobile brands. While I tried to listen to the speakers, there was so much of distraction in the hall -people talking loud on cellphones, door opening and closing with loud chatter from outside creeping in constantly. It just a 45 minutes talk – if people can’t give their attention for that small duration, why do they come ? This is something so common I see in Conferences in India. Why can’t we just stop entry/exit after the talk starts? We Indians talk so much about so many problems, but we cannot be self-disciplined.

btw, if you have not heard of violet 3D, check out their website. They have a sexy looking, revolutionary wireless sound system.

Shailesh Patil(Kesari Tours), Gulshan Haresh Bakhtiani(Wellness Forever Medicare), Kumar Vembu(Go Frugal)

It was a good discussion but not sure if it achieved the goals of the panel. The only take away message for IT product vendors was that make sure you profile the customers who are going to use the products as some may have never seen or used the computers.

One interesting observation is that we have seen many stories of entrepreneurs in the software industry where a programmer/developer at the core is forced to learn everything about product management, marketing, sales and financing etc.  But Shailesh Patil’s story was totally different. He narrated his story of how got interested in computers after seeing its use in one of the popular singapore electronics shop in 1985. His Travel & Tours office cost him 60K but the computer cost him 75K. His strong belief that computers would help him serve his customers saw the transition from “knowing literally nothing about computers” to “Learning programming and building all the necessary software by himself”. That’s not a transition one would expect to see in 1985. Kudos to him, his confidence and drive.

This turned out to be “Is this Trend a myth or real” like discussion, rather than insights and understanding of the area. I went to this talk primarily because of Dr Werner Vogel (CTO, Amazon) and Dr Vijay Chandru (Simputer fame)

In the midst of the discussion, there was a topic about how most developers today are looking to become managers rather than staying long in the technical field. It was interesting to see Dr Werner making a comment that the previous CTO of Amazon (before him) went back to the company as a Developer. Looking at the pace of technologies, He also mentioned that he would like to get back to development as he feels that it is hard to be a CTO these days without hands-on knowledge.

That is a sound advise to developers/techies  becoming managers by default, but not by choice.

I donot fully understand the formal mechanics of this but Dorai talked to me about this on several occasions. I happened to witness for about half hour at least.

Idea is that various budding entrepreneurs pitch their ideas to peers and other selected observers. Then the reviewers ask questions, critique, advise/suggest/improve and rate.  It seemed like a very good idea to me. There is a potential for someone to discard an idea outright, but hey, what is the fun/use if everyone likes your Idea.

I liked the energy and enthusiasm in the room.

As I was walking out, it occurred to me that automating this whole process itself is a business idea. And then connect it or integrate ideas like KickStart. It could be very powerful and several other startup solutions could be integrated in – like many life cycle aspects of an entrepreneur’s journey as he sets out with his idea and starts to make a business out of it.  For example, there was this another idea(I forgot the company name) one of the participant was pitching in. For a given space, this company goes and harvests the data from crunchbase and provides variety of analytics such as competitors, addressable market size estimations, investors in that area etc.   This is a good candidate to be integrated into this idea.  And I am sure there will be many such solutions that could be integrated into this idea so that it becomes one-stop place for all a startup needs.   How about that?  Any takers ??

Mahesh Murthy (SeedFund)

If there is one talk that shouldn’t be missed on day 1, that is this. Find out the slides or the video and watch it.

Good talk by Dr Werner. He talked at length about the following 5 aspects of Big Data and stressed the opportunities for innovation in each of these areas.

  • Collect
  • Store
  • Organize
  • Analyze
  • Share

Anyway you look at it, it is a massive growth area for Amazon.

If you have an idea around Big Data but you cannot afford Data scientists, you should check out kaggle.com – that is crowd sourcing of data scientists for you !!

Dr. Werner also recommended the following book as a mandatory read for everyone interested in Big Data.

The Fourth Paradigm – Data-Intensive Scientific Discovery  Available as free PDF from Microsoft.  Also available as on kindle here.

Dorai Thodla got an award from NASSCOM for mentoring various startups, budding entrepreneurs and umpteen number of college students. I worked with Dorai in iMorph and in previous companies too. He is an amazing guy to work with. He is a firehose of ideas. I wish I could convert even a handful of them into reallity.

Congratulations Dorai.

On the whole, it was useful time spent on day 1. I was excited to see so many young (& old too) entrepreneurs embarking on their journey. We probably are not far away from creating the Silicon Valley like environment for startup eco-system  and hopefully for the development for world class products.

(The biggest disappointment I faced was when I was coming out. Because the parking at the hotel was full, some of us were shown the basement parking of an unfinished building. To my horror, when I was about to take it out my car (other cars too), it was completed covered with fine dust. Added to that it was pitch dark.  Thanks to the innovation of mobile handsets as torches, managed to scrape through. I am sure the organizers could have done better job).

Is Software Eating our World in India ?

Just finished reading Marc Andreessen’s article on “Why Software Is Eating the World“.  An excellent read and worth your time, esp if you are not “seeing” what’s happening around of late.  As Simon Wardley comments on it, this article talks about mostly “what” and not “why”.

After reading this, I couldn’t help thinking and compare if it is really the case of software eating everything in our beloved country.

In the context of India, let me take a look at the industry examples that Mark talks about in his article and see if software is ruling the world.

Books – While it is known fact today that Amazon would launch the store in India sometime early next year, the only other name one can think of today is FlipKart.com. Beyond the top few cities, I don’t think if anyone knows this brand or uses it to buy books.  Back in 1999, we built india’s first online music store for a startup called Fabmall. We launched the original site in 9 weeks with complete payment integration from CitiBank (This was the first payment gateway implementation for CitiBank also and I still remember the integration issues and debugging them late into night, sitting in CitiBank office in Bangalore).  They went on to add Books, Electronics, Grocery and many more along the lines of Amazon.com.  I remember ordering groceries in the middle of the night to be shipped next day and I thought life was good. Alas, they were too early to the Indian market and couldn’t sustain for long.

What do I do for the books today? I rarely buy from Brick&Mortar stores. Mostly order kindle books and read-on laptop/tablet.  Costs less, delivered faster than any other approach and pretty much any book you can buy. On every count, they beat the physical stores.  Great, but “I” and people like me represent a miniscule percentage of India’s total population that buy books from online stores. Rest of the India continues to buy books from physical stores and probably for foreseeable future.

Music – Same story as books.  While the magnetic tape is dead in top tier-1 and tier-2 cities,  it still thrives in the rest of the population. While the younger generation has switched over to digital music, thanks to the countless clones of iPods, I haven’t seen anyone buying the music online. And where would they buy if they want to ? Internet connection at home is still a luxury in tier-3 cities and below.

In fact, when I asked my sister’s kid recently as to where she gets her music collection from, she looked at me with surprise as if the answer was obvious and replies  “Friends”. And where do these “Friends” get their music from ? The other “Friends”. This is where the Indian Jugaad comes to the rescue 🙂  You would find these enterprising guys in every corner of the main streets with a small one-room shop. Some just migrated from magnetic tape copying and CD burning business to digital versions. These guys, who usually have a techie friend (or a friend who knows a techie friend…) that can pirate latest music from torrents, would help you copy the latest music in bulk into your phone/digital player for just few rupees.

Video & Entertainment – Clearly, no one knows about NetFlix in India (except for the people like me who have directly worked with them or people working in MNCs visiting their US counterparts or people who closely monitor technology). Yes, some of us have youtube access and some download torrents regularly for latest movies etc. But to a large extent, it is still the movie halls & TV that dominate the scene. Even the online-ticketing is limited to top tier-1 cities. On the TV front, only now we are seeing some DTH providers transmitting half-a-dozen  or so HD channels.

LinkedIn –  I have been recruiting engg people in the past and I know several of my friends who recruit people into IT companies regularly. It seems that no one uses LinkedIn to recruit people although it sounds obvious that they should. We still rely heavily on the middle-men (recruiting agencies) and largely seem to be comfortable.  There are some other reasons, but I hope that this would change very soon (unlike the above)

 

Some interesting numbers from a different brick & mortar world. RBI estimates that only about 20% of Indian population have access to banking. Even if you take out the people within group of < 20 years, this is very sparse. With a total of about 84K branches (of all commercial and state run banks), only 5% of the villages have access to banking.

I can go on with more and more examples, but they all look like same story.  Our evolution to using the latest technology services doesn’t necessarily follow the steps the developed world has taken, and for a good reason. We probably will bump over several of the steps and catch-up with the latest. Cell phone is a good example.  This is one technology you would see in every corner of the country. You may find it difficult to find post office, internet connection, but you can pretty much expect someone having a cell phone.

But the analogy stops there. Our use of cell phone (again beyond the very small percentage of people who own connected smartphones) is pretty much limited to SMS and voice calls – what it was originally meant for.

I think that the root of the problem is still lack of widespread Internet connection. While we figured out some workarounds (digital music piracy examples), we are not gonna see a cell phone like revolution in other industries without widespread Internet connectivity.  I wonder what would drive this?

Some of us will continue to write software to eat the “worlds” out there, but not here and not now.

Self-service Configuration for Auto-scaling Cloud Applications

Before the cloud, deploying an application into production meant downloading the pre-requisite software, application code, installing pre-requisite software, installing application code, configuring it from CLI/UI, switch configuration files to use production setup (and not test setup), tweak them to access production databases/servers etc etc. If your operations guy was organized, he would have a lengthy check-list of things to do. And god bless you, if your application requires Microsoft Sharepoint, SQL Server, BizTalk etc. They had several pages of check-lists and instructions on how to set them up. Your luck falls out very quickly if your environment had two or more o these servers to be installed – with all the dependencies, service packs and what not.

But if you are one of those forward looking people and burnt your fingers earlier, you would have probably automated several post-installation configuration procedures. Cloud brings this culture of automation to masses. If you are directly using IaaS service, pre-configured VMs takes care of many of the OS and application stack installation issues (If you are running your application on top of a PaaS (Platform as a Service) service, one donot even need to worry about VMs, as the PaaS platform takes care of them. But PaaS is different issue to talk about – probably for another post).  Now, you only worry about automating the provision your application instance. And this is the crux of this post.

If you really want to take advantage of load-balancing and auto-scaling in cloud, human-driven automation of application provisioning is not good enough. And here are some reasons as to why:

  • You want to dynamically add more instances (with some constraints and bounds) as the load increases, but the last thing you want is to wake up your operations guy in the middle of the night and ask him to run the automated script on the new instances before it can go live.
  • You have deployed HA using Active-Active  or Active-Passive setup and you need the instances to come back up online automatically right after the failure and switch-over.
  • Sometimes instances go down due to bugs or memory leaks. You need new instances to be brought up to continue to handle the traffic as if nothing happened.
  • You want to make sure that your system is ready to deal with any unknown failures – as part of this, your QA/Test infrastructure needs to bring-down various application instances randomly and see if the system recovers.

To achieve the above, you need to design  your application instances to obtain the provisioning/configuration information dynamically once it has come up.  There are couple of ways to do this, in the listed priority order:

1. Get it from known location –  In this design approach, an application instance reaches out to the central configuration repository to pull-in the necessary configuration.  This central configuration repository could be your own server serving the configuration or it could be built on top of other highly available cloud services such as Amazon’s SimpleDB.

Discovering the central repository itself could happen via a limited broadcast message (within a sub-net) or by embedding the repository server identification information (as a DNS name for e.g.,) in the application instance image itself.  Most high-traffic sites in the cloud are designed this way.

2. Baked cookies – This is the easiest approach to begin with.  Use one of the VM cloning methods provided by your cloud service provider to create a golden image of freshly configured instance. And use this golden image to spin-up new instances. The only down side with this approach is that with every new patch or new version of your application, you need to re-create the golden images.

Many well-known and high-traffic sites like Zynga and Netflix use similar techniques. Back in apigee days working with Netflix as our customer, I remember they using a mix of both the approaches for different instance types (second approach for soft appliance and the first approach for the application server instances).

Once you have figured out how you can bring up your instances without requiring manual/human-driven automated scripts for provisioning, solving the above use cases is trivial matter of  working with your cloud vendor’s load balancer ( for e.g., Amazon’s ELB) or cloud management system (such as RightScale) to configure for auto-scaling and high availability.