Monday, December 26, 2005

Expelling people's representatives, in style.

A while ago, Aniruddha Bahal and gang found out how easy it is to get Indian parliamentary representatives to ask questions for money. Apparently, it was rather easy. Obviously, people were rather unhappy that their representatives were so easily convinced to ask spurious questions, instead of doing their job.

The great twist in this tale is that the Indian parliament has thrown these eleven representatives out. I applaud the parliament for showing that such behavior was not to be tolerated.

The eleven vacancies in the houses (10 in the lower house, and one in the upper house) will be filled by fresh elections. The consituents will know that their representatives were caught with their hands in the cookie jar, with their pants down and all that.

If you are an Indian, use this opportunity to say, "Take that, China!" (But not with hatred though, the Chinese are a very lovely people.)

Friday, December 23, 2005

Moral policing is wrong

There is a big discussion going on in India about moral policing. Some policemen in Meerut (a town in Uttar Pradesh) went on a policing rampage, and beat up a few couples. This sort of stuff rears its head once in a while, and we must prevent this from happening again.


In Bombay, a politician called Pramod Navalkar first started such madness: prohibiting couples from gathering at the beachfront, and in public parks. He was completely against the youth cuddling, hugging, and the like, especially in public places. And since he was a part of the majority party in Bombay, he could rope in the police to implement these questionable ideas.

This policing is carried out almost everywhere, either explicitly or implicitly. Colleges in Bombay have explicit dress codes, and those run by priests are hit the hardest. In a park in Hiranandani Gardens, Powai: a guard once asked me not to walk alongside my girlfriend or hold her hand as we were walking. Just to prove that he couldn't enforce this, I continued holding her hand, walking alongside her. He fumed, but could do nothing. In this situation I was lucky, as the Hiranandani guards have brutally beaten up a kid in the past. (It was over a suspicion of using wrong tokens in game machines.)

It is plain wrong to police such behavior, since it is not illegal.

It takes the police away from their real work: enforcing law and order. It also takes the politicians away from their real work: making laws for its citizens.

Even if you are against cuddling in public, imagine how much damage this kind of policing can do. Imagine if the police could enforce dress codes, and prevent women from wearing red socks. Or enforce that all men must wear hats. The function of the police is to enforce the law, and allowing them to enforce morals instead is a very bad idea.

Thursday, December 15, 2005

What stratagus and bos taught me

I was looking up Linux games today, in the vain hope of getting my Command and Conquer (CnC) game to work under Linux. First I tried looking up Wine's database of compatibility, and then Cedega's. Then I chanced on Battle of Survival, a game that uses Stratagus' engine to make a CnC clone. And now I'm going to forget about CnC altogether. It's bos and stratagus for me now. They're where my next $20 bill is going.

So why did the programmers behind bos and stratagus spend their time reinventing the wheel? Why are there so many Open Source applications that are clones of existing software?

Because software manufacturers refuse to release these games for Linux. The sum total of CnC Red Alert 2 earning to Westwood in 2005 must be a little under $23.70, and yet there is no attempt to release it for Linux or release source code. As such, people who want a similar game must reinvent the wheel. OpenOffice, and KOffice both spring due to a big gap in Linux applications.

Doom's release as source by Id Software prompted a flurry of developer activity. It runs on the Ipod nano now, by the way. Yes, we love Id Software: true pioneers both in software design and release. People didn't go about making another Doom clone, but they built upon existing code. When this facility to build is missing, developers are forced to start from scratch.

I wrote about Wesnoth earlier, the game is marvelous! Yesterday Neha and played it while a DVD (Gandhi: a lovely movie) was ripping in the background, and I was downloading OpenOffice source. The gameplay didn't suffer in the least! And on more than one occasion we were thinking of our White Mage while having dinner.

I'm going to only buy games that run in Linux in addition to Windows or Mac. Windows only games have a bad habit of not working after a few years. Westwood gets no presents this Christmas: they've been very bad!

So my list of Linux games now is quite complete: OpenTTD, Monkey Island 1, 2, and 3 through ScummVM, Stratagus+bos, and my beloved Wesnoth. What a wonderful world we live in!

Tuesday, December 13, 2005

The RIAA song

Zug.com is a super funny site, but their RIAA prank is a masterpiece.

I read somewhere that good humor is always a bit painful, which is so true of this prank. Considering how diffcult it is to buy legal DRM-free music, on all platforms, the situation is painfully funny. Zug main-man John Hargrave calls the RIAA, Apple, and Record Studios looking to legally buy music, and finds that it is impossible. But you can get sued.

To complete the picture, there is a free song available, making fun of the RIAA. The lyrics are also free, and all mashups are free too. I plan to play this song at the beginning of every party I host... Go get the song, it is pure brilliance.

The song ends with "...there's 60 million of us".

Sunday, December 11, 2005

What project should I do?

Students in high school and college (10th, 12th, BSc) that take programming courses end up with programming projects as a part of the course. These projects merit between a fortnight and six months depending on the course and the level of study. The goal of these projects is to give students a taste of real world development. Invariably, students end up choosing something banal: another email client in Java, or a web server. While there is some benefit to writing those programs as educational experiences, I think in the frame of real-world projects, such programs do more harm than good.

For one, most real world programming is incremental. You have to add to existing code, or maintain existing code, and the opportunities to rewrite the system from scratch are rare. If there is a bug in the communication library, you cannot propose to rewrite the entire library: you are going to have to find the bug and fix it. You have to learn how to read existing code, perhaps in the absence of the original author to explain it to you. You're lucky if you find the code well documented. Writing another small program in the hopes that it is similar to a real project is delusion. This explains why so many new programmers are bad at finding bugs: they've never done it before. And if their system had a bug, they had the luxury to rewrite it. But teachers at that teaching level haven't worked at programming jobs earlier and so they don't know this. And students, having only read about blazing mavericks like Steve Wozniak and Linus Torvalds are too young to know it. Good programming is not just acquired by writing good programs, but also reading good ones: just like poetry or art.

Another problem is that students forget that programs exist to solve a problem. If a developer scratches an itch, it is because the itch is so damn annoying in the first place. Linus certainly felt so when he wrote the kernel. Most student projects end up being completely useless: even to the authors. This explains why the students are so unmotivated, and the final product is so unpalatable.

To be honest, all these issues are new, and I doubt very much thought has been given to it. And most people are only beginning to get aware about the wealth of good code available due to Free and Open Source Software.

I think a marvelous project would be to take existing software and modify it. You could track down and eliminate a particular Apache bug, for instance. That would teach a lot more about the working of a complex system. The code is all out there for the looking, so you don't have to ask anyone's permission. And when you fix a bug, nobody asks you how old you are, or which country you come from.

Or students could work on open source bounties, which are all bite-sized projects, focus on a particular problem that people need a solution for, and put the work to good use. It puts you in charge of real world programming, allows you to interact with real developers, and get a flavor for product development. And you get paid to do it!

Aside from getting recognition for your work, you get to see how important it is to collaborate with others, to see their point of view, and to defend your idea when you are correct. And your resume shines when companies see that you patched a severe bug in Apache (when you were only 16!).

This would be much harder than writing that make-believe web server, for sure. The hardest part would be knowing the existing codebase, understanding the domain, and learning how to solve a real problem. But once you know those, the programming itself wouldn't be very much different from the make-believe examples. Then again, the rewards are well worth the additional effort.

I did my fair share of the make-believe projects when I was young which is why I know all about them. If my teachers had the insight to point me to Sourceforge or Berlios, I would have learnt a few important lessons earlier.

Platform hoax indeed!

It is rare when one comes across articles that sum up the situation in very clear terms. Greg Gianforte has written this clear piece about the platform hoax, which is a clear view of the madness prevailing in the computer world.

If commercial vendors really are adding value as they claim they are, why isn't there a Microsoft Office for Linux? Since they already have a version that runs on a Unix derivative: how much longer before they port it to Linux? Never. And that's because "Windows is what this company is about".

I'm tired of this platform rubbish. The Mac platform versus the PC platform versus the Linux platform. Let people move between these effortlessly. Make a Firefox, which runs across the board. Make an Apache, which works on Windows as well. I'm tired of Monopoly Office, and Artistic iTunes. Use Java if you absolutely must, even though Java by itself is not the answer.

By the way, The Battle for Wesnoth is awesome. And it is available for Linux, Windows, and Mac OS X.

Wednesday, December 07, 2005

The new-computer market is uninteresting!

People are often surprised when they find out about my primary machine. Isn't it too slow? Celeron, yech! For some reason, everyone wants me to buy another computer, soon.

What I don't tell people is that it is also my girlfriend's primary machine. We usually work on it simultaneously, she running reasonably sized R jobs, while I grind some matrices from grids. And when I say simultaneously, I mean we are both logged in with separate displays and keyboard/mice, and are interacting with the machine at the same time. Often, at the same time, my computer is engaging in some fairly largish downloads, perhaps uploads, posting webcam pictures, running my webserver, periodically fetching mail and chewing spam. It is entirely normal to have the computer stay switched on for a week or so at a time, with some program running through the night as well. 7Gb uploads are normal. Writing 100+ data DVDs is normal. You get my drift.

I bought this machine last year at a measly price, and have spent nothing more to maintain it. My overall estimate of the price of this setup is $400. This sum is a one-time cost.
Think about that again. From the time I setup this computer, I have spent only $400 on it. (Not including the cost of the 200 or so DVD-Rs that I have gone through.) I bought this machine used, and the price I paid isn't unreasonably low: many such computers are available at around $200-300.

For these reasons, the new computer market is very unattractive to me. For a fraction of the price, I get a very capable machine which I can use as my primary machine. I get a great deal, don't pay for OEM software I don't use (hint, hint) and save a machine going to a landfill. There are great deals on both desktops and laptops, and for Linux users, it is a buyer's market. People are just itching to dump their hardware because it stops serving them. If I need another machine, that's where I'm looking.

Sunday, December 04, 2005

We still Don't get it

Got to love rebates: the most demeaning form of customer abuse. To everyone outside the US, including third world countries that haven't heard of rebates: rebates are a way of cheapening the product temporarily so that people buy it. Sounds a lot like a sale, doesn't it? In my favorite third world country: when something was on sale, you paid less for it. Say a shoe normally cost Rs.800, and at a sale, you pay Rs.500 at the cashier. Simple, isn't it?

Well, apparently that is too tricky for most high tech retailers in the US. At the Thanksgiving sale, I bought a router which was on sale. However, instead of paying less, you still pay the full price. Then, you fill out three separate forms, filling in information such as your home address, your email address, and of course your sexual preference. Put in the receipts, the UPC code, and two copies of your birth certificate, passport, visa, SSN. Then, if the company agrees (and they might not), they will mail you a check which you deposit in a bank. Wow! Of what hardy material are the American shoppers built to take this kind of torture?

CompUSA has the happy slogan, "We got it. We get it." Quite unlikely. They too have rebates, though they'll let you fill them online! Whee, I can't contain my excitement. So I fill the form but apparently I have an invalid last name. (full image)