free html hit counter
Posted on: Saturday, May 21, 2011 by Rajiv Popat

An Incredible Game With Many Incredible Lessons

Elite's documentary on YouTube (part 1 and part 2) is an inspirational look into the history of the video game industry and the history of one game that changed the world. Well, at-least the world of video games. Elite was a spark that set the world of video games on fire and sent it on a mind blowing accelerated evolutionary trip. 


If you ever played Pac-Man you were pretty much aware of what to expect from all other video games in the early eighties.

Every video game had the basic set of expectations. David Braben, the co-creator of Elite explains what these expectations were and expresses his frustrations with these rules:

There was an expectation that for example, a game would take 10 minutes to play through. There was an expectation that it would have three lives. There was an expectation that it would have a score. And all of these things had almost become written in stone; which is utterly ridiculous.

The founders of Elite challenged every expectation and dared to question the status quo. They decided  to question the premise on which big guys like Atari worked. David explains this in his interview:

I was very excited about 3d graphics even before I had a computer. Because I thought it can't be that hard. You know, as an arrogant teenager might do. But the received wisdom of that time was that you couldn't do it on a home computer.

We were possibly the first people to do what would now be called a big game. A game where the player has to put a lot of commitment into playing it as well as we to writing it.

But changing the world and making a dent in any universe isn't easy. It is a constant struggle against rules and constraints.

A measly 18k of usable memory on the BBC Micro meant that the programming duo would have to make custom changes to earn an additional 4k of usable memory to squeeze entire multi dimensional virtual universes into it.

Having limited usable memory meant that they would have to revert to innovative techniques like Fibonacci Formula to draw the universes and the movement of objects in these universes instead of storing these pieces in memory.

Lack of tools meant they the programming duo would have to draw the objects on graph paper and type in the numbers.

No error checking meant that they would have to debug the code line-by-line.

EMI's rejection letter to back them up based on the grounds that they were breaking every conventional rule meant that they would have to move to Acorn.

Running out of time meant squeezing in last minute changes like introducing a radar system two weeks before the release date.

For Acorn; the company that backed up the programming duo; backing a game that was changing the world of gaming meant that they would have to change their production; marketing; packaging and even their launch techniques.

The story has a happy ending with 150,000 copies of elite sold in UK itself; an incredible one copy for every BBC Micro that existed in the UK. Elite was the First Non-US game to not just get into the billboard charts but get to number one on it. Elite's story is a textbook example of a success story with lessons ranging from programming, marketing, venture funding, vision, leadership, dedication and success.

Here are the links to both parts of the documentary:

  1. Part 1.
  2. Part 2.

The videos are a must watch for anyone who is the process of building or marketing anything innovative. Elite was a game that inspired thousands of programmers to join the gaming industry and placed Britain on the map of game producing nations. It was the game that changed every rule of how games were built and what games were supposed to do. It changed the basics of how games were marketed and released. It might even be appropriate to say that it was a game that changed the world of gaming. To say the least Elite was an incredible game with many incredible lessons that will continue to inspire programmers for ages to come.

posted on Saturday, May 21, 2011 1:41:41 PM UTC by Rajiv Popat  #    Comments [0]
Posted on: Sunday, May 15, 2011 by Rajiv Popat

Internals Of Text Justification.

(Left Justification Vs. Justify Alignment & Facts About Text Justification Every Programmer And Designer Should Know)

When you look at the world from the eyes of programmer who cares about text alignment on the web, his own documents, his website and his applications, the whole of the human species can be broken down into these groups:

And If you don't care about your text-alignment all I can tell you is that you should. The basics are fairly straight forward and knowing them can make your output (blog posts, applications, web sites and articles) that much more sexier. How you align your text on your web pages and your blog has a bigger impact on your readers than you can think. So close your IDE's for sometime and invest just a small part of a couple of your days in reading a few posts on how text alignment works. This one is on using justified alignment in your articles, blog posts, applications and websites.

The idea for this post started when I sat down to revamp the design of this blog and was faced with a Hamlet like question that just held me by my collar and would not let go. The question was on this line:

To justify align or not; that is the question.

Turns out; that most information you can find on forums where this question has been asked is subjective. Someone comes in and says, "Yeah! You should justify everything. It's sooo freaking cool!" and then someone else responds with, "No Dude! Justification sucks!". There is very little objective data available out there and the information that is out there is spread across umpteen number of disconnected information sources like Wikipedia, hidden research papers and cryptic paid articles.   

The attempt here is to give you the basics about justification of text using one consolidated post so that you can state researches, experiments, facts and sources in meetings which are organized to decide if you should left align your text or justify align it and then you can end up sounding like a genius or a rock star or an alpha geek or a design guru! Well, not exactly, but then you can still use this information to improve your website, application, blog or other documents.

So read on.

Ready? Let's start with the basics first. The Kids Stuff. The stuff everyone knows and then we can build on that. So let's assume you are one of those guys (or girls) who doesn't give a rat's ass about justification and you don't even know that the two basic kinds of justifications that you can have are Left Justification and Justified Align. Here are their examples:

The left justification is also called the "Ragged Right" because the right end of each line doesn't align with the line above and under it. Put simply the right margin (where the lines end) is ragged. On the other hand if you look at the justified text example above the left and the right margins are perfect aligned. In documents or paragraphs that are justified aligned each line begins and ends at the exact same spot on the horizontal axis.

Designers dig justification because justification makes your articles look professional. Justification has had an aesthetic appeal to it and has been used in professional newspapers and magazines for years.

This is stuff you probably already know.

The process of justification looks fairly simple on the surface of it but if you scratch the surface and move a little deeper there are quiet a few moving parts which give it the sex appeal it has in the publishing world. Justification mostly  plays with spacing between words and between characters to align both margins.

You could spend hours studying Wikipedia links on the topic to see how it works or we can just do a quick typography 101 course right here to cover the basic concepts we need to move forward.

I am going to assume that you're a lazy dude who wants too be spoon fed in simple English so instead of linking to ten lengthy Wikipedia articles on typography we're going to do a quick Typography 101 digression right here and talk about the basic stuff that you need to know about typography in the context of text alignment. Then we will start talking about the intricacies of text justification. So; on to a quick typography 101 course.

Digital Typography 101 and the Stuff You Need To Understand Before Moving Ahead.

The world of digital typography primarily contains two kinds of fonts. Mono-space fonts and Proportional fonts. The Wikipedia article on the topic is here but the basic premise, in the context of justification, is that mono-spaced fonts give the same amount of space to each character in the font where else proportional fonts give each character in the font just the space it needs and no more. Here's a picture from Wikipedia that explains the concept:

See how the pink and blue boxes (which represent space each character takes) are of the same size in case of Mono-spaced character but their sizes vary in case of proportional characters? That's the basic difference between these two font types. Now a days, unless you're coding on your IDE or using the terminal window chances are that you are using proportional fonts because they just tend to look sexier than mono-space fonts and everyone seems to be moving over to proportional fonts. Proportional fonts and Mono-space fonts are the first piece of the puzzle that you need to understand in order to appreciate how the justification process truly works. Serif fonts and Sans Serif fonts are the other piece so let's talk about those.

The world of digital typography also has two basic kinds of fonts that you need to know about. The serifs and the sans serifs. Serifs are tiny strokes that you give to the loose ends of each letter to make them look sexier.

As you can see from the picture that I borrowed from Wikipedia, Serif fonts have these strokes which are shown in Red, Sans Serifs do not have these strokes. An easy way to remember this is the fact that "Sans" in French means "without" so Sans Serifs practically means without the serifs or without those sexy strokes at the end of each letter.

Back To Justification

Ok, so it's time to end that long typography 101 digression and get back to justification. Now that you are a little smarter and you know what monospaced and proportional fonts are and what Serifs are and what Sans Serif fonts are lets go deeper into some of the tricks that are used to increase the spacing between words and characters to get evenly aligned margins in justified documents.

Tracking And Kerning Algorithms

In justified text the application that gives you the justification feature needs to align the left and the right margins. In order to do that in some cases the application needs to increase the space between words and characters of a line to make the lines look broader than they already are and in some cases it needs to squeeze the spaces between the words and the characters to make the lines narrower than what they would be otherwise. The lines which are stretched to occupy more space than they would normally occupy are called loose lines and the lines which are squeezed to occupy less space than they would normally occupy are called tight lines.

Two techniques that the justification process uses heavily to create these loose lines and tight lines in order to align the margins are Tracking and Kerning. Tracking involves adding even volume of space between each character of a word to create a loose word or to create a loose line. Because Tracking only involves adding equal space between words it works on both Mono-spaced and Proportional fonts.

Kerning on the other hand increases and decreases space between proportional fonts based on multiple factors. This picture (again, from Wikipedia) illustrates the difference between Kerning and Tracking.

Kerning works on proportional fonts and it also uses a host of factors like whether a font has Serifs or not to bring the fonts closer to each other. Here's another picture from Wikipedia that explains this concept:

Notice how the serif's are brought over each other to decrease the spacing between two letters in the above picture. Of course you cannot have kerning on mono-spaced fonts because each charter has a fixed space it occupies. You can increase the space between words by adding extra empty characters (i.e. tracking) but with mono spaced you cannot do things like move a character juuuust a little bit to the left to align it's serif with it's previous fonts. Because mono spaced fonts give exactly the equal amount of space to each character funky arrangements of letters like that to make the overall output look sexier is just not allowed. That's why kerning only works on proportional fonts.

You can read the entire article on kerning but the point in this context, is that most browsers and word processors use their auto kerning algorithms to increase or reduce spaces between proportional fonts when you turn the justification of a paragraph to on. And justification in one word processor or browser may not be exactly same as justification in another word processor.

Ken Adams for example is a firm believer that the kerning algorithms of Microsoft Word suck and that you should never use justify align in Microsoft Word documents.

Long story short, the look of your justified text is going to be just as effective as the tracking and kerning algorithms of word processor, the browser or the reader where the user is going to read the content. That of course is the beginning of all the problems associated with justified text. Justification can create another problem which is often made worse by bad kerning and tracking implementations. The problem is spaces which align and stack right over each other. This problem is called "Rivers" by typographers.


Another issue that digital Kerning and Tracking often produce is the problem of Rivers. When you increase space between all the words to align both sides of the margins the spaces in the middle of the words can often tend to align creating long stretches of white areas which make it difficult to read the entire paragraph. These white stretches are what are called Rivers in typography.

The above diagram shows some rivers in a word document with just a couple of paragraphs that I used earlier in the post to illustrate the difference between left aligned and justified aligned text. The rivers are marked in yellow. They get much worse when you are doing complex documents. Rivers makes reading documents and content that much harder especially for people with dyslexia. Rivers can be avoided by a typographic technique called Hyphenation.

Color And Hyphenators

The fundamental reason why most people are tempted to use the justification setting in their word processor when writing documents or in their CSS when blogging or writing HTML pages is because they have been seen books and magazines that have been justified. The tight look and the amazing visual appeal of justification in these books and magazines makes developers and budding designers believe that justification looks good just by it's inherent nature.

What people often forget is that most typographers who are responsible for publishing magazines and books don't just give attention to outline of the rectangle space which holds the content but they also pay a great deal of attention to the fonts and the evenness of space within the rectangle. In the world of typography this is called the color. Typographers go to great lengths to maintain the color of the document. One of the tricks they commonly use is referred to as Hyphenation. In fact H&J (Hyphenation and Justification) is the technique used while type setting most books and magazines.

In his excellent article on the topic of Justification and Hyphenation Richard Fink describes the process of hyphenation  using the example below:

Notice how the lines in the above paragraph could have been too tight or too loose to create rivers and how words have been broken up using hyphenation to avoid the problem.

Hyphenation is good when it is used in the print media but in most word processors and browsers hyphenation tends to have it's own set of problems. Most latest browsers out there support soft hyphenation. With soft hyphenation you give the browser a permission to insert a hyphen if the kerning, the size of the page, the content and the layout is going to result in lines which are too loose or too tight. Put simply, the browse has the permission to break a word with hyphens if the situation demands that the hyphenation be inserted.

The way to hard code this is using "­" HTML tag or using "&#173" HTML tag in the right place. So if you wanted to allow the browser to break the word "equal" after "e" you would write it as "e&#173qual".

Of course anticipating and hard coding every word for hyphenation is not the most practical of solutions so folks have been coming out word press plug-ins and Java-Script libraries for auto inserting the hyphens.

When you automatically insert hyphens to align your margins and to maintain high typographic color in the page you start running into issues pertaining to copy / paste. The hyphens (even soft ones) have their Unicode characters and when you copy content from a website that uses auto hyphenation script chances are that you might end up copying the hyphens along with the content. Similarly when you are searching for words which have been auto hyphenated you are left on your browser's ability to understand the soft hyphens and ignore them during the searches.

Richard's article on the topic is an excellent resource on Hyphenators and the hyphenation tools and scripts that are out there. If you haven't clicked the link already, you should. Once there spend some time there understanding hyphenation.

Richard highlights some of the annoyances with hyphenators and ends his article on an optimistic note:

The solutions to these annoyances lie squarely with browser makers. High-res displays like the iPhone Retina, convenient e-reading devices like the iPad, and web fonts have brought a new focus on web typography. Hyphenation and justification is an important and time honored technique. Hopefully the information here will help make it an option for onscreen reading sooner, rather than later.

These tragic reality of life right now is that that even though H&J (Hyphenate and Justify) is a time tested technique in the publishing world, most devices and browsers are yet to fully catch up with seamless automatic hyphenation support.

The basic esthetic appeal of justification attracts many designers and web content writers to it, but given the current set of problems is the esthetic aspect of justification even worth chasing? This question was answers by a set of very interesting surveys.

How The Human Mind Perceives Justified Text

Based on most research that has been conducted so far, even though justified text does have esthetic value it is not the most reader friendly alignments out there. The British Journal of Visual Impairment (PDF link) (Accessibility assistance for visually-impaired people in digital texts) covers a list of surveys which provide more specifics:

Harrison was unconvinced that larger spaces between letters, words and lines increased legibility (Harrison, 1980, cited in Davies, 1989). However, according to Gaster and Clark (1995), increased leading, or white space between lines of type, makes a document more readable for people with low vision. According to Arditi (1999a), spacing between lines of text should be at least 25 to 30 per cent of the point size. This is because many people with partial sight have difficulty finding the beginning of the next line while reading.

Additionally, letters that are too close together are difficult for partially-sighted readers (Gaster and Clark, 1995), especially those with central visual field  defects. Spacing needs to be wide between both letters and words (Arditi, 1999a; Gaster and Clark, 1995). Harrison thought that the most important
factor for children’s books was the unjustified line (i.e. the printer has not varied the space between the words to produce a straight margin down the righthand side of the page) (Harrison, 1980, cited in Davies, 1989). Unjustified text may be easier for poorer readers to understand because the uneven eye movements created in justified text can interrupt reading (Muncer et al., 1986).

David R. Thompson, a PHD student at the University of Texas at Austin and the president of SENSS Publications and Seminars, Inc, conducted another survey with 40 undergraduate students where these students read 12 text samples from randomized reading tests. The tests involved different simulations of magazine pages in four column formats. One of the conditions in the survey was the comparison between flush left and ragged right justifications. David describes the results on his tests in his paper (PDF Link):

In a justified (even left and right margins) format, the eye "knows" through repetition, how far it must travel to perceive a line of print. Thus, the justified format may minimize pauses in eye motion following backward eye movements, regressions, within a line of print (Bayle, 1942; Rayner & Pollatsek, 1989). This suggests that the longer the look, the longer the processing time (McConkie 1989).

By extension, flush left / ragged right margins may force the reader to process each line's end point and re-evaluate the distance of each sweep (Rayner & Pollatsek, 1989). These assessment strategies may require "extra" time to process information presented with flush left / ragged right margins (Glass & Holyoak, 1986).

The Graphic elements Model predicts that an increase in the amount of mental effort required for visual and spatial analysis of textual cues will result in enhanced memory for information derived from that input.

This by all means is an interesting result. Even if you were able to avoid all the inherent problems of justification, like issues with kerning algorithms and the river effect, justification might give faster reading speed on text but then you might end up with lower recall of the content. Put very simply your readers might be able to glance through your content very quickly but they might end up remembering less of your content than they would if it had a ragged right margin.

The "Improving Validity of Large-scale Tests: Universal Design and Student Performance" report by National Center on Educational Outcomes sums some of the above and a whole lot of other researches that have been done in this area. The observations are simple:

Staggered right margins are easier to see and scan than uniform or block style right justified margins (Arditi, 1999; Grise et al., 1982; Menlove & Hammond, 1998).

Justified text is more difficult to read than unjustified text – especially for poor readers (Gregory & Poulton, 1970; Zachrisson, 1965).

Justified text is also more disruptive for good readers (Muncer, Gorman, Gorman, & Bibel, 1986).

A flush left/ragged right margin is the most effective format for text memory. (Thompson, 1991).

Unjustified text may be easier for poorer readers to understand because the uneven eye movements created in justified text can interrupt reading (Gregory & Poulton, 1970; Hartley, 1985; Muncer, Gorman, Gorman, & Bibel, 1986; Schriver, 1997).

Justified lines require the distances between words to be varied. In very narrow columns, not only are there extra wide spaces between words, but also between letters within the words (Gregory & Poulton, 1970).

With all it's inherent complexities and problems both technical and comprehensive; text that is justified aligned continues to be something most digital publishers are so attached to that they cannot let go. People who love justified text are all around us. If I can honestly confess here, I am one of them. Which is why this blog was justified aligned for years. There is something to be said about the beauty of justified text and the science of it.

Having said that once you understand the problems and realities associated with content that is digitally justified using HTML and word processors; and the impact it has on readability and recall of your content, given the choice between ragged right and justified text, chances are that you would lean towards a simple ragged right alignment.

Stating that you should never use justified text might be an overkill but before you do use justification, understand how justification works, understand the problems associated with it and use it wisely. Of course, the folks who are justification zealots would tell you that if it's not justified it just doesn't look right, but as of now, if it's on the web and if it's justified, it probably just doesn't read right.

And it's not about how you do justification. It's about how justification works, the issues that surround it and the state of current technologies built to handle it. As of this writing, in most cases today, as far as online content is concerned, justification seems to be esthetic value in lieu of easy readability. Of course justification gives your text a professional looks but this is the online world, and if it is professional you should probably be working on changing it anyways.

posted on Sunday, May 15, 2011 9:30:00 PM UTC by Rajiv Popat  #    Comments [0]
Posted on: Sunday, May 8, 2011 by Rajiv Popat

Thoughts On Tweaking Your Blogging Routine.

Blogs are cool. Blogs can be awesome. Blogs allow you to participate in this amazing thing we otherwise refer to as the internet. The content from Blogs feeds Google, keeps it alive and helps it grow.

From a personal aspect; blogs are important because blogs allow you to continue jabbing and help you hone your writing talents; and we all know how important writing talents are; even if no-one reads what you write.

Seek blogging advice from anyone who has blogged for more than ten posts and the advice you’re going to get is: pick a schedule and live by that schedule.

It is the single best advice anyone can give a young and budding blogger.

It works; till the time it doesn’t work and then you need to tweak it.

Think about this advice in terms of plain old mathematics. It’s like this; you become a better writer by reading more and writing more and given that you are reading as much as the other person; if you are cranking out four articles a week your chances of getting better at the craft of writing are four times more than someone who cranks out one article a week. Right!?

Well, the statement is moooostly right.... for you.... if.... you are starting out a blog or want to get into the flow of writing consistently. A regular stream of blog posts on a well-established schedule gets you in the flow for writing.

Besides it makes life simple for the Google crawler and your readers because they know exactly how much content to expect from your blog and when to expect it.

It forces you to show up even on the most depressing of days.

Like I said, the advice of writing regular blog post works.

At-least till the time it works.

And then comes a point of time in your life when the advice stops working and you need to tweak your schedule.

Here are some reasons why you might end up tweaking your publishing schedule:

  1. You’ve done enough jabbing for a couple of years and now you want to move into deliberate practice of writing by producing articles, books or relatively longer essays which will need your concentrated effort for a week, sometimes more than a week, sometimes a month and sometimes even multiple months before you can publish them out to the world. Posting four posts every week might not be possible here.
  2. You’ve done enough writing about code and now you’re going to be writing even more awesome code or doing something life changing. A classic example of this being Jeff Atwood who is the primary proponent of the “one step success” for your blog which was blogging regularly. Jeff started Stack overflow (now called Stack exchange) and slowed down publishing posts on his own blog.

Like I said, the advice works and it has it's own benefits while it works.

Then you reach a point in your life when you realize that just jabbing is not taking you to the next level in practicing your craft. You realize that just doing a given number of posts a week isn't enough deliberate practice of your craft.

When you have that realization it is time for you to slow down and focus on what is most important to you.

I’ve been blogging about three posts a week for months now. I've been contemplating the idea of longer articles on topics I feel strongly about, working on the book I said I would be working on, trying out some serious humor and doing some serious bullshit busting.

With those intentions in mind I am going to relax my publishing schedule down from three posts a week to sometimes two and sometimes even just one post a week.  On any given day the writing I do is probably going to increase. The frequency of publishing however might slow down a little in the weeks to come.

What that means that while the quantity of the posts might go down the quality of the posts that you see here might shoot up.

These posts will be edited much more meticulously. Some of them might be long enough to warrant turning them in articles that you can download in PDF or Kindle formats. You might also continue to get a full blown eBook or Kindle book every few months.

In the fitness world they say that nobody ever gets stronger by doing the same exercise again and again.

In the world of neuroscience they say that nobody gets smarter by solving the same kind of math problems again and again.

Continuously publishing three posts a week was a commitment I made to myself for months and it was a commitment that taught me a lot of things. It has now become a part of my life.

Having said that however, I feel I have grown out of and it is now time to master other aspects of writing. Even if that means reducing the number of posts I publish every week.

Long story short, the blogging frequency of this blog ‘might’ go down from three posts a week to two and sometimes even one a week. But I will hopefully continue to show up without fail. Every week! Consistently. And with lesser number of posts and more effort the content is expected to get better.

Expect to see posts with more content, more research, more fun and more takeaways. Expect to see PDF or Kindle versions of articles and occasionally also expect to see some eBooks once or twice each year.

Now, if you are a young and budding blogger seeking advice on how you can become a better blogger, here’s my advice:

  1. Pick a schedule that you are comfortable with and stick to it!
  2. And Do NOT change your schedule frequently.

More often than not any temptation to change the schedule is out of hidden laziness and your lizard brain playing tricks with you so be very careful before you decide to change yours. And when you do reduce your frequency; make sure you double your efforts.

That by the way is EXACTLY what I intend on doing on this blog; so do keep reading.

posted on Sunday, May 8, 2011 8:29:27 PM UTC by Rajiv Popat  #    Comments [0]
Posted on: Thursday, May 5, 2011 by Rajiv Popat

A Flaw In The Premise Of Never-ending Arguments.

There is something to be said about saying something you believe in without feeling the need to defend it or argue for it. Controversial arguments are generally very interesting and hardly ever productive.

Most online flame wars (through email, facebook comments, twitter comments, blog comments etc.) work on the premise that person posting the last response wins. In most online flame wars, your decision of not replying is often considered synonymous to your not having a reply.

The online heckler often expects you to shout back to quiet him down. Once you do that, you have started a controversial argument and it doesn’t matter what the logical outcome of the controversial argument is, the heckler wins.

All a heckler needs is a lot of free time and the persistence to keep replying.

You cannot win this game if you play it by it's conventional premise.

But you have an option of not playing the game to begin with; or taking a decision of not replying even when you have a reply; or quitting the arguments in the middle even when you’re not the person with the last response.

Just say what you truly believe in. If that triggers an argument; make your points. Once you’ve made your points (or voluntarily chosen not to make them) leave the topic and the argument. Say something else. A brand new post. A brand new thought. A brand new idea.

The hecklers can continue heckling about what you said. They will eventually get tired and stop when they realize that you’ve already moved on to something else. After all, In the long run the hecklers and the critics just don’t matter as much as you think they do.

posted on Thursday, May 5, 2011 9:30:00 PM UTC by Rajiv Popat  #    Comments [0]
Posted on: Sunday, May 1, 2011 by Rajiv Popat

Answer On Stack Exchange Project Management: Attracting And Motivating Talent That Kicks Ass.

Hiring young and budding teams that can kick some serious ass has always been one of my life long passions; something I consider much more important than any process out there.

If you don't screen and pick people like the life of  your organization depends on it, you won't have an organization soon.

Jarka on the Project Management site of stack exchange has a question on "The most effective attractors and motivators for young highly skilled people".

My answer there pretty much condenses a lot of what I have talked about on this blog as far as hiring is concerned, in eight simple bullet points.

You can read the answer here.

If you are a young and budding entrepreneur or a budding manager these eight points should give you a head start at hiring and building teams that can kick some serious ass.

Here's wishing you good luck with attracting and motivating teams that kick some serious ass.

posted on Sunday, May 1, 2011 7:52:03 PM UTC by Rajiv Popat  #    Comments [0]
Posted on: Saturday, April 30, 2011 by Rajiv Popat

Airlines As An Example Of Boring Mediocrity.

Every airline is like the other. Same ticketing, same announcements, similar good looking cheesy air hostesses and stewards who are busy smiling and getting you stuff you ultimately end up paying for.

The aviation industry is also the only industry that has your complete attention when you are flying.

Why not make most of that attention?

Why not build systems that allow people in the same plane to connect to each other?

Why not allow them to play video games on a network? You know who you are playing with by their seat numbers.

Why not have a separate channel with a live stream of the cockpit with someone from the crew providing explanations on the basics of what the pilots are doing which you can listen to on your head phones?

Why not have an on plane chat room where you can connect to crew members and passengers?

Why not let your cabin crew engage with customers, talk to them and collect first hand feedback about what they liked and disliked?

They say that you meet some of the most interesting people when you fly. 

Most airlines go out of their way to avoid that.

Procedures? Security? Safety? Cost? None of the ideas I talked about are expensive. None of these pose any threats.

Except of course a threat to the convention of what airlines companies are supposed to do: which is to take you from one place to another and treat you like very expensive and fragile cargo.

And that is exactly why most flights are boring; even for someone like me who enjoys flying.

posted on Saturday, April 30, 2011 9:30:00 PM UTC by Rajiv Popat  #    Comments [0]
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]