Hari's Corner

Humour, comics, tech, law, software, reviews, essays, articles and HOWTOs intermingled with random philosophy now and then

Is tolerance a legal virtue?

Filed under: People and society by Hari
Posted on Tue, Aug 11, 2009 at 20:43 IST (last updated: Tue, Aug 11, 2009 @ 20:56 IST)

Recently I have been thinking about whether tolerance is really a virtue or a sign of weakness, specifically tolerance to infringement of one's personal or proprietorial rights.

In the legal world, Law of Torts is the technical term for that domain of civil litigation which deals with "wrongs" or legal damage to one caused by wrongful conduct or omission of another or others. This is a wide term covering the domain of trespass, conversion of goods, assault, battery, nuisance, damage caused by negligence, false imprisonment, fraud and everything in-between. In many legal systems around the world, some of these torts may amount to a crime as well. The key element here is that the wrongful conduct or omission may or may not be willful. In common law, the Law of Torts generally does not consider motive or intention except as aggravating or mitigating factors in assessing damages (there are some notable exceptions, of course). Motive or intention is of less importance than in criminal law.

Sadly though, most people are unaware of their rights - or even if they are, prefer to remain silent and suffer when those rights are infringed. I'm not saying that litigation should be the first step to solving any problem, but when there is a clear violation of a natural or legal right by another or others and such a violation is not trivial and causes considerable hardship, the Law should be invoked as a remedial tool.

The biggest problem is of course, the practical aspect. Most lay people are extremely hesitant about indulging in any kind of litigation, even when success is a highly probable outcome. This is understandable, especially in India, where civil litigation tends to drag on for ages (in some cases, decades) and there is a strong barrier to approaching the courts for speedy remedy and restitution of rights. And of course, tolerating a wrong is far easier than remedying it. But in cases where a wrong is continuous in time (like continuing trespass or nuisance) and the possibilities of compromise or self-help have been exhausted, the Law is the only option available. Indeed, tolerance under such circumstances is a sign of weakness and not approaching the courts in time may prejudice the case seriously against the plaintiff.

It appears to be cheaper to accept wrongs inflicted on our person or property especially when there is no explicit loss in monetary terms. What most don't realize is that in the long run it creates a barrier to effective remedy. As the latin maxim goes Vigilantibus non dormientibus aequitas subvenit (the law/equity assists the vigilant, not those who sleep over their rights).

Again, being seen as "tolerant" is a sign of weakness and may lead to further violations of your rights by others. For example, if you allow your neighbour to sing aloud at midnight and disturb your sleep without protest, it opens the doors to further assaults on your eardrums. In today's world, being meek is weak.

I am not advocating frivolous litigation, but in a country like India where awareness of personal and proprietorial rights is extremely low and the will/desire to stand up for them is even lower, basic legal education has to be made a part of the syllabus in schools. Otherwise, tolerance to wrongs will only increase and the violations of personal rights will only increase in magnitude and number.

Criminal justice is extremely important under any legal system, but civil justice administration is the best indicator of the social health of an emerging democratic nation where courts are the last resort and hope of justice for the common man.
Comments (3)  

An alien shooter game - in Python and pygame

Filed under: My software by Hari
Posted on Sat, Aug 8, 2009 at 11:32 IST (last updated: Sat, Aug 8, 2009 @ 13:32 IST)

I'm currently creating a classical arcade alien shooter game in python and pygame (just as a learning exercise). It's a lot of fun (and extremely easy!) to use pygame; I was able to write the basis of this game in a few hours and this includes the time taken for creating original graphics and original sound effects as well.

Here's a reduced screenshot:
Alien shooter game

And a video demo of the game in action:

The game itself is pretty easy to understand and play: shoot the alien spaceships that travel across the skies and the invaders that jump off them; don't allow more than 5 invaders to land! The game ends when you choose to quit or when 6 invaders manage touch the ground successfully.

I'll upload it on the software section after a few small enhancements like progressively adjusting the difficulty level to enhance gameplay. 8-)
Comments (4)  

Article on Object Oriented Programming I found interesting

Filed under: Software and Technology by Hari
Posted on Thu, Aug 6, 2009 at 20:58 IST (last updated: Thu, Aug 6, 2009 @ 21:21 IST)

For a long time as a part-time, hobbyist programmer I disliked object-oriented programming as a concept, but I couldn't really put my finger on one single aspect of it that I could point out as a cause for my annoyance/irritation with it.

I think this obscure article really captures my own feelings in a crystallized way:

Modeling the Real World (and read the other articles linked within as well)

The Noun vs. Verb-centric discussion is a really interesting subject in itself, as are forced abstractions. These are the two aspects discussed in the above article that really clinch the issue. I personally think that pure OOP introduces far more ambiguities in the "which method belongs to which class/object" than is worth the miniscule increase in structure or productivity.

Far too often in writing object-oriented programs, one runs into the dilemma of choosing the best way to share common data (which is very frequently encountered in most practical computing problems) between two unrelated classes and also deciding which class should "control" the data. An artificial complexity is created and even justified where none should exist at all.

In my book, a mixture of procedural programming with heavily isolated objects for specific purposes rocks for the simple reason that it is less verbose and more productive, and simply more fun for a hobbyist/non-professional programmer than wasting time and effort on "modelling" problems in pure OOP.
Comments (3)  

APT configuration GUI frontend - completed

Filed under: My software by Hari
Posted on Fri, Jul 31, 2009 at 21:42 IST (last updated: Fri, Jul 31, 2009 @ 21:53 IST)

I've finished creating an APT configuration GUI for Debian and Debian-based distributions.

It's called Qaptan and is developed using Python/Qt4 and is meant for "power" users who wish to customize the default settings of their package management system. It doesn't touch any system files by itself, but merely allows the end user to generate a configuration file which can be copied over to /etc/apt/apt.conf.

I wrote it because I felt that quite a few useful configuration settings of the APT packaging system are hidden deep in the manual pages and it can be quite tedious to figure out how exactly to get APT to change its default behaviour.

Be warned though! This GUI exposes some very powerful and potentially dangerous options. I thought long and hard whether to include such settings or not, but in the end, I decided to leave them in. Use wisely and carefully. Remember the old Debian saying: if anything breaks, you get both the pieces. :-P

Seriously though, if you find any bugs or errors, please report them to me and I will make the necessary fixes.

More details, downloads and screen shots in the software pages: Qaptan
Comments (8)  

Simple HOWTO: set "working directory" with the Gnome launcher

Filed under: Tutorials and HOWTOs by Hari
Posted on Wed, Jul 22, 2009 at 22:40 IST (last updated: Wed, Jul 22, 2009 @ 22:52 IST)

Today I made a momentous decision; at least in terms of my personal history with Linux and switched to the Gnome desktop completely. While the migration story including my reasons for dropping KDE is another topic (and will most likely be covered in a future entry) I wanted to explain a very annoying problem which most former KDE users are likely to face when using Gnome. And that is how to set the working path for any executable for which you create a desktop launcher. This is a useful, and occasionally important setting which are required by some programs.

Gnome Launcher

The Gnome launcher creation tool provides no way to specify a working directory as you can see. I searched the web for numerous solutions, all of which were quite unsatisfactory and didn't work. All I needed was a simple solution to the problem. While I hope the Gnome developers will fix this somewhat annoying issue in the future, I have devised a reasonable workaround for the problem. After a bit of thought I merely used a gnome-terminal to wrap around the executable program/script. Seems a very obvious ploy on hindsight, but it took me a while to hit upon the solution.

Here's the necessary command for the launcher window:
gnome-terminal --working-directory /path/to/working/dir/ -e /path/to/executable

Just replace the /path/to/working/dir/ and /peth/to/executable with your own and you're set. Hope you find it useful. :)
Comments (12)  

Never, ever use an external USB hard drive as backup media

Filed under: Software and Technology by Hari
Posted on Tue, Jul 21, 2009 at 17:44 IST (last updated: Tue, Jul 21, 2009 @ 21:35 IST)

This looks more like a public service announcement, but is actually a rant against external USB hard drives.

I was taking my usual backup of personal files and data when I noticed that I was unable to copy or delete files halfway through the process. After several frustrated attempts, I realized that the drive was emitted a faint, but perceptible clicking noise. Not an encouraging sign by any means. Even trusted and well-known brands (like Seagate) are bound to fail, as I learned today. :-(

Quite a lot of important data is stored on this hard disk and unfortunately there is no secondary backup for much of the data. As it is a fairly new hard disk bought just a few months ago, I hardly expected it to give me any problems. However, I learned a hard but valuable lesson today: never trust USB hard drives as a reliable backup option.

Even as I write this I'm trying my best to copy some of the data, but I've already encountered numerous I/O failures.

Luckily, in my case, most, if not all of these files can be retrieved in one form or another but will require a bit of work collecting the files from different locations. However, it has led me to think: what IS a safe backup medium in this day and age?

Let me evaluate some of the common options for offline backup (as opposed to data redundancy options like RAID): Any ideas on which backup device that a home user with considerable audio and video data (running to around 40-50 GB and moreover, not being downloaded music or movies, are far more valuable and irreplaceable) can use as a failsafe option under these conditions? I haven't a clue so far. Tape drives seem the most preferable solution, yet they are expensive and not easily available in the market, typically bulkier and require more physical storage space than hard drives or CD-ROM stacks for far less data capacity.

The real issue here is that hard drives are getting bigger in capacity and less reliable in terms of performance and stability. In my own experience, not one single brand or manufacturer inspires confidence for long-term reliability. If the reliability issue could be dealt with, there's no questioning the sheer convenience of a hard disk data store.

One would have thought that in this day and age, we could have devised at least one truly fail safe, reasonably inexpensive and convenient medium for permanent data archival.
Comments (23)