Sunday, January 29, 2006

The Cathedral and the Bazaar

I recently read "The Cathedral and the Bazaar". I liked the way Eric Raymond has effectively discussed the two models of s/w development or evolution which he aptly calls Cathedral and Bazaar models. In this essay Eric uses his own project fetchmail to substantiate how the Bazaar model of s/w development is much supperior to the Cathedral model. He also discusses about the things that need to be done to get an open source project off the blocks. I like his style of putting things accross. Some comments and extracts from this revolutionary essay
  • Given enough eyeballs all bugs are shallow. He dubs this as Linus's Law
  • Every good work of s/w starts by scratching a developers itch
  • Good programers know what to write, great ones know what to rewrite and reuse
  • Plan to throw one away, you will anyhow -- Brooks. This essay frequently refers to the theories of Brooks discussed in his book The Mythical ManMonth. Eric very cleverly explains how the Linux's successful model of development doesnot contradict some of Brook's theory.
  • If you want to get it right be ready to start over atleast once.
  • If you have right attitude interesting things will find you
  • When you lose interest in a program your last duty towards it is to hand it over to a competent person
  • Treating users as co-developers is the most hassle free route to rapid code development & effective debugging
  • He discusses 2 tier model of development i) Cathedral mode core ii) Bazzar mode toolbox. Examples of such projects are Emacs, MATLAB
  • Release early, release often and listen to your customers
  • He explains the theory of Knowledge of Masses. Averaged opinion of a mass of equally expert (or equally ignorant) observers is quite a bit more reliable a predictor than the opinion of a single randomly-chosen one of the observers. --Delphi's law
  • More users find more bugs
  • Make distinction between stable & cutting edge versions by the version number
  • He talks about advantages of having source-aware beta testers.
  • Adding more men to a late project makes it latter.-- Brook's Law. The Bazaar model doesnot violate Brook's law because it usually has a small core group of developers
  • Smart data structures and dumb code works a lot better than the other way around. This one is analogous to Brook's observation
  • If you treat your beta-testers as if they're your most valuable resource, they will respond by becoming your most valuable resource.
  • The next best thing to having good ideas is recognizing good ideas from your users. Sometimes the latter is better
  • Often, the most striking and innovative solutions come from realizing that your concept of the problem was wrong.
  • Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing more to take away.
  • Exploration essentially by diffusion, followed by exploitation mediated by a scalable communication mechanism :- is applicable to s/w world aswell
  • When your language is nowhere near Turing-complete, syntactic sugar can be your friend.
  • A security system is only as secure as its secret. Beware of pseudo-secrets
  • For Bazaar model to work well you should start from something & should be able to attract people
  • He also talks about Egoless Programming - developers not being territorial about their code
  • For the success of bazaar model "Severe effort of many converging wills" is required and not "principle of command".
  • More heads are better than one, if the coordinator is good and the communication medium is powerful like the internet
  • In closed commercial s/w development, people have to be motivated to do boring but necessary drudgework. Very True...
  • A happy programmer is one who is neither underutilized nor weighed down with ill-formulated goals and stressful process friction. Hope my manager looks at this :-)
  • Enjoyment predicts efficiency
  • Play is the most economically efficient way of creative work.
  • Open source is not magic pixie dust

Friday, January 27, 2006

India Rocks

I justed watched a program on CNN-IBN called India Rocks. It showcased some of the famous and upcoming music bands of India. Going by the theme of Republic Day all the songs which were aired were patriotic. This program was a bit hatke. Every song that was telecast was interlaced with the members of the band talking about the inspiration for the song and expressing their feelings of being proud of India. There were artists like rabbi, lucky ali, indian occean, euphoria etc.. Of these, the band Indian Occean was the most hatke in their music and lyrics. During the program, in between songs, people used to chant some praises for these bands and also express their deep patriotism. I am not trying to be sarcastic here, when i refer to being patriotic. I am also not expressing my angst against the innumerable patriotic movies / books / songs which are being thrown at us year after year. It always sells to be patriotic. It is one of the most touching rasa's of all. So it obviously makes sense to pluck some patriotic strings and take to the hearts of the people. After all these patriotic jibes, the program ended with a song from Rabbi in which he questions all the so called proud to be Indians what they were upto when Gujrat was burning in riots, when a man was shot dead for speaking truth... This man ( i don't remember his name) was the inspiration for this song by Rabbi and is honestly touching.

Saturday, January 07, 2006

Using ipod on Linux

GTKPod provides a Cross-platform multilingual interface to Apple's ipod. With gtkpod it is very easy to use ipod on linux:- 1. Create a directory /mnt/ipod 2. Mount ipod into this directory 3. Read from ipod using gtkpod 4. Add / Remove songs from the file / directory listing in gtkpod 5. Sync the new contents into the ipod 6. Unmount ipod and start listening to your favourite music If your music is in audio cds, then all you need is Grip to rip and encode it into mp3 format. Simple steps to rip a cd using grip:- 1. In Grip select the tracks to be ripped from the cd 2. In Config/Rip/Ripper tab you may choose [ grip (cdparanoia) ] as the ripper and provide suitable location and rip file format [ like ~/Music/Album/%n.wav ] 3. In Config/Encode/Encoder choose a suitable encoder
  • lame - for encoding mp3 files
  • oggenc - for encoding ogg vorbis files
4. You can also choose suitable location and Encode file format [ like ~/Music/Album/%n.mp3 ] 5. In Config/Encode/Options tab you can also give Location and M3U file format [ like ~/Music/Album.m3u ] 6. With all these settings done, from the Rip tab you can either
  • Rip only - to extract .wav files
  • Rip+Encode - to get .mp3 or .ogg files
From the ipod you can play .wav files or .mp3 files. To play .ogg vorbis files you have to choose other portable music players like iRiver... Some useful links:-
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.