Punjabi By Nature
Punjabi by Nature

The maker of coloured computers

The year is late 1998 and three friends gather for a chat. They usually chat about IT industry, the stock market and anything else..

A: You know Steve is back at Apple. 
B: Big deal. 
C: He is a good guy but what can he do? 
A: Stock price is around US $10/INR 400, should we buy? 
B: Apple stock? The maker of coloured computers?  
C: Ha, Ha 

Fast forward to 2011, The Apple stock is at US 378.25 approx INR 18,000.

More than the stock price it is the impact that Apple and its legendary founder Steve has created on the world, IT and consumers worldwide that has made millions of people outpour their grief.

On behalf of all my colleagues and friends and family, Steve, may you continue to enthrall where ever you are and whatever you do. 

Oh, and one more thing.. That C above is yours truly. 

Regards,

Tarun 

Art of Good Code Design (Philosophical)

Thanks to RWW...

You probably have never heard of Dieter Rams (pictured at left) but certainly know of his work. For many years he was a product designer for Braun and other German companies. Back before Frog and Apple put the "i" in many of its products Braun was selling very elegant items that were well designed, such as calculators, shavers and household appliances. Many of these items can be found in museum collections all over the world today. Rams has had several design shows over the years and is known for his ten principles of "good design," and I thought if we substitute the word "code" for "design" that there is a lot software developers could learn from his principles too. Here they are, with some of my comments.

  1. Good code is innovative.
 One of the exciting things about working in the tech industry is that we still have plenty of innovation each and every day. And the best coding takes advantage of this innovation and wows us.

  2. Good code makes an app useful
. This seems fairly obvious. We buy or download apps to use them, just like products. But the best apps carry code that can showcase their use and avoid distractions.

  3. Good code is aesthetic.
 Some IDEs can turn code into quite elegant arrangements that could almost hang on your wall, they are so attractive. But understanding the aesthetic of what your code does is also important. In the design world, aesthetic is very important because it is reflected in the products we use. Just look at the crowds inside your average Apple store and how things are laid out, and contrast that with the aesthetic, if you can find it, in your average Best Buy. No comparison.

  4. Good code helps us to understand an app. And bad code helps us to see a badly designed app too. 
    Things which are different in order simply to be different are seldom better, but that which is made to better is almost always different.


    - Dieter Rams, 1993


  5. Good code is unobtrusive. Perhaps this talks more about the resulting UI than the actual code itself. But it could also refer to the ability to easily read someone else's code too. Certainly this is the case for open software.

  6. Good code is honest
. No tricks, no hidden trap doors, no malware needed. And no false advertising either: the code is the core essence of an app, nothing more, nothing less.

  7. Good code is long-lasting.
 Some of the best software programs have been around for decades. They don't go out of style, just like well-designed products.

  8. Good code is thorough, down to the last detail
 Squash those bugs! Find those corner cases! Test and retest with different browsers and environments. Don't leave anything to chance.

  9. Good code is concerned with the environment.
 Again, somewhat obvious.

  10. Good code is as little code as possible. Sadly, we have moved away from this tenet over the years, look how bloated our operating systems have gotten. I remember the early days when APL was considered the ultimate in coding - a single line could pack a ton of programming horsepower. You needed a special keyboard to code in it:


Peshawar to Patiala

Today is India's 64th Independence day. 

I was talking to my father today about what happened around Independence in 1947. My father's family was living in Peshawar (North Western Frontier Province) where my grandfather moved to in 1906. My grandfather knew Urdu, the language of the local traders in Peshawar. Slowly, he learnt the trade (fruits and dry-fruits) and quite a few years later he became a trader himself. In 1945, our family had a 3 story mansion and a car - a luxury that was not to come back to us till 50 years later. 

As it became clear in the years following World-War II that India will be partitioned based on religious lines. In March, 1947 my father's family except my uncle (his elder brother) and my grandfather move to India. They could see Lahore burning in flames as they passed it in the train. The Maharaja of Patiala had offered that Hindus and Sikhs are welcome to his state and he will offer any and every help possible. Meanwhile, riots had broken out everywhere. Khan Abdul Gaffar Khan's followers (Red Shirts) had helped in arresting the riots to a large extent in Peshawar.  They would eat, sleep, and breathe on the streets. However, not everyone was lucky. My uncle and grandfather were still there. My uncle got attacked with a knife on his forehead, fortunately he survived as he was quickly taken to a local doctor. Elsewhere, my father's uncle (mama) was butchered in front of his wife. My father recalls a similar incident in Patiala where a Muslim was hacked to death even though he was ready to convert. My father was all of 13 years old then!

Trains full of dead bodies used to go from one side to the other. Then sanity returned in the weeks and months following the partition. My uncle and grandfather landed in India using a military plane in October 1947. In January, 1948 my family moved to Delhi. 

In Delhi, they were "lucky" to be given shelter in a 1 room house in Fatehpur Sikri. A Muslim family had vacated that house and gone to Pakistan. Similar fate awaited people who were occupying Hindu, Sikh homes in Pakistan. In this 1 room house, 7 people lived and there was 
just one light bulb! My grandfather started his trade again in the Old Subzi Mandi (Old Vegetable Market) My father would walk all the way from there to his school and back. Many nights were spent studying under a lamp post. He was given Rupees 10 (about 25 US cents in today's rate) out of which Rupees 7 were for school fees and rest for eating/commuting. 

Times changed. Grandfather worked hard. He often slept in the shop itself from where he did trading. He had several dues that were pending to the relatives who had relocated along with him from Pakistan. On the other hand, the traders who had gone to the other side were not ready to pay up. It was difficult to go across the border and get the payments back! Anyways, times became better and times changed. We moved to our own house and business started to grow. 

My father meanwhile entered Academics. He started teaching at Batala Christian College (BCC) and then at SD College, Ambala and finally had a job at Delhi University/SD College, Delhi.  

In 1964, twin tragedies befell our family. My grandfather passed away, and 13 days later when the family returned after doing the rituals for my grandfather, my grandmother had also passed away. It was as if they had immortalized, "Till death do us part"

I hope to continue talking about the story of our family and the times/tribulations of the past. When you see much of what is happening today, you wonder whether the following is true: "History repeats itself, and those who do not know history are condemned to repeat it"

--Tarun

Culture of Review

 I am writing this memo to share with you something that I call the "Culture of Review"
We have spent a lot of time analyzing the efficiency of our team and also how to improve the quality of the work done. Whilst we will discuss the efficiency part later, I want to focus on the quality part here.
 
Many a times, we have gathered requirements, analyzed and developed systems, tested it and delivered it to the customer. However, a few areas where we fall short is
 
(a) Requirements were misunderstood
(b) Coding Guidelines were not followed
(c) Only one person has knowledge of a part of the system.
 
We need to address these problems. One way the industry addresses this is through "Whitebox testing". In my opinion, a "Review" is more effective than whitebox testing.
 
Reviews address the fundamental problems we have today on the quality side. When you have an extra pair of eyes reviewing your code/package, it is difficult to slip in things unnoticed (BTW - Ethical behaviour is what you are doing when NO ONE is watching you!)
 
The guidelines being followed can be done with an aid of tools + manual reviews as no tool can do a perfect job on doing style and guidelines check.
 
They also build knowledge in more than 1 person and bring a different perspective to the system, often times for the better.
 
 
Regards,

Tarun

Arms and the Man

Via Rajesh.... (and my notes below)

Around the time of the Kargil war in July 1999, this is what Atanu Dey wrote in an article entitled “Dollar Auctions and Deadly Games“:

One enlightening model of human behavior is the so-called “Dollar Auction” which illustrates the sort of trap that conflicts can lead to with costly consequences. This auction proceeds much as a normal auction except that while the highest bidder gets to keep the $1 bill bid upon, the second highest bidder has to pay the auctioneer the amount of the second highest bid.

….

The only way to win at a dollar auction therefore is either to not participate or if one does begin, then to either reach a compromise with one’s opponent or to exit as early in the game as possible.

Wars too have the peculiar characteristic that both parties, winner as well as the loser, pay. The dollar auction game illustrates the trap that nations fall into in a process of conflict escalation given the structure of strategic games.

The dollar auction is a perfect model of the conflict that India faces against Pakistan, with Kashmir being the dollar being auctioned. The bids in this auction are the military expenditure of each nation and the auctioneer is the one who collects the spoils of the military expenditures of the two nations. Since advanced industrialized countries are the major suppliers of arms, they play the role of the auctioneer quite well.

If the long drawn-out India-Pakistan conflict is seen as a dollar auction game with the US as the auctioneer, it is easy to understand why it is in America’s interest to keep India engaged in a perpetual conflict with Pakistan that is costly for India but very profitable for the US. Read in that context, the Headley story starts to make sense as well. The plan has been executed to perfection. As they say, it’s all about Money, Honey!

Here is what I think..

Like any other business, arms dealers and manufacterers are a business as well. If their “customers” were to disappear (i.e. no conflict) how will they survive. Hence it is correct to surmise that there are business interests behind this.

What I often wonder is that after arms, sports & entertainment is the 2nd largest business worldwide. Coincidentally, India and US are both big on sports & entertainment as well.

Is there an opportunity to move the $$ away from arms to these industries that have less strife and blood to shed?


Tarun

What am I reading?

India: Fast Growth Does Not Mean a Strong Economy: by Derek Scissors (Heritage Foundation). “It turns out India’s recovery from the crisis is partly illusory—its growth is not sustainable and is not creating broad prosperity.”

What holds India back: by Atanu Dey. “Hubris and ignorance among the powerful is a potently destructive mix and a sure recipe for disaster. The outcome is the disaster we see today. They set up the command-control-license-permit-quota raj. It is the best way known to humanity to retard economic development.”

Website Navigation Tips

6 Tips for Building Coherent Site Navigation

Thanks to RWW
When building a website, getting the navigation right is absolutely critical. A poorly conceived approach to site navigation will confuse and frustrate users, and this isn't the way to get a lot of people using your site.

A big part of this challenge is that you don't always start with a lot of links, but more may be added as the site develops. This means that the original navigation concept may not work as well as it once did.

To help you address these issues and prevent some others from occurring, here are 6 tips for building a site with coherent navigation.

1. Use Colour Coding

Make sure your navigational areas are easily distinguished and/or separated from your content. If everything seems to mix together - think of the content and navigation bar sitting alongside each other on a white background - it'll look a bit messy. A messy navigation bar isn't much fun to use.

2. Group Related Links Together

To avoid link overload, consider having multiple navigation bars, separated into logical groups. For instance, on one of the sites I run, I have core links (home, blog, about) at the top, functional links (dashboard, account history, settings) down the side, and legal/privacy links across the bottom. This allows you to keep each set of links relatively tidy, and it'll be easier to find the links you need.

3. Use Icons to Aid Navigation

Graphical aids can really bring your navigation bar to life, making it both visually pleasing and easy to use. FamFamFam has some good icons - and there are plenty more on Google if you want to look for something else.

4. Handle Hierarchy Consistently

Whether you have collapsible menus that appear as you navigate to a section, pop-out menus that reveal themselves when the mouse cursor hovers over them, or sub-pages with links to more pages, try to be consistent as much as you can. Mixing too many techniques can result in an uncoordinated mess.

5. Separate Non-Navigational Elements

If your navigation is getting quite busy, it may be time to remove things such as the search box from your navigation bar, along with any other features that get in the way of the site navigation. While it's possible to achieve a slick, streamlined site by condensing several core elements into the header and/or the sidebar, this doesn't work so well as you add more and more links. Don't feel the need to use every available bit of white space. And don't put ads in the way of the navigation.

6. Make it Flexible

If the design of your site makes it almost impossible to add any new navigation links, it won't be long before you start to hit the limits of the design. Where possible, future-proof your site by ensuring the design is as fluid as it can be. While a horizontal navigation bar doesn't leave a huge amount of scope, it could wrap onto additional lines. A vertical navigation bar shouldn't break once you add more than 10 links to it. If you build with long-term growth in mind, you'll have an easier time if you do add more links at a later date.

Delhi - Sights and Sounds

Today is 15th August... I love to travel on public holidays are the roads are free of traffic and markets are not crowded (if they are open at all)

We went to Red Fort... saw the fort in all its glory and then took a left turn into Chandni Chowk.
First stop was "jalebis" and then another to buy engraved book with small glass pieces on it.
Second stop was Gurdwara Sis Ganj - immaculately clean place considering its in the heart of some of the oldest parts of Delhi.
Last stop was "Paranthe wali gali" had paranthas there in a shop that was established in 1875 - CM Sheila Dixit and Filmmaker/stars Imtiaz Ali/Ranbir Kapoor were the other patrons earlier and we ate under their watchful eyes of the photograph.

The "paranthas" tasted more like pooris. They dont use onion or garlic. Saw quite a few foreigners braving the flys and the dirt and still enjoying the show. Must watch/eat for anyone who visits Delhi. Try out the papad parantha or rabri parantha if you are adventurous.

http://en.wikipedia.org/wiki/Gali_Paranthe_Wali 

See full size image

 

 

  

 

What am I reading?

Wishing everyone in India - A Very Happy Independence Day!

Tips for writing good technical documentation

Tech For and By Africa

India is not a poor country, its a poorly managed country

I am reading this book called "Making India Work " by William Nanda Bissell. He is the owner of Fabindia.
I recommend that you read this book and try their products. I wear the Kurtas almost all the time that are purchased from Fabinidia and Khadi Gramudyog.

In the book, William makes a very telling comment - "India is not a poor country its a poorly managed country" He cites several examples of how India's centralized government is overextended.

I recommend this book to anyone who is interested in this country's future.

Blog Software