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.
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:
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.
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.
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.
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
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.
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:
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):
Hard drives are bound to fail. Period. External ones seem especially susceptible to sudden failures. Internal hard drives aren't an option for archival purposes for obvious reasons. Bottom line: Hard disks are a very bad option, but are most convenient for storage of large files.
Optical media like CD-Rs and DVD+-Rs are notoriously susceptible to scratches and loss of reflectivity over a period of time. While optical media theoritically seems a safer bet than relying on a fragile magnetic disk, I've known them to fail on numerous occasions and had very little success in actually retrieving data from a bad optical medium. Bottom line: Reasonable solution, but inconvenient for bulky data running into several gigabytes and incremental backups are well-nigh impossible, requiring fresh media for every backup.
USB flash drives are known to fail and are, moreover aren't exactly large in size and cannot accommodate huge archives of audio and video files (as in my case). Bottom line: Not enough capacity and is not an archival quality option. Good in an emergency though.
Tape drives are practically unknown for home users. I'm not sure how many organizations continue to use tape archival for their backup purposes but I don't see it as a viable alternative for home users at any time. Bottom line: Inconvenient for home users, but seems to be practically the most reliable, tried and tested backup technology currently available in the market.
Other backup media are either specialized and are not easily accessible for desktop end users. Online backup is impractical even with high-speed internet connections and carries some obvious privacy and security risks, while local network backups require some kind of quality archival media already in place.
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.