Cheatsheet – Performance Principles, Patterns and Anti-Patterns

by Mohit Soni

I created a handy reference/cheatsheet of performance principles, patterns and anti-patterns as discussed in Performance Solutions: A Practical Guide to Creating Responsive, Scalable Software. You can find it online here and here.

Inverted Bell Curve, Resume/CV, Technologies and Time

by Mohit Soni

While having a conversation with Kalyan Chakravarthy, I noticed that technologies/languages known section in resume/CV of a person, over a period of time fits an Inverted Bell Curve.

Fresh college graduates try to bloat their resume/CV with technologies they have heard of, or at-most used for a week or so. Hence their technologies known section is dense.

People with intermediate experience in industry (1 – 3 years), are more cautious and write technologies they have worked upon. The technologies known section for them is usually sparse compared to fresh college graduates.

As, people grow and become more experienced they really know a lot of things and hence their technologies known section becomes more denser.

Visualizing above observations:

Inverted Bell Curve

Inverted Bell Curve

PS: I’m not a recruiter

Slide deck of my presentation “Hadoop 101″ at BarCamp Chennai

by Mohit Soni

Geeks, entrepreneurs, students, and a whole bunch of interesting people gathered and interacted at BarCamp Chennai 5th edition, sponsored and hosted by Paypal on December the 4th 2010.

I gave an introductory session on Hadoop. Slide deck that I used for my presentation can be found here.

Cloud and Internet backbone

by Mohit Soni

Cloud Computing is getting a lot of attention these days. Everyone from CTOs to home users, are exploring to find what’s in it for them, before adopting it.  An incessant thought that’s bouncing back and forth in my mind, from last few days is: Will cloud computing eventually slow down the Internet? or How much stress cloud computing will put upon Internet’s backbone? or Is Internet’s backbone strong enough to bear the stress, cloud computing will eventually put on it?

Cloud Computing is expected to make the user data available anywhere and anytime in the cloud. Netbook makers (Asus, Dell, HP, et cetera) are relying on this fact to design netbooks. Making data available anywhere and anytime in cloud, is a costlier affair in terms of bandwidth. Over the past few years, a considerable amount of increase in End User connection speed is observed in both developed and developing countries, which people think is good for cloud computing.

So, what we have in Cloud scenario are high capacity Cloud Servers and End Users (whose connection speed is continously increasing). But, what about the Internet backbone? Is Internet backbone really ready to bear the load cloud computing will put on it in future?

Let me make the scenario more clearer: Assume Cloud Servers as 12 lane highway, End Users as 6 lane highway and Internet backbone as 4 lane highway. Now, since Internet backbone is the only connection between Cloud Servers and End Users, traffic will eventually slowdown when it has to pass through Internet backbone, regardless of the higher capacity Cloud Servers and End Users. Using the analogy, in real world too, Cloud Servers are of higher capacity and so are the End Users, but the ability of Internet backbone to handle the traffic surges as Cloud Computing goes mainstream, might be questionable.

Suggestions and criticisms welcome!

How cloud vendors can be evil?

by Mohit Soni

How cloud vendors can be evil?
Cloud computing is gaining a lot of attention nowadays, because cloud hosts are faster, offer a lot of space online, and the best part they are cheap. These are the few reasons that are attracting users to adopt clouds for there online storage needs. But here’s the question that kept me bugging for a long time: How cloud vendors can be evil?
Well, the answer to the above question can be traced back to the era of Mainframes (Centralised Computing). The mainframe users sufferred from the changes in the software (due to updates, upgrades, etc.) without any prior notifications. Talking about data storage, as all the user’s files are stored in a centralised storage, if the communication link is down, the user will not be able to access them. All these problems, led to the rise of personal computers in 1980s.
The same reasons are very well applicable in Cloud scenario too. In cloud scenario, the users may suffer from vendor close downs, in such a case the vendor gives a limited time to it’s users to download all there data from the cloud, if they haven’t backup that up on there personal computers. A yet another scenario, certain free cloud vendors might convert to paid services, forcing users to pay for accessing their own data.
A feature that one should look for while choosing a cloud vendor is the ability to move the data seemlessly in the cloud, if in future one plans to switch vendors. Otherwise, user will become a victim of the vicious cycle of downloading, managing and re-uploading data. As, Schofield’s first law of computing says:
Never put data into a program unless you can see exactly how to get it out
Also, consider an example of banks

Cloud computing is gaining a lot of attention nowadays, because cloud hosts are faster, offer a lot of space online, and the best part they are cheap. These are the few reasons that are attracting users to adopt clouds for there online storage needs. But here’s the question that kept me bugging for a long time: How cloud vendors can be evil?

Well, the answer to the above question can be traced back to the era of Mainframes (Centralised Computing). The mainframe users sufferred from the changes in the software (due to updates, upgrades, etc.) without any prior notifications. Talking about data storage, as all the user’s files are stored in a centralised storage, if the communication link is down, the user will not be able to access them. All these problems, led to the rise of personal computers in 1980s.

The same reasons are very well applicable in Cloud scenario too. In cloud scenario, the users may suffer from vendor close downs, in such a case the vendor gives a limited time to it’s users to download their data from the cloud, if they haven’t backup that up on their personal computers. A yet another scenario, certain free cloud vendors might convert to paid services, forcing users to pay for accessing their own data.

A feature that one should look for while choosing a cloud vendor is the ability to move the data seemlessly in the cloud, if in future one plans to switch vendors. Otherwise, user will become a victim of the vicious cycle of downloading, managing and re-uploading data. As, Schofield’s first law of computing says:

Never put data into a program unless you can see exactly how to get it out

Also, cloud vendors should take inspiration from banks. People use banks because banks operates on certain standards and laws, which enables easier movement of money from one bank to another for bank customers. Cloud vendors should also frame certain laws and standards, that will enable moving of data from one cloud vendor to another in future.

Hello world!

by Mohit Soni

Hi, I’m Mohit Soni your host on this blog.