If Operating Systems Ran The Airlines

An old LG (#45) post, never fails to amuse me after so many years

UNIX Airways
Everyone brings one piece of the plane along when they come to the airport. They all go out on the runway and put the plane together piece by piece, arguing non-stop about what kind of plane they are supposed to be building.

Everybody pushes the airplane until it glides, then they jump on and let the plane coast until it hits the ground again. Then they push again, jump on again, and so on ...

Mac Airlines
All the stewards, captains, baggage handlers, and ticket agents look and act exactly the same. Every time you ask questions about details, you are gently but firmly told that you don't need to know, don't want to know, and everything will be done for you without your ever having to know, so just shut up.

Windows Air
The terminal is pretty and colorful, with friendly stewards, easy baggage check and boarding, and a smooth take-off. After about 10 minutes in the air, the plane explodes with no warning whatsoever.

Windows NT Air
Just like Windows Air, but costs more, uses much bigger planes, and takes out all the other aircraft within a 40-mile radius when it explodes.

Linux Air
Disgruntled employees of all the other OS airlines decide to start their own airline. They build the planes, ticket counters, and pave the runways themselves. They charge a small fee to cover the cost of printing the ticket, but you can also download and print the ticket yourself. When you board the plane, you are given a seat, four bolts, a wrench and a copy of the Seat-HOWTO.html. Once settled, the fully adjustable seat is very comfortable, the plane leaves and arrives on time without a single problem, the in-flight meal is wonderful. You try to tell customers of the other airlines about the great trip, but all they can say is, "You had to do what with the seat?"

Listening to Podcasts on GNU/Linux Debian

Reading Tony’s Picking Off Podcasts in Linux article was quite enlightening.Though he mentions couple of programs like podcatcher and bashpodder , I list only those available by default on GNU Debian (Sid). I hope listening to podcasts would a nice experince free from technical mambo-jumbo.

  • gpodder – A GTK+ Media aggregator and Podcast catcher
  • gtkpod – manage songs and playlists on an Apple iPod
  • hpodder – Tool to scan and download podcasts (podcatcher)
  • kitty – a Qt/KDE based RSS podcast and video aggregator
  • podget – Podcast aggregrator/downloader optimized for cron
  • podracer – podcast aggregator/downloader
  • xmms2-plugin-rss- XMMS2 – RSS podcast plugin
  • miro -GTK+ based RSS video aggregator Miro (previously known as Democracy Player) is a platform for Internet television and video.

For those with technical bend of mind, building a podcast grabber is not very difficult if you know bit of programming, I guess with command line tools like xmlstarlet you can grab and process XML/RSS files right from the shell. There is an example of xmlstartlet here. But for the rest of us lay users there are indeed a bunch of programs to choose from on GNU Debian Linux.

Wake up to the music

Using cron/mplayer and some shell glue you can create your own musical alarm clock to wake you up everyday. Ever since the Cron-MP3 alarm clock was published some years ago, it never ceases to dazzle me what you can do with little creativity.

Volunteer with Free Software Foundation of India (FSF-I)

The FSF-I website is the right place to get the complete information on its latest activities and read the FSF-I charter to know more about the foundation . It is however the FSF-Friends mailing-list where the most the interaction and information exchange takes place. If you need to stay informed about FSF-I and other related activities in India then this is the list to join.

To be volunteer you can register as FSF India Volunteer and get listed in the FSF India Volunteer Directory . But its not a must, if you can spare a little of your time and do any of the tasks then just shoot a email to the admins . There is a list of various tasks that you can help out with on the foundations website.

The the FSF-Friends mailing-list isn’t the only list, there are many others see if anyone suit your interests. Perhaps you can also join a regional mailing-list thats near your city and meet other free software advocates and volunteers.

  1. Delhi
  2. Pune
  3. Andhra Pradesh
  4. Tamil Nadu
  5. Bangalore
  6. Kerala

Well, you can also take a look these few specific tasks which I think would need some attention of volunteers.

  • Submit News regularly : Some of activities and events news don’t really make it to FSF-I portal news feed.
  • Populate the mailing-lists : Various lists like Fsf-dev fsf-prog and fsf-edu are very inactive perhaps you can participate and start relevant discussions.
  • Content in Indian Languages : Perhaps its a good idea to have content in various Indian languages, the translation of GNU GPL of licenses is a good start.

Raw Control Characters In Less pager

Less is my default terminal pager program. On GNU Debian Linux pager is just a symbolic link to your less or one of other available pager progams like more , most , lv etc..( run update-alternatives —list pager to find out alternative pager programs available on your computer). Lately some funny characters started showing up in my pager .

$ ls /tmp/Foo/ | pager


Oops, That looks like the ANSI Escape Sequences commonly used for making a shell colourful, but our pager program less seems to have some trouble with it. Let’s try to correct this but using -R option which toggles this behaviour.

$ ls /tmp/Foo/ | pager -R

Ok, that seems to fix it. Now let’s set it into our shell environment.You set the same using lesskey also.

LESS=”-R”; export LESS

Please note that using -r option may cause display problems , that’s why I use -R .

Wolfgang Friebel notes in Displaying more with less that ..

Syntax highlighting is only activated if the environment variable LESS is existing and contains the option -R or -r or less is called with one of these options. This guarantees, that instead of literal escape sequences colors are displayed. The detection of the -r/-R presence at runtime is rather dependent on the operating system and may not work in all cases. Putting the option in the LESS environment variable is guaranteed to work.By installing the perl module Proc::ProcessTable the OS dependence can be reduced as well.

Free Website Uptime Monitoring Service

When it comes to hosting my websites I like to spread them over multiple web hosting companies. It does improve my odds of all the sites going down at the same time, but tracking their uptime becomes an issue. There are website uptime monitoring services one too many, most of them have a catch either they want you to place images with backlinks to their website or something more silly.

A tried and tested free uptime monitoring service I use is http://uptime.alal.com/uptime/ , originally written in TCL its now run by OpenACS . To track a website just add a URL to text file or HTML page on your website which contains a single word “success” in it. And choose whether you want to get email when this website down or just check periodically every few hours. Compared to other website uptime monitoring services this one does only one thing and does it well too.

Upgrade problems for sysvinit (2.86.ds1-16 | 2.86.ds1-19)

Update: Post out-of-date …. don’t flame me

Those of you who followed the earlier the fix for sysvinit (2.86.ds1-16) upgrade problem given below should read the follow-up comments that were aired on both debian-devel and debian-user.

— Petter Reinholdtsen Sat, 9 Sep 2006 20:12:47 +0200
In version 2.86.ds1-16 of the sysv-rc package released 2006-09-06, the update-rc.d script was broken. When used to to update symlinks it would remove all symlinks for a init.d script if such symlinks existed, and add them if they were missing. This broke all packages being upgraded after the new version was installed, as their init.d scripts will no longer be executed. This problem was fixed in version 2.86.ds1-18, but the broken packages will stay broken until their postinst scripts are executed again.

Those with packages being broken from this bug can fix it by using ‘apt-get —reinstall install package’ on the affected packages. A quick way out is to reinstall all the packages with scripts in /etc/init.d/.

for p in `dpkg -S /etc/init.d/*|cut -d: -f1|sort -u`; do
apt-get —reinstall install -y $p

Read the Petter Reinholdtsen’s post

sysvinit (2.86.ds1-19) unstable; urgency=low

The script proposed below is dangerous, as it had a problem
with removed but not purged packages. If such packages had
files in /etc/init.d/, it could end up trying to remove quite a lot of packages. This version check to make sure the package is installed before trying to reinstall it, as well as making sure the admin is asked for every package.

for p in `dpkg -S /etc/init.d/*|cut -d: -f1|sort -u`; do if dpkg —get-selections $p | grep -qw install ; then echo reinstalling $p apt-get —reinstall install $p fi done

To avoid the question, add -y as an argument for apt-get.
An alternative to reinstalling all these packages is to look in /var/log/dpkg.log for the packages that was installed and upgraded between sysv-rc version 2.86.ds1-16 and version 2.86.ds1-18, and only reinstall these. A script to do this and update the system is provided in /etc/init.d/.


Please use it to update your installation if you were upgrading from one of the broken versions of sysv-rc.

RFC Humour: Really Funny Collection

The Requests for Comments (RFCs) are a treasure trove of information on everything related to the Internet. Internet Engineering Task Force (IETF) , an open forum oversees the development and standardization of the technical aspects of the Internet.Any new technical ideas are first issued as Drafts, after much discussion, arguments and IETF meetings these are released as RFCs.

The purpose of the RFCs is not only standardization, but they often document and provide an in-depth analysis of common workings of existing technologies.Though RFCs aren’t meant to be handy guides for learning for lay computer users,but they do offer crisp and authoritative information.

If you think that RFCs are just rambling of technical mambo-jumbo that’s not meant for lowly mortals, think again. Don’t be surprised if you come across Hyper Text Coffee Pot Control Protocol or The Infinite Monkey Protocol Suite and widely known Carrier Pigeon Internet Protocol which was implemented by Bergen Linux User Group using carrier pigeons and it works too!!.

Often released on April 1, those RFCs make a wonderful reading.

  • RFC873 The Illusion Of Vendor Support
  • RFC968 `Twas the Night Before Start-up
  • RFC1149 A Standard for the Transmission of IP Datagrams on Avian Carriers
  • RFC1216 Gigabit Network Economics and Paradigm Shifts
  • RFC1217 Memo from the Consortium for Slow Commotion Research (CSCR)
  • RFC1313 Today’s Programming for KRFC AM 1313 Internet Talk Radio
  • RFC1300 Remembrances of Things Past
  • RFC1437 The Extension of MIME Content-Types to a New Medium
  • RFC1438 Internet Engineering Task Force Statements Of Boredom (SOBs)
  • RFC1605 SONET to sonnet translation
  • RFC1606 A Historical Perspective On The Usage Of IP Version 9
  • RFC1607 A View from the 21st Century
  • RFC1776 The Address is the Message
  • RFC1882 The 12-Days of Technology Before Christmas
  • RFC1924 A Compact Representation of IPv6 Addresses
  • RFC1926 An Experimental Encapsulation of IP Datagrams on Top of ATM
  • RFC1927 Suggested Additional MIME Types for Associating Documents
  • RFC2321 RITA —The Reliable Internetwork Troubleshooting Agent
  • RFC2322 Management of IP numbers by peg-dhcp
  • RFC2323 IETF Identification and Security Guidelines
  • RFC2324 Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0)
  • RFC 2325 Definitions of Managed Objects for Drip-Type Heated Beverage Hardware Devices using SMIv2
  • RFC2549 IP over Avian Carriers with Quality of Service
  • RFC2551 The Roman Standards Process — Revision III
  • RFC2795 The Infinite Monkey Protocol Suite
  • RFC3091 Pi Digit Generation Protocol
  • RFC3093 Firewall Enhancement Protocol (FEP)
  • RFC3252 Binary Lexical Octed Ad-hoc Transport
  • RFC3514 The Security Flag in the IPv4 Header
  • RFC3751 Omniscience Protocol Requirements

OI! Move over, The IT Crowd is here

Alright, if you haven’t ever heard of User Friendly stop reading right here.

This is London and in the bowels of Reynholm Industries lie another world. Yes, my dear listeners we are now on the holy ground of the nerds, its the IT department. Its here the social inept, sexually confused step onto the righteous path of enlightenment. (Its however another matter than the light of day never reaches into these dingy basement offices) This is world of The IT Crowd

For my brethren in gnu/Linux world, don’t miss out the show’s opening title sequence animation depicting a gnu/Linux kernel panicking during a Fedora Core 4 installation.(easily mistaken for a Windows blue screen of death, amen!). Hey you need to watch real close to find a lot geek lore on the sets, old hardware, t-shirts you would kill for and a lot more listed here on the Wikipedia page of show

Logging PHPnuke Database Connection Failures

Find the db/db.php file in your PHPnuke installation and insert the error_log line.

if(!$db->db_connect_id) { die(”<br><br><center><img src=images/logo.gif><br><br><b>There seems to be a problem with the $dbtype server, sorry for the inconvenience.<br><br>We should be back shortly.</center></b>”);

Now the last lines of the db/db.php file should look like this. The error_log simply logs the errors into /home/foo-joe/logs/db_log, you should change this to reflect your directory structure.

if(!$db->db_connect_id) {
error_log(”[”.date(“D M d Y h:iA”).”] Failed to serve request for page ‘”. $_SERVER[‘REQUEST_URI’].”’ from ‘”.$_SERVER[‘REMOTE_ADDR’].”’ using browser ‘”. $_SERVER[‘HTTP_USER_AGENT’].”’\n”,3,”/home/foo-joe/logs/db_log”); die(”“<br><br><center><img src=images/logo.gif><br><br><b>There seems to be a problem with the $dbtype server, sorry for the inconvenience.<br><br>We should be back shortly.</center></b>”);

Refer to error_log PHP manual page for more information and PHPnuke documentation on error logging and database calls, Please note this is for debugging purpose only.

What works in Yahoo! Groups spam control ?

Having a healthy mailing-list without spam is difficult but not impossible. If you have much time on your hands you can set about approving every member and message that shows up on your list. ;)

The mailing-list or a group (as Yahoo! calls it) that I mention in this post is hosted on Yahoo! groups service. The list is set as unmoderated (all messages get posted directly) and has open membership policy (anyone can join and leave the group as they please). For spam control the Yahoo! SpamGuard filters are enabled but the spammers did sneak in.

Since I abhor any kind of message moderation on this list and didn’t want the moderators spend all their time approving membership requests (which were quite a lot), I looked at other strategies for eliminating spam. I observed that most of the spam we received is from newly joined members, so it seemed to be a good idea to moderator the posts of newly joined members only. This create a sort of sandbox where all new members should spend time until one of the moderator manually changes their status to unmoderated.

Here is an extract from the Yahoo! groups help page that explains the settings in detail.

  1. Click Management on the left side of any group page.
  2. Click Messages in the “Group Settings” section.
  3. Click Edit next to “Postings and Archives”.
  4. Select the New Members button in the “Moderation” column.
  5. Click Save Changes. Now go on and moderate!

This setting means that new members to the group will require moderation for all messages they post until you change their setting to either “Use current group message posting setting” or “Messages by this member are not moderated”

One other setting I recommend for moderators to get notified of a pending message via email this way you can attended to the request faster and help weeding out (or banning a member) spammers from the sandbox. This strategy seems to work in controlling most of the spam we get on this list. But it doesn’t prevent any of already existing members from spamming the list.

Please do share your experiences on managing a Yahoo! group mailing-list.!!

Handling CHM files in GNU/Debian Linux

In a perfect world all the OCR files would come in djVu format but world isn’t perfect, so this morning I had read this 300 page CHM compiled HTML Help (insert joke here)file and for no apparent reason my CHM viewer won’t display the file beyond page 50. Bummer!.

Don't get me wrong but there some great programs to handle CHM files on gnu/Linux OS. And I’ll mention some of them here in this post. A more detailed specifications of CHM format. is available if you are interested.

Graphical CHM Viewers

Well, The brief list doesn’t attempt to be complete but it gives you an idea of range of tools available to a gnu/Linux user.

View a CHM file on a Web Browser

If you like to read using your favorite web browsers instead of a Graphical X based CHM viewer, then there is chm_http in libchm-dev package from the CHMLib project . Also Archmage package has http-server and or if you prefer Apache Web Server instead of standalone webservers then there is an extension mod_chm too .

Converting and De-compiling CHM files

Of late I saw chm2pdf project offering to covert CHM files directly into PDF. I should try it sometime, but for now I will just de-compile the CHM file and get done with it.

So, if you don’t have libchm-dev package installed, then do this.

sudo apt-get install libchm-dev

This package has “extract_chmLib” program which will extract and place the files in a given directory.

extract_chmLib Foo.chm Foo-dir/

That it, now you can use your web browser to read the contents at your will. It is a quick and dirty way, but its much better than using the dreaded CHM files anyway.

Compiling CHM files ?

Sometime after this entry was posted, I got people asking me how to create CHM files under gnu/Linux .

According to Bruce Byfield in two year old article on FOSS help authoring tools
Numerous projects for cross-platform or GNU/Linux-based tools for producing .chm files have been announced, but most of them are in the planning stage, and have released little or no code. The only two that seem polished enough to use are AurigaDoc and DocBook two XML-based solutions that are well-known in other contexts.

How to Block Ads With Adzap

Cameron Simpson’s Adzap (http://adzapper.sourceforge.net) is a Perl program written to match and replaces those annoying web ads.It uses the redirector option of Squid proxy-caching server (http://www.squid-cache.org), a fast and efficient caching server.

How does Adzap work?

Squid proxy server is designed to cache web content as clients requests,it checks for presence of local copy of request, if found servers it directly.This not only saves bandwidth usage but accelerates web speed.

Squid redirects requested URL to adzapper program which tries to identify ads,unrequested pop-up widows and other unsolicited content using regular expressions.

Most of content such as graphics,flash animations,client-side scripts and executables are matched and quietly replaced.Adzap returns sanitized request back to squid which servers it.This increases the surfing speeds considerably even if you are on boardband connection.

Most commercial web advertisers track user preferences and surfing habits.Adzap protects your privacy by efficiently blocking such ads from loading.

How do you install Adzap?

You can download the latest version of Adzap from http://adzapper.sourceforge.net .

Uncompress the the Adzap files to your /usr/local/ directory.If you use any other directory,please do change the commands in this article.

tar zxvf adzap-20030726.tar.gz -C /usr/local/

Change your directory to /usr/local/adzap.All the adzap programs are found under the scripts directory.

bq. cd /usr/local/adzap/

Edit the scripts/wrapzap file and set the zapper to squid_redirect.You can customize the Adzap to suit your needs in this file.


Configure the squid to use Adzap as its redirector program.The squid configuration file in most *nix’s is /etc/squid/squid.conf.Set the redirect_program option as mentioned.

redirect_program /usr/local/adzap/scripts/wrapzap

Restart the squid server.

/etc/init.d/squid restart

Check the /var/log/squid/cache.log for any errors.Start your favorite browser and point it towards your squid server and enjoy ad free surfing.

First Published long time ago on the web.

Multimedia/Internet Keyboards in GNU/Linux

As the resident Gnu/Linux guru, I sometimes help new users making transition from other OS’s.Over the years I’d ask anyone who installed Gnu/Linux about what hardware devices didn’t work for them,most often it is Multimedia/Internet keyboards. In this article, we’ll configure one such keyboard using Hotkeys.

Anthony Wong’s Hotkeys program is written to handle all those special keys provided by the multimedia/Internet keyboards and launch programs associated with them.Though there are numerous ways to configure these keyboards in Gnu/Linux,Hotkeys is easier to configure and its osd (on-screen display) is very simillar to those available on other OS’s.

You can visit Hotkeys site to download the latest version of the program as tarball or as a debian package.

The installation on Debian machine can be done using the apt-get.

$ apt-get install hotkeys


Hotkeys starts a daemon process,usually started with xinit process,it uses a global configuration file /etc/hotkeys.conf and user configuration’s can be stored in $HOME/.hotkeysrc.

The hotkeys.conf configuration is well commentted, should not present any problems to new users.Its contains can be summed up as

1) Device Settings

Keyboard Type (kbd=”“) CD Drive (CDROM=”“)

The supported keyboards can be checked with ‘hotkeys -l’.

2) Key Behaviour

Tag = ‘command’ (Play = “xmms —play-pause”)

The complete list of tags can be found in /usr/share/doc/hotkeys/sample.xml file.The users can also create their own tags.

3) On-Screen Display Properties

Font (osd_font=”“) Color (osd_color=”“) Position (osd_position=”“)

#Sample /etc/hotkeys.conf file. #########################

  1. Global configuration for hotkeys # #########################

    1. These are the default values.
    2. A line starting with # is a comment.
    3. Specify the default keyboard (without the .def extension) so you
    4. don’t need to specify -t every time
      CDROM=/dev/cdrom # use ‘none’ if don’t have a CDROM Drive PrevTrack=xmms —rew Play=xmms —play-pause Stop=xmms —stop Pause=xmms —pause NextTrack=xmms —fwd Rewind= WebBrowser=mozilla Email=mozilla -mail Calculator=xcalc FileManager=gmc MyComputer=gmc MyDocuments=gmc Favorites=gnome-moz-remote —remote=openBookmarks Transfer=gtp Record=grecord Shell=xterm -rv ScreenSaver=xscreensaver-command -activate NewsReader=mozilla -news Communities=mozilla -remote ‘openURL(http://slashdot.org)’ Search=mozilla -remote ‘openURL(http://google.com)’ Idea=mozilla -remote ‘openURL(http://sourceforge.net)’ Shopping=mozilla -remote ‘openURL(http://thinkgeek.com)’ Go=mozilla -remote ‘openURL(http://linux.com)’ Print=lpr Rotate=
      osd_font=-arphic-ar pl kaitim big5-bold-i-normal—0-250-0-0-c-0-*-*
    5. For the color, you can either use the strings in /etc/X11/rgb.txt,
    6. or use the RGB syntax #RRGGBB, e.g. ##A086FF
    7. osd_position is either ‘top’ or ‘bottom’

Configure Unsupported Multimedia/Internet keyboard

The Hotkeys program is still under development,you may not find your keyboard in the default list.To configure your keyboard, find out the keycodes of the all special keys on your keyboard.

Use the xev program to capture the keycodes and save it to file.Move your cursor to square on the xev window and press the special keys in a sequence.

$ xev 2>&1 >mykeys

Search the file for the keycodes.

$ grep ‘keycode’ mykeys | cut -d “ “ -f7,8 >mykeycodes

Check the file to see the keycodes.

$ cat mykeycodes
keycode 223
keycode 166
keycode 151
keycode 232
keycode 159
keycode 153
keycode 144
keycode 165
keycode 158
keycode 146
keycode 178
keycode 150
keycode 148
keycode 149
keycode 173
keycode 164
keycode 163
keycode 162
keycode 161
keycode 152
keycode 160
keycode 174
keycode 176
keycode 64

Hotkeys uses XML to define keycodes and their functionality.These are stored as ‘.def’ files in /usr/share/hotkeys directory.Let’s use the sample.xml file provided by the hotkeys to build a custom keyboard definition file.

$ cp /usr/share/doc/hotkeys/sample.xml /usr/share/hotkeys/custom.def

The hotkeys support various pre-defined ‘tags’ like Sleep, Search, Shopping andvarious CD/DVD player controls
(See /usr/share/doc/hotkeys/sample.xml). Each ‘tag’ has a behaviour assigned, Sleep uses APM to turn your computer into hibrnatio.Many other special function keys can also be configured.

For example the half-moon key on my keyboard is configured using ‘Sleep’ tag.

<Sleep keycode=“223”/>

And un-defined Shortcut key is set with.

<userdef keycode="232" command="xterm">Xterm</userdef>

Here is how the custom.def appears with the above examples.

<?xml version="1.0"?>
 <config model="My custom keyboard">
 <!-- Support Tags functions -->  
 <!-- half-moon key -->

 <Sleep  keycode="223"/> 
 <!-- User define functions -->
<userdef keycode="232" command="xterm">Xterm</userdef>


Now test the custom.def by using it as your keyboard type.

$ hotkeys -t custom

A lot more keys can be set using the same custom.def file, a little effort pays off really well.If you have configured a new Multimedia/Internet keyboard using hotkeys, do take time to send it project developers, it would help many other users with same keyboards.

Web Resources

Hotkeys Help Forum

Hotkeys Project

Website file Uploads With lftp

Keeping your website updated is tedious job,especially when you have lot of files,which you edit quite often.And having to do the such work over ftp makes it worse.

In this article we’ll use a command line based file transfer program lftp(http://lftp.yar.ru/) written by Alexander .V. Lukyanov to do website file uploads.Though there are many other ftp clients,lftp is simpler to use,feature rich,can upload several files in parallel and it comes bundled up with most Gnu/Linux distributions. lftp is a powerful tool, its built-in mirror facility is suitable for keeping your website updated and secure by replicating permissions on the uploaded files.It checks for modified files by checking the file sizes and file modification times.

Using lftp on Command Line

Now you have a local directory on your computer where you keep all your website files(/home/joe/site_files).Let upload these files to your remote webserver directory using lftp on command line.First lets connect to your hosting service providers webserver with username and password.

$ lftp -u username ftp.hostingcompany.net

The lftp program will prompt for the password,type your secret password and you will be logged in.

Now issue the ‘lcd’ command to change directory to local directory where your all website files reside.

lftp username@ftp.hostingcompany.net:~> lcd /home/joe/site_files
lcd ok, local cwd=/home/joe/site_files

Now use the lftp mirror built-in’s reverse option (-R) of lftp to
upload all files local files into remote directory on the webserver.

lftp username@ftp.hostingcompany.net:~> mirror -R
Total: 12 directories, 36 files, 0 symlinks
Modified: 13 files, 0 symlinks

You can use “ mirror -R —only-newer “ command if you want only new files to uploaded.Once the upload is finished lftp will print out a report.Now you can end the connection by typing quit.

lftp username@ftp.hostingcompany.net:~> quit

Running lftp in a Script

Now that we have seen lftp in action.Let run all the commands from script instead.Luke Vanderfluit provides this nice little script.

lftp -u username,password ftp.hostingcompany.net <<EOF
cd / # remote directory on webserver
lcd /home/joe/site_files # local directory on your computer
mirror -R # Upload the files to remote directory
quit 0 # Drop the connection

Save all the commands in a file ‘upload_mysite’ and make it executable with ‘chmod +x upload_mysite’.Run the script by typing ‘./upload_mysite’ on the command line.As your username and password are stored it file,its a better not let anyone else to view it.Changing file permissions with ‘chmod go-rwx upload_mysite’.

Maintaining Multiple Websites

Running lftp from script is not a good idea if you have to maintain multiple sites.Instead you can use lftp’s ‘-f’ option.You can store settings of different websites into separate files.Suppose you have two websites site1 and site2.

The settings of the both the sites are stored in files ‘mysite1.lftp’ and ‘mysite2.lftp.

open ftp.myisp.net
user username password
lcd /usr/joe/site1_files
mirror -R
exit #########################################

open ftp.hostingcompany.com
user username password
lcd /usr/local_site_location
mirror -R
exit #########################################

To update site1, we will run lftp with ‘-f’ option.

$ lftp -f mysite1.lftp

And to update the next website.

$ lftp -f mysite2.lftp

Some other usefull features provided by ‘mirror’ built-in are the —parallel = N where in it will use N simultaneous connections to upload the files,this speeds up the upload considerably.If you want to exclude some files from being uploaded use (- x , – X) . And —delete to remove those files which are not present in local directory.

lftp can also be run as a cron job . Jani Reinikainen shows an interesting use of lftp to periodically mirroring a directory to a remote computer.


lftp manual page [http://lftp.yar.ru/lftp-man.html ]
lftp FAQ [http://lftp.yar.ru/FAQ ]
lftp Download page [http://lftp.yar.ru/get.html ]

GNU GPL version 3 released ( GPLv3 )

Fresh off the press, FSF has announced the release of GNU GPL version 3 released ( GPLv3 ). Here is full transcript of the announcement.

On Friday, June 29, at 12 noon (EDT), the Free Software Foundation will officially release the GNU GPL version 3. Please join us in celebration as we bring to a close eighteen months of public outreach and comment, in revision of the world’s most popular free software license.

Beyond the creation of an improved license, the process of drafting
version 3 has helped highlight vital issues for the community of free
software users. This is a moment to thank the thousands who participated by commenting on the license, and those that represented stakeholders through the GPLv3 committee process.

Now with the release of GPLv3, we will see new defenses extended to free software. These defenses will continue the long history of fighting all efforts to make free software proprietary.

Please join us as we stream live footage of Richard Stallman announcing GPLv3 from Noon (EDT) at www.fsf.org .

If you are in the Boston area you can also join us at the FSF offices
from 11:30am. Please let us know at >info@fsf.org< if you would like to

Peter T. Brown
Executive Director
Free Software Foundation
51 Franklin St. 5th Floor
Boston, MA 02110-1301 USA

Media contact for this event:
Brett Smith

About the FSF

The Free Software Foundation, founded in 1985, is dedicated to promoting computer users’ right to use, study, copy, modify, and redistribute computer programs. The FSF promotes the development and use of free (as in freedom) software—particularly the GNU operating system and its GNU/Linux variants—and free documentation for free software. The FSF also helps to spread awareness of the ethical and political issues of freedom in the use of software. Their Web site, located at www.fsf.org, is an important source of information about GNU/Linux. Donations to support their work can be made at http://donate.fsf.org . Their headquarters are in Boston, MA, USA.

Babelfish Free Proxy

Way back in 2005 a google hack was published which explained how to use google translation service as a proxy to access restricted web sites.

Though its was a good hack, it lacked the flexibility I sort. The Google Transalation page uses Javascript which hampers the hacks use in scripts and line browsers like elinks,links,lynx etc. However I found that the AltaVista’s Babelfish translation service was a good alternative.

Now to use this hack,just add the URL of the restricted page or website you want to access at end of the babelfish url given below. Here we are using www.wikileaks.org as an example. Paste it in the address bar of your browser if you are using a graphical browser like Mozilla, Firefox, IE, Safari or Opera.


The elinks users can build a smart url using this hack, For more information read Smart URL’s in Elinks .

Yahoo! India maps now offers Geocoding service

This mornings paper had Anand Parthasarathy covering the launch of Yahoo! India Maps and Yahoo! India Our City service, it offers map data of Indian cities, as well as Geocoding service for some of our cities (Ahmedabad, Bangalore, Bhopal, Bubhaneswar,Chandigarh, Chennai, Coimbatore, Delhi, Hyderabad, Jaipur, Kochi, Kolkata, Lucknow, Madurai, Mangalore, Mumbai, Mysore, Pune, Shimla, Thiruvananthapuram). Interestingly, Anand Parthasarathy lauds this achievement of India-based engineers instead of observing that offering such a service make a good business sense,

Just eight months after David Filo challenged his India-based engineers to come up with compelling Web applications for the world, the co-founder of the Web’s biggest portal, Yahoo, is back here to announce that two of them have been converted into working solutions. On Wednesday he lanuched Our City , a new Net resource which aggregates city specific information including, news, travel and tourism, weather, local business as well as user contributed blogs, photos and videos, for 20 Indian tier-1 and tier-2 towns.Content in the local language of the region is also linked. (http://in.ourcity.yahoo.com)

The site is linked to the other resource launched here: ‘India Maps’ consolidates satellite imagery and street maps for 170 Indian cities, 4,785 towns and over 2.20 lakh villages — arguably the largest India-specific cartographic service available on the Internet.

The map data have been provided in collaboration with the India-based CE Info Systems — and Yahoo spokespersons were quick to point out that all imagery was compliant with Indian government guidelines. Users could merge street maps with satellite pictures to create hybrid maps of their own. (http://in.maps.yahoo.com/)

Offering local business information merged with maps and search features does brings a tidy chunk of revenue for both provider and the business listed which is a very good thing. And (Yahoo!) members able to write reviews and comment on various services provided by the business add’s spice to the lot. Perhaps very soon we can expect other players (Google , MSN et al) to provide these services for Indian sub-continent.

BitTorrent "INFO : duplicate connection (id collision) " log messages

BitTorrent 4.20.x (and later) now logs all its messages and errors to its logs1. Here is one log message that mystified me.

[4.20.4 2006-09-01 04:10:39] INFO : duplicate connection (id collision)
[4.20.4 2006-09-01 04:10:48] INFO : duplicate connection (id collision)
[4.20.4 2006-09-01 04:10:52] INFO : duplicate connection (id collision)
[4.20.4 2006-09-01 04:11:03] INFO : duplicate connection (id

BitTorrrent Support provides a clear answer.

This message is harmless and can be ignored. It means that a request for data was sent to a peer you are already connected to. This is most common when there are few peers in the swarm for a given torrent. It does not affect your down or upload speed in any way.

1 Bittorrents logs file under UNIX, GNU/Linux operating systems are found under $HOME/.bittorrent/bittorrent-{cosole,curses}.log

Its party time for Debian camp

Debian Etch is now released. Its party time for Debian camp, the nearest party spot here in India seems to be BMS College in Bangalore. Party on and do remember to avoid spelling and grammar mistakes in your package(s) descriptions fellows.

Not all of us are native English langauge speakers but as Debian Developer’s Reference recommends in its 6 Best Packaging Practices section of the manual, we can remedy this with a little effort.

Be careful to avoid spelling and grammar mistakes. Ensure that you spell-check it. Both ispell and aspell have special modes for checking debian/control files:
ispell -d american -g debian/control
aspell -d en -D -c debian/control

As usual I expect magnanimous Debian users would lend a hand by reporting these bugs.

libTorrent / rTorrent 0.7.0 debian packages available

UPDATE: Never version of rTorrent made into Debian (Sid) since this entry was first posted.

Rakshasa’s libTorrent and rTorrent Unstable Release (0.7.0) Debian packages are now available

The Debian Sid/unstable rtorrent package is still stable release (0.6.4.x). A wishlist was posted and you can use this repo until the main debian packages are upgraded.

You can add this line to your sources.list and apt-get the packages.
deb http://repos.ghostbar.ath.cx/debian sid main

Or grab the packages directly from http://debian.ghostbar.ath.cx/

The adding of public keys for this repo however didn’t work. Perhaps am missing something here.

gpg --keyserver pgp.mit.edu --recv 0xCACAB118 && gpg --export 0xCACAB118 | sudo apt-key add -


wget http://pub.ghostbar.ath.cx/pubkey-ghostbar.gpg sudo apt-key add pubkey-ghostbar.gpg

Smart URL 's in Elinks

If you have Elinks installed then it already has a bunch of smart URL’s enabled .The table below lists those in Debian’s elinks package configuration file. The Elinks Manual explains how it works and how to build your own.

Here a example, lets search for what acronym “ALSA” means with elinks.

Press g in elinks and type a: ALSA when prompted with Enter URL. The a: is the keyword and ALSA (replaced in place of %s ) is search string, elinks smart rewrite expands it to http://acronymfinder.com/af-query.asp?String=exact&Acronym=ALSA and submits it , You will be directed to the search results at acronymfinder.com.

Elinks Smart URL’s Reference:

  • a http://acronymfinder.com/af-query.asp?String=exact&Acronym=%s
  • arc http://web.archive.org/web/*/%s
  • bb http://babelfish.altavista.com/babelfish/tr?urltext=%s
  • bb_en_fr http://babelfish.altavista.com/babelfish/tr?lp=en_fr&submit=1&urltext=%s
  • bb_fr_en http://babelfish.altavista.com/babelfish/tr?lp=fr_en&submit=1&urltext=%s
  • bug http://bugzilla.elinks.or.cz/show_bug.cgi?id=%s
  • cambridge http://dictionary.cambridge.org/results.asp?searchword=%s
  • cliki http://www.cliki.net/admin/search?words=%s
  • cr http://www.rfc-editor.org/cgi-bin/rfcsearch.pl?searchwords=%s&format=http&abstract=abson&keywords=keyon&num=25
  • czen http://www.slovnik.cz/bin/ecd?ecd_il=1&ecd_vcb=%s&ecd_trn=translate&ecd_trn_dir=1&ecd_lines=15&ecd_hptxt=0
  • d http://www.dict.org/bin/Dict?Query=%s&Form=Dict1&Strategy=*&Database=*&submit=Submit+query
  • dbug http://bugs.debian.org/%s
  • dict http://dictionary.reference.com/search?q=%s
  • dmoz http://search.dmoz.org/cgi-bin/search?search=%s
  • dpkg http://packages.debian.org/%s
  • draft http://www.rfc-editor.org/cgi-bin/idsearch.pl?searchwords=%s&format=http&abstract=abson&keywords=keyon&num=25
  • e2 http://www.everything2.org/?node=%s
  • emacs http://www.emacswiki.org/cgi-bin/wiki.pl?search=%s
  • encz http://www.slovnik.cz/bin/ecd?ecd_il=1&ecd_vcb=%s&ecd_trn=translate&ecd_trn_dir=0&ecd_lines=15&ecd_hptxt=0
  • fm http://freshmeat.net/search/?q=%s
  • foldoc http://wombat.doc.ic.ac.uk/foldoc/foldoc.cgi?%s
  • fsd http://directory.fsf.org/search/fsd-search.py?q=%s
  • g http://www.google.com/search?q=%s&btnG=Google+Search
  • gd http://www.google.com/search?q=%s&cat=gwd/Top
  • gg http://www.google.com/search?q=%s&btnG=Google+Search
  • gi http://images.google.com/images?q=%s
  • gn http://news.google.com/news?q=%s
  • go http://www.google.com/search?q=%s&btnG=Google+Search
  • google http://www.google.com/search?q=%s
  • gr http://groups.google.com/groups?q=%s
  • gwhat http://www.googlism.com/?ism=%s&name=2
  • gwhen http://www.googlism.com/?ism=%s&name=4
  • gwhere http://www.googlism.com/?ism=%s&name=3
  • gwho http://www.googlism.com/?ism=%s&name=1
  • id http://www.rfc-editor.org/cgi-bin/idsearch.pl?searchwords=%s&format=http&abstract=abson&keywords=keyon&num=25
  • imdb http://imdb.com/Find?%s
  • lxr http://lxr.linux.no/ident?i=%s
  • lyrics http://music.lycos.com/lyrics/results.asp?QT=L&QW=%s
  • mw http://www.m-w.com/cgi-bin/dictionary?book=Dictionary&va=%s
  • mwt http://www.m-w.com/cgi-bin/thesaurus?book=Thesaurus&va=%s
  • onelook http://onelook.com/?w=%s&ls=a
  • py http://starship.python.net/crew/theller/pyhelp.cgi?keyword=%s&version=current
  • pydev http://starship.python.net/crew/theller/pyhelp.cgi?keyword=%s&version=devel
  • pyvault http://py.vaults.ca/apyllo.py?find=%s
  • rfc http://www.rfc-editor.org/rfc/rfc%s.txt
  • rfcid http://www.rfc-editor.org/cgi-bin/idsearch.pl?searchwords=%s&format=http&abstract=abson&keywords=keyon&num=25
  • rfcs http://www.rfc-editor.org/cgi-bin/rfcsearch.pl?searchwords=%s&format=http&abstract=abson&keywords=keyon&num=25
  • savannah http://savannah.nongnu.org/search/?words=%s&type_of_search=soft&exact=1
  • sd http://slashdot.org/search.pl?query=%s
  • sdc http://slashdot.org/search.pl?query=%s&op=comments
  • sdj http://slashdot.org/search.pl?query=%s&op=journals
  • sdp http://slashdot.org/search.pl?query=%s&op=polls
  • sdu http://slashdot.org/search.pl?query=%s&op=users
  • sf http://sourceforge.net/search/?q=%s
  • sfp http://sourceforge.net/projects/%s
  • thes http://thesaurus.reference.com/search?q=%s
  • whatis http://uptime.netcraft.com/up/graph/?host=%s
  • wiki http://www.wikipedia.org/w/wiki.phtml?search=%s
  • wn http://www.cogsci.princeton.edu/cgi-bin/webwn1.7.1?stage=1&word=%s

Error messages on the console screen

Debian console getting flooded with error messages and verbose warnings can be quite trying for anyone.

Previous versions Debian Reference (Section 8.6.8) used to provided a solution viz… Running “dmesg -n X” (where X is the error levels [1..7) to quiet on-screen error messages until next reboot. Or set KLOGD=”-c 3” in etc/init.d/klogd script and run /etc/init.d/klogd restart for more lasting effect.

David Clarke provides the new way of handling console errors nicely.

Add a single line is your /etc/sysctl.conf and upon every reboot the given values are set to the linux kernel printk() .

kernel.printk = 3 4 1 7

The four values we are setting in /proc/sys/kernel/printk stand for:

  • console_loglevel – messages with a priority higher than this will be printed to the console
  • default_message_loglevel – messages without an explicit priority will be printed with this priority
  • minimum_console_loglevel – minimum (highest) value to which console_loglevel can be set
  • default_console_loglevel – default value for console_loglevel

These values influence printk() behavior when printing or logging error messages. See syslog(2) for more info on the different loglevels. For more information on other /proc files is read LinuxInsight /Proc Documentation

Download High Quality Movie Trailers

XML parsing is often left to programming languages, not for command line use or in shell scripts. Here I used XMLStarlet Command Line XML Toolkit a wonderful set of tools that brings power of handling XML to commandline and Wget to download the content. The xmlstarlet tool seeks the URL’s in XML feed and passes it to wget.

/usr/bin/wget -c  `/usr/bin/xmlstarlet sel  --net  -D -T -t  -m "/records/movieinfo/preview" -v  "large" -o " " http://www.apple.com/trailers/home/xml/current.xml` 

These two programs are ported and available for other operating systems. The wget “-c” (continue) is optional. You can use any other downloader instead of wget. I suggest curl

GNU/Debian Linux don't power off after shutdown

To avoid any problems with your filesystems always shutdown your debian box the neat way. After a recent upgrade my computer stopped powering off after shutdown.

Thanks to the Rainer Dorsch for pointing me in the right direction.

Step One

1. First append this line to your /boot/grub/menu.lst if you are using GRUB or lilo.conf if you are using LILO.

append="acpi=off apm=power_off"

Step Two

2. Add this line to your /etc/modules

apm power_off=1

After a reboot, next time you issue the shutdown command your computer should power off automatically.

What is Video-Hams

Robert Schifreen is the author of Defeating the Hacker . He recently wrote about the The Age of the Video Ham . I posed few questions about the video-hams to him.

Who coined the word “Video-hams”?

Robert: As far as I’m aware, I coined the term in August 2006. Other people have written about the topic before, and I know that one person has used the term “philming” to describe it.

How does one define “Video-hamming”?

Robert: I define a video ham as someone who seaches the internet for IP-based security surveillance cameras which have not been secured, in order that they can watch the live footage.

How did he stumbled upon the problem ?

Robert Schifreen writes about it in a comment on his blog .

Robert: My interest in the subject was sparked a few weeks ago, when I was looking to buy some IP cameras for a client and decided to search the manufacturers’ websites for sample images so I could judge their quality. I soon realised that most of the manufacturers didn’t make such things available, but that there were plenty of unprotected cameras out there.

What measures should one take to protect themselves ?

Robert advices on protection measures .

Robert: My advice to anyone using an IP camera for surveillance is:

1. Use the camera’s in-built password protection rather than allowing the pictures to be streamed to the world.

2. Once you’ve set up the camera’s securely, test it by attempting to connect from outside your company’s network.

3. If you really want footage to be accessible over the internet, configure your firewall so that it can only be accessed by those who need to see it.

Understanding The Free Software Philosophy

Free Software may not be as visible in the media as its younger,
breakaway sibling, `Open Source’. You seldom hear of GNU/Linux, compared to the frequency with which you read of the term `Linux’. But,quietly, and mostly away from the glare of publicity, a small group of committed techies is slogging hard in India, to make a difference through skill and commitment. They are the Indian chapter of the Free Software Foundation. So, when it comes to fighting the patents threat that software faces in India, the Free Software Foundation-India (FSF-I) is there. Recently, this organisation put together an ambitious four-nation meet in Kerala,involving Venezuela, Brazil, Italy and India.Some of the techies in the group have achieved amazing feats, spurred on not just by their skills, but also by the ideology of Free Software.

Knowing the `Free Software’ philosophy

The first step towards acknowledging the Free Software Movement is to understand that `Free Software’ and `Open Source Software’ are two different entities. And that we, in the media, have been quite unjust to the movement by using the terms `Free Software’ and `Open Source’ interchangeably. In an e-mail conversation with LFY, Richard M. Stallman,the founder of the Free Software Foundation Understanding the Philosophy `(FSF),explained that the Free Software Movement built this community of cooperation in 1984, by developing the GNU operating system. “We did this for the sake of freedom—specifically, the freedom to cooperate.

In 1992, when the Linux kernel became free, it turned out that
GNU+Linux was so good in practical terms that millions of people
switched to it for its practical advantages. The result was that there were many users that were not aware of the issues of freedom and community that motivated us to develop the system. Some of them disagreed with our philosophy. In 1998, some of those people started using the term `Open Source’ instead of `Free Software’. A major motive was that they could talk about our community and its free software without mentioning the issue of freedom to cooperate. These people are part of our community, and some have helped build it. But their philosophy did not build our community, and it shouldn’t be named after their philosophy. Our community was built by the Free Software Movement. It is the Free Software Community.”

[Visit http://www.gnu.org/philosophy/free-software-for-freedom.html
and http://www.gnu.org/gnu/linux-and-gnu.html for more clarity]

But, then again, `Free Software’should not be confused with a
technology that comes free of cost. It is a philosophy, an ethic of
sharing. This is what FSF-India has put on the website [http://gnu.org.in] “Free software is a matter of freedom, not cost. It is a matter of liberty, not price.The word `free’ in free software has a similar meaning as in free speech, free people and free country, and should not be confused with its other meaning associated with zero-cost.Think of free software as software that is free of encumbrances, not necessarily free of cost. Think of it as a Swatantra software.”

Free Software gives users the freedom to be used on any number of computers, to share with others, to be studied, modified and
redistributed. Technically, Free Software is more stable, secure and compatible with open standards,compared to proprietary software. System crashes are extremely rare,which makes Free Software very popular for servers. These qualities arise from the fact that Free Software provides the freedom to study the source code, and millions of programmers and users worldwide contribute to the code, report bugs and bug fixes. Free Software is also different because the pace at which software is being produced and modified is much faster than in any other technology. This again is the result of contributions from the large number of developers worldwide.

Thiruvananthapuram becomes Indian Mecca for Free Software

The plot to form FSF-India was hatched in 1999, when a conference in Thiruvananthapuram came about,and a Free Software festival was held in the city. At that time, the core group was formed by the Mumbai-based G.Nagarjuna, who is chairman of FSF-India, apart from being a scientist at the Homi Bhabha Centre for Science Education, national centre of the Tata Institute of Fundamental Research (TIFR); M. Arun, V. Sasi Kumar, and others from Thiruvananthapuram, like TeX guru C.V. Radhakrishnan,Raj, RaghOO from Kochi, and Krishna, a mathematics professor from Thiruvananthapuram.Recollects Nagarjuna, “A formal organisation finally took shape. We identified a working group and board members. Then we all came down to write the `Memorandum of Understanding’ (MoU).”

That was when the FSF enthusiasts declared Thiruvananthapuram the `Free Software capital’ of India. Today, a series of events,ranging from an international TeX users meet, to the
recent four-nations conference, seem to be underlining the role of
Thiruvananthapuram as a `Free Software Mecca’. Incidentally,the Kerala capital even has an organisation known as SPACE (Society for the Promotion of Alternative Computing and Employment). It aims at promoting youngsters to enter the world of Free Software, both for skills and jobs.

FSF-India has registered itself under `Section 25’ of the Indian
Companies Act, which makes it a not-for-profit company. Nagarjuna explains, “We were thinking big. We wanted to have a large number of smaller units scattered across the country. If we didn’t form a company, in each place, members would have had to form a society. It would mean huge paper work for each group. So we thought we’d have one office, which would take care of everyone’s accounts (and paperwork). That was the thought.”

As its logo, the FSF-India has a charkha that morphs into a CD,
symbolising the philosophy `Weave your own code’, giving a hi-tech slant to the message of the Mahatma,which was `Weave your own cloth’.With its headquarters inThiruvananthapuram, FSF-India currently has units in Hyderabad,Calcutta, Bangalore, Chennai, Kochi,Kannur, Vellore, Mumbai and New Delhi.

Creating people’s technology

The FSF-India sees localisation of Free Software, or translating Free Software into Indian local languages,as a crucial task, so as to create a true people’s technology. Says Nagarjuna,”We thought we should have members essentially for promoting the free software philosophy, and also to join in various localisation groups all over the country.”

Some of the achievements that the foundation can proudly look back on is one of their first projects of localising GNU/Linux into
Malayalam, that was done in collaboration with the Asia-Pacific
Development Information Programme (APDIP) and Keltron.
Recollects Nagarjuna, “We did localisation of GNU/Linux to
Malayalam, about three years back.At that time, a Tamil version of GNU/Linux was available. Then came Malayalam.” But localising
Malayalam wasn’t easy. Tamil being a linear script, it was easier,
believes Nagarjuna, whose mother tongue is Telugu. Says he, “Other people had to wait till Pango gave us Indian language support. The same was true for KDE and Qt. So the browsers started speaking Indian languages only much later.” Nagarjuna is honest. “If you’re speaking about complete support, we’re (in the Free Software world) still behind. We don’t have dictionaries in Indian languages.

Proprietary software has fonts as well as dictionaries.

“But he’s also optimistic. Now that the Free Software world has solved the encoding problems, FSF-India hopes to tackle such
issues. But these problems cannot be solved unless some help from academia is also forthcoming, he suggests. “We need more support. The operating system has enough technical support; what we need now are databases—a glossary of terms in all the languages,”says Nagarjuna. FSF-India is trying to find out if the TDIL (Technology Development for Indian Languages) network of the Ministry of Communication and Information Technology, Government of India,can release some of their glossaries and make these freely available to those working in the Free Software world.

Battle to play it fair

Every battle that the foundation fights seems to qualify as a full
story in itself.Take, for example, the PlayFair fight with Apple. PlayFair is Apple Computer’s name for its digital rights management (DRM or Digital Restrictions Management) built into the proprietary multimedia technology and used by the iPod,iTunes, and the iTunes Music Store.Every file bought from the iTunes Music Store, with iTunes, is encoded with PlayFair. It digitally encrypts AAC audio files and prevents users from playing these files on unauthorised computers. PlayFair is a tool to enable fair use for music purchased from Apple’s iTunes music service. It lets people play music in non-Apple authorised hardware like a GNU/Linux PC or most digital audio players. It does that by stripping the DRM provision from a song,provided the key to playing the song is available.PlayFair is licensed
under the GNU General Public License. The PlayFair version 0.1 was released on March 30, 2004.V e r s i o n 0.2 came along on April 2, 2004.These were posted on the [sourceforge.net] for all to view. But on April 9, 2004, it got taken down from [sourceforge.net]. Apple had sent in a Cease and Desist (C&D) letter to SourceForge.net invoking the DMCA (Digital Millennium Copy Right Act of 1998) and instructed them to take down PlayFair within 24 hours. On April 4, 2004, PlayFair had moved over to Sarovar.org, the India-based hosting site for Free Software projects. By April 16, 2004, PlayFair had been taken down from
[sarovar.org] as well. Apple sent a C&D letter to the sponsors, maintainers and ISP of Sarovar.org invoking the IT Act 2002 and Indian Copyright Act, and instructed them to take down PlayFair within 24 hours.

FSF-India could not accept such breach of freedom and started
contemplating on a court battle. Says Nagarjuna, “When Sarovar.org in Thiruvananthapuram was asked to remove the project, we could have gone to court saying Apple had no locus standing in India, since India does not have a DMCA law. However,the company hosting Sarovar is a small company, and decided not to fight on its own. It asked us, FSF India,
to sort it out.”

At this juncture, Anand Babu, a Free Software proponent and the maker of one of the world’s fastest supercomputers, `Thunder’, currently being used by the US Department of Energy, came up with a neat solution.Babu took over the maintenance publicly and re-launched the project as [Hymn-Project.org] from within the United States with legal backing from FSF-India and the Electronic Frontier Foundation (which promotes free speech in cyberspace), as well as ISP support from CTYME.COM. SaysBabu, “We claimed that the Hymn Project is legal, based on the Fair Use rights, and we were prepared to fight Apple in the court. What also helped us was the work of the actual authors of PlayFair.” On the ideological plane, he says, “DMCA imbalances the copyright law, by overpowering its Fair Use provision. Not only the user of the DRM stripping software, but also the developer and the ISP hosting
this software are treated as criminals under the DMCA Act.”

Drive to make India patent-free

Another proud milestone in FSF-India’s career is that of making the Indian Parliament remove the software patents from the patents bill. Says V. Sasi Kumar of FSF-India, “We have been able to convince the Government of India to drop the clauses related to software patents,from the recent patents bill. We thank the help rendered by the left parties, the CPI in particular, in achieving this.”

The foundation believes that software patents are a serious menace in many countries. Agreements like the TRIPS (Trade Related Aspects of Intellectual Property Rights) Treaty clearly mandate that computer programs shall be protected by copyrights (refer http://swpat.ffii.org/analysis/trips/index.en.html] for more details), and further aggravate the practice of `software patents’. Sasi Kumar says.”Software patents are an illegal trade barrier wherever practiced, and a thorn in the flesh of software developers. Creating more awareness and co-operation will help us move closer towards software freedom for one and all, everywhere.”

Other issues, like the exclusive use of proprietary software in education across many states, and even several governments opting for proprietary software for many of their programmes and actually entering into agreements with software companies like Microsoft,are still live. FSF-India intends to take it all up.

Keeping promises

FSF-India made some promises to itself when it was founded. It vowed to promote the development of globally useful Free Software, in India and elsewhere; create awareness about Free Software specifically among students; increase access to Free Software by users, and promote the development of local solutions to local problems by empowering local programmers in the use of free platforms, tools and technologies.

The foundation is striving towards the above objectives by:

Concentrating on popularising the ideology of Free Software, and
bringing to the attention of authorities the dangers of adopting
proprietary software for public use.

Emphasising on the inclusion of Free Software into the IT textbooks
for high school classes in Kerala, and the subsequent promotion of
Free Software in schools.

Inclusion of Free Software in the IT courses conducted by the UGC
Academic Staff College in Thiruvananthapuram.Inclusion of Free Software in the curriculum in institutions like the Vellore Institute of Technology.

Running the media centre of the World Social Forum in Mumbai
exclusively on Free Software. Sasi Kumar cites some examples of the foundation’s achievements,”We have made a significant impact in Kerala, where the phrase Free Software is now understood by virtually everyone. FSF India has helped the education department here to create a GNU/Linux distribution for teaching IT in high schools, and about 4,000 teachers are now being trained in the installation and use of the system.Anna University in Tamil Nadu has now started courses that
should produce about 3000 engineers trained in Free Software
annually. The Madras Institute of Technology, under the university, has a good number of developers working in Free Software. The Homi Bhabha Centre for Science Education has been developing Free Software-based applications that can be used in education, and has brought out its own version of GNU/Linux, known as Gnoware.” Further, in order to increase access to Free Software by users, including the economically backward people in India, FSF-India is helping Sarai, the New Delhi-based
NGO in its Cyber Mohalla, to exclusively use Free Software.
The final utterance Despite these good works, FSF-India lacks
membership, strength and volunteers. Says Nagarjuna, “Lack of
sufficient volunteers is the main problem. We have a lot more
sympathisers than people who can work. Everybody who is spreading Free Software doesn’t always identify that that work is being done on behalf of FSF-India. Yet, a lot of work is getting done.” The organisation is also keen to employ 2-3 full-timers to work for it. Convincing people to start using Free Software for the sake of principles is another area of concern. Laments Nagarjuna, “This requires moral commitment, not just pragmatism. Moral commitment is seldom seen in the ethos currently, all over the world. That’s a major challenge. If you look at it like this, at the time of Independence, during the freedom movement, people talked highly about morality. Not just about throwing out the enemy.”

After all, how do you motivate youngsters to go in for free software, when proprietary software tempts the best brains with mega-bucks?
Nagarjuna reiterates, “If you choose to do it, it’s for freedom, not
because of economic reasons. The point I keep talking about is that we keep working and struggling to maintain freedom, even if it is expensive. Freedom is more valuable than just the `total cost of ownership ‘that opensource followers talk about. Our arguments, unlike those of the open source promoters,
are not based on economics alone. Not even just technology. It’s ethics and politics (of technology) that we are concerned about. Ours is a cultural movement.”

By: Jhinuk Chowdhury, LFY Bureau

Richard Stallman tells LFY ‘Why India is special’.

Q. What do you think of the Free Software movement that is going on in India?

India is among the few countries with the strongest understanding of Free Software as an ethical issue of freedom. (The others are Spain,Colombia, Brazil and Argentina.) Many countries have people whoappreciate the practical side-benefits that can result from freedom, but if that’s all they see, they don’t really understand what Free Software is all about.

Q. What’s made you visit the country so many times?

Partly because India is an important place for software development, partly because of the intense support for Free Software in the country and partly because I love Indian classical music and dance, and I’m very glad to have a chance to go to India and see it.

Q. What is that one special thing that makes you think India can or
cannot make its mark in the Free Software Movement?

I am hoping, rather, that the Free Software Movement will make its mark in India. Millions of Indians use computers, and millions more will start in the coming years. If we can convince Indians to demand freedom with their computers, that will be a victory with world-wide consequences.

Richard Stallman tells LFY Why India is special.RICHARD STALLMAN, founder, Free Software Foundation

The Indian Linux Community

Despite India having one of the largest numbers of Linux User
Groups in the world, we are yet to see a space for open source
software in the national IT policy.

To communicate in just a few pages the contributions of the Indian open source community to the FLOSS movement is quite a daunting task. After all, how do you do justice or document the enormous efforts that are scattered across the country? Almost every nook and corner of India today has an Indian Linux User Group (ILUG), Swatantra Software Community, the Free Software Forum (FSF), or a GNU/Linux User Group—just to name a few. These groups have done some major work on the the open source community in two major ways: disseminating developer education through freely accessible handbooks covering Indian language computing, and by writing open source software tools for real-world Indian language computing needs.

From the east comes the Indo-Bangladesh localisation project,
AnkurBangla, an initiative to put Bengali on the Linux map, done in collaboration with the Indic Computing Consortium. Another eastern endeavour is the Assam-based Luit Project, put in place on May 21,2004 by Jyotirmoy Saikia and Bhaskar Dutta, with support from G Karunakar and Meyarivan T of the Sarai Programme.
Luit, the other name for the Brahmaputra, aims to localise free and open source software in Assamese, with initial targets to integrate Assamese support into KDE and GNOME desktop environments,and finally provide a complete Assamese desktop in the Linux platform. In the West, the Free Software Foundation (FSF) of Mumbai has teamed up with Indictrans (the localisation effort of C-DAC along with Technology Development for Indian Languages) to create `Gargi’—an open type font in Devanagri
and `Padmaa’ in Gujarati.

Down south, Swatantra Malayalam Computing has come up with some major releases like Malayalam GNOME, Pano-Malayalam-Patch-Source, SMCConvert -0.1.0,SMC-Mgl – 0.0.2 version, among others—all downloadable from their website [http://sarovar.org/projects/smc/].
Joining the tide, the TamilLinux.org group is toiling hard to develop a Tamilian version of GUI for xwindow-based desktops, GNOME and KDE.

Other projects include PunLinux, initiated by the open source enthusiasts of Punjab; Rebati—the Oriya localisation project initiated by enthusiasts like Subhransu Behera, Staya Mohapatra, Gora Mohanty and Utkarsh; and localisation in Gujarati initiated by Nirav Mehta. There are also other projects in Kannada and Telegu localisation.

Pune-based BLUG (BCS-MCS GNU/Linux User Group), which has joined the drive on January 26, 2005, is busy localising KDE.
On a lighter side, these open source enthusiasts are also bringing in a touch of Indian romanticism into Linux.

Consider this: Nagpur-based paediatrician-turned-software guru, Dr Tarique Sani, hosts a website [aaina-e-ghazal.com] that offers a trilingual dictionary of commonly used words in `ghazals’. The Urdu text is written in Devanagri, the widely-used script of Hindi and other North Indian languages. The meanings of the words used in the `ghazals’ are given in English, Hindi and the regional language Marathi.

Creating Indian open source manpower

Almost all the successful missions across the world have invariably banked upon one pillar—the strength of young minds. The OSS community of India is no exception to localisation of Linux and Open Source Software (OSS), popularising the OSS concept among students through troubleshooting and information exchange, etc. Each group has worked in its own way to take the OSS movement ahead.

The L10n passion

The passion for Indianising or localising (L10n) Linux and OSS is visible everywhere, without any exception, from Gujarat to Orissa. The most talked about endeavour here is the IndLinux project taken ahead by the LUGs from across the country. Developed with the aim of creating a Linux distribution that supports Indian languages at all levels, the IndLinux project seeks to include the majority of India that does not speak English. Some of the major
activities of the project are to create expertise in the domains of I/O modules, the development of fonts, kernel enablement, word translations, etc. With its user interface based on GNOME and KDE, the IndLinux uses the Lesser General Public License. As of now, it has launched four distributions of IndLinux in Hindi, Marathi, Punjabi and Telegu. The average activity percentile mentioned in
sourcefoge.net is more than 80 per cent a week.

Another pan-Indian localisation initiative is the Indic Computing project, launched to create open source infrastructure code, and provide technical documentation on Indian language computing issues. It claims to serve this rule. It is, in fact, putting in a lot of hard work to impart education and training to young college students, and develop a talented pool of youngsters who are also
passionate about open source. Most of this training takes place in an innovative and informal manner. Take, for example, Mumbai-based Nagarjuna G, an active Free Software Foundation member and a professor at the Tata Institute of Fundamental Research, who is undertaking some interesting projects like Fostering Free/Open Source Technologies (FOST) to educate engineering students on OSS. He also runs a mailing list called GNU/Linux for Education (GNU/LIFE). Nagarjuna has also initiated a community-based portal [http://www.gnowledge.org/] to
freely distribute knowledge. As part of this endeavour, an
application, GNOWSYS—part of the GNU project, is being
developed that would enable all the willing members of
the community to share a common repository of

Further, in an effort to take open source knowledge to the mainstream, M.N. Karthik has launched a website, [www.metlin.f2s.com/linux/], which besides being a good repository of information on Linux as an OS, also attends to a novice’s queries. The site also has a tutorial and a how-to on accessing Windows partitions.

A small town around Kolkata,named Madhyamgram, has launched another innovative way of disseminating FLOSS knowledge. Initiated by Dipankar Das, a professor at one of the colleges in Kolkata, the project has been called GNU-Linux-Thek (GLT)-Madhyamgram or GLT-Mad. Its members describe GLT-Mad as a `physical helpdesk on matters regarding GNU/Linux’. Modelled to facilitate interaction on a personal level, the project is run by Mr Das. He collects the tutorial materials and educates students or anyone who is interested in knowing about GNU/Linux.
A free-of-cost tutorial model, GLT-Mad has compiled CDs which can be used by other such projects across the country. A GLT-book, `GNU/Linux Iskool’, is also being worked out. GLT-Mad is affiliated to the Indian GNU/Linux Users Group, Kolkata and the Free Software Foundation of India, West Bengal. Added to this, the
members of ILUG-Calcutta are a part of localised, low-cost computing initiatives in progress at the West Bengal Madrassa Board.

Still at its initial stages, members from the Pune BLUG visit colleges to train faculty. “We train people in their GNU/Linux set up and labs. Many a time, because we don’t have enough space or the necessary permission in colleges, we arrange this activity in friends’ houses,” says Amit Karpe of BLUG, Pune. The group has also arranged a number of workshops in colleges in Pune for BCS and MCS students. “Initially, we conducted some intensive
seminars on GNU/Linux installation in colleges and in the homes of our volunteers. We started with the basic use of GNU/Linux, with practical demonstrations, whenever possible.” All this free of cost! For the summers, the group is pursuing talks with members of the Pune University to arrange summer workshops for the BCS and MCS faculties.

From Goa comes another interesting project—Glibms—a library management software developed using PHP and PostgreSQL, to automate the different activities carried out in the library. It was put together by young engineering college students Sharmad Naik, Gaurav Priyolkar and Hiren Lodhiya [http://sourceforge.net/projects/glibs]. There is a discussion group in Yahoo, namely, Linux at Schools in India [http://in.groups.yahoo.com/group/linux_schools/”], to help schools set up and use GNU/Linux.

Adding desi spice to Linux

The Indian open source community is not only booming with activity, but also inspires others to move in the direction of FLOSS. Unfortunately, most of us in India are unaware of the high levels of activity in this sphere.

One of the unheard tales is about a small time village boy from Kerala, Sarath Lakshman, who has recently developed the SLYNUX desktop—that looks close to a Window’s desktop. Lakshman, taking his X standard examination, first encountered Linux as a result of the IT at School project, initiated at his school. He soon realised that although the OS is very smooth and secure, the
average user would be confused by the names given to programs in Linux. Hence, he came up with a simpler version of the Linux desktop—SLYNUX. SLYNUX has a pre-installed SLYNUX media player and a Linamp player.

So, the user can play VCDs and even DVDs using Xine. It also comes with a multi-purpose messenger program that can be used for MSN, Yahoo, ICQ, Jabber and IRC messaging services. SLYNUX also comes with Mozilla Firefox, which can be used to access the Net. Among the big town silent missionaries is Mumbai-
based Amish Mehta, who has developed a cyberoam authentication client for various platforms, which has a 24-hour online working capacity [http://sourceforge.net/projects/cyberoam/]. Prabu Ramachandran has unveiled a scientific visualiser based on the open source platform. He’s named it MayaVi (magic) [http://mayavi.sourceforge.net/]. Vinod G. Kulkarni has come up with an IMV (Information Meta View) system that attempts to create a Web standard for information storage in a decentralised database. Information is stored as a graph-like structure spanning several service providers [http://sourceforge.net/projects/imv/].

Phew! The list is exhaustive. Another Linux enthusiast, Amit Kale, introduced a kernel patch that allows you to use gdb to debug Linux kernels. It’s called kgdb [http://kgdb.sourceforge.net]. It can detect breakpoints in kernel code. From the east of India comes an Integrated Development Environment (IDE) for C and C++ on GNU/Linux. Developed by Naba Kumar, the IDE has been named Anjuta [http://anjuta.sourceforge.net]. It also aims to combine the power of text-based command-line tools
with the GNOME graphical user interface.

Information exchange

Discussion groups, mailing lists and daily updates are common features in every open source community website, particularly those of ILUGs. Such exercises not only keep the community updated with the surroundings but also encourage online interactions. Added to these are the periodical meetings that occur. Even the newly founded groups give a lot of importance to meetings.

Says Amit Karpe from Pune, “We arrange weekly workshops and seminars.” Adds Gora of ILUG Bhubanshwar (ILUG-Bbsr), “Currently, it’s just the monthly meetings that the ILUG-Bbsr holds with other Yahoo groups. We soon hope to have weekly workshops
and share the developments on Linux.” These groups are also a good means of exchanging news on job openings for people armed with Linux skills.

While groups like the Bangalore LUG have a dedicated section listing jobs on their website, most of it also happens on a personal contact basis. As Sankarshan Mukhopadhyay, member of ILUG-Cal and currently working with Red Hat India puts it, “This is more of a case of referrals rather than any structured initiative. The founder members or peers have industry contacts and, in
many cases, the industry members get in touch for the same reason.”

A significant step towards information exchange among the ILUGs is FLOSS Today, a network set up in 2003, and currently hosted by sarai.net. The main idea is to ensure that open source news in India percolates into every region of the country. In the introductory note of FLOSS Today, the Goa-based freelance journalist, Fredrick Noronha, says, “The list was initiated with the aim of having a cross-pollination of ideas and events, making
announcements, etc across India and elsewhere in South Asia.” The list aims to be an `event-centric’ announcement list. Reports of meetings to be held or already held, announcements of FLOSS events, gatherings, tech sessions, etc, would be its primary focus [http://mail.sarai.net/mailman/listinfo/flosstoday].

Working on Linux made smooth

Troubleshooting is again a core activity area of the Indian open source community. Apart from conducting workshops and seminars, ILUGs also visit schools and colleges that are using open source software, to render their services to whatever extent is possible. On a virtual level, their websites provide the best
means for users to reach out to troubleshooters through sections like FAQs, mailing lists, discussions, etc. The Bangalore LUG’s
(BLUG) site has a whole set of white papers on not only
the way Linux works, but also tips on how to start a Linux
User Group. Its resource section answers queries related
to Linux security. BLUG’s discussion list includes a sub-
list named `Tech list’, which answers questions relating
to issues ranging from Linux installations to operations.
On similar lines, the ILUG-Delhi, under its discussion list,
has sub-lists like Desktop Linux, which answers queries
relating to fonts, Windows Manager, etc. The site also has
a section on hardware support. These groups, on a regular
basis, also post news on the latest software releases from
the industry and review them. G Nagarjuna feels LUGs
are very active in this area. He says, “Most of the LUGs in
Mumbai and Pune are very active. The Mumbai GLUG has most of the FSF guys, who do one-day GNU Linux awareness workshops in local colleges and the Pune LUG runs a course on Linux.”

There are other private initiatives, like the one by
Bangalore-based Koshy, who volunteers to fix bugs and tweak
documentation. He is currently working on two projects—CIEE
Database (website for distributing information on various government funded schools in Karnataka), and Indian BSD (adapting FreeBSD and other BSD-derived OSs to support the languages of the Indian subcontinent)
[http://people.freebsd.org/~jkoshy/]. The Pune-based LUG will very soon start training corporations,
governments and school students who are below the line
of poverty on the GNU/Linux System, with the help of
Sarwangin Vikas Sanstha. They also plan to go outside
Pune to promote GNU/Linux in other cities like Nashik
and Satara, and fix problems that users are facing, if at all.
Another help site is the Linux India Help (LIH) website
[https://lists.sourceforge.net/lists/listinfo/linux-india-help], which helps people (especially newbies) install and
run Linux. Topics covered in the discussion range from
connecting to Indian ISPs (VSNL, MTNL, Satyam etc),
configuring popular hardware found in India, technical
questions about Linux, etc.

In retrospect

What we have compiled is not even a fraction of the
activities that are currently on in the Indian open source
community, with regard to localisation or education. The
Indian Linux User Groups have an amazing growth story.
Till the late nineties, the country did not even have 50
Linux User Groups and, today, India is said to have one of
the largest number of LUGs in the world. Still more
amazing is the way each group manages its finances.
Almost all the ILUG members across the country make
their own contributions to sustain this whole movement
in their respective regions. Says Fredrick Noronha, “We
hardly need any money to run a LUG. In the past five
years of running it, we must have spent Rs 10,000. And
whenever we do need it, everyone pays for their own
expenses. So there’s a lot of people dipping into their own
pockets, and making this movement self-sustainable. It’s
an amazing world out there!” Adds Mukhopadhyay, “It all
happens out of personal contribution based on various
events.” Even the newer LUGs are following the trend.
Says Gora of ILUG-Bbsr, “Everyone pays their way. Various
institutions have donated the use of their facilities and
others are donating their time for content development.”
But this is one side of the coin that shows what the
Indian open source community has done. The other side
has a whole list of issues the community is yet to attend to.
efforts to spread OSS awareness
among the techies of India. It’s now
time to take this awareness to the
decision-making level or the
governmental level, if it truly wants
to realise the dream of bridging the
remains the highest body that can
bring about this transition. It’s pretty
of the largest number of LUGs in the
world, is yet to see a space for open source software in the
national IT policy. Slow rate of computer penetration
cannot be taken as a valid reason here, when we have a
country like Vietnam, which has not yet recuperated from
the Vietnam War, with a national open source policy in
place. That’s thanks to the very active LUG of the country.
It’s true that we do need a proactive government here, but
the first step needs to come from us. Placing a blueprint to
the government on the kind of IT policy that the country
needs, or the role OSS can play in the country with some
push from the government, is not an impossible hurdle to
scale. How come, our neighbouring Pakistan LUG could
convince its government to work towards creating a Linux
task force, while we haven’t even made an attempt on that
front! Ensuring good media coverage of various
developments in the FLOSS movement can add a lot of
momentum to the cause. Indian techno-journalists need
to play a role here. The lack of documentation of the
various efforts is another issue here. As Noronha says,
“This is a complex issue, not because little is being done,
but because so little has been documented. I think our
media and journalists have failed the Free Software world
on this!”

More from India….......

Sarovar.org: Sarovar.org [http://sarovar.org/] is India’s first portal to host projects under Free/Open Source licences. It is
located in Trivandrum and hosted at the Asianet data centre.

Planet FLOSS India: Planet Floss India [http://planet-india.randomink.org/] is a window into the world, work and lives of developers and contributors from India who are working on Free/Open Source Software.

Dhvani: Dhvani [http://dhvani.sourceforge.net/] (which means `sound’ in Sanskrit) is a text-to-speech system for Indian languages by the Simputer Trust. It takes phonetic input. Currently, there is support that accepts UTF-8 text in the Hindi and Kannada languages, and turns them into phonetics; therefore, text-to-speech is working for these languages.

Free Software User Group—Kochi: [http://puggy.symonds.net/~fsug-kochi/]
Formerly known as the Indian GNU/Linux User Group – Kochi, the Free Software User Group—Kochi, claims to have changed its name so as to better serve the purpose of its existence. This is to advocate and
promote the use of free software by providing technical assistance
related to free software, bringing together free software businesses and free software users, and
propagating the message of software freedom in and around the city of Kochi in Kerala.

Linux India General—general, non-technical discussions about Linux in India:[https://lists.sourceforge.net/lists/listinfo/linux-india-general] The
Linux India
General (LIG) mailing list is a general, non-technical general
discussion group on Linux.

Indian TEX Users Group (TUGIndia): [http://www.tug.org.in/] The Indian
TEX Users Group (TUGIndia) was founded in 1997 to provide leadership for users of TEX, a revolutionary typesetting system developed by Donald Knuth. It represents the interests of TEX users in India.

Indian contribution to KDE: KDE has a few Indians involved in its
development. Navindram Umanee and the Melbourne-based Sirtaj Singh Kang are prominent developers of Indian origin. Sirtaj has also developed KDOC (API doc generation tool), korn, karm, kview and kimgio (plugins for various image formats). More details: http://i18n.kde.org/

We leave you with another must-visit site:

By: Jhinuk Chowdhury, LFY Bureau.

The Indian open source community is not only booming with activity,but also inspires others to move in the direction of FLOSS.

PS: Though the article is covers a lot of ground, it is not complete.