free html hit counter
Posted on: Thursday, April 28, 2011 by Rajiv Popat

Don't Be An Arrogant Language Purist.

The world of software development today is very different than what it was when we started programming. Back in those days if you asked a question like this one the so called Java experts would grill you, nail you and crucify you publicly on the forum. Those were the days of the purist.

Then; Microsoft happened.

Languages like GW Basic allowed the existence of the hobbyist programmers who would then move on to more serious languages like C / C++ master those and move on to MFC or Win32 API on VC++.

That; or these programmers would pick simpler and much more productive languages like Visual Basic.

Both paths that would later converge to a .NET language which would hugely just be a matter of preference, C# or Visual Basic.NET. Back then however most purist found it inconvincible that any business worth their salt would run a Microsoft Stack on their production servers. 

The purist of course; were wrong.

When you're a geek grinning at how stupid Visual Basic is or passing comments like "Oh but Ruby on Rails doesn't scale!" or when you are busy reminding someone on a forum how stupid his question was, what you often forget is that the survival and the success of languages (both human and programming) depends on the adaption they receive. It is eventually the community behind a language that builds or breaks a language. Something that a huge part of the Java community completely missed out on in the old days.

The Java community and the other communities of purists decided to keep the bar of entry high and look down on all who were not born with an out-of-the-box IQ that met their standards of intelligence.

The hobbyist programmers in those days were pretty much expected to forego their self respects and keep getting booted from forum to forum before they found the answers to the simplest of questions that someone could have helped them in ten minutes or they were expected to move to a simpler language with a vibrant community of similar hobbyist programmers where no question was stupid.

Back in those languages like Visual Basic which were easy to learn, easy to pick up, fun to work on and fairly productive created a whole community of hobbyist programmers who were smart, passionate about their art and were willing to go that extra mile to build successful applications. Yes these languages may have been responsible for creating programmers who cannot program but they also created passionate communities of programmers who would make big and small dents in the world of software development. What these programmers lacked in talent they made up in intensity.

Needless to say that these programmers and communities reciprocated back. As of now, the Microsoft developer communities are by far the richest, strongest, loudest and most fun loving communities out there.

Languages that evolve survive. While the purists were busy grinning about the fact that Microsoft was copying ideas from Java, the java language, which was hardly changing in years except for introduction of new API's in their JDK (there were hardly any changes to the core of the language itself), was running out of ideas to copy from. Microsoft of course was moving over to languages like Ruby to introduce ideas like Closures and Lambda expression right into the core of their own languages.

The idea was simple: keep your languages simple and do everything you could for your developer communities and to make their lives productive. In the process, if the purist shouted, bitched and whined, so be it.

This is not a Java Vs. C# blog post and I have no intentions of starting a never ending discussion controlled by Zealotry here but if you are a programmer one important lesson to take away from this rift is that you have a responsibility towards the language of choice that you use to make a living. Remember, the success (or even the existence) of the language you use in the long run depends on the community of programmers that program in it. And you are a part of that community. So go on and talk passionately about the language of your choice; make you tube videos on new features; blog about new tools around your development platform.

Stop being the anal purist who has no respect for starters. Stop giving us that stupid grins about how Linux is more reliable than windows; how Java is faster than C#; or how J2EE scales better than RoR because thanks to the ignorance and the arrogance of the purists, none of those statements are remotely true in most real life scenarios anymore.

The purists are dead. Long live the purists. Just don't end up being one of them.

Move over to a pragmatic side, try your level best to learn and respect all languages and when you see someone trying hard but asking questions which seem way too simple or even slightly stupid to you, treat the person with empathy.

That would be the biggest favor you as a developer would be extending to your developer community and the platform that you work on. The days of the technology purist are over so try practicing a little bit of humility the next time you are in a forum answering questions.

posted on Thursday, April 28, 2011 9:30:00 PM UTC by Rajiv Popat  #    Comments [1]
Posted on: Sunday, April 24, 2011 by Rajiv Popat

Shredding The Weight Of Random Initiatives.

Kole McRae of Office Buddha, talks about getting rid of 15 blogs that he owned:

Four months ago, I had 15 blogs. I had blogs about net neutrality, writing tips, technology news, and more. They were all things I was passionate about and loved writing them but one day I deleted them all.

All but one.

I didn’t back them up. I didn’t think twice about it. I simply clicked Delete and never thought about them again. Each one had an audience. Some of them even brought in a little money. But none of that mattered.

That day I discovered a simple truth about myself—a truth that expands to absolutely everyone. The idea was simple, which is kind of the beauty of it.

The idea that Kole is talking about works on these basic premises:

  1. The less you spread yourself the better you work - you have less time for each additional task that you take up, so focus on one thing and do it well. Dedication to a single cause is often better than many.
  2. Do one thing at a time - work on only one thing at a time and focus all your energies on that single thing. Once it meets your definition of complete move on to trying other things if you must. But keep the number of projects running on any given time to the lowest number possible.

Of course, the idea isn't just limited to your blogs or your side projects. Most young startups and mid-sized companies make this mistake. Go on and take a look at how many open projects your organization has right now.  Are you truly developing a Niche as an organization or jumping from one branch to another like a drunk monkey? More often than not, doing one thing and doing it really well will not kill you or your organization. The psychic weight of trying to do too many things at once and the desire to multitask both as an individual and an organization will.

How many products or projects do you have running in your organization? How many initiatives do you have running in your personal life? Maybe it's time to get rid of some of them and focus on the ones you really love working on. Deleting something, dropping something, stopping something or even putting something you started, on an indefinite hold is a really hard thing to do. It involves closing doors; something which we as human beings are not hardwired to do. But then, it's your only shot at being really good at something.

Go on. Pick a few stale projects in your work life or a few initiatives in your personal life and shut them down. You'll feel better and chances are you'll end up being much more happier and much more productive in the long run. I wish you good luck.

posted on Sunday, April 24, 2011 8:01:06 PM UTC by Rajiv Popat  #    Comments [0]
Posted on: Saturday, April 23, 2011 by Rajiv Popat

A Game Of Inches - Part 1


Al Pacino's Inspirational Speech from Any Given Sunday about the game of football and the game of life, is a life changer.

You know when you get old in life things get taken from you. That's, that's part of life. But, you only learn that when you start losing stuff. You find out that life is just a game of inches.

So is football. Because in either game life or football the margin for error is so small. I mean one half step too late or to early you don't quite make it. One half second too slow or too fast and you don't quite catch it.

The inches we need are everywhere around us.

They are in ever break of the game every minute, every second.

On this team, we fight for that inch On this team, we tear ourselves, and everyone around us to pieces for that inch. We CLAW with our finger nails for that inch. Cause we know when we add up all those inches that's going to make the FUCKING difference between WINNING and LOSING between LIVING and DYING.

I'll tell you this in any fight it is the guy who is willing to die  who is going to win that inch. And I know if I am going to have any life anymore it is because, I am still willing to fight, and die for that inch because that is what LIVING is. The six inches in front of your face.

Joel's take on building commercial software in similar:

Commercial software—the kind you sell to other people—is a game of inches.

Every day you make a tiny bit of progress. You make one thing just a smidgen better. You make the alarm clock default to 7:00am instead of 12:00 midnight. A tiny improvement that will barely benefit anyone. One inch.

There are thousands and tens of thousands of these tiny things.

It takes a mindset of constant criticism to find them. You have to reshape your mind until you're finding fault with everything. Your significant others go nuts. Your family wants to kill you. When you're walking to work and you see a driver do something stupid, it takes all your willpower to resist going up to the driver and explaining to him why he nearly killed that poor child in the wheelchair.

And as you fix more and more of these little details, as you polish and shape and shine and craft the little corners of your product, something magical happens. The inches add up to feet, the feet add up to yards, and the yards add up to miles. And you ship a truly great product. The kind of product that feels great, that works intuitively, that blows people away.

Michael Lopp calls writing a game of inches too:

Writing is a game of inches. No author I know sits down every morning in their home office and steadily produces three pages a day. I’m sure they’re out there, but these annoyingly efficient and profitable authors aren’t doing this on the side. They’re doing this because they’ve written enough to make it a career.

While the idea of writing books for a living is appealing, my impression is that if I stopped being a software engineering manager, my voice would quickly become an echo of how things used to be rather than how they are. Thanks, no.

You have time. In fact, you have lots of time. There will be weekends where all you will find is a paragraph. There will be a week where all of your progress will circle around finding precisely the right title for chapter 12.

In writing a book, you’re going to find all sorts of interesting ways to mentally beat yourself up. You’re going to consider new tools and different writing schedules. You’ll discover that inspiration can be encouraged, but never created. You’re going to find constructive ways to procrastinate and your friends are going to stop talking to you because all you talk about is that damned book.

You move an inch ahead when you decide to stop whining about how your job doesn't give you enough opportunities and you write just a few additional functions of code on your side project.

You move an inch ahead when you decide to skip that movie and write that blog post that you always wanted to write.

You move an inch ahead when you switch off the television and spend that one extra hour adding a couple of paragraphs to that book you are writing.

You move an inch ahead when you logout of online chat, facebook and twitter and read a book on how to get better at your craft.

You move an inch ahead when you decide to open the IDE and refractor just a little bit of code,  or open the word processor and edit a chapter of your book, on a depressing day where you thought you were not going to be able to do anything.

You move an inch when you reach out for a tiny tool that lets you practice your craft when you're in a meeting or in commute.

The inches are all around you and in the long run they are going to add up.

The hard question that you need to ask yourself is, have you given up to the television, the facebook, the twitter, and the countless excuses about your not making it or are you willing to work your ass off for those inches?

Just a little something to think about.

posted on Saturday, April 23, 2011 9:30:00 PM UTC by Rajiv Popat  #    Comments [0]
Posted on: Friday, April 22, 2011 by Rajiv Popat

Masters Of The Enterprise Business And The Delusional

Of all the MBA's I've worked with I respect a handful of them and find the rest of the majority hugely amusing. If you've ever sat there and wondered what it is that those business schools out there really do to suck empathy and common sense out of people, you are in good company.


David Heinemeier Hansson at 37ignals and the writer of RoR goes expresses his thoughts on MBA students gives wise advice to young and budding MBA students at Stanford:

Before you can even get started I think the most important thing for you to realize is that you have to unlearn your MBA. And I am treating MBA here as a sort of a general grab bag for business school management theories. I spent three years and Copenhagen business school and I would probably say that according to my estimations 96.7 percent of the time was completely wasted. It has NOTHING to do with what I actually do today and it has NO impact on what I actually work with everyday.

In fact, I came out slightly damaged. I came out with a head that had been soaking in management theory for three years and it was actually a little off. It was not very well suited for the real world of just building a product, pleasing customers and making profits as a business because that's really not what you learn and you have to just sort of readjust and recalibrate when you come out of school to that reality.

Nobody cares about a 20 page report on five forces. It just doesn't matter. There is none of your customers that's going to think, "Oh well did you do your five forces for this setup? No? Alright then we're not going to buy your product. So all of these tools that you've learnt are only for you. They are not going to impress anybody else when you start your own business. And what you learn is, when you are starting your own business.... and all businesses start small.... is that none of it is relevant.

The context of the talk resolves around fundamental flaw of business schools which are all about teaching students everything that is big and clunky. Big words, big reports and big documents, big plans, big clients, big projects, big teams.

When these students end up starting a business which has to start small or joining a small yet innovative organization they invariably find themselves fumble and going round and round in circles too proud to admit that they are fumbling.

David's advice is sound: before you start your own business, do yourself a favor and unlearn your MBA.

But then the real question you have to ask yourself is, do you see yourself running a small yet effective organization that makes a dent in the universe or do you see yourself working for the big blue?

If your answer is the former and if years of business school management theories often make you delusional and dysfunctional when it comes to running a small kickass profitable organization, why enroll to begin with?

Just a little something to think about.

posted on Friday, April 22, 2011 1:47:23 PM UTC by Rajiv Popat  #    Comments [0]
Posted on: Sunday, April 17, 2011 by Rajiv Popat

Showing Up On Tough Days - Part 5.

I tried to skip a school exam once.

The reason? Underpreparation.

My excuse? Given my average grades till date, I had already passed, so it was pointless to give the exam anyway.


Dad never seemed to meddle in my personal decisions, but this time he did.

His stand was simple: It's perfectly OK to fail an exam. It's perfectly OK to be afraid. It's not OK to NOT show up for the exam.

The deal he offered me was this: Go there, sit through the exam, submit a blank paper and come back. No pressure of writing anything. No strings attached. All I had to do was show up.

It was a reasonable deal. Think about it, I was going to get no marks for not showing up so if I showed up, sat through the exam and submitted a blank paper it would still be the same.

And since my showing up mattered so much to him, I decided to show up.

The story has a glamorous hollywood movie touch to to it. Seriously.

Here is how it ends: I go to the examination. I see the paper. I realize that I know the answer to the first question and answer it. I move on to the next question and then the next and before I know it I find myself begging for just five more minutes of extra time so that I can wrap up my last answer.

When the results come I score a whopping 80+.... but that was never the point.

We celebrated.

No, not my marks or my victory.

We celebrated the fact that I showed up when I was low on self esteem and preparation and high on fear and self doubt.

The episode taught me that while we are all stuggling and craving for results and while as a manager it is your responsibility to make things happen, taking the preasure off and celebrating intents and efforts instead of the result can change everything.

What do you celebrate?

What does your manager, team lead, team and organization celebrate?

Just a little something to think about.

posted on Sunday, April 17, 2011 4:27:54 PM UTC by Rajiv Popat  #    Comments [0]
Posted on: Saturday, April 16, 2011 by Rajiv Popat

Stop Drooling Over Software Success Stories.

Software development is all about glamour. The smiling faces of Bill Gates and Steve Jobs bring countless programmers (both good and bad) to the field of software development. The same smiles of successful entrepreneurs have also inspired movies like the Social Network and Pirates of the Silicon Valley.

Every startup story that tells you how a young kid made a million dollars adds spice to the equation.

Glamour is a two sided sword because on one hand it motivates the competent and helps them continue practicing the craft of building software without quitting on the other hand it attracts programmers who cannot program to the software development world.

Any glamour based industry, Hollywood, Music Albums, Writing or Software development has an inherent problem. In these Industry it is easy to overlook the amount of effort that goes behind a success story.

In each one of these industries it is easy to be charmed by smiling faces of startup CEOs, actors, authors, Entrepreneurs and not look at the pain, the hard work, the risk and the mental turmoil those faces went through.

"All we need is an idea! Let's look for a Venture Capitalist! Let's find an Angel Investor! Let's spend time on Twitter and facebook all day long!"

And then when things don't work out blame it all on bad luck, not having the first mover advantage, lack of the vision on the part of the investor or worse.... on your development team.

Perfect recipes for failure. All of them.

The stories of colossal fuckups aren't new in the software development world but we don't hear them as attentively as we watch movies like The Social Network or Pirates of the Silicon Valley.

Your only chance of survival. The only one you have, is that you realize how the quest for glamour, acceptance, attention and power destroys lives. Lower your expectations. Focus on doing something that you love doing and please stop worrying about the outcomes of large scale adaption and success.

Separate out the cash part from the sex part, find pleasure in practicing the art with cheap tools and stop dreaming about being the next Mark Zugerberg.

No you're not going to make the next facebook. No amount of bullshitting and power points presentations will help you become a millionaire. Yes they don't give a shit about you and your product and yes, you are going to be the only user on your product, service, tool or blog for a very long time.

The sooner you realize that and the sooner you drop your expectations, open the IDE and start working on something you love the happier you will be.

I'm sorry I am breaking your cute little dreams, but I hope you realize that shattering them into tiny bits is your only chance at materializing them.

Here is wishing you good luck.

posted on Saturday, April 16, 2011 9:30:00 PM UTC by Rajiv Popat  #    Comments [1]
Posted on: Wednesday, April 13, 2011 by Rajiv Popat

Windows Live Writer And Bad Management

Windows live writer is a classic example of an awesome software hidden inside bad packaging that yells "influenced by marketing weasels" in every screen of its website and installer.

I relate to stories and in this case I am assuming the story runs like this:

  1. Someone at Microsoft has an idea about building an offline blog writer with preview feature.
  2. Microsoft manages to get a team of amazingly talented designers and developers who start working on the product.
  3. This team ships the first version of their product and gets a lot of appreciation from their user base.
  4. The marketing weasels at Microsoft wake up and decide to take charge so they ask the team to "tweak" the installer slightly.

As of this writing, the installer of live writer is bundled with a zillion other crappy pieces of software that you are never going to use. More than half the time the installer executable posted on the site is broken and getting live writer installed (especially if you have a bad internet connection) is a nightmare.

Enter Zoundry Raven.

Zoundry Raven is free, open source and has a feature which has been a primary selling point of windows live writer for all these months.

After you've gone through a basic wizard and have configured your blog account, you can ask this application to download your blog template which it can then use to give you a preview option which in turn allows you to see how your post will look after it is published without having to actually publish the post.

Zoundry Raven is not totally clean either and has some minor annoyances. For example:

  1. You have to manually turn on spelling checks when you start using the software. This is just a one time annoyance which makes sense since it needs to download the dictionary for your language. But then why don't the Zoundry guys just ship the English dictionary with the installer? That one beats the heck out of me.
  2. You have to click the spell check button once after you are done writing each post since there is no auto spell check like Live writer or word, but once you get used to the habit of doing clicking the spell check button once before you post is not as bad as it sounds when you hear it for the first time.
  3. You have to go into tools / preferences / affiliate links and turn the "Don't mess with my links" option to stop Zoundry guys from changing your amazon links to use their referral id and earn money from those links. A slightly shady way to make money I would think, primary because the installer did not seem to ask me if I want Zoundry Raven to change my link. A quick advice to the Zoundry guys: Either ask me upfront or turn off this feature by default.
  4. Zoundry Raven has a slightly longer startup time compared to live writer but given the fact that you are not going to be opening it up as frequently as notepad the slightly longer startup time does not have a major impact on your decisions to use this nice little application.

On the plus side, Zoundry Raven has the option of running as a portable application and carrying your profile (along with your posts) on a portable drive or moving them from one machine to another is rather easy.

Put simply, Zoundry Raven is a decently good alternative to Windows Live Writers (and a particularly easy option to get away from Live Writers slimy installer).

For me windows live writer is a classic example of how an amazing product team and an amazing product can loose adaption just by letting the marketing weasels control even a small aspect of the product (in this case the installation wizard). The strategy of bundling some of your lousiest products with some of your best products and hoping that your customers will start using the lousy ones because they need the good ones desperately almost never works in a free world. The people who claim that this approach worked for windows and internet explorer often forget that the internet explorer and windows bundle worked because both of these were amazing products and they complemented each other. Put simply, bundling lousy products with good ones don't help in adaption of your lousy products.

The best that these marketing gimmicks do is take away your existing users and your credibility as a company.

How many marketing weasels exist in your organization? How much power have you given them? Just a little something to think about. If you don't think about it, your competition will.

This post is written using Zoundry Raven and I am liking it.

I will continue to switch between Live writer and Zoundry Raven. As of now, I like what I see as far as Zoundry Raven is concerned.

posted on Wednesday, April 13, 2011 4:40:14 PM UTC by Rajiv Popat  #    Comments [0]
Posted on: Sunday, April 10, 2011 by Rajiv Popat

The Stuff You Don't Do.

Assuming that you are like most people what do you think are the things that you will find most frustrating when you sit down to reflect about your life on your death bed.

I know the thought is slightly morbid, but humor me. Go on. Think about it.

What are you going to be sorry or sad or angry or depressed about when you are on your death bed?

No, it's not going to be your failures.

If you are a decently good human being, it's probably not going to be all the things you did.

Chances are, that you are going to be the most angry about the things that you wanted to do but did *not* do.

That opportunity to implement an idea that you chickened out of.

That opportunity to make friends that you missed out on.

That opportunity to make a difference in your life and the life of your loved ones that you did not work on.

That friend you did not make, that terrain you did not trek, that mountain you did not climb, that business you did not start....

All because you were too scared of playing hard and failing.

Of course you have limited resources, limited time, limited opportunities, limited talent, limited courage but if you can build a life where you can truly say you genuinely tried your level best, you will not just die happily but actually live happily and be much more effective as a person than you currently are.

Of course you might have a larger list of failures, but you will have no "could haves", "would haves", "should haves" in your life.

So the question to ask yourself every night is, did you give that personal or professional opportunity your level best? The answer has to be deeply honest.

And if the answer is yes, you are going to have a good nights sleep.... even if you failed.

At least, it will be one less thing to worry about when you are alive and one less thing to whine about when you are dying.

posted on Sunday, April 10, 2011 3:03:00 AM UTC by Rajiv Popat  #    Comments [0]