Thursday, January 12, 2006 

Its a lyrical world

A couple of songs from "The Wonder Years" --

With a little help from my friends

What would you do if I sang out tune?
Would you stand up and walk out on me?
Lend me your ears and I'll sing you a song
I will try not to sing out of key, yeah
Oh, baby I get by with a little help from my friends
By with a little help from my friends.
All I need is my buddies
By with a little help from my friends
I said I'm gonna get by with a little
By with a little help from my friends
Whoa oh oh oh oh
Said I don't know if that's what I'm sure do to, baby
By with a little help from my friends
Said I'm gonna make it with my friends
By with a little help from my friends
Whoa oh I'm gonna keep on trying
By with a little help from my friends
Said I'm gonna keep on trying.


Tell it like it is

If you want something to play with
Go and find yourself a toy
Baby, my time is too expensive
And I'm not a little boy

If you are serious
Don't play with my heart, it makes me furious
But if want me to love you
Then, baby, I will, honey I will
You know that I will

Tell it like it is
Don't be ashamed
Let your conscience be your guide
But I know deep down inside of me
I believe that you love me, forget your foolish pride

Life is too short to have sorrow
You may be here today and gone tomorrow
You might as well get what you want
So go on and live, baby, go on and live

Tell it like it is

Tell it like it is
I'm nothin' to play with, go and find yourself a toy
Honey my time is too expensive
So why don't you tell it like it is
Tell it to my heart
Don't you hold back baby
Now it's time to start
You've got to shoot it from the hip girl
You've got to tell it to me straight….

Good stuff.

Wednesday, January 04, 2006 

A proposal for a Trustable Electronic Voting System

Seeing how the failure of electronic voting to earn our trust is a hot topic today, heres my shot at a proposal for a secure electonic voting system.

1. The voting process starts with a voter walking into a polling station and presenting his/her ID. This is verified by the officials, and possibly representatives of the candidates, and once verified, the Voter is issued a Physical Token. This Token is NOT generated on demand, and can be something like the tokens used at game arcades. Each token needs to have a globally unique serial ID, which would need be changeable. Each polling booth is issued a fixed number of voter tokens, enough for the total number of voters expected to show up at a booth. Any unused tokens need to be returned to the Election Authority.

2. The voter takes the token (remmeber that this token is not associated with his identity in any way) and walks up to the voting machine. This machine consists of a touch screen with the poll options on it. The machine activates when the voter drops the token into its slot. The user makes his/her selection, confirms it, and is issued a printed reciept of his/her choice. The machine keeps a running tally of the votes polled, but does NOT communicate the vote to any central server. This information is kept secure inside the machine itself, and the machine needs to be made physcially temper proof and temper-evident. At the end of the polling process, all the voting mashines can be collected together and an authorized elction officer can instruct the machine to reveal the poll results. All results from all machines can be tallied to get the final election result.

4. The receipt format would be a standardized one, established by the febderal election officals, including the fonts, sizes and the information content. It will have on it, printed, the day/date and identifier of the particular election and the id of the machine which issued the reciept, and in large fonts, the selection made by the voter.

5. The voter checks on the reciept to make sure the information on the reciept matches what he had punched in. If not, the vote is invalid, and he/she gets to vote again.

6. If the reciept information is valid, the voter proceeds to another machine, where he/she inserts the reciept into a slot. This second machine reads the receipt using Optical Character Recognition, and maintains its own independent tally of votes polled. It also securely holds all the receipts in a safe vault inside it. The first machine and this second machine are not linked in any way.

7. The first machine and the second machine must not be made by the same manufacturer, or by companies with substantial holding by common entities.

8. Ideally, the token and the receipt would be federal standards, and the machines themselves can be made by any number of companies. They would need to get certified by a testing body. The certification test would focus on standards compliance (including such standards as physical size, accessibility, etc).

9. A single company may make both the machines, but in any specific poll booth, machines from two indepepdent manufacturers need to be used.

At the end of the election, the polling officials return to a central location with all the unused tokens, and the sealed machines. The total number of votes polled by both the machines, and the number of tokens issued is first matched. Then both the machines are activated and the total tallies of votes taken and matched against each other. In case of mismatch, the paper reciepts are retrieved from the second machine, and counted by hand.

The crucial points are:

1. Two independent tallies of the same votes, with a trail between corresponding votes (the receipt carries the token ID, so from the machines databases, one can match if Machine 1 registered a vote for Party A while Machine 2 registered that same vote for Party B).

2. The receipt is human readable, and the same information as read by the human is also read by the second machine, using OCR. Bar-codes, RFIDs, silicon memory, etc are not used, as there is no way for the voter to verify that the bar-code information (or RFID or smart card memory) information is the same as the one printed on the receipt.

3. The machines themselves need not be secure or made by trusted parties (so even Diebold can make them, they seem really eager anyways ;-). They of course need to have physical security. As there is no network connnectivity, there is no chance of remote hacking. Local hacking can be prevented by access controls and physical security, and limiting the amount of time a voter spends at the machine.

4. There is a paper trail in case of conflicting results. Also any conflicting results can be analyzed in detail and the fault located to either of the machines using automatic analysis.

Post your thoughts below.

Saturday, December 03, 2005 

Broadband in India - Part 1: Don't buy Tata Indicom Broadband

Broadband internet access at home and SMEs in India is still in its early adopter, even though its has been almost two years since some form of broadband access became available. Some basic facts about broadband in India will explain why this is so:

1. Broadband, as the term is used in India, refers to anything which is non-dialup and non-ISDN. It has nothing to do with data rates. ISPs here routinely offer a 32kbps (yes , thats kilo *bits* per second) connection under their broadband plans.

2. Cost of Internet access is still extremely high. Even for dialup today a power user can easily expect to spend more than 1000Rs a month, as nearly all access is metered, including the phone call (local phone calls are metered in India). This, even when directly converted to dollars, is more than $20 a month. If we go by the Purchasing Power Parity (a measure of the local buying power of a currency), it comes to more than a $100 per month. And remember, this is still metered on a per-minute basis, so you can end up paying a lot more, and you have to watch the clock when online.

Broadband offerings have only recently come down to a similar level of cost. And those are again metered plans. Unlimited plans (as in limited by the number of days your account remains active), both for dialup and "always on" (a more accurate term for these so called "broadband" onnections) still cost an arm and a leg.

These two factors are enough to ensure low penetration of fast internet access in India. I just encountered an additional reason.

Two months back, I paid Rs 2000 to Tata Indicom Broadband as an installation fee for a 64kbps always-on connection. This included the modem and in-house wiring. The plan fee then was Rs 800 per month before taxes.

They took ten days to actually do the installation, which would have been not so bad had they not promised that the installation would happen within two days.

Once the connection was up and running, I was more or less satisfied with the connection. It did have a tendency to do down for a few hours once every 4-5 days, but thats not too bad by Indian IT industry standards. The good thing was that they actually gave me a static live IP (most providers in India only give a 192.168.*.* IP, or best case, a live IP with DHCP). Also, I was getting download averages of between 70-75kbps over large downloads, while I had been really expecting averages of less than 32kbps (heavily overselling bandwidth is widespread practice here, even for DSL connections).

I did have a few minor gripes at that point, but no deal-breakers:

1. They only provided an electonic statement. While in the US this is what I would have prefered, here a paper copy is essential. They actually had the nerve to ask for an additional Rs 50 per copy for providing paper billing.

2. This bill would only be sent by email to the email account (with 10MB email space!) they had provided me with the internet connection. There was no way to have this bill sent to my main email address.

3. Even though they insisted on going the electronic way for their bill, they had no mechanism for electronic payment. The payment had to be made by cheques being dropped off at specified drop boxes in the city.

4. Even though they had done a credit check and a deposit had been collected for what is called a "post-paid" connection, they bill in advance. So you need to pay the entire due amount for the month of November by the 31st of October.

As I said, inconvenient, but not deal-breakers.

And then, I decided to go on a 10-day vacation. Before leaving, I called up their customer service and told them I was not gonna be in town for 10-days. As the bill had not yet arrived for the coming month, the rep told me that it wont be a problem, and I can pay it once I get back.

I come back from Vacation, and I find my connection down. Too tired at this stage to call customer service, and accustomed till now to the periodic outages, I dont think anything is amiss until I wake up the next morning to find the connection still down. I fire up my emergency dialup connection (a great post-paid "pay as you go" dial-up scheme provided by the state-owned telecom major, BSNL, where the internet charges are billed to your telephone line, and the authentication is done via Calling Line Identification or Caller-ID). I try to login to my Tata Indicom Broadband email account to check if theres a bill pending, and get my first surprise: I cant login. The login page just reloads when I click login, without even informing me that my account is disabled.

I then call customer service, where I am curtly informed that the line has been disconnected for no payment of bill. A bill I havent seen, and now cannot see, thanks to the account being disabled. Turns out that the Bill due date is 3 days from the bill date, and theres a grace period of 1 (let me spell it out for you: O-N-E) day! After which they automatically disconnect your line and charge you Rs 250 for reconnections. All this, after charging Rs 2000 as installation charges. All this, without a single warning call from Tata Indicom (As my contact number with them is my cell number they could easily have called me up even while I was on vacation).

This really pissed me off. So I lodge a formal complaint with the rep and tell her to permanently disable my account, for which her response was "OK". I hang up.

A week after this, I finally get a call from customer service. This guy is totally unaware of any complaints that I may have registered. He informs me, finally (two weeks after the fact), that my line has been disabled due to non-payment of bill, and If i pay the bill and reconnection fee of Rs 250, they can enable it within 48 hours! (This for a company which doesnt even take minutes to disconnect a paying customer).

Oh. Meanwhile, Tata Indicom Broadband, under competitive pressure, reduced its rates for the connection I have by about a third! But only for new customers! The old customers already have paid the huge installation fee, so they are not gonna go anywhere else, and so dont deserve to be treated at par with the new potential suckers.

To cut an already long story short, I went with another provider (Airtel Broadband), which is (till now) working out well. They did the Installation for free, gave me a better rate, and it took them less than 24 hours since my first call to their sales number to get my line up and running. They also accept electronic payments, and provide paper statements. Their ordering process also seems very secure (some banks, like HSBC, should probably take a few lessons from them).

I recommend staying away from Tata Indicom broadband. They have higher prices and worse service than any of the competitors. Heck, the kind of treatment I got from them is worse than what the state-owned BSNL provides.

Sunday, October 02, 2005 

Next Generation Moolah

IBM developerworks recently issued a new Power Architecture challenge (as they are wont to do every month), asking:

When it comes to money, the U.S. is notoriously behind the times. I'm not talking about currency policy or central bank management -- I'm talking about the physical bills and coins that we use to buy groceries and coffee. Other countries have all sorts of pretty colors and holograms and Braille-what-have-you on their currency -- the U.S. is just starting to move in this direction. If you were starting your own country, what would your money look like? What sort of high-tech features would it incorporate to protect against counterfeiters and thieves? Would it contain RFID tags? (We're guessing at least one of you will say "yes" to that last one.)

This is my entry:

Interesting question. I have recently had delusions of having my country to design a currency for, so really timely ;-)

Ok, so though ideally I would have everything electronic, and just a card which can be used at all retail locations, which will be required to have EFT (electronic fund transfer) facility, I do believe regular old cash transactions, untraceable and anonymous, have a necessary place in society. So my solution would be less hi-tech than that ...

First thing I will change is the size of the currency notes: I have never understood why currency notes have to be so big, when everything we design to hold them is so small. One thing the US did get right was to have the same size for all denominations. I will take that idea further and have one size for all denominations: the same size as a standard business card. All currency clips, wallets, pockets etc are designed to safely hold business cards, but one invariably needs to fold currency notes to fit those inside (I never met anyone who found it necessary to fold a business card, atleast not one he/she wanted to hold on to). Bringing the size down will eliminate the need to fold the notes, thus increasing their life span.

These would be printed on the virtually indestructible vinyl (I think that's what its called) stock, and would come in different colors and graphics for different denominations. The production would be cheap as there would be no security features associated with the stock itself, or the printing process. The notes will only incorporate one security mechanism: they will contain a tiny smart chip, like in sim cards, with four pins: two for power, one for clock and one for data. This chip would have a unique serial ID and the notes "value" un-erasably burnt into it. The note would have four parallel conducting 1cm wide horizontal strips running all across its length, each connected to one of the chip pins. (yeah, well, that does mean it would not be a *plain* vinyl stock).

There would be tiny, inexpensive, battery powered devices available, looking like paper staplers (like the Red one in Office Space, only smaller)...which could just clip on to the note and quickly authenticate the note using public key cryptography (the chip on the note having a built in tiny PKC encryption/decryption engine), just checking for correct key and obtaining a denomination value. Banks or larger establishments would have "online" payment terminals which would go the next step and actually check the note serial id against a central database for authenticity/expiry information.

Yup. That's it.

What do you think? What would you want in a "better" currency? Add comments below with your thoughts.

Thursday, September 29, 2005 

This too, shall pass

Image: This too shall pass

One day Solomon decided to humble Benaiah ben Yehoyada, his most trusted minister. He said to him, "Benaiah, there is a certain ring that I want you to bring to me. I wish to wear it for Sukkot which gives you six months to find it."

"If it exists anywhere on earth, your majesty," replied Benaiah, "I will find it and bring it to you, but what makes the ring so special?"

"It has magic powers," answered the king. "If a happy man looks at it, he becomes sad, and if a sad man looks at it, he becomes happy." Solomon knew that no such ring existed in the world, but he wished to give his minister a little taste of humility.

Spring passed and then summer, and still Benaiah had no idea where he could find the ring. On the night before Sukkot, he decided to take a walk in one of he poorest quarters of Jerusalem. He passed by a merchant who had begun to set out the day's wares on a shabby carpet. "Have you by any chance heard of a magic ring that makes the happy wearer forget his joy and the broken-hearted wearer forget his sorrows?" asked Benaiah.

He watched the grandfather take a plain gold ring from his carpet and engrave something on it. When Benaiah read the words on the ring, his face broke out in a wide smile.

That night the entire city welcomed in the holiday of Sukkot with great festivity. "Well, my friend," said Solomon, "have you found what I sent you after?" All the ministers laughed and Solomon himself smiled.

To everyone's surprise, Benaiah held up a small gold ring and declared, "Here it is, your majesty!" As soon as Solomon read the inscription, the smile vanished from his face. The jeweler had written three Hebrew letters on the gold band: _gimel, zayin, yud_, which began the words "_Gam zeh ya'avor_" -- "This too shall pass."

At that moment Solomon realized that all his wisdom and fabulous wealth and tremendous power were but fleeting things, for one day he would be nothing but dust.

Something to remind oneself of, everyday.


Amazing Science Images

A couple of images from the world of science. Culled from BBCs "top 10 science images of the year" collection.

Salt and Pepper: A picture of a grain of salt and a grain of peppercorn.

Image: Peppercorn and a grain of salt

Clippy: A picture of a paper clip floating on water.

Image: Paper clip floating on water

View the entire collection here at the beeb.

Monday, September 19, 2005 

I am India

My CEO recently forwarded a poem about India he saw in a magazine some 30 years back. He clipped it and saved it. Amazing how it remains as (maybe more) true today as it was then.

I detonated a device that rocked the world.
But I have yet to shake my sleeping millions awake.

My bigotry sundered a subcontinent in two.
But I have given man his most tolerant Faiths.

I grew up unlettered and illiterate I shall die.
But I have schooled a hundred million children.

My life is a trauma of permanent hunger.
But I have created protein from sugarcane bagasse.

I perish in my thousands of cholera and typhoid.
But I have led the team which discovered aureomycin.

My industry stagnates because I will not work.
But I have leapt a hundred technological years in twenty.

I walk in the footsteps of a man called Mahatma.
But I have loved the teacher more than his teachings.

Freedom was the paradise I promised my poor.
But they halved the reward by doubling their numbers.

I was born in a palace plundered and sacked.
But I have made of the ruin the home I love called India .

I am sad.
But I am glad.
I am.

Ours is a magnificent land.
We must build a magnificent future.

Think Ahead.

Very touching. The bit about Gandhi is especially relevant in these troubled times.

I do not know who wrote this. If you know, do comment below so I can properly credit him/her.

Sunday, September 18, 2005 

Why i love the open source folks :-)

Well, at least one of the reasons., the central server hosting linux sources, was recently moved to a university building in Oregon (This server is the equivalent of what in Microsoft would be a maximum-security, Mission-Impossible-style "apparatus", holding the Microsoft Windows source code). This is what the people in charge had to say about the move:

Last night, Peter Anvin took (hera) down and handed it off to his friend, Javier. This morning, Javier flew it up here to Corvallis in his Cessna Skylane. This is the first time the OSL has had a server hand-delivered by plane, and so we were giddy as schoolgirls.

For effect, let me translate this into what a press release from Microsoft/Sun/Oracle/etc announcing a central repository move would sound like:

On friday, Boring Corporation Inc announced they have completed a major reorganization of their core business operations, including moving the Central Repositories to a new, radiation hardened location, somewhere in the nevada desert. This move was conducted under complete secrecy and security, in consultation with the NSA. The plane used for transfer was a higher security version of Air Force One.

BCI also revealed this move will allow it to leverage its core competentcies better, enhance share holder value. Analysts expect BCI stock to rise in the coming few weeks. The server move was deliberately timed for close of business on friday to discourage any panic selling in the stock market.

The entire move cost an estimated $200 Million. This move will enhance productiivty and so allow to BCI to cut another 10,000 jobs.

I think i like the linux version better

Saturday, September 17, 2005 

Road Not Taken: My creed

My favorite poem, "Road Not Taken". Seems something I would have written if I werent so poetically-challenged

Road Not Taken

Two roads diverged in a yellow wood
And sorry I could not travel both
And be one traveler, long I stood
And looked down one as far as I could
To where it bent in the undergrowth

Then took the other as just as fair
And having perhaps the better claim
Because it was grassy and wanted wear
Though as for that, the passing there
Had worn them really about the same

And both that morning equally lay
In leaves no step had trodden black
Oh, I kept the first for another day!
Yet, knowing how way leads onto way
I doubted if I should ever come back

I shall be telling this with a sigh
Somewhere ages and ages hence
Two roads diverged in a wood
And I took the one less traveled by
And that has made all the difference

- Robert Frost, 1915

Beautiful words for a life less ordinary.

Wednesday, September 14, 2005 

Why Gtalk?

After remaining quiet, slow but steady for many years after its inception, google finally charged up the flux capacitors and launched a dozen or so new products in a heartbeat. Practically all of those products leverage googles traditional strengths in the search and massive database area. Google has this amazingly scalable google file system which allows them to host and serve huge amounts of quasi-static content efficiently, quickly, and most importantly, inexpensively. Put together with their extensive use of AJAX technologies, which reduces the processing load on their servers and reduces the bandwidth bill, google completely changed the economics of massive web applications. They demonstrated it to perfection with their 2+ GB email service, Newsgroup service, Google Maps, Google Video, Blogging service, Photo hosting service etc. All of these have in common a few basic facets:

  • They require humongous amounts of server space
  • Content, once stored on servers, does not change quickly (unlike, say a credit card database)
  • These are services which people expect to not have to pay for.
  • These services bring with them a lot of eyeballs, and have infinite potential for viral marketing.
Given Google already had a good revenue stream through their enterprise search products and Ad serving business, as long as Google captures enough eyeballs (and serves them relevant Ads), the whole strategy was working out fine. Microsoft tried to increase the mailbox size in hotmail to somewhere around Gmail sizes, but they soon ran into architecture level issues, and have yet to complete a roll out of even 25MB spaces to all its users, let alone 100 times that as google provides. In short, its not easy to beat google on these turfs.

Then came Gtalk. This is a unique offering from google in many respects:

  • All other google offerings are best-in-class (or almost so): Gtalk is a sorry excuse for a textchat/voicechat client, with a feature set none of the zillions of Free chat projects on sourceforge would be proud of. No smileys, no user profile access, no ticker service (well, not that i am complaining, but u get my drift), no file xfer, no webcam.
  • All other google offerings involve they obtaining information about your web usage and then serving you with nice little unobtrusive ads based on your interest: Gtalk could potentially offer such an opportunity, but inserting ads in the middle of conversations would be "icky" and could back fire. There is, of course, no question of serving ads based on the content of voice chat (atleast with current technology).
  • As mentioned, all other offerings leverage the amazing GFS: Gtalk does not build upon anything which is unique to google, thus making it a "me too", in contrast to the other services which were worlds best practically at launch.
Thus, in my not-so-humble-opinion, the reasons for googles launch of Gtalk are a bit of a mystery. Here I will try and expound (rather pompish, that, eh? ) on what I believe their reasons could be:

  • Cause they can: Gtalk does not add a lot to their resource useage. Having a chat service adds to the already-ridiculously-inflated worth of a gmail account/invite.For people who like a massive mailbox, but also love chat/talk, this allows them to stay within the google fold.
  • Useful addition to their Gmail notifier: I never really took to the gmail notifier, seemed too much of a luxury to run a full application just to ping a mailbox. With Gtalk, the notifier comes built in, and there is a genuine value addition to keeping that app running at all times.
  • As a first step towards getting a permanent foothold on user Desktops: While desktop search and its new sidebar does that admirably for advanced and power users, it doesnt penetrate the general masses. Gtalk can help there. A later version of Gtalk can incorporate the sidebar(now that would be nice), thus allowing google full time access to the user finally (this having been their biggest weakness vis-a-vis Microsoft). Of course, how they plan to make money off it is still a question.
  • To commoditize voicechat/voip: While Google has a history of following open standards whenever possible, building their whole gtalk service on a completely open protocol is still a surprise, and something which none of its competitors has dared to do. Using the jabber protocol implies that right from the start, one doesnt need the official gtalk client to use the Gtalk network, all open source jabber clients are already Gtalk clients. This could lead to some very interesting hacks. But biggest of all, this implies that making any kind og money out of text/voice chat just got even more difficult. This could be just a disruptive attempt to wrest away a little bit of desktop control from Yahoo/Microsoft, even if google doesnt directly gain what it took away from these two.

What do you think Googles motivation is for Gtalk? Can they beat MSN/Yahoo? Are they even trying to?


Intelligence and Deja Vu?

I had a periphany: I generally "suffer" thru extremely frequent bouts of "deja vu", sometimes 5-10 times a day, usually very intense. Practically every other thing I see or do, I get a feeling I have thought or seen it earlier. I happened to discuss this with a few friends of mine, and I found quite a few who had a similar problem (with a similar intensity). I kept wondering about it.

Then, today I was reading something, and I had a mild attack of deja vu, which led me to think I had read the same thing earlier. That was obviously not possible as I was reading a recently published paper. I worked on the thought, and for a change I managed to have it crystallized. What I found was I had actually read another paper with a similar vein, but in a completely different scientific domain (that old paper was in Math, the new paper was in psychology). But this deja vu attack allowed me to mentally link up the concepts in these two papers and come up with a completely new insight (writing it up, yeah!).

This got me thinking, and I realized there was a pattern to the set of people I knew who suffered from frequent deja vu, and those who didn't. The ones who shared my problem were ones who I invariably regarded as "brilliant", like myself (so long, Ms Modesty Blaise ). These people were ones who you could trust to always come up with innovative ideas, sprout brilliant analogies, scored high at analytical reasoning and just had fun at work cause of all that.

Makes we wonder: Is Deja Vu just a conscious manifestation of a sub-conscious brain process that helps us analyze, correlate, create analogies, make intuitive/non-linear leaps? Is there any known/possible relationship between how badly one suffers from Deja Vu, and how "analytical" a person is, or is it just me trying to call a bug a feature?

Wednesday, September 07, 2005 

Hydrogen briquet?

How fortuitously timed given the gasoline price situation: The energy source of the future: Hydrogen Tablets!


Communications and World Peace

A friend recently forwarded this amazing (award winning) ad from an Italian Telecom major.

Truly. Just Imagine!

Monday, August 22, 2005 

Why does India fail in product development?

We all have ended up in pessimistic discussion at one time or another about how India seems to be doing so great at execution of off-shoring work for US-based companies (even run by Indians), but whenever they try, they fail miserably in developing their own products. These discussion, depending upon the participants, ends on two notes. Either,

  • "Indians are dumb. India sucks. We can never develop anything on our own. Even the railways, one of our crowning achievement, was essentially setup in more or less its current form by the British. Or the IITs, which were successful only cause we copied the model from British and US-ian universities." or
  • "Mera Bharat Mahan, India is a great country which an amazing past, and we have not been able to develop products cause of the brain drain/poverty/short age as an independent nation/corruption/power failures/etc etc. When we solve these problems, we will develop our own products".

Here, I am not talking about truly amazing, trailblazing products like the iPod, or the AJAX set of technologies, or our own 64-bit CPU (like the chinese have recently done), or a hindi version of Microsoft Word. I am only talking about things which have already been done in other forms, just not in ways ideally suited for india: for example a computer truly suitable for indian weather/dust conditions and needs, good e-governance software, customer counter management solutions that actually work, electronic cash and payment systems for use by the poor and uneducated, etc.

There is of course the question of weather we even want to develop our own products. For many, out-sourcing is enough of a cash cow, and India as a country should not even be worrying about doing product development. This is a question for another time. For now, i will proceed with the assumption (and my desire) that we be able to develop our own products, even if just for the indian market, and hopefully for worldwide sale. I also am aware there there *are* a few success stories in the Non-IT fields, for example in the food packaging industry. I will restrict my discussion to only the IT-field, as thats what i know best. I also know that quite a few attempts have been made, but most have then have either missed their market window (our own chip fabs?) or have fallen far short of achieving market penetration due to their shortcomings ( why would anyone a Rs10,000 Simputer when a fully-featured PC with all imported components can be purchased for the same amount?)..

I will attempt to summarize my views on why we fail, and how we, as employees of companies which possibly want to develop products but dont dare to, can possibly make a difference.

I believe there are multiple causes of this phenomenon (surprise surprise!):

  1. No ambitious enough: Most indian businesses and IT workers are not ambitious enough to want to indulge in something as risky as product development. The risks associated with product developement can be ameliorated by risk management, but partnering with other companies, by following a roadmap where directions can be changed if things do not work out, and by having proper market intelligence and vision. The market intelligence, especially global market intelligence comes at a very high price in rupee terms, and most corporates (but not all) skimp on these. Also, as the return on product development is not guarenteed, very few companies even bother to enter the fray. One of the causes unfortunately, is the perception of "outsourcing" as a lucrative business.
  2. Not enough patience: This is in some sense, a contradiction of point 1 above, as Indian Companies and Developers tend to be very shortsighted in general, and cannot usually handle long-term, multi year projects (with almost guarenteed failures early on) due to their management structure, and performance measurement standards followed by CEOs, investors, and shareholders. Companies and People are too ambitious (in the short term), to attach value to any long term goals.
  3. Limited risk-taking ability: This is true for the smaller companies, as the indian stock market tends to only overvalue large, steady income companies. The smaller companies are the ones which drive innovation, and which have a much higher chance of achieving the right momentum for developing something new. Unfortunately, these are the very companies that in general are too concerned about their cash flow to be able to invest in risk product development ventures.
  4. Limited market experience: Indian IT companies generally do not have any experience dealing with the users of their products. This is essential to have a clear(er) market vision, and forms the part of a "constructive loop" which enables great product development.
  5. Failure of Indian Colleges and Schools in producing "problem solver" and "self help" attitude in students: Our educational systems, esp at the Bachelors levels remain archaic and based on rote memorization, and do not lay sufficient stress on continuous and fast revision of syllabi, upgrading of facilities and teacher skills, and challenging the students to work on something new. Even most masters thesis in India tend to be completely non-innovative and un-inspiring. Our educational system also tends to be "one-size-fits-all" and does not allow a student to customize the course to his/her liking. This selections and customization is a required small step in forcing students to think what they really want to do, instead of "what is the most popular decipline to go into this year?" kind of herd mentality.

To be updated.


CMMI processes for R & D Projects

As part of my job, I come up with new product/IP development ideas for my Company, and then also do the top level architecture and design so that the product/IP can then be implemented by the engineering team with limited continual direction from me.

These projects tend be different from the usual client-driven projects undertaken by the engineering division in multiple way.

Firstly, The R&D projects tend to be a lot more ambitious than the client driven ones for the simple reason that client projects usually only happen once we have a proven expertise in some field, and we have shown that we can execute projects of a similar nature to the one the client is proposing. R & D projects on the other hand, are designed to expand the companys' capability in new directions, "to boldly go where no one (within the company) has gone before", so to say. For this reason, usual methods of effort estimation and timeline planning are tough to apply on R&D projects.

Also related to this is the problem of project management in general: by its very nature the projects are less clearly defined than client projects. And while surely the level of definition can be improved over the current low ones, a full definition in advance is not possible as such projects tend to change directions (in acute angles) all along their evolution, as new problems are uncovered and resolved during implementation. This amount of change is an inbuilt feature of the R&D project and cannot be handled by the usual "change request" procedures followed for client procedures. The changes made need to be swiftly incorporated into the process documents, and while the R & D "architect" should need to clear the change, the change decision and its update in the document should happen at the implemters level, and on his/her initiation. The R & D person should recieve a change notification, with a short window available to him/her for accepting or rejecting a change or suggesting and alternative. In short, there should be a clean and swift procedure for frequent changes to the project design and consequently, to the process documents. Such a process should also capture all the reasons for the said change, and preferably capture any alternatives that were considered, other than the one that was accepted, along with a "pros-and-cons" analysis of each.

This problem is further compounded by the fact the project vision remains in the head of the R & D "architect" while the execution is squarely in the purview of the engineering PM/PL. This is completely different from a client driven project where the project vision is transferred from the client to the PM/PL at the initiation of the project or at worst, by the end of the feasibility. At that point, in a client project, the PM/PL can work independently, with very limited dependency on the client. In an R&D project, the vision transfer currently does not take place, and in addotion, there is never an intention of reducing the involvement of the R&D architect to as low levels.

A solution needs to be found which:

  • Ensures that the vision transfer from R&D to PM/PL takes place, if that is what is desired. This is tough to achieve as the vision could be very deep and wide, spaning multiple projects to create a whole, and if may just not be viable to transfer all of that information to a single PM/PL. There may be further complications related to the abilities of the PM/PL, time availability, Corporate secrecy issues, and motivational issues. On the practical side, the vision transfer needs to be documented and the amount of effort and time involved for this may be enormous. The primary issue here is that there needs to be a process for achieving this vision transfer/capture at the initiation of the project.
  • If vision transfer/capture is found to be impractical or ineffectual by itself, the the only other option is for a very well defined process to ensure that unknowns in the project are resolved as early as possible. This could take the form of a feasibility study, for example. As varied teams with varied problems maybe involved in a single project, and they may have interdependencies on each other, this could be much more complex than the usual feasibility done for client projects.
  • Another issue is that of physical resource availability: Client projects in general do not suffer from this problem, of unavailable hardware/tools etc due to multiple reasons (the client pays for all of these are predetermined times, thus ensuring their availability, or, the required tools are already available with us, or the tools are made available at appropriate times as necessiated by the project dependencies). This is not true for R&D projects where tools are almost always not available, budgets are small, and hard deadlines for making certain tools available are just not practical. While it can be argued that such problems can be resolved by making sure that tools are made available, a more realistic solution is to incorporate hardware/tool dependency are part of the project management process and create "what if" analyses of what effect the delay/unavailability of such resources may have on project time lines. Such "risk management" IS already part of the standard CMI process, but for most client projects such "plan B" s and (god forbid) "plan C"s never need to be put in practice. For R&D projects, such plan Bs and Cs and Zs need to be very real and planned more thoroughly than others.
Another issue with R&D project processes is the issue of project progress tracking: In general the R & D project has a top level goal which need to be adhered to, but the individual milestones are fluid, and they need to be: due to the continuous change of direction of such projects, these milestones tend to be ill defined, and may change around a lot. The process definition for R&D projects needs to help in tracking these milestones and guidelines need to be set so that milestones are defined in ways which ensure they dont change around much.

In short, a modified flow for R&D projects needs to be put in place. This post just covers some of the issues that such a process needs to address. R&D projects need proper process adherence even more than client projects do (the successful execution of client projects is very well monitored by the client), but the current process is not completely applicable to R&D projects. A proper process will reduce the high level of risk currently associated with R&D projectes to a more manageable level.

Please post views below.


FPGA Killer app?

As is probably evident by now, FPGAs are my current "crush". I was a helpless, penny less electonic hobbyist for a very very long time, never having enough money to actually build the circuits i could design, my notebook full of designs which never saw the light of light of LEDs. Now with FPGAs, building this circuits is as easy as writing and compiling software. With the availability of unbelievably low-cost prototyping boards like the spartan3 starter kit ($99) or the upcoming spartan3e starter kit($150) (yum, i want one NOW!!), the hard part is the concept, not the implementation. These amazing value bundles come not only with an amazing amount of hardware, they come with all the cables and software you need for your first designs!!

Anyways, to get back on track, while FPGAs are electonic circuit protoyping platfomrs are cool, that idea is not new, and this is how FPGAs are generally used: as protypes for ASICs.

The vision I have for FPGAs (and well, hopefully, many others do too), is to have FPGAs are the delivery platform too. With todays FPGA costs, this is almost viable, and with the cost reductions we have seen due to vendor competition (thanks Xilinx and Altera for being such good sports), the economics may become very lucrative soon, especially considering the NRE costs associated with ASICs, esp the 90nm node and better.

Now, one argument against using FPGAs for final delivery is that ASICs will always beat them in large quantities. This is unquestionably true. But the place where they fit are:

  1. When the reconfigurablity of the FPGA is what the doctor ordered: For example in logic probes, In-circuit Emulators, etc. These applications just have to be done using FPGAs, but the number of FPGAs that can be sold as part of these products is ver limited. In other words, this is not going to set the FPGA market ablaze.
  2. Where the circuit logic may need to be changed after product fabrication/sale: We are all used to applying "firmware" patches to various components of our PCs, like the motherboard BIOS, the videocard BIOS, even to our home network gateways, etc. These firware upgrades can fix software bugs after the device has been delivered to the final user. It may also add new functionality, for example adding photo-viewing functionality to the iPod. Most of the patches available today truly only upgrade the software residing on these hardware components. What if we could also upgrade the hardware if need be? Can we even imagine such a need arising? Are there any markets where such a capability may be even required, not just desirable? This is the application this post muses over (so now you know! whew!)
One such application is Software Defined Radio. This is a wireless transreciever where the modulation/demodulation scheme can itself be changed depending upon the standard being used at any point. While this capability is today mostly only used by Defence forces, a consumer example can be provided for a multi standard cell phone, which supports all the CDMA/TDMA/W-CDMA etc modulations/multiplexing schemes by just changing the "hardware" which demodulates the recieved signals before the base band processor sees them.

Of course, due to economic and regulatory reasons, most cell phone operators dont and cannot provide this capability (or do not want to!).

Any other "killer apps" for an FPGA? any application where runtime hardware reconfiguration is a basic feature?

Saturday, August 20, 2005 

on the origin of sexes

A close friend of mine put forth this question recently:

"In the begining there was one cell life (no concept of the gender) then multi cell life (no concept of gender still) and we are here (male and female). so at some point 2 sexes (male and female) evolved instead of one. why?"

Heres my attempt at an answer:

Evolution works using two complementary processes: introducing random changes in the genone, and then propogating any changes which may be found beneficial (in the "survival of the fittest" sense).

Now the primary way of introducing changes is by mutation. And the primary way of propogating these changes is from parent to child.

With asexual reproduction, once organism "A" has uncovered a beneficial mutation "z", that mutation will be passed on to all its offspring, but will never be seen by any other members of the same species. slowly and steadily, as mutations accumulate, the "family" of organism "A" will diverge from its own species sufficiently to qualify as a seperate species. But this is a very inefficient way of evolving. No doubt, other members of the species would have also developed useful mutations, and if by some way members of single species could "exchange notes" so to say, they could evolve much faster and much more efficiently, without each mutation fragmenting a species into two.

So now we agree that exchange of some genetic material is required. Even though we think of unicellulars as "asexual", there still are instances when two unicellular organisms exchange genetic material using what are called "vectors", small strands of DNA/RNA, which are physically passed from one cell to another. This allows for exchange of beneficial traits between members of a species. So technically, sexes are still not required.

But surprisingly, what is found is that even in this simple case, among the pair of organisms exchanging a "vector", one is found to have the tendency to always "recieve" the vector, and the other is found to have a tendncy to always have the tendency to always "transmit" a vector. So even here, we find a very low degree of differentiation in the roles.

Now I am firmly in the domain of pure speculation:

As species developed, and became more complex, it became clear that special "support structures" would be needed in the organisms' body to permit bringing-forth of offsprings, hence the development of ovaries and the like. As this function became quite complex, it became essential to further differentiate members of a species into two distinct groups:

1. One group, which has the necessary physiological support for nurturing a foetus in its early stages of development, when it needs to be protected from the external world. This support unfortunately led to a condition where, from conception till birth, the members of this group tended to be very vulnerable aginst predators and other dangers. Enter the second group:

2. The second group, which developed the physiological support to provide DNA for the "mixing" of genes which is, as discussed, curcial to effective evolution. This group also developed so as to be able to provide protection to group one during the vulnerable period.

So though it can be argued that instead of bifurcating into sexes, all memebers of a species should have had the capabilites of acting both as a "male" and a "female" at times. And i believe this behaviour is found in some rare species still. But due the highly specialized nature of organs required for the "female" and the high degree of vulnerability introduced during pregnancy, i believe over time, it was inevitable that two specialized groups would emerge within a species.

What do you think?

Thursday, August 18, 2005 

single chip voice-over-IP and video-voice-over-IP phone design

single chip solution for VoIP and VVoIP phone needs to be developed. The solution should start off with just being VoIP and then scale up to VVoIP thru a software update, and a jump to a higher-end but code-compatible CPU/DSP.

It should be completely stand alone and should try and be compatible with Vonage, Skype, etc. Should have SiP, etc built in. This means it should run one each of:

  1. Linux
  2. TCP/IP stack
  3. SiP stack
  4. DHCP
  5. Audio Decoder
  6. Audio Encoder
  7. (later) Video Decoder
  8. (later) Video Encoder
  9. Audio input port driver
  10. Audio output port driver
  11. Video input port driver
  12. Video output port driver
  13. Ethernet port and driver.
  14. USB port and driver (in case user doesnt want to provide an ethernet hub)
Considerations for architecture include:

  1. TI C64X DSPs: Good for audio/video, but expensive, and do not run linux well. Have very high end audio/video ports, so saves logic there.
  2. ARM/XSCALE: run linux very well, but not so great on audio/video codecs.
  3. Blackfin: Runs linux, seems to be great for Audio/Video. Multi core available, so scale up to video should be possible.
  4. Trimedia: not a very open archtecture. Tough to judge.
  5. ST Spear: more details needed. May be extremely suitable for this application. Has an ARM, so linux is available. The FPGA fabric can help a lot in accelerating audio/video.
  6. Pure FPGA: Running Linux would consume a lot of resources, but would really work well for audio/video. Expensive to develop.

Update 1: Wireless (802.11x) needs to be included in the feature set as an optiona upgrade.
Update 2: BORSCHT support is needed - Battery feed, Overvoltage support, integrated Ringing, line Supervision, Codec, Hybrid(2w/4w), Test


  1. Update with more thoughts,
  2. create a white paper with top-level designs for atleast some (if not all) of the above options.
  3. define feature set.



"AES encryption and decrpytion on an FPGA" is another core i am trying to get going. Again, this needs to be a high end core, and this would need some very significant updates to the way the algorithm is generally implemented in sequential processors.

Will be editing this post continuously, updating it with links to documents.



I have been trying to figure out an implmentation of the GZIP "deflate" algorithm inside an FPGA. I am not really an RTL expert, so this is even more challenging than normal for me. It needs to be high end and very efficient (and while i am making rediculous demans, i need a billion dollars, too :P )

deflate comprises of LZ77 (which is a string matching compression) followed by static/dynamic huffman (which is a form of entropy coding). Dynamic huffman is a problem in itself, but for now, i have decided to stick with static huffman. My main issue is with doing LZ77 searching inside an FPGA. I need to be able to take an input character atleast once every clock cycle (or two).

So post here any links, comments, issues etc related to this issue. I will be building this up as a link bank.

About periphany

  My digital pensieve.
  Read. Comment. Repeat.

About me

Amazon Search

Search Now:  
Amazon Logo


Powered by Blogger

All Posts © 2005 Linux Ghoul.
All Comments © poster.