Monday, December 31, 2007

2007 year in review.

So 2007 goes away and 2008 comes in - the last post for the year . Its been a hectic year with this 58th blog post for the year (the maximum in the last 4 years of blogging !) , lots of trips to all parts of India- I've lost count but seem to have averaged atleast 1 trip to Bombay every month for sure - Finally managed to see Goa - drove my WagonR all over Western Maharashtra and to Hyderabad . The highlights ofcourse were the trips to Coorg and to Ottawa to attend the GCC summit.

Its been a very satisfying year at work . We internally worked on upgrading our private port of GCC to 4.3 trunk and contributing atleast bug reports to the open source community seems to have helped in improving the final performance of our compiler. Its now is very close to cycle counts from 3.4 and is infinitely better in terms of code size ! . Pretty neat achievement for our team at work .

Playing cricket for possibly the last time in India during the new year. There's an inter IT tournament coming up and we'll be participating and I hope to be playing for sometime. Come the new year and there are lots of changes pending in life . So lets see how it goes.

Sunday, December 30, 2007

Go Goa !


Go Goa , or viva la Goa as you might put it in French ! Having heard a lot about how Goa is different from any other place in India , I'd decided that I would jump on the next opportunity to visit Goa which is exactly what I did on what was a hectic 3 day trip to Goa . The beaches are quite phenomenal with truly white and clean sand , no dirt, friendly people and very good water. We stayed at a place called Majorda and had a private beach to ourselves which was cool though we did visit Bagha and Calingute later at  night to see the public beaches. Goa parties like it is no one's business and 24 hours a day. When we were leaving Bagha to return to our hotel at 1 in the morning folks were still streaming in and all decked up to have a party . Just walking around and soaking the atmosphere was quite an experience in itself.

Driving to and from Goa was a novel experience given the fact that you had single lane'd roads for highway lined with trees, breathtaking ghats on either side of the road. But wait , what's the catch - buses and trucks and the odd Santro motoring along with what seemed to be single minded determination to run us off the road . Add to this motley crew a driver who thought himself to be the Indian version of Juan Pablo Montoya, a Toyota Qualis substituting the F1 car and the dirt track from Nippani to Sawantwadi in place of Imola and a whole car full of enthusiastic folks , you had the right ingredients for a heady time.



Monday, December 24, 2007

Merry Christmas and the new year arrives.

So Ho ho ho and all that, 2007 has been an eventful year more so than 2006 and 2008 promises to be even more interesting. Looking forward to the new year by celebrating it with Bobs and gang at Not Just Jazz by the bay . In addition there is a quick 2 day trip to Goa on the cards - lets see - depending on how much work one finishes today I'll be able to steal some time to visit Goa finally. Having never visited Goa and hearing everyone go on about it and how beautiful it is to visit especially during new year's - I've gone ahead and agreed to join V and gang on a road trip to Goa. ! Now thats gonna be interesting given that there's going to be a huge gang of us going over to Goa and all of us being a really diverse lot . Fun times ahead till the new year.

Monday, December 17, 2007

India Darshan and tortoises.

The conference in Kanpur was super cool for a variety of reasons including the talks that one got to hear from virtually the gurus of Computer and Compiler science :) . The other reason why Kanpur was cool was because of the weather. It is freezing cold in Kanpur , the sun rises at 6:45 in the morning and sets by 4:45 in the evening. By 5:30 its pitch dark and afterwards roaming outside in the cold weather is quite an act of bravery for a person not used to such cold dry climes. The wind is chill and hits you as though there are knives about in the air.

The train journeys to and from Kanpur were very interesting both of them were epitomes of why the Indian Railways will always remain very effective and punctual here and in the South of India but never in the North of India. The jury is still out on the East of India but looking at when trains from the North - East and the East arrive in Madras or even in Pune (atleast 8 hours late !) . Trivandrum - Guwahati 12 hours late. In any case while going forth self had a first a.c. ticket for a train known as Pushpak Express which was before time at all stations till the Rani of Jhansi started delaying it on its path to Kanpur with the result that it reached an hour late. Travelling in first class with a director of the railways (with whom I had rather interesting conversation regarding how good or bad the railways really were ) was an educational and comfortable experience with the attendants pretty much fawning on us. The return journey was by a train called the Awadh Express that comes all the way from Gorakhpur and comes to Bombay after almost going almost as far north as Delhi (it crawls through Agra so you might as well say thats close to Delhi) . So to come essentially south west as the crow flies , I was on a train that was going all the way around India by first going North , then west, then North West and finally south , south west and south east . This was also quite educational because this is when I learnt the virtue of patience and accepting a situation where one can never have enough.

Tuesday, December 11, 2007

So the travel continues...

Just about finishing work to leave for Kanpur to attend a compiler's conference at IIT Kanpur - its going to be cold and also a lonesome train journey after a long long time. Also getting a first class ticket thanks to there being no other direct way of getting there by air is going to prove to be some fun. Work's been hectic trying to figure out a way to sort out a GCC bug with the loop optimizers in making it generate better code for machines with zero overhead loop instructions.

So with all this it sure is going to prove to be a welcome break to smell the roses as they say !

Sawai Gandharva at long last.

After nearly 8 long years in the city of Pune finally found the time, energy to push myself to go listen to a concert in the Sawai Gandharva music festival. It was Pandit Hariprasad Chaurasia playing the flute to a packed audience of nearly 15000 in a ground. People were somehow packed into the ground , sitting and standing and in odd positions . I heard the entire concert standing in an area where we were packed like the proverbial sardines in a tin can.

The master started with a raga in the hindustani mould (I forget its name other than the fact that it started with a J) , reached a crescendo with Vachaspati which is a raaga from Carnatic music featuring a jugalbandhi with the tabla which was awesome to hear. The final raga that he started playing as I left to pick my niece ( who decided to run for the Pune district at Ahmednagar) from the bus stop. was Pahadi. Having heard this in the past and knowing what magic it leaves with the listener I was quite loathe to leave the place but then duty called...

This really is one of the few things that I haven't enjoyed in Pune and finally even that has been completed.

Monday, December 10, 2007

Murphy's laws of Computer Science

Recently my uncle (newly introduced to the world of programming) sent me a link with murphy's laws of computer science.

  • Any given program, when running, is obsolete.
  • Any given program costs more and takes longer each time it is run.
  • If a program is useful, it will have to be changed.
  • If a program is useless, it will have to be documented.
  • Any given program will expand to fill all the available memory.
  • The value of a program is inversely proportional to the weight of its output.
  • Program complexity grows until it exceeds the capability of the programmer who must maintain it.
  • Every non- trivial program has at least one bug
    Corollary 1 - A sufficient condition for program triviality is that it have no bugs.
    Corollary 2 - At least one bug will be observed after the author leaves the organization.
  • Bugs will appear in one part of a working program when another 'unrelated' part is modified.
  • The subtlest bugs cause the greatest damage and problems.
    Corollary - A subtle bug will modify storage thereby masquerading as some other problem.
  • Lulled into Security Law
    A 'debugged' program that crashes will wipe out source files on storage devices when there is the least available backup.
  • A hardware failure will cause system software to crash, and the customer engineer will blame the programmer.
  • A system software crash will cause hardware to act strangely and the programmers will blame the customer engineer.
  • Undetectable errors are infinite in variety, in contrast to detectable errors, which by definition are limited.
  • Adding manpower to a late software project makes it later.
  • Make it possible for programmers to write programs in English, and you will find that programmers can not write in English.
  • The documented interfaces between standard software modules will have undocumented quirks.
  • The probability of a hardware failure disappearing is inversely proportional to the distance between the computer and the customer engineer.
  • A working program is one that has only unobserved bugs.
  • No matter how many resources you have, it is never enough.
  • Any cool program always requires more memory than you have.
  • When you finally buy enough memory, you will not have enough disk space.
  • Disks are always full. It is futile to try to get more disk space. Data expands to fill any void.
  • If a program actually fits in memory and has enough disk space, it is guaranteed to crash.
  • If such a program has not crashed yet, it is waiting for a critical moment before it crashes.
  • No matter how good of a deal you get on computer components, the price will always drop immediately after the purchase.
  • All components become obsolete.
  • The speed with which components become obsolete is directly proportional to the price of the component.
  • Software bugs are impossible to detect by anybody except the end user.
  • The maintenance engineer will never have seen a model quite like yours before.
  • It is axiomatic that any spares required will have just been discontinued and will be no longer in stock.
  • Any VDU, from the cheapest to the most expensive, will protect a twenty cent fuse by blowing first.
  • Any manufacturer making his warranties dependent upon the device being earthed will only supply power cabling with two wires.
  • If a circuit requires n components, then there will be only n - 1 components in locally-held stocks.
  • A failure in a device will never appear until it has passed final inspection.
  • Adding manpower to a late software project makes it later.
  • A program generator creates programs that are more buggy than the program generator.
  • All Constants are Variables.
    Sent by Risto Matikainen
  • Constants aren't
  • Variables won't
    The last two laws were sent by Hnathoo
  • A part dropped from the workbench will roll to a degree of un-reachability proportional to its importance.
    Sent by Neal Buddenberg
  • In a transistor circuit protected by a fuse, the transistor will always blow to protect the fuse.
    Sent by Neal Buddenberg
  • The best way to see your boss is to access the internet.
    Or...
    No matter how hard you work, the boss will only appear when you access the internet.
  • The hard drive on your computer will only crash when it contains vital information that has not been backed up.
    The last two laws were sent by Charles L. Mays
  • Computers don't make errors-What they do they do on purpose.
    Sent by Terry Jaster
  • If Murphy's laws are so true then how come I can log onto this site and submi............
    [connection reset - error message 928 ]
    Sent by Paul Breen
  • Gumption's Law (?)
    Any problem, no matter how complex, can be found by simple inspection.
    Corollary: A nagging intruder with unsought advice will spot it immediately.
    Sent by Ray Geist who found it handy when he was debugging computer code.
  • Each computer code has five bugs, and tis number does not depend on how many bugs have been already found (it is conservative).
    Sent by Andrew
  • Profanity is one language all computer users know.
    Sent by Jeff Webb
  • The number of bugs always exceeds the number of lines found in a program.
    Sent by Yaron Budowski
  • The most ominous words for those using computers: "Daddy, what does 'Now formatting Drive C mean'?"
    Sent by Yael Dragwyla
  • When putting something into memory, always remember where you put it.
    Sent by Paul Pigott
  • Every non-trivial program contains at least one bug.
  • Every non-trivial program can be simplified by at least one line of code.
    The conclusion of the last two laws: Every non trivial program can be simplified to one line of code, and it will contain a bug.
    Sent by Brandon Aiken
  • An expert is someone brought in at the last minute to share the blame.
    Sent by Bassey Essien.
  • Debugging is at least twice as hard as writing the program in the first place.
    So if your code is as clever as you can possibly make it, then by definition you're not smart enough to debug it.
    Sent by Brian Kernighan
  • Bahaman's Law:
    for any given software, the moment you manage to master it, a new version appears.
    Sent by Bahaman.
    Yakko's addition:
    The new version always manages to change the one feature you need most.
    Sent by Yakko
  • Patches - don't.
    Sent by Doru Tasca
  • Most computer errors can be attributed to a similar problem - a screw loose behind the keyboard.
  • Whenever you need a crucial file from the server, the network will be down.
  • Whenever you need a crucial file from your hard drive, your computer will crash.
  • E-mailed tasking will always come just before you log off.
  • A quarantined virus - will be opened.
  • A chain letter - will be sent. To global. A dozen times.
  • The chance of a virus infecting your network is directly proportional to the amount of damage it does.
  • The chances of getting off work on time is inversely proportional to how much e-mail the boss leaves for until end of the day.
  • The faster you need a hardcopy, the more people will be using the only office printer.
  • General Fault Errors are the "Check Engine" light of computers. If it can be fixed, chances are it's not by you.
  • A patch is a piece of software which replaces old bugs with new bugs.
  • The chances of a program doing what it's supposed to do is inversely proportional to the number of lines of code used to write it.
    The last twelve laws were sent by Ryan Sylvester
  • The probability of forgetting your password is directly proportional to the frequency of changing it.
  • No matter how fantastic your latest and greatest PC is, you will be able to buy it for half the price in 12 months.
    The last two laws were sent by Zain
  • The longer it takes to download a program the more likely it won't run.
    Sent by Skwirl
  • Failure is not an option, it's included with the software.
    Sent by Paul
  • A program is good when it's bug free - which is impossible.
    Sent by Hans van Rijsse
  • If you forget to save you're work every 5 minutes, it will break down after you've been at it for an hour.
    Sent by Eric Guilbault
  • It's not a bug, it's an undocumented feature.
  • The amount of time taken to successfully complete a software project is in direct proportion to the amount of Marketing input.
    Corollary: Marketing should not be located in the same city - much less on the same campus - as Engineering and/or Programming.
  • The only thing worse than an end-user without a clue is an end-user who has a clue - usually the wrong one.
  • According to most Tech Support people, the most common user error message (regardless of Operating System) is ID 10T.
    End-users' Corollary 1: most application failures occur between the hours of 2 and 4 am on a Sunday night - with a 6 am Monday deadline for the project.
    End-users' Corollary 2: On the graveyard shift, there's no Tech Support to hear you scream!
    The last four laws and corollaries were sent by Jim Kirk
  • Bugs mysteriously appear when you say, "Watch this!"
    corollary: If you call another programmer over to see if he knows what's wrong the bug disappears.
    The corollary was sent by S. Bussell.
  • The probability of bugs appearing is directly proportional to the number and importance of people watching.
    The last two laws were sent by Bill Smith.
  • An employee rank is in inverse proportion to his use of a computer, and in proportion to its performance.
    Sent by Dan Wasson
  • The only program that runs perfectly every time, is a virus
    Sent by DaRk_jAcKaL
  • If a project is completed on schedule, it wasn't debugged properly.
  • Non Crash Operating System aren't.
  • The worst bugs in your program will show up only during the final review.
    The last three laws were sent by Kiran
  • The people who say that computers are simple to use are the same people who tell you how to build a watch when you ask what time it is.
    Sent by Jack Betz
  • Philington's First Law
    If it works, it's production. If it doesn't, it's a test.
  • Philington's Second Law
    Real programmers don't comment their code. If it was hard to write, it should be hard to understand.
    The last two laws were sent by Philip Partington
  • Format C: fixes all
    Sent by Ron Westby
  • Law of Computer Generated Aerodynamics
    Computers suck.
  • Law of Recycling
    A computer that has been on the market for 6 weeks is still usable as a boat anchor.
  • Law of Anti-security
    The best way past a pesky security feature is a 13-year-old.
  • Law of Acceleration
    A computer that has surpassed its user's frustration capacity (FC) will accelerate downwards at 9.8 meters per second squared.
    The last four laws were sent by Timothy Boilard
  • Computers let you waste time efficiently
    Sent by Jim F.
  • Make a system even a moron can use and a moron will use it.
  • Make one that requires training or intelligence and only a moron will use it, but there will be more help desk calls.
    Sent by S. Bussell
  • The likelihood of problems occurring is inversely proportional to the amount of time remaining before the deadline.
  • You will always discover errors in your work after you have printed/submitted it.
    The last two laws were sent by Niels Hageman
  • 90% of a programmer errors come from data from other programmers.
    Sent by Emanuel
  • 'Illegal Error' messages only happen when you forget to save your work
    Sent by Abdul Mohsin
  • If you make the letters in your Word document bigger and then you print it out, you'll have everything on the first page and only one line on the second.
    Sent by Nadine
  • the OEM did not actually manufacture the part you need to replace
    Sent by Bryan Lord
  • By the time you learn your new computer you'll need a new one.
    Sent by romanaround
  • After a software is released, the first bug found will be by a person who normally does not use that portion of the program but was wondering why he can't do something he normally would not do.
    Sent by Rick G.
  • When the Downloading Window says "99%complete", there will be a fluctuation in the voltage and you'll have to start all over again.
    Sent by Sagar Kalantre
  • Millions of people believe they are animals, but I have yet to meet one that believe in Windows' stability. Even human stupidity has limits ;-)
    Sent by Sylvain Galibert
  • The troubleshooting guide contains the answer to every problem except yours.
    Sent by Jesse Janowiak
  • Plugins Law
    Whenever you install a group of plugins one by one just to find out which one can make your software work, you either haven't gotten the right one, or have accidentally skipped the right one or it has become the last one installed.
    Sent by Laudney Ren
  • No matter what problem you have with your computer - Its Always Microsoft's fault
    Corollary: If its not their fault - Blame them anyway :-)
    Sent by Andrei Keren
  • You will get disconnected from the Internet or experience a computer crash when you are downloading. If you don't experience one within 80% completion, then it will happen at 99%. If you do manage to get the file, then it will turn out to be completely useless and/or invalid.
    Sent by Hyung Jin Lee
  • You'll always receive an e-mail from a web site that you never visit before.
  • 75% of the bugs laws in this page can be applied to MS Windows (Any version).
    The last two laws were sent by Christian C
  • Auto Correct - isn't
  • Microsoft excel- doesn't
    the last two laws were sent by Alegna
  • If you need to shutdown your PC ASAP, It will restart.
  • The quickest way to shutdown a PC is to unplug it.
    Corollary: ACPI shutdown (sometimes faster to get to than the plug) does not always work.
    Corollary: ACPI shutdown will fail most frequently when you run the risk of being caught doing something.
    Corollaries were sent by Stravag
  • No matter how big a hard drive you buy, you'll need to double it in a year.
    the last three laws were sent by Pliaskos
  • Complete computer breakdown will happen shortly after the maintenance person has left.
    Sent by Jan Wenall
  • A virus will be erased when the hard drive crashes, making it useless for antivirus program to fix it.
    Sent by mitch
  • The problem always exists between one keyboard and it's respective chair.
    (On submission problem was insomnia... zzzzzz)
    Sent by Cpt_Anderson
  • A program that compile on the first run has an error in the algorithm
    Sent by Iavor Dimitrov
  • Edward V. Berard Law
    Walking on water and developing software to specification are easy as long as both are frozen.
    Sent by Andre Van Dun
  • The smaller the size of your email account, the more junk mail you will get
  • The boss will always come to your workspace when you accidentally open an adult link
  • The more pop-up screens you have, the more likely the boss will come by
    The last three laws were sent by Mark
  • A computer is only as smart as the person using it
  • If it ain't broke, Overclock it!
    The last two laws were sent by Michael Horvath
  • If you're in a hurry, your computer will crash, a hard drive will become corrupted, or your files will be erased. Any way, you're screwed if you have a deadline.
    Sent by Logan
  • Software Reliability:
    Investment in software reliability will increase until it exceeds the probable cost of errors.
    Sent by Bill Pramik
  • Computer sadism: When the computer causes physical or mental damage to a person and can't receive such a return favor (due to management rules).
  • Computer masochism: When a computer takes all the abuse you think you can give it and continues working as it should.
  • The sound of grinding metal or the sight of smoke coming from a case is a warning that you are trying to do too much with too little.
  • The survivability of a system is directly proportional to the price of the cooling system applied to it and inversely proportional to the amount of use it sees.
  • Antivirus systems only effectively work on a virus after given virus has passed its prime.
  • The most frightening of viruses is the virus you do not know is already there.
    The last six laws were sent by Stravag
  • The amount of damage that a string of code can do is inversely proportional to the length of the string
    Sent by Kit Balmer
  • You only receive instant messaging, when working on a project that's due instantly
    Sent by Keith
  • When designing a program to handle all possible dumb errors, nature creates a dumber user
    Sent by Rich Spejcher

Friday, December 07, 2007

GCC Traffic Week of 7th December 2007

This week had a continuation on the discussion regarding improving debug info at various optimization levels and the general consensus was that behaviour that caused code generation differences with and without using -g should be removed. This is a basic promise by GCC to its users and would result in a lot of things breaking in such a situation. It would be interesting to wait and watch on this space since it promises to improve things with debug info as well as try and define compromises with debug info and optimizations (as long as optimizers do not generate code dependent on debug info being turned on are not .) .

Dan Berlin started a huge thread about using git for the version control system and the space / time overheads with checking out a repository , keeping patches and generally using git instead of svn and / or mercurial. There is a huge thread that starts here and goes on to include the friendly neighbourhood folks from the git community in attempting to get git working on the gcc community. I've tried in the past using git with an internal CVS repository and given that I work only with relatively small history I haven't had the kinds of issues that folks are having on the lists.

However the scales are different and it would be interesting to see what is the kind of times I get using Mercurial to play with. Makes sense for a weekend project.

BTW the command line for Mercurial is hg, in some sense the chemical formula for Mercury .:) .