Friday, October 20, 2006

Water - by Deepa Metha -Reviewed (6.5 /10)

A widow should be long suffering until death, self-restrained and chaste.
A virtuous wife who remains chaste when her husband has died goes to heaven.
A woman who is unfaithful to her husband is reborn in the womb of a jackal.

The laws of Manu
Chapter 5 verse 156-161
Dharmshatras
(Sacred Hindu texts)

11/3 Eye
Did I expect more from this movie?

Whatever I am going to write about this movie ill end this review by saying this is a really good movie...and a unique one, in the sense it is just a movie. But as the Director claims, this movie is all about the widows in India, then id rate this movie a bit more down. Still it is a good one, can recommend it to anyone or buy a DVD to your movie collection… its worth the price and space.


Let me start with something terrible about this movie.
Casting was a real problem. John Abraham sucked! I didn’t see a single expression in his face….may be because it was just his second film or the director wanted that character to be less emotional even on some really tragic moments. Lisa Ray was average. First of all she does not look a bit like an Indian, mostly European. But I really don’t want to blame those actors for this. When u watch the movie u can see that Deepa is attempting to avoid all emotional bursts till the climax of this movie. The romantic scenes were unimpressive too.

Art Direction had a major flaw. Everyone that watched this movie misses India in it…its just all Sri Lanka. The ‘extra actors’ doesn’t have an Indian look either. I think there should have being a more deliberate attempt to make the environment look Indian as it was shot in Sri Lanka. Unless attempted the ‘over cleanliness’ of the environment was disgusting for me. Every nook and corner shown in this movie was clean as heaven. I wanted realism. Having said that, they did a good job in setting up that house where all the widows live.

Script and Direction. Not the best. But good. This is my first Deepa movie. I haven’t seen ‘fire’ or ‘Earth’, the prior installments of this trilogy. So not familiar with the way of her story telling. I can’t dissect and show the flaws in it, I don’t feel it is perfect. I would have appreciated ‘Indian culture bashing’ on this movie if she tried to discuss or just give a clue of how customs like ‘Child marriages’ came to existence than just mixing child marriages and the widow sufferings and refer it to the ancient holy texts of Hindu’s and Indian mythology, which I feel was a below average attempt. As far as I know child marriage came into existence in 12th century during the Afghan’s invasion of India and has nothing to do with ‘Hinduthuva’. I may be wrong.

The love affair between ‘Narayan’ (John Abraham) and ‘Kalyani’ (Lisa Ray) was poorly worked out. They didn’t have any strong desire or passion towards each other and it seemed more like an average crush.
I just didn’t feel that desire on screen!! But it is so great of Deepa to avoid Bollywood melodramas though out the movie, no lip singing and running around tress, change of costume and hair style on every other scene(ofcourse I am not against it coz they are mere entertainment stuff). May be she consciously did that seeing her international audience.

The movie ends with the message that a majority of 34 million widows in India are forced to live in social, economic and cultural deprivation according the books of ‘Manu’ from 2000 years back!! Deepa..I seriously doubt that. I do agree these rare incidents happen in the rural India and 80% of India is ‘rural’, but not to an extend that’s described in your footer, I hope!

The references to the current affairs in late 30’s, where the story is happening was interesting. The background score with the song ‘vishnava jan tho….’ played after the scenes were that 8 year old girl was raped really made be shiver.
To make ‘rain’ a part of story is always a difficult task. I’ve seen masters in this, like Late Mr. Padmarajan. Deepa did it very well.

Towards the end of the movie Narayan is running away from his home and his problems. Till that moment he is portrayed as a nationalist and a Pro-Gandhian. Its an irony that he tries to escape from the issues without doing anything for the widows around him as he always quotes Gandhi and his principals on most things he do. It could be a problem with the fine tuning of that character or is Deepa really trying to say something about Gandhian principles? Sameway, Narayan’s father who is portrayed as a liberal thinker by other characters, uses widows for sexual desires and rapes an 8 year old girl. Quiet possible, but took some time for me to digest that.

Rahman’s music did a remarkable job in this movie. As I’ve said before, sound is the backbone of video…and music is the backbone of movies. The songs in rain were outstanding. The background score of movie was pretty average. Some notes resembled the OST from Titanic…which again affected the overall movie experience.

There were some really stunning performances in this movie. Seema Biswas and yester-year actress Manorama excel, it was just fine, class acting. Also watch out for Raghubir Yadav as the eunuch and the use of dark humor to depict some very serious issues. Seema’s character is very strong but sometimes she has to show that she is vulnerable to pain caused by her sufferings, her character also changes as the story progresses, which she did extremely well. A mention should also go to the stunning child artist Sarala who played the leading role ‘chuyia’…she was so marvelous that only because of her this movie has some positive energy and life. The character was well made.

Before I end this ‘review’ I should write my take on the problems caused by the so called ‘fundamentalists’ which led to stop the filming for 4 years and was later done is Sri Lanka under a fake title.
So what did Deepa expect? Majority of Indians in rural areas and on lower economic class are uneducated…id use the words ‘not free-thinkers’. Their major source of knowledge and guidance is religion, the sacred books and their religious and political leaders. In a country where religion and patriotism plays a big (bad) role in daily life…when you make a movie with two Hindu woman, named after Hindu Goddesses and portray them as lesbians in front of a religious political party in its all time low ratings and waiting to do what ever it takes to create a vote bank....wtf do u expect to happen? When you make a movie about the suffering of widows in pre Gandhian era and u distort the facts for the storyline (still u made a good ‘movie’)…what do u expect to happen? I do support creative freedom and applause the great effort in making this good movie, but ive a feeling that u challenged those people with your stories and I don’t think you will be able to shoot a movie with so much fire in it in India even after 20-25 years from now. The argument by RSS politicians that there is no ‘lesbianism’ in Hinduthuva really made a lot of people laugh. Id say the story line and plot of her films can be considered sacred when compared to the TV soaps that are aired directly to every home which is of wife swapping, dirty mind games, torturing woman, having conspiracies…..etc. It should be banned first friends. Id also ask those people to respect creative freedom, and if its unbearable protest in a non-violent way rather than setting a million dollar set to fire and giving death threat to movie makes.

“Water’ became the official entry for Canada for the Oscars with the help of certain new laws implemented from the current year and its competing 2 other Indian movies. Ive seen two of them yet and will probably see the third ‘Lage raho munnabhai’ today! On comparing ‘Rang de basanthi’ to ‘Water’ I feel ‘Water’ looses the by a negligible margin. RDB had a vibrant theme, professional actors and was technically well worked. It was also better by the message it conveyed and the realism in plots. May be watching it over and over could nullify that difference.

And finally the scoreboard.

Technical 5.5/10
Art 4.5/10
Cinematography 6/10
Direction 6.5/10
Intelligence -6/10
Replay value = yes, once in 2 years or less
Entertainment value- 2/10
need a sequel? =nope
overall – 6.5/10.
For - Everyone over the age of 13/movie thinktanks.

This movie has got the longest review ever in this blog. I hope ive done a reasonably good job than the previous review attempts.
Ive tried to avoid blind criticism here and the fact is that u can’t criticize a dumb movie. They should be something good in it to talk about. This is one good movie that you can discuss and debate on its point of view on some very serious issues. Goodjob Deepa.


VJ
10/18/2006 1:39:22 AM

Live the movie!

Just watching a movie isn’t everything...feel the movie, live the movie. Coz 2 hours of your life can’t be wasted to 'just watch a movie’.

Some tips for the ultimate movie experience.


If you watch movies in a PC.

Building a HTPC

Give a try on XP Media center. The best OS for live media and other contents. If you are planning to buy a new PC for entertainment or gamming purposes, as with TV... wait for sometime. Microsoft is releasing its new OS Windows vista, it wont make any difference but they are also releasing DirectX 10 with it… which will make hell of a lot difference. Each and every new hardware will be running on DirectX10 and the price of current hardware will crash upto 30-40% and will get outdated in couple of years.

Watching foreign language films.

I always had problem watching Hindi as well as some English movies….I am talking about the language. Its fine when the DVD is with subtitles... but what if u doesn’t have subtitles with it? Well, u can download the subtitles and add it to your movie during real-time playback in PC and standalone players.subtitle

Opensubtitles.org is one of many sites where you can download movie subtitles. Also download and install the utility called ‘directVOBsub’. Copy the subtitles to the same folder as your video file is placed and just play your movie as usual in windows media player…there WILL BE subtitles for you! So start watching world classics now….!!

Don’t buy a regular TV.

If you are planning to buy a regular 21inch CRT TV, think twice. All the major TV channels have switched to HD broadcast. We will have that service in less than a year. New movies are on ‘HD’ or ‘Blue Ray’ as well.

HDTV Cool!!!

HD is a widescreen video format that has ‘progressive video’ unlike the ‘interlaced video’ we have in DVDs, VCDs and some broadcasting stations. Normal players and TV wont support the HD video format. With HD we have the luxury of having giant screens at your home up to 100” or 400”. The resolution of the videos is very high to produce the best video experience in the planet. There are LCD and Plasma options available and have to opt one that suits you.

A 40” LCD used to cost 100k 2 years back and its round 40k now, twice the price of a high-end CRT TV, but much better visual experience. Prices will be dropping day by day.

Once you have seen a blockbuster movie in a ‘BIG’ screen with the environmental pleasure of being at home…or a live football stream ….u wont touch a CRT TV again….believe me!

Prefer DTS than Dolby Digital 5.1

sound

With my Personal experience DTS sounds good and clear, but expensive. Dolby digital sound systems are comparatively dull and cheap, as the sound is encoded in a more compressed format which makes it a bit…a bit dull. With DTS you may go for up to 10.1 discreet surround channels.


Don’t buy a DVD player, try gamming consoles!



Yes! A good DVD player can cost upto 5-6k. If u can shed a lot more and is interested in gamming buy a gamming console. You can browse the net, setup an online community, play MMORPG, famous game titles and play almost all Disk formats from Blueray to AudioCD and MP3. It has wireless controllers and data storage facilities. A newer console has multiple processor support, HD video and 5.1 decoding, even in gamming and comes with tons of stylized accessories.

Monday, August 28, 2006

Awards

Juniour craft competion - 2000





Yahoo! Answers "Best answer" Wins
answers.yahoo.com

Web design, iframes
http://answers.yahoo.com/question/?qid=20060823110514AAuTshw


Zoom using scroll in photoshop

India on the globe!

A presentation on India, Indians and Indian values!

Download presentation now
(right click and select "save link as" or "save target as")




The Geniune genius

A small presentation of the Master Batsman Sachin Tendulkar!


Media player (open source)

<<Handlers require MPEG advance XTRA,MPEG Drivers etc
property videoSprite -- the sprite number that is getting controlled
property videoCommand -- the command to be issued
property standardImage -- the Button Image
property alternateImage -- the Rollover Image for the button
property clickedImage -- the Clicked Image for the button rollover and click.
property param1 -- first parameter of the command
property param2 -- second parameter of the command

on Control me
case ( the VideoCommand of me ) of:
#Play:
videoplay(sprite the videoSprite of me)
#Pause:
videopause(sprite the videoSprite of me)
#Rewind:
videoseek(sprite the videoSprite of me, the segmentstart of sprite the videoSprite of me)
#StepForward:
videopause(sprite the videoSprite of me)
videoseek(sprite the videoSprite of me, the currenttime of sprite the videoSprite of me+30)
#StepBackward:
videopause(sprite the videoSprite of me)
videoseek(sprite the videoSprite of me, the currenttime of sprite the videoSprite of me-30)
#Seek:
videoseek(sprite the videoSprite of me, the param1 of me)

end case
end


on mouseUp me
set the member of sprite the spritenum of me = the standardImage of me
DoControl me
end

on mouseDown me
set the member of sprite the spritenum of me = the clickedImage of me
end

on mouseEnter me
set the member of sprite the spritenum of me = the alternateImage of me
end

on mouseLeave me
set the member of sprite the spritenum of me = the standardImage of me
end

---

on beginSprite me
set the standardImage of me = the member of sprite the spriteNum of me
end

---

on getPropertyDescriptionList
if the currentspritenum = 0 then
set memdefault = 0
else
set memref = the member of sprite the currentspritenum
set castlibnum = the castlibnum of memref
set memdefault = member (the membernum of member memref + 1) of castlib castlibnum
set memdefault2 = member (the membernum of member memref + 2) of castlib castlibnum
end if

set p_list = [ #videoCommand: [ #comment: "Action:",#format: #symbol, #range: [ #Play, #Pause, #Rewind,#StepBackward,#StepForward, #Seek, #PlaySegment],#default: #Play ], #param1: [ #comment: "First Parameter (Use with seek or playsegment):", #format: #long, #default: 0] , #param2: [ #comment: "Second Parameter (Use with playsegment):", #format: #long, #default: 0] , #videoSprite: [ #comment: "DirectMedia Sprite Channel:", #format: #integer, #default: 1] , #alternateImage: [ #comment: "Rollover Button Cast Member:", #format: #graphic, #default: memdefault ], #clickedImage: [ #comment: "Clicked Button Cast Member:", #format: #graphic, #default: memdefault2 ]]
return p_list
end



----------------------
-- DirectMedia Xtra Rate Slider


-- Control

-- requires an 'extent' cast member
-- that limits the range the slider 'slides'
-- controls the currenttime of a DirectMedia Xtra sprite,
-- if the sprite is playing the slider moves automatically



property pDuration, pMovieTime, VideoSprite

property horizontal -- if false, vertical
property extentSprite
property hiliteMember -- looks like the handle plus hilite graphics
-- also holds the member of handle while hilited

property tracking
property newLocH
property newLocV

property sending -- if true, sends value when parked
property dynamic -- if true and sending true, sends value while tracking
property style -- [sendAllSprites, SendSprite, Call]
property addressee -- which spritenum gets the message if SendSprite or Call
property name -- Sliders identity so messages can be traced
property notify_list -- list of sprites to receive event, only has 1 item this time

property min, max -- the range the slider maps to
property valrange -- the difference of max and min, set on begin
property minScreen, maxScreen -- calculated from the screen coords of the extent
property currentScreenVal -- the data point in screen coords, set in tracking
property extentlength -- in screen coords, set on begin

property CurrentVal

on getPropertyDescriptionList
if the currentspritenum = 0 then
set memdefault = 0
else
set memref = the member of sprite the currentspritenum
set castlibnum = the castlibnum of memref
set memdefault = member (the membernum of member memref + 1) of castlib castlibnum
end if


set description = [:]

addprop description, #VideoSprite, [#default: 1, #format:#integer, #comment: "Video Sprite:"]

addprop description, #extentSprite, [#default: 1, #format:#integer, #comment: "Extent Sprite:"]

addprop description, #hiliteMember, [#default: memdefault , #format:#graphic,#comment: "Hilite Member:"]

addprop description, #horizontal, [#default: 1, #format:#boolean,#comment: "Horizontal (if not vertical):"]

addprop description, #dynamic, [#default: 1, #format:#boolean,#comment: "Dynamic:"]

return description
end

on getBehaviorDescription
return "Drag to slider 'handle' to enable control of video play time. Requires additional 'extent' member which limits the handle travel range." & RETURN & "PARAMETERS:" & RETURN & "• Video Sprite - Enter the number of sprite channel in which video is displayed." & RETURN & "• Extent Sprite - Enter the number of sprite channel that contains the 'extent' sprite." & RETURN & "• Hilite Member - Member to display while handle is being dragged." & RETURN & "• Horizontal - If set, orient extent sprite horizontally, if not set orient vertically." & RETURN & "• Dynamic - If set, video time will be updated while handle is dragged, else when handle is released."
end

on compute_val me
-- relies on tracking to update the currentScreenVal (different for Hor, Vert)
set val = 0.0
set val = float(the currentScreenVal of me) / float (the extentlength of me)
set val = val * the valrange of me
set val = val + the min of me
return val
end

on send_the_val me, val
-- sets the digital video volume to the val * paramter
set pMovieTime = val * pDuration
setrate(sprite VideoSprite, pMovieTime)
end


on beginSprite me

set pDuration = 200

set the min of me = 0.0
set the max of me = 1.0
set the sending of me = true

--
set handle = the spritenum of me
set the tracking of me = FALSE
set the newLocH of me = the locH of sprite handle
set the newLocV of me = the locV of sprite handle

if the horizontal of me then
set the newLocV of me = the locV of sprite the extentSprite of me
set the minScreen of me = the left of sprite the extentSprite of me
set the maxScreen of me = the right of sprite the extentSprite of me
else -- vertical slider
set the newLocH of me = the locH of sprite the extentSprite of me
set the minScreen of me = the left of sprite the extentSprite of me
set the maxScreen of me = the right of sprite the extentSprite of me
end if

-- puppetsprite handle, TRUE -- take this out when beginSpriteAutoPuppet fixed

set the locH of sprite handle to the newLocH of me
set the locV of sprite handle to the newLocV of me

set the valrange of me = the max of me - the min of me
set the extentlength of me = the maxScreen of me - the minScreen of me

if the sending of me = FALSE then -- check for wrong input (dyn true, send false)
set the dynamic of me = FALSE
end if

-- set CurrentVal = compute_val()

end

on prepareFrame me
-- limits motion of handle to extents of extentSprite
-- and locks the handle to the track of the extentSprite

if tracking then
set handle = the spriteNum of me
set extent = the extentSprite of me

if the horizontal of me then
set the newLocH of me = the mouseH
set the newLocV of me = the locV of sprite extent
if the newLocH of me <>
set the newLocH of me = the left of sprite extent
end if
if the newLocH of me > the right of sprite extent then
set the newLocH of me = the right of sprite extent
end if

set the currentScreenVal of me = the newLocH of me - the minScreen of me

else -- vertical slider
set the newLocH of me = the locH of sprite extent
set the newLocV of me = the mouseV
if the newLocV of me <>
set the newLocV of me = the top of sprite extent
end if
if the newLocV of me > the bottom of sprite extent then
set the newLocV of me = the bottom of sprite extent
end if

set the currentScreenVal of me = the newLocV of me - the minScreen of me

end if -- if vertical

set the locH of sprite handle to the newLocH of me
set the locV of sprite handle to the newLocV of me

if the dynamic of me then
send_the_val me, compute_val (me)
end if

else -- end if tracking, control slider position by movieTime

set x = float(getrate(sprite VideoSprite))/ float(pDuration)


set handle = the spriteNum of me
set extent = the extentSprite of me

if the horizontal of me then
set ScreenX = the left of sprite extent + (x * (the right of sprite extent - the left of sprite extent))
set the newLocH of me = screenX
set the newLocV of me = the locV of sprite extent
if the newLocH of me <>
set the newLocH of me = the left of sprite extent
end if
if the newLocH of me > the right of sprite extent then
set the newLocH of me = the right of sprite extent
end if

set the currentScreenVal of me = the newLocH of me - the minScreen of me

else -- vertical slider
set ScreenY = the top of sprite extent + (x * (the bottom of sprite extent - the top of sprite extent))
set the newLocH of me = the locH of sprite extent
set the newLocV of me = ScreenY
if the newLocV of me <>
set the newLocV of me = the top of sprite extent
end if
if the newLocV of me > the bottom of sprite extent then
set the newLocV of me = the bottom of sprite extent
end if

set the currentScreenVal of me = the newLocV of me - the minScreen of me

end if -- if vertical

set the locH of sprite handle to the newLocH of me
set the locV of sprite handle to the newLocV of me

end if


end

on mouseDown me
set tracking = TRUE
set temp = the member of sprite the spritenum of me
set the member of sprite the spritenum of me = member the hiliteMember of me
set the hiliteMember of me = temp
end

on mouseUp me
set tracking = FALSE
set temp = the member of sprite the spritenum of me
set the member of sprite the spritenum of me = member the hiliteMember of me
set the hiliteMember of me = temp

if the sending of me then
set x = compute_val (me)
send_the_val me, x
end if

end

on mouseUpOutside me
set tracking = FALSE
set temp = the member of sprite the spritenum of me
set the member of sprite the spritenum of me = member the hiliteMember of me
set the hiliteMember of me = temp

if the sending of me then
set x = compute_val (me)
send_the_val me, x
end if

end

on mouseEnter me

end

on mouseLeave me

end

-----------------------
property pDuration, pMovieTime, VideoSprite

property horizontal -- if false, vertical
property extentSprite
property hiliteMember -- looks like the handle plus hilite graphics
-- also holds the member of handle while hilited

property tracking
property newLocH
property newLocV

property sending -- if true, sends value when parked
property dynamic -- if true and sending true, sends value while tracking
property style -- [sendAllSprites, SendSprite, Call]
property addressee -- which spritenum gets the message if SendSprite or Call
property name -- Sliders identity so messages can be traced
property notify_list -- list of sprites to receive event, only has 1 item this time

property min, max -- the range the slider maps to
property valrange -- the difference of max and min, set on begin
property minScreen, maxScreen -- calculated from the screen coords of the extent
property currentScreenVal -- the data point in screen coords, set in tracking
property extentlength -- in screen coords, set on begin

property CurrentVal

on getPropertyDescriptionList
if the currentspritenum = 0 then
set memdefault = 0
else
set memref = the member of sprite the currentspritenum
set castlibnum = the castlibnum of memref
set memdefault = member (the membernum of member memref + 1) of castlib castlibnum
end if


set description = [:]

addprop description, #VideoSprite, [#default: 1, #format:#integer, #comment: "Video Sprite:"]

addprop description, #extentSprite, [#default: 1, #format:#integer, #comment: "Extent Sprite:"]

addprop description, #hiliteMember, [#default: memdefault , #format:#graphic,#comment: "Hilite Member:"]

addprop description, #horizontal, [#default: 1, #format:#boolean,#comment: "Horizontal (if not vertical):"]

addprop description, #dynamic, [#default: 1, #format:#boolean,#comment: "Dynamic:"]

return description
end

on getBehaviorDescription
return "Drag to slider 'handle' to enable control of video play time. Requires additional 'extent' member which limits the handle travel range." & RETURN & "PARAMETERS:" & RETURN & "• Video Sprite - Enter the number of sprite channel in which video is displayed." & RETURN & "• Extent Sprite - Enter the number of sprite channel that contains the 'extent' sprite." & RETURN & "• Hilite Member - Member to display while handle is being dragged." & RETURN & "• Horizontal - If set, orient extent sprite horizontally, if not set orient vertically." & RETURN & "• Dynamic - If set, video time will be updated while handle is dragged, else when handle is released."
end

on compute_val me
-- relies on tracking to update the currentScreenVal (different for Hor, Vert)
set val = 0.0
set val = float(the currentScreenVal of me) / float (the extentlength of me)
set val = val * the valrange of me
set val = val + the min of me
return val
end

on send_the_val me, val
-- sets the digital video time to the val * paramter {0 - movieduration}
set pMovieTime = val * pDuration
videoseek(sprite VideoSprite, pMovieTime)

end


on beginSprite me

set pDuration = the duration of sprite VideoSprite

set the min of me = 0.0
set the max of me = 1.0
set the sending of me = true

--
set handle = the spritenum of me
set the tracking of me = FALSE
set the newLocH of me = the locH of sprite handle
set the newLocV of me = the locV of sprite handle

if the horizontal of me then
set the newLocV of me = the locV of sprite the extentSprite of me
set the minScreen of me = the left of sprite the extentSprite of me
set the maxScreen of me = the right of sprite the extentSprite of me
else -- vertical slider
set the newLocH of me = the locH of sprite the extentSprite of me
set the minScreen of me = the left of sprite the extentSprite of me
set the maxScreen of me = the right of sprite the extentSprite of me
end if

-- puppetsprite handle, TRUE -- take this out when beginSpriteAutoPuppet fixed

set the locH of sprite handle to the newLocH of me
set the locV of sprite handle to the newLocV of me

set the valrange of me = the max of me - the min of me
set the extentlength of me = the maxScreen of me - the minScreen of me

if the sending of me = FALSE then -- check for wrong input (dyn true, send false)
set the dynamic of me = FALSE
end if

-- set CurrentVal = compute_val()

end

on prepareFrame me
-- limits motion of handle to extents of extentSprite
-- and locks the handle to the track of the extentSprite

if tracking then
set handle = the spriteNum of me
set extent = the extentSprite of me

if the horizontal of me then
set the newLocH of me = the mouseH
set the newLocV of me = the locV of sprite extent
if the newLocH of me <>
set the newLocH of me = the left of sprite extent
end if
if the newLocH of me > the right of sprite extent then
set the newLocH of me = the right of sprite extent
end if

set the currentScreenVal of me = the newLocH of me - the minScreen of me

else -- vertical slider
set the newLocH of me = the locH of sprite extent
set the newLocV of me = the mouseV
if the newLocV of me <>
set the newLocV of me = the top of sprite extent
end if
if the newLocV of me > the bottom of sprite extent then
set the newLocV of me = the bottom of sprite extent
end if

set the currentScreenVal of me = the newLocV of me - the minScreen of me

end if -- if vertical

set the locH of sprite handle to the newLocH of me
set the locV of sprite handle to the newLocV of me

if the dynamic of me then
send_the_val me, compute_val (me)
end if

else -- end if tracking, control slider position by movieTime

set x = float(the currenttime of sprite VideoSprite)/ float(pDuration)


set handle = the spriteNum of me
set extent = the extentSprite of me

if the horizontal of me then
set ScreenX = the left of sprite extent + (x * (the right of sprite extent - the left of sprite extent))
set the newLocH of me = screenX
set the newLocV of me = the locV of sprite extent
if the newLocH of me <>
set the newLocH of me = the left of sprite extent
end if
if the newLocH of me > the right of sprite extent then
set the newLocH of me = the right of sprite extent
end if

set the currentScreenVal of me = the newLocH of me - the minScreen of me

else -- vertical slider
set ScreenY = the top of sprite extent + (x * (the bottom of sprite extent - the top of sprite extent))
set the newLocH of me = the locH of sprite extent
set the newLocV of me = ScreenY
if the newLocV of me <>
set the newLocV of me = the top of sprite extent
end if
if the newLocV of me > the bottom of sprite extent then
set the newLocV of me = the bottom of sprite extent
end if

set the currentScreenVal of me = the newLocV of me - the minScreen of me

end if -- if vertical

set the locH of sprite handle to the newLocH of me
set the locV of sprite handle to the newLocV of me

end if


end

on mouseDown me
set tracking = TRUE
set temp = the member of sprite the spritenum of me
set the member of sprite the spritenum of me = member the hiliteMember of me
set the hiliteMember of me = temp
end

on mouseUp me
set tracking = FALSE
set temp = the member of sprite the spritenum of me
set the member of sprite the spritenum of me = member the hiliteMember of me
set the hiliteMember of me = temp

if the sending of me then
set x = compute_val (me)
send_the_val me, x
end if

end

on mouseUpOutside me
set tracking = FALSE
set temp = the member of sprite the spritenum of me
set the member of sprite the spritenum of me = member the hiliteMember of me
set the hiliteMember of me = temp

if the sending of me then
set x = compute_val (me)
send_the_val me, x
end if

end

on mouseEnter me

end

on mouseLeave me

end
property pDuration, pMovieTime, VideoSprite

property horizontal -- if false, vertical
property extentSprite
property hiliteMember -- looks like the handle plus hilite graphics
-- also holds the member of handle while hilited

property tracking
property newLocH
property newLocV

property sending -- if true, sends value when parked
property dynamic -- if true and sending true, sends value while tracking
property style -- [sendAllSprites, SendSprite, Call]
property addressee -- which spritenum gets the message if SendSprite or Call
property name -- Sliders identity so messages can be traced
property notify_list -- list of sprites to receive event, only has 1 item this time

property min, max -- the range the slider maps to
property valrange -- the difference of max and min, set on begin
property minScreen, maxScreen -- calculated from the screen coords of the extent
property currentScreenVal -- the data point in screen coords, set in tracking
property extentlength -- in screen coords, set on begin

property CurrentVal

on getPropertyDescriptionList
if the currentspritenum = 0 then
set memdefault = 0
else
set memref = the member of sprite the currentspritenum
set castlibnum = the castlibnum of memref
set memdefault = member (the membernum of member memref + 1) of castlib castlibnum
end if


set description = [:]

addprop description, #VideoSprite, [#default: 1, #format:#integer, #comment: "Video Sprite:"]

addprop description, #extentSprite, [#default: 1, #format:#integer, #comment: "Extent Sprite:"]

addprop description, #hiliteMember, [#default: memdefault , #format:#graphic,#comment: "Hilite Member:"]

addprop description, #horizontal, [#default: 1, #format:#boolean,#comment: "Horizontal (if not vertical):"]

addprop description, #dynamic, [#default: 1, #format:#boolean,#comment: "Dynamic:"]

return description
end



on compute_val me
-- relies on tracking to update the currentScreenVal (different for Hor, Vert)
set val = 0.0
set val = float(the currentScreenVal of me) / float (the extentlength of me)
set val = val * the valrange of me
set val = val + the min of me
return val
end

on send_the_val me, val
-- sets the digital video time to the val * paramter {0 - movieduration}
set pMovieTime = val * pDuration
videoseek(sprite VideoSprite, pMovieTime)

end


on beginSprite me

set pDuration = the duration of sprite VideoSprite

set the min of me = 0.0
set the max of me = 1.0
set the sending of me = true

--
set handle = the spritenum of me
set the tracking of me = FALSE
set the newLocH of me = the locH of sprite handle
set the newLocV of me = the locV of sprite handle

if the horizontal of me then
set the newLocV of me = the locV of sprite the extentSprite of me
set the minScreen of me = the left of sprite the extentSprite of me
set the maxScreen of me = the right of sprite the extentSprite of me
else -- vertical slider
set the newLocH of me = the locH of sprite the extentSprite of me
set the minScreen of me = the left of sprite the extentSprite of me
set the maxScreen of me = the right of sprite the extentSprite of me
end if

-- puppetsprite handle, TRUE -- take this out when beginSpriteAutoPuppet fixed

set the locH of sprite handle to the newLocH of me
set the locV of sprite handle to the newLocV of me

set the valrange of me = the max of me - the min of me
set the extentlength of me = the maxScreen of me - the minScreen of me

if the sending of me = FALSE then -- check for wrong input (dyn true, send false)
set the dynamic of me = FALSE
end if

-- set CurrentVal = compute_val()

end

on prepareFrame me
-- limits motion of handle to extents of extentSprite
-- and locks the handle to the track of the extentSprite

if tracking then
set handle = the spriteNum of me
set extent = the extentSprite of me

if the horizontal of me then
set the newLocH of me = the mouseH
set the newLocV of me = the locV of sprite extent
if the newLocH of me <>
set the newLocH of me = the left of sprite extent
end if
if the newLocH of me > the right of sprite extent then
set the newLocH of me = the right of sprite extent
end if

set the currentScreenVal of me = the newLocH of me - the minScreen of me

else -- vertical slider
set the newLocH of me = the locH of sprite extent
set the newLocV of me = the mouseV
if the newLocV of me <>
set the newLocV of me = the top of sprite extent
end if
if the newLocV of me > the bottom of sprite extent then
set the newLocV of me = the bottom of sprite extent
end if

set the currentScreenVal of me = the newLocV of me - the minScreen of me

end if -- if vertical

set the locH of sprite handle to the newLocH of me
set the locV of sprite handle to the newLocV of me

if the dynamic of me then
send_the_val me, compute_val (me)
end if

else -- end if tracking, control slider position by movieTime

set x = float(the currenttime of sprite VideoSprite)/ float(pDuration)


set handle = the spriteNum of me
set extent = the extentSprite of me

if the horizontal of me then
set ScreenX = the left of sprite extent + (x * (the right of sprite extent - the left of sprite extent))
set the newLocH of me = screenX
set the newLocV of me = the locV of sprite extent
if the newLocH of me <>
set the newLocH of me = the left of sprite extent
end if
if the newLocH of me > the right of sprite extent then
set the newLocH of me = the right of sprite extent
end if

set the currentScreenVal of me = the newLocH of me - the minScreen of me

else -- vertical slider
set ScreenY = the top of sprite extent + (x * (the bottom of sprite extent - the top of sprite extent))
set the newLocH of me = the locH of sprite extent
set the newLocV of me = ScreenY
if the newLocV of me <>
set the newLocV of me = the top of sprite extent
end if
if the newLocV of me > the bottom of sprite extent then
set the newLocV of me = the bottom of sprite extent
end if

set the currentScreenVal of me = the newLocV of me - the minScreen of me

end if -- if vertical

set the locH of sprite handle to the newLocH of me
set the locV of sprite handle to the newLocV of me

end if


end

on mouseDown me
set tracking = TRUE
set temp = the member of sprite the spritenum of me
set the member of sprite the spritenum of me = member the hiliteMember of me
set the hiliteMember of me = temp
end

on mouseUp me
set tracking = FALSE
set temp = the member of sprite the spritenum of me
set the member of sprite the spritenum of me = member the hiliteMember of me
set the hiliteMember of me = temp

if the sending of me then
set x = compute_val (me)
send_the_val me, x
end if

end

on mouseUpOutside me
set tracking = FALSE
set temp = the member of sprite the spritenum of me
set the member of sprite the spritenum of me = member the hiliteMember of me
set the hiliteMember of me = temp

if the sending of me then
set x = compute_val (me)
send_the_val me, x
end if

end

on mouseEnter me

end

on mouseLeave me

end

Lingo MP3 Player (open source)



--Scripted in Lingo 8.5+
--NOT shocksafe!!
--Note-There are 100's of more things that you can do with the player,its up to you.
--If you wish to alter the player then the source must be provided with the player for free.(and ofcourse my name)
--This file does not include scripts for opening the file ,its just by calling the handlers in preparemovie script.
>>VJ
--Moviescript
-------------------------------------------------------------------------------------------------------------------------------
global gSongList, gSongNum, gMP3folder, gMode, gLoop

on preparemovie


gMode = #stop
gLoop = 0
getSongList
end

on getSongList
-- intialize FileXtra
gMP3folder= baGetFolder( "C:\Documents and Settings\ms\My Documents\MP3 Server", "Please select a folder to install into:", 1, "Select a folder", -1, 0 )

--loading files
gSongList = directoryToList (gMP3folder)
put gSongList
if voidp(gSongList) OR gSongList = [] then
alert "Error:No file was found on selected folder" & RETURN & \
gMP3folder & RETURN & "Sorry!!"
end if
end

on playList
gSongNum = 1
playSong
end

on playNextSong
gSongNum = gSongNum + 1
if gSongNum > count(gSongList) then
gSongNum = 1
if NOT(gLoop) then exit
end if
playSong
end

on playPreviousSong
gSongNum = gSongNum - 1
if gSongNum = 0 then
set gsongnum=1
--gSongNum = count(gSongList) << displaymin =" string(min)" str =" displaymin"> str then
pMem.text = str
end if
end if
end
---------------------------------------------------------------------------------------------
property pmem, pHiliteColor, pNonHiliteColor
global gSongList

on beginSprite me
pmem = sprite(me.spritenum).member
pNonHiliteColor = rgb(255, 255, 255) -- white
pHiliteColor = rgb(0, 255, 0) -- green
str = ""
if NOT(voidp(gSongList)) then
repeat with song in gSongList
put song & RETURN after str
end repeat
delete the last char of str
end if
pMem.text = str
select me, #all
end

on mouseDown me
mloc = the mouseLoc
ml = pointToLine(sprite me.spritenum, mloc)
if pmem.line[ml].color = pHiliteColor then
pmem.line[ml].color = pNonHiliteColor
deleteone(gSongList, pmem.line[ml].text)
else
select me, ml
end if
end

on select me, what
case what of
#all:
pmem.color = pHiliteColor
gSongList = []
repeat with m = 1 to member(pmem).line.count
add(gSongList,pmem.line[m])
end repeat
#none:
pmem.color = pNonHiliteColor
gSongList = []
otherwise
pmem.line[what].color = pHiliteColor
add(gSongList, pmem.line[what])
end case
end


------------------------------------------------------------------------------------------
property pMem

on beginSprite me
pMem = sprite(me.spritenum).member
pMem.text = ""
end

on update me, state
str = ""
bitps = member("mp3song").bitsPerSample
bitrt = member("mp3song").bitrate
if member("mp3song").numChannels > 1 then
mode = "stereo"
else
mode = "mono"
end if
member(pMem).text = bitps & RETURN & bitrt & ¬
RETURN & mode
end


--on enterFrame me
-- update me
--end
--------------------------------------------------------------------------------------------------
property pMem, pTxt

on beginSprite me
pMem = sprite(me.spritenum).member
pTxt = getState()
pMem.text = pTxt
end

on enterFrame
if getState() <> pTxt then
pTxt = getState()
pMem.text = pTxt
sendSprite(sprite 7, #update)
sendSprite(sprite 9, #update)
end if
end
------------------------------------------------------------------------------------------------------
property pMem

global gLoop

on beginSprite me
pMem = sprite(me.spritenum).member
pMem.hilite = gLoop
end

on mouseUp me
gLoop = pMem.hilite
end
----------------------------------------------------------------------------------------------------------
property pMem, pTxt

global gSongList, gSongNum

on beginSprite me
pMem = sprite(me.spritenum).member
pMem.text = ""
end

on update me
pMem.text = getAt(gSongList, gSongNum)
end

Tuesday, August 15, 2006

VJ's sunset collection -1 (Photography)


Thirumullavaram beach 2005



Kollam 2006


Kollam 2006

Red Salute to Indian Army! (1)


THE WARS

The Kargil Operation in 1999


In mid 1999, Kashmiri insurgents and Pakistan military personnel took control of some deserted, but strategic, Himalayan heights in Indian-administered Kashmir. These had either been vacated by the Indian army during the onset of inhospitable weather conditions, or not occupied on the presumption that it would be foolhardy, for either side, to risk men in such a manner. The intruders took control of several key areas such as the heights overlooking the vital Srinagar-Leh highway, Batalik, Dras and the strategic Tiger Hill.

Meanwhile, the Indian Navy also readied itself for an attempted blockade of Pakistani ports to cut off supply routes. Later, the-then Prime Minister of Pakistan Nawaz Sharif disclosed that Pakistan was left with just six days of fuel to sustain itself if a full-fledged war had broken out. As Pakistan found itself entwined in a prickly position, the army had covertly planned a nuclear strike on India, the news of which alarmed U.S. President Bill Clinton, resulting in a stern warning to Nawaz Sharif.[1] Two months into the conflict, Indian troops had slowly flushed out most of the foreigners retaking most of the ridges it had lost;[2] according to official count, an estimated 75%–80% of the intruded area and nearly all high ground was back under Indian control.[3] Following the Washington accord on July 4, where Sharif agreed to withdraw the Pakistan-backed troops, most of the fighting came to a gradual halt. However, some of the militants still holed up did not wish to retreat, and the "United Jihad Council" (an umbrella for all extremist groups) rejected Pakistan's plan for a climb-down, instead deciding to fight on.[4] Following this, the Indian army launched its final attacks in the last week of July; as soon as the last of these "Jihadists" in the Drass subsector had been cleared, the fighting ceased on July 26. The day has since been marked as Kargil Vijay Diwas (Victory Day) in India. By the end of the war, India had resumed control of all territory south and east of the Line of Control, as was established in December 1972 as per the Shimla Accord.


Indo-Pakistani War of 1971

In 1971, rebellion broke out in East Pakistan, and India was forced to intervene as an estimated 10 million Bangladeshi refugees fled to India. War again came, but this time decisive change was effected. East Pakistan broke away with Indian intervention and became the independent state of Bangladesh. This was of great help to India, since it no longer had to worry about a two-front war and could concentrate its combat firepower against what had been West Pakistan and the PRC. Under the command of Lt. General J.S. Arora, the Indian army achieved a decisive victory over Pakistan in 1971, taking over 90,000 prisoners of war (38,000 Armed forces personnel and 52,000 civilians of West Pakistani origin) in the Bangladesh liberation war. Even on the western front, the Indian Army was successful in blocking Pakistan's invasion attempts (see Battle of Longewala) and counter attacked capturing more than 12,000 sq. km of enemy territory.

After 1971, tensions between India and Pakistan simmered, periodically threatening to break out into full-scale war, most notably in 1999 and 2002 in recent years. The 1998 tests of Indian and Pakistani nuclear weapons are seen by many commentators as acting as a restraining influence on both sides. Now that each can destroy the other in a war, according to the theory of deterrence, they are less likely to let tensions escalate.


Indo-Pakistani War of 1965

Pakistani Patton M-48 tanks, captured during the Battle of Asal Uttar, on display near Bhilwand
Enlarge
Pakistani Patton M-48 tanks, captured during the Battle of Asal Uttar, on display near Bhilwand

A second confrontation with Pakistan happened in 1965, largely over Kashmir. Pakistani dictator General Ayub Khan launched Operation Gibraltar in August 1965, believing an Indian leadership still recovering from the 1962 war with China to be unable to effectively deal with such a military thrust. It proved to be a serious miscalculation for Ayub, who had also banked on the intelligence report claiming that the people of Kashmir would aid the Pakistani war effort. No such rebellion occurred and India responded almost immediately with armoured regiments being deployed to both counter enemy intrusions and strike across the border.

Initially, the Indian Army met with considerable success in the northern sector. After launching prolonged artillery barrages against Pakistan, India was able to capture three important mountain positions in Kashmir. However, by the end of the month both sides were on even footing as Pakistan had made progress in areas such as Tithwal, Uri and Punch and India had gains in Pakistan Occupied Kashmir, having captured the Haji Pir Pass eight kilometers inside Pakistani territory.

Pakistan launched Operation Grand Slam on September 1, invading the Chamb-Jurian sector. In retaliation, the Indian Army's 15th Infantry Division crossed the International Border on the Western Front on September 6, and attempted to head to Lahore. After suffering some initial reverses, the force managed to cross the Ichhogil canal and come within striking distance of Lahore. Stiff resistance meant the force could go no further and had to later withdraw. The Indian Army had made significant territorial gains on both the Northern and Western fronts. The Indian Air Force, while suffering losses, had also managed to thwart the Pakistani Air Force and provide support to Indian Army movements. Pakistani territory gained by the Indian army was estimated to be between 1500-2000 square kilometers. Much of the success enjoyed by the Indian Army has been attributed to divisional commanders and their innovative leadership. One such famous instance was the foiling of what was probably the most important Pakistani armoured thrust, towards Amritsar in Khem Karan. The brigade commander, Brig. Theogaraj, flooded the sugarcane fields, trapped the superior Pakistani Patton tanks and then proceeded to decimate them, with some help from the IAF (see Battle of Asal Uttar).

Objective details are sketchy but the Pakistani Army appears to have suffered considerable losses after some initial success. It is estimated by neutral observers that Pakistan lost over 250 main battle tanks and nearly 4000 personnel. Equivalent figures for India put its army's losses at over 100 tanks and nearly 3000 personnel. Strategically, the war proved to be a stalemate and the ceasefire on September 23 was followed by talks in Tashkent (brokered by the Soviet Union), where Indian Prime Minister Lal Bahadur Shastri and Ayub Khan agreed to withdraw to virtually all pre-war positions.

Indo-Pakistani War of 1947

Almost immediately after independence, tensions between India and Pakistan began to boil over. And the first of three full-scale wars between the two nations broke out over the then princely state of Kashmir. Upon the Maharaja of Kashmir's reluctance to accede to either India or Pakistan, an impatient Pakistan sponsored a tribal invasion of parts of Kashmir. The men are alleged by India to have also included Pakistan army regulars. Soon after, Pakistan sent in its troops to annex the state. The Maharaja, Hari Singh, appealed to India, and to Lord Mountbatten -- the Governor General -- for help, but it was pointed out to him that India saw no reason to do so. He signed the Instrument of Accession and Kashmir unilaterally acceded to India (a decision ratified by the former colonial masters but never accepted by Pakistan). Immediately after, Indian troops were airlifted into Srinagar and, in a famous operation, repelled the invaders. An intense war was waged across the state and former comrades found themselves fighting each other. Both sides made some territorial gains and also suffered significant losses, but the Indian Army is generally believed to have had the upper hand when hostilities ceased in 1948.

An uneasy UN sponsored peace returned by the end of 1948 with Indian and Pakistani soldiers facing each other directly on the Line of Control, which has since divided Indian from Pakistani-held Kashmir. Tensions between India and Pakistan, largely over Kashmir, have never since been entirely eliminated.