Friday, December 16, 2005

Back after long time..

Caught up in many things happening at work and personal life which explains the lull in blogging. Highlights of last 6 weeks:
  1. Hit an internal milestone at work
  2. Got married :)!

Monday, October 31, 2005

Interesting puzzles - 6

Back to puzzles.

A man is walking through a long railway tunnel and is 1/3 rd through when he hears the sound of a train approaching from far. As it turns out, he would have narrowly escaped from the train by continuing forward or going backward without changing his current speed. What is his speed if the train is moving at 20kmph.

Try to solve this without using math equations and such. I think it was OP who clued me on these kind of problems in college :)

Thursday, October 27, 2005

slickrun is cool

This utility does to UI programs what aliases do to your cmd shell. I have been using it for a few weeks now and I must say it is great.

Check it out: SlickRun

Wednesday, October 26, 2005

Uninstalling a product from command line.

It is surprising that once you install a program, the only way to remove it is through the add-remove programs unless you have access to the msi that installed it. There is no builtin command line equivalent and this becomes a pain when u r repeatedly installing successive builds of the same product. Luckily, the info required is exposed through WMI and python has hooks into the same (Tested only on xp-sp2. Your mileage may vary...):

import win32com.client
import os

def GetWMI(comp, namespace):
comObj = win32com.client.Dispatch("WbemScripting.SWbemLocator")
return comObj.ConnectServer(comp,namespace)

def GetProductId(productName):
wmi = GetWMI(".", r"root\cimv2")
prods = wmi.ExecQuery("Select * from Win32_Product where Name='%(productName)s'"%vars())
if (prods.Count == 0):
return None
else:
return prods[0].IdentifyingNumber


if __name__=="__main__":
prodCode = GetProductId("My Product Name")
if (prodCode):
print "found a previous installation...."
print "uninstalling..."
os.system("msiexec /x " + prodCode)
else:
print "No previous installation found."

There is a WindowsInstaller.Installer automation object exposed, but I could not get it to work through python :(, guess I have to learn vbscript or some such for sake of efficiency.

Tuesday, October 25, 2005

Hooking into the perfcounter installer..

It is surprising how often you find uses for a tip that you get. Case in point: IFEO.

I never heard/nor felt its need in 3.5 years at my previous job. But these days I seem to use it fairly often!

Dotnet has this PerformanceCounterInstaller class where you define various attributes and counters that you want to expose for you app. Then call installutil to install it.

However, installutil is not used in production setups as selfreg has a whole range of issues to handle and the unmanaged equivalents (lodctr stuff via provided custom actions in the setup tools) are generally used.

So for setup we needed to figure out the dotnet specific registry entries + the ini files that we give to lodctr. Setup the debugger to launch on invocation of lodctr by:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\lodctr.exe]
"Debugger"="c:\\debuggers\\windbg.exe "

Then invoked installutil. This gets the lodctr invoked by installutil into the debugger and you have all the time to figure out that .net internally creates the ini files in the %temp% directory :) Figuring out the additional reg entries was a matter of inspection...

Monday, October 24, 2005

Office viewers....

Acrobat reader is pretty popular; recently I found that Microsoft Office readers are available and free too !!

http://www.microsoft.com/office/000/viewers.asp

Wednesday, October 19, 2005

Debugging in production..

For someone building server apps for windows there are some pretty good resources on production debugging on msdn. Check these out:
  1. Production debugging for .netfx
  2. Production debugging for unmanaged code
I think most people will find the the section on using diagnostic tools in 2 to be useful.

Tuesday, October 18, 2005

Video tools.

Most of our life is word based - blogs, code, bugs, setup documents etc. etc. It does not have to be. There are a few tools out there which make it a snap to build demo videos. Try these out to create that next bug report, the next setup "document" and you will be pleasantly surprised :)

Wink (freeware, no sound, pretty small output files in flash): http://www.debugmode.com/wink/

Hypercam (commercial, sound support but the output files are pretty big wmv files): http://www.hyperionics.com/

Thursday, October 13, 2005

Job descriptions..

Most of the job descriptions I have seen mention fluffy things like passion, vision, coordination, industry leading percentile of salary blah blah and blah. This one over at jetbrains is refreshing different :) !! You can't get more straight forward than

We offer
* Participation in development of world leading products
* Creative team work
* High salary

In case you are getting ideas, check out the location...

Friday, October 07, 2005

Troubleshooting resharper installation

Jetbrains has this cool addin to visual studio that brings in some of IDEA features to VS. Tried installing build 207 today and had to hack quite a bit to get it to install. The problem was it was doing something during setup, goes right till the end and rolls back with error "something that ran as part of setup did not complete". Tried to see if I can find anyway to get any more information:

ReSharper2.0-VS2005-build207.exe /?
informed me that /V option can be used to pass arguments to msiexec (called internally by setup). So to get more logging info I executed
ReSharper2.0-VS2005-build207.exe /V"/l*v abc.log"

From the log it was clear that it was invoking devenv.exe /setup which supposedly failed (god knows why). So I wanted setup to take it easy about this so that I could execute the same command manually later and figure things out. Now, the problem reduced to bypassing this devenv.exe invocation by setup.

IFEO to the rescue!! So I created a donothing.exe, which as the name suggests, is an executable which does nothing. Placed it in path and created the following registry entry:


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersionImage File Execution Options\devenv.exe]
"Debugger"="donothing.exe"


Re-ran setup and it was happy the devenv invocation :) and the installation succeeded!!

Thursday, October 06, 2005

what the bleep do we know?

Never got around to watching the movie/documentary "What the bleep do we know", but they have put up a website for a book that they are bringing out. Worth a checkout: what the bleep
....

What if the mind and matter are not split? What if there are
observable feedback loops between the two? It’s the 21st century,
yet mainstream science still refuses to look at this...

I know many, many academic colleagues... distinguished people in their fields—in psychology, cognitive neuroscience, basic neurosciences, physics ...
who privately are very, very interested in... psychic phenomenon. Some of them are getting successful results in their experiments. Well, why aren’t we hearing about it? Because the culture in the academic world says you cannot
talk about it. So we’re living in the parable of the
emperor’s new clothes.
...
So, who now hijacked the search for truth?
Two sides of the same coin.
First the Church, and now the new priesthood—the Scientists.

Thursday, September 22, 2005

Cool registry tip..

It is fairly common to use a reg file to get data into a registry. I always wondered if there was a simple way to remove keys from a registry without doing all that hand traversal (it does not help that the standard reg editor does not have bookmarks). Found this tip which I found useful..

add.reg:

[HKEY_LOCAL_MACHINE\SOFTWARE\MicrosoftWindows NT\CurrentVersionImage File Execution Options\lodctr.exe]
"Debugger"="windbg.exe"

remove.reg (note the - after [ and before HKEY...):

[-HKEY_LOCAL_MACHINE\SOFTWARE\MicrosoftWindows NT\CurrentVersionImage File Execution Options\lodctr.exe]
"Debugger"="windbg.exe"

Wednesday, September 21, 2005

what platform?

Everytime I tell someone non-techy that I have a software job, the inevitable question I get out here is:
"What Platform do you work on?"
After the first time, I knew that they expect an answer like java, dotnet, oracle, sap or some such thing. If you answer with stuff like "we are building a framework for blah", "we build software for controlling fusion reactors", "we are decoding the gene sequence using some advanced algorithms" etc, all you will get is a condescending look :).

Monday, September 19, 2005

Writing good code...

The pragmatic programmers write great articles on writing good code. I especially liked this one Writing good OO code. How many time have you seen these seemingly obvious things violated? [Hint: 100s of times :)]

If you write code for a living, do take the time to read the article and save the poor souls who have to maintain your legacy :).

Friday, September 16, 2005

Xml prettifier in python

Since xml is the "format of the day" for any and everything, I find it more and more common to edit/generate/hack xml files in daily routine. Since xml is not exactly write/read friendly to humans, I end up writing tools to update and maintain these monsters :). Python has a good and friendly xml parsing api that I find useful. For starts, a prettifier can be written in a few lines of code:
import sys, StringIO
from xml.dom import minidom

def prettify(inxml):
xmldoc = minidom.parseString(inxml)
# use 2 spaces to indent instead of tabs
lines = StringIO.StringIO(xmldoc.toprettyxml(" "))
#remove redundant empty lines
lines = [ x for x in lines if x.strip() != ""]
return "".join(lines)

Tuesday, September 06, 2005

Startups !

N friends/relatives have started some or the other companies/websites in the last 5 years; some fulltime, others partime. This post attempts to gather them all at one place for a better overall view ....

Full/parttime companies:

http://www.carwale.com - Jabal and Co
http://www.techbrix.com - Vamsee and co
http://www.tachyontech.net - KS and Rampi
http://www.propertywale.com - Jabal and Co
http://www.thecressidagroup.com - RK
http://www.stockfundas.com - Anand and Co

Websites:

http://www.shabdanjali.com (Online hindi magazine..)
http://www.indianhousehold.com

Some of these are pretty new; good luck, folks!

If you know me directly and I forgot to list your site, please drop me a mail/comment

Sunday, September 04, 2005

Articulate writing...

Chomsky is one of the most articulate writers I have ever read. It is an interesting change from inane stuff that is doled out in the news channels. Read an interesting one recently: It's Imperialism Stupid

"... It is a rational calculation, on the assumption that human survival is not particularly significant in comparison with short-term power and wealth. And that is nothing new. These themes resonate through history. The difference today in this age of nuclear weapons is only that the stakes are enormously higher."

Tuesday, August 30, 2005

The corporate pyramid ..

As I recently read somewhere the corporate pyramids has 3 levels:
  1. The top level - sociopaths
  2. The middle level - clueless folks
  3. The lower level - the losers
Will post a link to the cartoon if i find it online...

Wednesday, August 24, 2005

Traffic in Hitec City

The traffic police in India have traditionally come up with several strategies to regulate traffic. Many are familiar with the posters like "Speed Thrills but Kills", "Wear a helmet - save your brain" (with a helpful picture of the human brain), "Traffic safety begins with you" ...

Posters/ads are not terribly effective, so the hitech city traffic folks have come up with an innovative approach - pre-recorded messages. If you are someone who stops when the traffic light goes red, you can hear the following:

"STOP!! You have crossed the stop line. When the red light is on please stop before the stop line." (translated from telugu)

Unsuspecting drivers who are in hitech city for the first time get psyched out of their wits when they hear messages like these and instinctively backup their cars/bikes hoping to get behind the imaginary stop line to avoid a traffic fine and in the process collide with the vehicles behind :) .

A classic example of a cure which is worse than the disease :)!!

Monday, August 22, 2005

where can I get that dll from?

Once in a while we get pained about a missing dll. There's help for microsoft dlls - msdn has a dll help database which can be used to find out which products ship with a particular dll. Here's the link: http://support.microsoft.com/dllhelp/

Sunday, August 21, 2005

Change this...

Recently stumbled upon this interesting site: http://www.changethis.com. From their manifesto....

... All too often, though, weʼre led to change our minds on the basis of charisma, not
facts. People are so easily influenced by a charismatic leader, the kind of person weʼd
be eager to befriend, to have dinner with, to follow. We choose someone based on his
personality and then do whatever he tells us to do. .... We go to war or create a new product or move to Jonestown.... in our electronic universe itʼs easier than ever for one charismatic demagogue to sway the opinions of millions of people—without resorting to rational thought, provable assertions or the longterm implications of their efforts...

Changethis focuses on the rational and thoughtful arguments that help people change their minds to a more productive point of view...

I had a quick look at some of their articles and this one struck a chord with me - The Talent Myth. Anyone who has worked in the dotcom boom will identify with some of the points made :)...

Tuesday, August 02, 2005

Fun things to tell a manager...

Here are the top 5 fun things to tell your manager. I gathered these from many informal conversations with many experts ... They could be severely career limiting, so use them at your own risk... :)

  1. General Chat - I love to work in your group; it ensures that there is atleast one person more incompetent than me.

  2. When discussing career growth and opportunities - I have left many companies in my short career and I won't hesitate to do it again.

  3. During the performance review - What do you mean - "Your performance is not up to expectation"? I wrote many more mails than you did!

  4. On Design Discussions - I really like the free flow of ideas that we enable by encouraging people to get drunk before closing on major design decisions. Our product is richer for that fact!

  5. On Integrity - Can you teach me how you can lie with such a straight face without letting shame or embarrasment show?

Sunday, July 17, 2005

Links...

There's a new book out there "Best software writing" a collection the best articles on the web. These two are worth a read:

  1. ea_spouse - EA: The Human Story
  2. A Quick (and Hopefully Painless) Ride Through Ruby (with Cartoon Foxes)

There some interesting stuff out at pawlicki's page . This comment ringed so true to me :)

... To all of us plebes who tread streets of concrete, it doesn't make a damn bit of difference how the Solar System came to be in the shape it is in during our mayfly lives. One story is as good as another as long as it stops the kids from asking `How come?' when you want to put them to bed....


Tuesday, July 05, 2005

Developer tools...

The tools that we use largely effect how efficient we are in our everyday work - don't get started on effectiveness vs efficiency discussions :p. Some one has done a pretty good job of listing most of the good ones over here. I am sure most people are going to find some useful utility which they have not used before.

Friday, July 01, 2005

Customising your command shell

Taking care of automating common stuff is a very important way of ensuring that your fingers and mind last a little while longer in this IT field :)

Usually the first complaint that people the unix background will have when they use a windows machine is the command shell. The lack of aliases, .profile etc. Internal to MS there are many utils which make this possible, but recently I figured that there is something which does the same thing on any windows machine. All you have to do is

doskey /macrofile:macros.txt

where macros.txt contains your aliases (called as macros for some weird reason in the windows world ...) like
ep=e:\progs\editplus\eppie.exe $*
h=pushd e:\jars\hibernate
env=sysdm.cpl,3

Now the final missing link is automatically executing this everytime you start your shell. Luckily there is a hook for this too. You can specify a batch file to run on each invocation by setting the following registry key.

[HKLM\SOFTWARE\Microsoft\Command Processor]
"AutoRun"="e:\\progs\\tools\\init.bat"


Now the final missing link is sharing histories across command shells. I usually open many command shells during work and often I want to execute the same commands which I executed in the other shells and I am not aware of any way to do this in cmd (similar to shralias in 4nt). If you know to get this to work in cmd, I would be eternally grateful for that information :))

Friday, June 24, 2005

On hyping things up...

Learning to hype about what you do is a very useful thing. At the same time it is an art which is fairly hard to learn. I realise this everytime I see my resume :). So in an effort to someday have a better sounding resume, I am thinking about this fine skill. Here are some examples to get started:
  1. "I have been adding 'fault tolerance' in my code"

    Any unskilled person will think that you are referring to some failover of service instances or redundancy or some such thing. But if you are creative you can use the same statement for plain old 'error handling' :) where you expect something (server is open at port x) and it does not happen (it is down) and you handle it as appropriate. Contrast the above statement with "I fixed bug#xxxx where the client hung when the server was not up"

  2. I am working on loosely coupled distributed systems.

    This feels like you are building something like google search engine or amazon book store. Did it ever occur to you that this applies to building a client console (webservice or dcom) to any service.
Putting 1 and 2 together, you should not hesitate to say that you build "Distributed fault tolerant systems" as part of your daily job :)

Friday, June 17, 2005

Dotnet gotchas - 3

Synchronized collections are not synchronized on what you think they are, if you are coming from the java world. Consider the following piece of code:

Hashtable ht = Hashtable.Synchronized(new Hashtable());

addToTable(object o )
{
ht.Add(o, o);
}

processAll()
{
lock(ht)
{
// enumerate and do something with them. hold lock so that
// someone does not modify while you are enumerating...
}
}
The above code is incorrect since synchronised hashtables sync on an internal object called SyncRoot and not on the object itself!!

Thursday, June 16, 2005

Crores and companies...

Recently I took a ride home from one of my dad's friend who happens to be an industrialist. As is the case with these elderly people, he started talking about life and money. He started with how so many people have made a lot of money in real estate in the hi-tech area and how he was a happier person than someone having 500 crores.

He wondered, "When all you need to live comfortably is 5 crores so why would anyone want more ? It is not as if these big people can even spend money - they have diabetes, bp, what not...! Most become obsessed with money and they dont even feel like spending on domestic help like a driver, gardener, cook, assistant etc.. but the person who makes even 1 crore/year in a company - like a General Manager is much happier since he automatically gets all the perks mentioned above in addition to staying in 5 star hotels whenever he goes on official visits ......"

The scale at which he was talking felt pretty wierd to me :). It looks like everyone, be it a govt employee, an IT professional or an industrialist, thinks they belong to the lower middle class :).

Something equally wierd happened at office today, but that is a post for a later time...

Friday, June 10, 2005

Dotnet gotchas - 2

XML (ha ha ha, it had to come somewhere isn't it) serialization is not symmetric when you have custom collections (.net 1.1). Say u have a class called (psudocode only..)
public class Dummy
{
[XmlElement("Name")]
public string a = "dummy";

[XmlArray("Things")]
public MyCollection col = null;

public Ha(){}
}
When you create an instance of a class and deserialize it you get an xml like
<Dummy>
<Name>dummy</Name>
</Dummy>
Now when you deserialize it you expect to get a equivalent object obj1 with a initialized to "dummy" and col to null. However, what you actually get for col field is an "empty collection" object!! So if you are testing your webservice (this joke had to come somewhere too :) ), a save retrieve sequence will get you an object which is slightly different from what you are expecting (it is a different issue that the webservice can never see null since the transport is xml serialization)!

Thursday, June 09, 2005

Dotnet gotchas - 1

So I have finally moved into the new team and it happens to be milestone exit time.. and in all their magnanimity they handled me several dumps to look at :). The next few blogs will be about what I have learnt this last week...(assuming that we exit this week).

Contrary to popular opinion and appearances - Thread aborts can abort finally blocks in .net 1.1 !! This is actually documented in msdn! so code like

lock(this)
{
blah...
}
can fail to release the lock in case of thread abort leaving an orphaned SyncBlk. You can expect the rest of the app worker threads to slowly hit this region and hang.

What makes this even more interesting is that web services extensions (wse) merrily abort threads on timeouts :)

Thursday, May 26, 2005

Interesting puzzles - 5

Here's one I heard from a junior:

You have a chessboard of side length 2^n. An arbitrary unit square is removed from this board. Is it possible to tile the remaining chessboard with L shaped tiles having 3 unit squares each (as shown in the figure below).

_
| |_
|___|

Sunday, May 15, 2005

Back ...

So I am back to blogging after a great break to Tiruppur and some busy work with some internal deadlines.

On a work related note, I will be moving to the RFID group here.

If you like python and puzzles you must have a look at python challenge. Naturally they are python centric (python module names in hints and the like..). Download the python imaging library before you start :). I am at level 16 now and can give additional hints if necessary ;)

Thursday, April 21, 2005

Search history...

Started using Search History. Wonder how I got along without it till now!

Speaking of google they does use their adsense well. Try searching for Udi Manber and see the ads :)

Interesting...
"Just as the U.S. wants to see a strong and democratic Russia, we want to see a strong and democratic U.S. that acts in the international arena jointly with other states and with respect for international law,"

Wednesday, April 20, 2005

Random stuff

Too many are moving out of msft these days. minimsft documents a few of them ...

Noticed something very interesting - most of the Microsoft DEs worked at DEC sometime in their careers!

ACV has written a lot of cool humour stuff on his site

Saturday, April 16, 2005

Anagrams ....

You have dictionary words in a file. You are solving crosswords. You want to quickly find anagrams of a given word.
Perf requirements:
1. Load up time of a couple of seconds is acceptable (wordlist of ~50k which you can get from web)
2. Each anagram query should be fast say < 0.5 or 1 sec.

Here's how building the strucure would look in python. Reads like psuedo code but it works.. Pretty neat?

def sort(word):
l = list(word)
l.sort()
return "".join(l)

def anagrams(words):
ags = {}
for word in words:
sw = sort(word)
ags.setdefault(sw, []).append(word)

return dict([(x,y) for (x,y) in ags.iteritems() if len(y) > 1])

if __name__ == "__main__":
words = open("wordlist.txt").readlines()
words = [word.strip() for word in words]
rs = anagrams(words)
print len(rs)

If you think about it your first reaction would be - but it would be **so** slow :)). But you know what? It satisfies the requirements and takes a fraction of time to write than in C.

Thursday, April 14, 2005

Applying to MS US...

Here's a quick tip that I got from a friend who was having a hard time with the careers page. If you are from an applications company with a lot of java exp etc..., just go ahead choose ur title and location, type java in the search box and there you go :)...

Saturday, April 02, 2005

Analogies..

Been reading around quite a bit and one thing I have noticed is that most people like to talk about software development in terms of analogies. Some see it as painting, some see it as gardening, others view games as valid models for software projects (!).

So why is this the case? The person who is making the analogy does not know what he is talking about, the person who is reading does not know what the analogy is about, but it gives everyone a warm fuzzy feeling :) and an illusion of having understood something they have no clue about. It spares everyone from having to face everyday software development - with all its non-analogical realities :P

Tuesday, March 01, 2005

p2p ...

Going through Vishal's interesting My Right To Crib post I wonder if I am doing justice to my blog by cribbing very little :).

There is this interesting chap minimsft who looks like an expert in this category...

Recently checked out bittorrent as another example of a great practical p2p app. The paper has more details. I just can't believe the kind of stuff people build and put up for free on the net....

Monday, February 28, 2005

Interesting puzzles - 4

This was one of the first question they asked during ragging at college :)

A person is on a round the world trip on a hot air balloon and at 3 random points of his journey he drops a ball. What is the probablity that all the 3 balls are on the same hemisphere?

Tuesday, February 22, 2005

p2p Ramblings...

P2P software has caught my interest these days (the techy aspects, not file sharing). The primary reason being skype, that I have started using recently to talk to my brother in US. The quality of voice is *much much* better than an ordinary phone. I can even hear the other party typing :) and whats more - computer to computer is free ! With 70+ million downloads, I wonder why it has not being bought over by the biggies yet :)

Been browsing around reading up on related stuff and found these with really nice ideas:

How ants find their food
P2P communication over NATs/firewalls

Sunday, February 20, 2005

Interesting puzzles - 3

1000 people are standing in a circle. The thought police starts killing them alternately till just one is left. Who will be the remaining one? Solve it for a general N.

Elegant solutions get more marks :) [No induction please :)]

eg. if N = 5, ppl get killed in the following order 2 (skip 3),4 (skip 5),1 (skip 3 since 2 is longer there), 5. The survivor is 3.

Monday, February 07, 2005

BSNL Broadband 2

Turns out my previous blog on BSNL was overly pessimistic :). I have bsnl broadband up and running on my home machine now. Here's what needed to be done to get it working:

1. Go to a local office and apply for a connection (forget online)
2. They will call you in a couple of weeks informing that if you pay up, u will get a connection. Pay up
3. They will come and install the connection in a week or so. Stay around in case they have technical difficulties with your particular machine (actually just plugging a couple of cables and getting ur userid ...)

It is up almost always and I am pretty happy with the connection so far (256kbps).

Thursday, January 27, 2005

BSNL Broadband

After the recent announcements I eagerly applied online to get a connection. Then I got second thoughts and thought I should followup with customer care or whatever.

I called the customer-help number given on the registration form and here's how it went - I swear this is all true !! This is a traslation to english, but the hindi version would have been better...

Me : Call...
CSR : Yes..? (huh, I was expecting more along the lines of "This is XYZ from BSNL Customer Care, how may I help you?)
Me : Hello ?
CSR : Yes ..?
Me : Is this BSNL customer care?
CSR : Yes.
Me : I want to get a BSNL Broadband connection, how do I go about it ?
CSR : Where are you speaking from?
Me : Hi-tech city.
CSR : Where?
Me : (Realising that she was asking for the city) Hyderabad
CSR : Oh, Hyderabad? But it has already started there.
Me : Yes, but how do I go about getting a connection?
CSR : What's your name ?
Me : Kalyan Chakravarthy
CSR : Oh, you are a Bengali !!
Me : No, I am not. I am a local.
CSR : Really(starts laughing)? I thought only bengali's had such names.
Me : No madam, we also have such names.
CSR : Really, I did not know that !
Me : Ok, how do can I get a connection.
CSR : Oh, you have to find that out from a local office.
Me : Huh.. Ok, if I apply, how long will it take to get a connection?
CSR : Oh, it will happen very quickly. (Hmm.. this sounds suspicious)
Me : How quickly?
CSR : Very quickly ! ( God !!)
Me : Will I get a connection in one week ?
CSR : Hmm.. we can't really say. It is possible, but it will happen quickly.
Me : Will I get it in 2 weeks?
CSR : Hmm.. we cant really say. I give up at this stage
Me : Ok, thank you. I will call the local office and find out.
CSR : Its all right. (No thank you for calling BSNL stuff etc. :) )

So, I found the phone no. of the local office and called again and here goes..

CSR : Yes.. ??
Me : I want to get a BSNL Broadband connection, how do I go about it ?
CSR : You have to come and fill up a form.
Me : Can I apply online?
CSR : Hmm... you can apply but if you apply online, we have to download the form no ? (oh oh)
Me : How long will it take?
CSR : Oh, we are not giving any dates as of now (Huh!!)
Me : Ok, can I submit the form in hi-tech office.
CSR : Oh, you can ! If they take it. (!!!!)


I give up at this stage. I really dont think they will get around to giving connections anytime soon - they are just not ready and dont seem to have the competence to do it. It looks like a date driven publicity stunt.

This is sad since all the other cable "broadband providers" here suck big time as well.

Monday, January 17, 2005

Rediff Bol

Rediff has released its alpha version of Rediff Bol. It is a cool messenger with indian themes, avatars, smileys and what not.

Well, what makes this special? It was done by my friends :). I discussed with them and they took around 3 months to do this with 3 ppl.

Imagine getting this kind of stuff done in a bigger company with all the overheads of legal, internalization, signoff, reviews, long RI processes, branding limitiations, integration stories (passport :) and hotmail), ding, dong and what not .... I wonder how long msn/yahoo took to get done.

It uses a different approach to communication, so voice works through firewall clients when yahoo merrily fails etc.. Pretty good stuff. More detailed review to come soon...

Thursday, January 13, 2005

Interesting Puzzles - 2

Let f(n) = no of ones required to write numbers from 0 to n. Find the smallest n > 1 such that f(n) = n.

Updating with MN's addition:

Let S = {n | f(n) = n}. Prove: S is finite. Find: |S|

Ah, the good old college days :). If this seems vague or wierd, lookup CLR on complexity analysis.

Tuesday, January 11, 2005

Desktop search tools

Everyone seems to jumping onto the desktop search space - google, yahoo, msn.

The main download pages seem to be getting progressively better from the days of lengthy 6 page registrations (with forms which dont remember history if there is an error). Who do you think needs to catch up on their User Interface?

Friday, January 07, 2005

Interesting Puzzles- 1

Here's an interesting one I heard long time back:

There are 3 closed doors. Behind one of them you have a car, nothing behind the other two. Now you play the game as follows:

1. You choose a door (say door 1)
2. The game owner opens a door from the other two which is empty (say door 2)
3. You are given a choice of changing your choice (to door 3).

Are you better off changing your choice or not? The answer is pretty non-intuitive :)

Thursday, January 06, 2005

IQ's dilemma
Towards the end of our Btech at IIT, we used to have a lot of the usual discussions about the future and where we are going to settle down, whether we are ever going to come back to India etc. IQ was one who seemed to have a clear idea of what he wanted in life. His strategy was simple:
  1. Go to US for a Masters at a decent college
  2. Get to one of the bigger companies
  3. Save a sum of Rs 10 million over a few years
  4. Return to India and live a life of comfort and luxury

I thought that it was a great strategy except that reality is very different from what it was then. IQ always had plans of coming to Hyderabad and joining a job of leisure and comfort :). He recently had a chat with me about this and I had to unfortunately shatter his dreams of living like the Nawab of Hyderabad. This followed from a few simple observations:

  1. Being a megalomaniac IQ is not going to settle for anything below the very best.
  2. The top end apartment complexes today cost around 8 million
  3. A top car will cost a million
  4. Other expenses from furniture... etc

So where does that leave poor (rich?) IQ?
I don't know. Perhaps he will be a victim of the x = x + 1 syndrome where x is the no of crores he will save before he comes back.