2004-12-24

Indian cinema: We never learn

I saw a Bollywood film last night, after a long time. Sadly though, not much has changed during the time I didnt watch one. Why is it that one never has a truly endearing moment in a Bollywoord film -a moment where you conjoin with a character as if the events unfolding in front of your eyes, are a recollection of events in your past depicting exactly how it all happened? Or that it was just how you, and others around you, reacted?

Why do I, and almost everyone else that I know who watches them, feels Bollywood films are loud, usually obnoxious, with characters that are mere caricatures of how we truly are, and only escapism for entertainment value? And why we, believing and knowning what we believe, continue to watch them? Worse still, why do those who make them, continue doing so?

This made me wonder if we Indians are really as loud as they project us? But how come I never broke into a song, running around trees with a girl? Ah, perhaps I wasn't lucky enough. But I don't think anyone else I know was. How many of us have had such vastly varying socio-emotional moments as depicted in our movies? How many of us really wage a personal war against the system? Is personal justice is the only justice delivered in India? Are relatives always loud and overbearing? Actually, they probably are...

The Indian mythology is a rich source of myth, legends and heroes. The stories have evolved over many a millennia to reach their present form, and it is safe to assume they have undergone changes over time, as the stories were passed by recitation from one generation to another. It isn't unusal for the same (or similar) story to appear in different texts, each giving a slightly different version. The mythology is a ripe source of interesting accounts of gods fighting demons, fire breathing dragons and countless miracles sprinkled liberally across the text. Thus we do have a rich enough background to provide colour. Just think of the various different gods we have, and the miracles they are capable of performing. Who can compare a god that has only walked on water, to ours who lift mountains, defeat terrible demons and even hold the entire universe in their mouth?

Added to this mythology is also the richness of culture, especially the inclination towards the fine arts of classical music and dance. So much so, that we have classified the juice or flavour of feeling conveyed by an artform - the "rasas". The culture, together with the richness of mythology has provided for many a night spent by the fire, with powerful stories enacted and delivered by artists taking the art to its highest form. It is this background that undoubtedly provides us the undying love for song and dance.

Our land, rich in spices, abundant natural resources and precious ores, has been annexed by several kings and conquerors over time - from Alexander to Gengis Khan - and all have been rewarded with untold riches. However, each conqueror found the richness of land extended beyond treasures that could be snatched, and either chose to stay on, or left behind a band of followers who brought with them new ideas and art forms, further enriching the culture.

Prior to cinema, presentations of various classical dances, recitation of classical songs and stage plays were a key source of entertainment. Art was revered, and artists were given the paid regard and reward, who in turn, devoted their lives to excel in their chosen art form. I remember the stage plays mostly in the form of nautanki, or ramlila, were the most popular forms of entertainment, other than sport. These plays were mostly religious in nature, carrying a moral or social message. The fickle and restless audience was kept interested mostly by melodrama, colour songs enacted by skilful dancers.

It is this song and dance background that infiltrated into the Indian cinema. Raja Harishchandra, India's first indigenous full-length feature film released in 1913, was a mythological film depicting the life and times of King Harishchandra. Subsequent films also revolved around mythological characters or the great leaders of the time. Perhaps due to the novelty and inexperience of the new artform, and perhaps due to the background of stage plays, moments of high emotion and drama were displayed via songs. It was this, more than anything else, that sowed the seeds of the Bollywood tradition to resort to using songs to portray intense emotions.

Sadly, the years of experience in both the media and the understanding of the audience's response to movies, has been more or less wasted. Bollywood films of today are polished like a pop-video or an advertisement, but there is little substance beneath the gloss. The storylines change little across films, and one can almost feel the actors going through the motions, having been through the cookie-cutter several times. The loud, slight exaggeration of stage actors to convey emotions to all corners of crowd, has been carried over in a medium that captures the slightest nuance. The focus on appearance and saleability has led to lack off attention to detail. Film-folk in India are stuck on the island that was meant to be a stepping stone.

2004-12-22

Same old, Same old

So then, another day, and the hypocrisy in India is never ebbing.

Two high-school students from Delhi Public School were filmed having oral sex. Well, apparently the boy filmed (or his associate, I dunno, I haven't seen the film) it using his camera phone. Wicked. Only, reports say the girl is smiling and all happy in it. Now though that reminds me of a certain joke, one never truly knows the issue in such incidents. Anyway, this film was then exchanged via the phones, and finally came to Ravi Raj, a student in IIT-Kharagpur, who rather craftily, created a VCD of the entire incident, and posted it on bazee.com (the Indian subsidiary of eBay). As usual, it got the nasties started in India - true to form, the Indian police captured the baazee CEO, Avinash Bajaj, for distributing pornography!

The boy himself has been tracked down by police, faced court yesterday and has been expelled from his school. Interestingly, there is no mention of the girl anywhere, whereas the name of the boy and person reponsible for selling the video-clip has been splashed across the newspapers all over India. As usual, this case
has gripped India, a largely conservative country where anything more revealing than a wet sari is generally regarded as culturally unacceptable.

But are we really that - a largely conservative country? We might be prudes, we sure are an opinionated, prejudiced and hypocritic society, where anything unpleasant is quietly brushed under the carpet, but are we really a conservative country in the true sense of the phrase? We do have a love-hate relation with sex, and we have never been really comfortable talking about it, other than hushed whispers among teenage boys, hysteric giggles among teenage girls, and lecherous looks and back-slapping among men, but aren't we also the country that has mythological teachings about sex, literature on sex, and even a sex God?

We are the country that worship Kama, initially regarded as a creative spirit who welled out of Purusha, the the supreme male element, when that god was resting alone on the cosmic waters at the very beginning of time.Some parts of the Vedas go even farther and say that Kama himself was the supreme creative being, self-existent and sprung out of the cosmic waters at the beginning of time. In this context he was the supreme god who created everything else and whose first emanation was desire and whose second was the power to achieve that desire.
Kama is blessed with eternal youth and is figured as the most handsome of the gods. He rides a parrot and carries a bow made of sugar-cane stalk strung with a line of humming-bees and he shoots arrows tipped with flowers. These are the shafts of desire and whoever is struck by them falls in love. Thus, Kama has great resemblance to the Greek Cupid. Kama is accompanied everywhere by his wife, Rati (passion), and his friend Vasanta (spring).

As Hindu mythology progressed and developed into what it is today, Kama became identified with sexual desire, a more frivolous aspect of his creativity. In this aspect he is the son of Vishnu, the preserver within the Hindu Triad. The Vishnu who's Raas-Leela is revered as the divinity of Krishna himself: ‘The Gopis were Rishis,and the Lord Supreme as a babe is teaching them a lesson. But there is more than that. There is a profound occult lesson behind the story. When the Soul is approaching the Supreme Lord at one great stage of initiation, it has to pass through a great ordeal. Stripped of everything on which it has hitherto relied, stripped of everything that is not its inner self, deprived of all external aid, of all external protection, of all external covering, the soul itself, in its own inherent life, must stand naked and alone, with nothing to rely on save the life of the Self within it. If it flinches before the ordeal, if it clings to anything to which it has hitherto looked for help, if in the supreme hour, it cries out for friend or help, or even the Guru himself, the soul fails in that ordeal. Naked and alone it must go forth, with absolutely none to aid it save the divinity within itself. And it is that nakedness of the soul as it approaches the supreme goal, that is told of in that story’.

What then, of the literature about Kama? The aim of Kama in Indian literature deals with pleasure and love. The Kama literature is thought to have been written for the people of the higher castes because the social atmosphere of the time permitted very little private time for a husband and wife. From DeliriumsRealm: Sexual relations were seen as the only allowable token of affection a husband could show his new bride, but at the same time, sex was a source of anxiety for the couple because it was one of the only activities privately shared by the couple and stood as the grounds for which the relationship was based. Apparently, the lower castes did not have any such problems because men and women interacted on a daily basis, and hence their relationships were not based solely on the act of copulence.

So, like everywhere in the world, the relationships of men and women of the elite, were fragile in ancient India. Coming back to Kama literature, the best known of the Kama literature is Vatsyayana's Kamasutra, which was written around the third century C.E. It is a technical account of the social structure dealing with manners, morals, sexology, and culture in the third century. In this treatise, Vatsyayana describes Kama as one of the three values of life along with virtue (dharma) and wealth (artha), which is a departure from the traditional four stages of life, but it shows the separation of Kama with spirituality. He states that much of the condemnation of sexual practices is due to abnormal expressions and perversions rather than due to a healthy concern for it. Vatsyayana also maintains that "sexual satisfacion, [sic.] equally like food, is essential to the maintenance of bodily health" and "though evil effects may follow as a result of indulgence, passion has to be appeased" Therefore, he urges the study of the Kama literature in order to achieve the fullness of pleasure that humans solely can obtain in sexual union, which he believes can only result from following the procedure he describes.


However, the Kamasutra is written from a patriarchal perspective where men were given much more freedom then women. Women were expected to marry as virgins and worship their husbands, while men were permitted premarital and extramarital affairs as well as having other wives and mistresses.

So truly, the prudish, patriarchical aspect of the Indian society has existed since the birth of literature? For, if there is a treatise for acts of copulation, why describe them from a single, preferred sex perspective, and restrict members of other sex from engaging in any acts altogether? Just like Kama Sutra has been interpreted by today's world as a sordid, picture-book of character-drawings engaged in mirthful acts of sex, maybe it is the bias with which the text was written that has led to the entire social tabboo towards sex.

2004-12-21

London Attractions

I'm planning to take my parents around London during Christmas holidays this year, so I started looking at different websites for the available attractions, places to see and things to do!
First of, London is expensive! There are few attractions that free, and for the rest, the entry fee is quite a lot. Here's a small list:
Attraction Price Duration Remarks Location
London Eye 10.9 30 mins Combo tickets available Waterloo Tube (5 mins from Waterloo)
Madame Tussaud's (incl Planetorium) 21.99 2 hours Ticket prices vary depending upon time of entry (9-3: 21.99 , 3-5: 17.99, 5-6: 13 Baker Street underground station is on the Bakerloo, Circle, Jubilee, Metropolitan and Hammersmith & City lines, making it a short, easy journey from anywhere on the central London tube network.
London Eye + MT 26.5   (You have 7 days to visit MT after London Eye)  
Somerset House (Ice Rink, Gilbert collection of art, Art gallery) 5 2 hours £5 for each collection. £8 for a combo of any two Somerset House can be entered on foot from Victoria Embankment, Waterloo Bridge (via a new footbridge link), or from the Strand
British Museum Free 2 hours   Near: Holborn, Tottenham Court Road, Russell Square, Goodge St.
Tower of London 12.5 3 hours   Circle/District lines to Tower Hill. Follow directional signage to the main entrance of the To
Tower + Hampton Court 17.5 6 hours    
Hampton Court 11.5 3 hours    
Westminster Abbey 6 1 hr Open 10-12:45 only till Jan 1  
Buckingham Palace 13.5   Guard change every odd-day at 11:30 AM (during winter, weather permitting)  
London Aquarium 9.75 2 hours   The best station is Westminster on the District, Circle and jubilee lines.
Trafalgar Square Free     Tube: Charing Cross
Well I never! How is an ordinary man supposed to live in a city like that then?! Here are some websites and other links of interest for visiting London:

2004-12-20

Installing and configuring CUPS


In my new office, most of the workstations are NT/2000 boxes on a separate LAN (called CH2M), while there are a few development machines on a separate LAN (called OSE). The two networks can talk to each other via the host Matrix (Linux 2.4.18-14), which also has Samba (2.2.5) installed on it.

There is a network printer (LaserJet 4050 TN), among others, available for printing.

I wasn't sure how good (or bad), the queue managing aspects of the printer were, and besides, I wanted to be able to view the jobs in the queue, pause and/or cancel them, if necessary.

Since Matrix was the gateway and also used as a server for other purposes (it has Oracle 9i and other such stuff), I decided to configure printing on it. Quick search on google revealed CUPS (www.cups.org) as the most-used and robust choice.

So I downloaded CUPS (version 1.1.22), and installed it. Below are the steps I followed:

Installing CUPS:

(make sure you have the following libraries installed before you start)
  • JPEG 6b or higher
  • PNG 1.0.6 or higher
  • TIFF 3.4 or higher
  • ZLIB 1.1.3 or higher


Installation is quick and easy:
  1. ./configure
  2. make
  3. make install

This installs the libraries at /usr/local/libs. The cupsd daemon is installed in /usr/sbin, while the startup script is installed in /etc/init.d/cups and the as usual, the config files go in /etc/cups

Configuring CUPS
1. Edit /etc/cups/cupsd using your favourite editor.

Servername - This is the name as advertised to the world. Clients of your CUPS server will see this name. In my case, it is set to:

ServerName matrix.ukose.com


AccessLog - This is the location of the CUPS access log (alike Apache). I didn't change it.

AccessLog /var/log/cups/access_log


LogLevel : controls the number of messages logged to the ErrorLog file and can be one of the following:
  • debug2 Log everything.
  • debug Log almost everything.
  • info Log all requests and state changes.
  • warn Log errors and warnings.
  • error Log only errors.
  • none Log nothing.


LogLevel debug


(Since I wanted to debug my CUPS setup, I changed the LogLevel to debug. Default is info).

Ports/addresses. The default port 631 is reserved for the Internet Printing Protocol (IPP) and is what we use here. You can have multiple Port/Listen lines to listen to more than one port or address, or to restrict access:

NOTE: In order for the command-line and web interfaces to work, you must have at least one Port or Listen line that allows access from the local loopback address (localhost).


Port 631


Scroll down now to the "<Location />" section. Alike Apache's httpd.conf, we need to specify connections from which network/subnet/IP can be made. I changed mine to allow connections from my local network:


Order Deny,Allow
Deny From All
Allow From 192.168.1.*


Finally, onto managing administration access. You may not want to configure/manage CUPS remotely, but from within the network, hence:


## Restrict access to local domain
Order Deny,Allow
Deny From All
Allow From 192.168.1.*


That's it. That's all we need to configure for now. Save the file and exit from your editor.

The next step is to add the printer to CUPS. Before you can add a printer to CUPS, you need to get the PPD file for your printer. The one-stop resource for Linux printing is www.linuxprinting.org. Check the printer listing page to see if your printer is listed (http://www.linuxprinting.org/printer_list.cgi). Mine is HP LaserJet 4050 TN. Following is what I was suggested:



HP LaserJet 4050
BW laser printer, max. 1200x1200 dpi, works Perfectly
Recommended driver: Postscript (Home page, manufacturer-supplied PPD



So then, I don't really need to download the manufacturer-supplied PPD according to CUPS. So, I'm just going to use the web-interface to add a printer. Alternatively, I could also use the command line. We'll explore both options :-)

As usual, web-interfaces are easy. CUPS web-interface is located at: http://localhost:631. It asks for a username/password. Enter "root" (without the quotes of course), and your root password (alternatively, you can modify cupsd.conf to enable more users to manage CUPS).
  1. Click "Add Printers"
  2. Specify the Name, Location and Description. Name is what the users will see, while Location and Description are friendly strings for users to identify the printer.
  3. You'd then need to specify the device for your printer. Most printers these days support Internet Printing Protocol (or IPP), so select that
  4. The next screen asks for the device URI. For IPP printers, it is of the form: socket://IP:port, with 9100 as the default port. So, for example, the device URI for my printer is: socket://192.168.1.2:9100
  5. It would then ask for the model/drive for your printer.

That's it. That's all you have to do to setup your printer through the web-interface.

Via, the command line, the CUPS command to use is lpadmin:

You can add a network printer enable the printer with:

# lpadmin -p hplj -v socket://192.168.0.6:9100/ -E

Another example for a LPD print server:


# lpadmin -p lp1nd -v lpd://printhost/lp1nd -E


To add information about the Location and a Description of the printer:


# lpadmin -p lp0 -L "Level 2 South" -D "HP LaserJet 4"


To specify a PPD for the printer:


# lpadmin -p lp7 -P /usr/share/postscript/ppd/HP_LaserJet_4050_Series.ppd
# lpadmin -p lp11 -P LEXC750.PPD


The PPD file is copied into /etc/cups/ppd/lp11.ppd, for example.

Lets now start cups.

Starting up cups is a simple matter:


[root@matrix sbin]# /etc/init.d/cups restart
cups: restarted scheduler. [ OK ]


Now that cups is started, let have a look at the logs to see what's happening:


[root@matrix sbin]# tail /var/log/cups/error_log
I [20/Dec/2004:11:39:02 +0000] LoadPPDs: Read "/etc/cups/ppds.dat", 16 PPDs...
I [20/Dec/2004:11:39:02 +0000] LoadPPDs: No new or changed PPDs...
D [20/Dec/2004:11:39:02 +0000] StartListening: NumListeners=1
D [20/Dec/2004:11:39:02 +0000] StartListening: address=00000000 port=631
D [20/Dec/2004:11:39:02 +0000] ResumeListening: setting input bits.


So, no apparent problems there. Let's now use the web-interface to print a test page. Voila, it works!

Ok, I wish it was that easy. You'd probably get the following in your logs:

var/log/cups/error_log
-----------------------
/Dec/2004:17:22:15 +0000] [Job 20] 0 %%+ font Courier-Bold
D [17/Dec/2004:17:22:15 +0000] [Job 20] 0 %%+ font Courier
D [17/Dec/2004:17:22:15 +0000] [Job 20] 0 %%+ font Symbol
D [17/Dec/2004:17:22:15 +0000] [Job 20] 0 %%EndComments
D [17/Dec/2004:17:22:15 +0000] [Job 20] 0 %%BeginProlog
D [17/Dec/2004:17:22:15 +0000] [Job 20] 0 %%BeginResource: font Courier-Bold
D [17/Dec/2004:17:22:15 +0000] [Job 20] 0 %%CreationDate: Wed Dec 22 1999
D [17/Dec/2004:17:22:15 +0000] [Job 20] Running /usr/local/bin/gs -dQUIET -dDEBUG -dPARANOIDSAFER -dNOPAUSE -dBATCH -dNOMEDIAATTRS -sDEVICE=cups -sstdout=%stderr -sOUTPUTFILE=%stdout -c -
D [17/Dec/2004:17:22:15 +0000] [Job 20] ESP Ghostscript 7.07.1: Can't find initialization file gs_init.ps.
E [17/Dec/2004:17:22:15 +0000] PID 5825 stopped with status 1!
E [17/Dec/2004:17:22:15 +0000] [Job 20] No pages found!
E [17/Dec/2004:17:22:15 +0000] PID 5826 stopped with status 1!
D [17/Dec/2004:17:22:15 +0000] [Job 20] 0 %%EndResource
D [17/Dec/2004:17:22:15 +0000] [Job 20] 0 %%BeginResource: font Courier
D [17/Dec/2004:17:22:15 +0000] [Job 20] 0 %%CreationDate: Wed Dec 22 1999
D [17/Dec/2004:17:22:15 +0000] [Job 20] 0 %%EndResource
D [17/Dec/2004:17:22:15 +0000] [Job 20] 0 %%BeginResource: font Symbol
D [17/Dec/2004:17:22:15 +0000] [Job 20] 0 %%CreationDate: Thu Oct 21 1999
D [17/Dec/2004:17:22:15 +0000] [Job 20] 0 %%EndResource
D [17/Dec/2004:17:22:15 +0000] [Job 20] 0 %%BeginResource: procset texttops 1.1 0
D [17/Dec/2004:17:22:15 +0000] [Job 20] 0 %%EndResource
D [17/Dec/2004:17:22:15 +0000] [Job 20] 0 %%EndProlog
D [17/Dec/2004:17:22:15 +0000] [Job 20] 0 %%Page: 1 1
D [17/Dec/2004:17:22:15 +0000] [Job 20] 0 %%Page: 1 1
D [17/Dec/2004:17:22:15 +0000] [Job 20] pw = 559.0, pl = 770.0
D [17/Dec/2004:17:22:15 +0000] [Job 20] PageLeft = 18.0, PageRight = 577.0
D [17/Dec/2004:17:22:15 +0000] [Job 20] PageTop = 806.0, PageBottom = 36.0
D [17/Dec/2004:17:22:15 +0000] [Job 20] PageWidth = 595.0, PageLength = 842.0
D [17/Dec/2004:17:22:15 +0000] [Job 20] 0 %%Trailer
D [17/Dec/2004:17:22:15 +0000] [Job 20] Saw Trailer!
D [17/Dec/2004:17:22:15 +0000] [Job 20] Saw EOF!
D [17/Dec/2004:17:22:15 +0000] UpdateJob: job 20, file 0 is complete.
D [17/Dec/2004:17:22:15 +0000] CancelJob: id = 20
D [17/Dec/2004:17:22:15 +0000] StopJob: id = 20, force = 0
D [17/Dec/2004:17:22:15 +0000] StopJob: printer state is 3


So, the culprit is ESP GhostScript fails to find the initialization file. This is one of the several install problems that exist in CUPS, and the install guide (according to me), is not clear enough. So, to get rid of this, you first need to have, yes you guessed it correctly! ESP GhostScript.

Download ESP GhostScript from http://www.cups.org/ghostscript.php.

So as you'd imagine, this is ghostscript customized/tweaked (I don't know the details) for CUPS.

IMPORTANT: Make sure you delete your old version of GhostScript, if any. I've found it causes numerous headaches.

GhostScript installation is easy (if you have the dependencies installed already), just follow the install steps.

Re-start CUPS once you have installed GhostScript, and you should have more success this time around.


CONFIGURING CLIENTS
Now that the printer has been configured and found working, we can proceed to adding the clients. There are two ways you can do that:

1. Manual - You can make your cups server listen for remote lpd connects by adding

# CUPS lpd support
printer stream tcp nowait root /usr/local/libexec/cups/daemon/cups-lpd
cups-lpd


to your inetd.conf

You then have to set up entries in /etc/printcap on the machines you want
to use the CUPS server. Annoying if it is lots of machines and/or lots of
printers.
2. Let CUPS do it for you

In cupsd.conf:

#
# BrowsePoll: poll the named server(s) for printers
#
BrowsePoll cups_server.example.com:631

You don't need to set up any printers on the client machines and any changes/new printers on the main CUPS server will automagically appear in the client printcap.


GENERAL PROBLEMS FACED:
1. Print jobs are aborted immediately
2. Ghostscript can't find initialization file gs_init.ps

In my experience, all problems were related to either the printed not being configured properly, or GhostScript not being installed. Any problems, feel free to email me at manavg<at>gmail.com