Inter Portlet Communication in JSR 286 Portlets

Coordination between portlets is a very common requirement. An example of information sharing between portlets can be a weather portlet displaying the weather information of a city and a map portlet displaying the location of the city. Since, both the portlets would be using the same zip code for a user, there should be mechanism provided by the portlal containers to allow portlets to share the zip code.

Prior to JSR 286, the support for inter portlet communication was rather minimal and information sharing between different portlets was accompalished primarily using application scoped session objects or vendor specific APIs. Both of above methods were rather problematic as in the former maintaining the uniqueness of the session attribute over a complex aaplication was a concern and in the later portability of the portlet was hampered. In order to provide coordination between portlets the Java Portlet Specification v2.0 (JSR 286) introduces the following mechanisms:

  1. public render parameters in order to share render state between portlets.
  2. portlet events that a portlet can receive and send.

Let's have a look how to use the above features.

Public Render Parameters

In JSR 168, the render parameters propagated by one portlet were only available in the render method of the same portlet. This is explained in the following figure.
jsr-168-render

In JSR 286, the render parameters propagated by one portlet can be made available to the render methods of other portlets. This is explained in the following figure.



jsr-286-render

In order to allow coordination of render parameters with other portlets, within the same portlet application or across portlet applications, in JSR 286 portlets, the portlet can declare public render parameters in its deployment descriptor using the public-render-parameter element in the portlet application section. In the portlet section each portlet can specify the public render parameters it would like to share via the supported-public-render-parameter element. The supported public-ender-parameter element must reference the identifier of a public render parameter defined in the portlet application section in a public-render-parameter element. The portlet should use the defined public render parameter identifier in its code in order to access the public render parameter.

Let's see how it works..
Consider the following example..

1. Set the public render parameters at the portlet application level.


<public-render-parameter>
<identifier>id1</identifier>
<qname xmlns:x="http://sun.com/params">x:param1</qname>
</public-render-parameter>
<public-render-parameter>
<identifier>id2</identifier>
<qname xmlns:x="http://sun.com/params">x:param2</qname>
</public-render-parameter>

2. Specify the render parameter the portlet would like to share in the portlet section.

<portlet>
<portlet-name>PortletA</portlet-name>
<supported-public-render-parameter>id1</supported-public-render-parameter>
<supported-public-render-parameter>id2</supported-public-render-parameter>
<portlet>
<portlet>
<portlet-name>PortletB</portlet-name>
<supported-public-render-parameter>id1</supported-public-render-parameter>
</portlet>
<portlet>
<portlet-name>PortletC</portlet-name>
<supported-public-render-parameter>id2</supported-public-render-parameter>
<portlet>

The public render paramters declared above are processed as explained in the figure below.
parameter-sending
Now, since the public render parameters are encoded in the URL, the values that can be shared between portlets are restricted to String and String arrays. Since, public render parameters are available only in the render method, the information shared by the portlets should be used for rendering the view rather than for processing the shared information.

Portlet Events
Portlet events could be generated as a result of a user interaction with other portlets. The portlet event model is a loosely coupled, brokered model that allows creating portlets as stand-alone portlets that can be wired together with other portlets at runtime. Portlet programmers should therefore not make any specific assumptions about the environment of portlets they are running together with. The means of wiring different portlets together is portal implementation specific. An example where a portlet may want to offer receiving events is for state changes triggered by simple user interactions, e.g. adding an item to a shopping cart. By offering this as an event to other portlets these can trigger adding items to the shopping cart based on the user interactions happing inside these portlets.

EventPortlet Interface
In order to receive events the portlet must implement the EventPortlet interface in he javax.portlet package. The portlet container will call the processEvent method for each event targeted to the portlet with an EventRequest and EventResponse object.

Events are targeted by the portal / portlet container to a specific portlet window in the current client request. Events are a lifecycle operation that occurs before the rendering phase. The portlet may issue events via the setEvent method during the action processing which will be processed by the portlet container after the action processing has finished. As a result of issuing an event the portlet may optionally receive events from other portlets or container events. A portlet that is not target of a user action may optionally receive container events, e.g. a portlet mode changed event, or events from other portlets, e.g. an item was added to the shopping cart event.

The JSR 286 event processing is explained in the following figure.
jsr-286-event-processing

To create portlets that use the eventing feature, follow these steps
1. Declare the events in the portlet.xml
(i) Set the event definition at the portlet application level. This specifies the event name and the object type.

<portlet-app ...>
<portlet>
. . .
. . .
</portlet>

<event-definition>
<qname xmlns:x="http:xebia.com/address">x:Address</qname>
<value-type>com.xebia.Address</value-type>
</event-definition>
</portlet-app>

@XmlRootElement
public class Address implements Serializable {
public Address() {
}
private String street;
private String city;
private String country;

//getters and setters
}

Note: The object must be serializable and must be instrumented with valid JAXB annotation. This might be required to ensure that portlets can send events to and receive events from remote portlets. However, in case of local communication, portal containers, for optimization purposes, might not serialize event payload.

(ii) In the portlet section, specify the event name defined above for those portlets that want to publish this event.

<portlet>
<description>ContinentPortlet</description>
<portlet-name>ContinentPortlet</portlet-name>
.................
<supported-publishing-event>
<qname xmlns:x="http:xebia.com/address">x:Address</qname>
</supported-publishing-event>
</portlet>

(iii) In the portlet section, specify the event name defined above for those portlets that want to process this event.

&lt;portlet>
<description>ContinentMapPortlet</description>
<portlet-name>ContinentMapPortlet</portlet-name>
<supported-processing-event>
<qname xmlns:x="http:xebia.com/address">x:Address</qname>
</supported-processing-event>
</portlet>
<portlet>
<description>ContinentInfoPortlet</description>
<portlet-name>ContinentInfoPortlet</portlet-name>
<supported-processing-event>
<qname xmlns:x="http:sun.com/events">x:Address</qname>
</supported-processing-event>
</portlet>

2. Issue an event in the portlet that was specified as supported-publishing-event in the portlet.

public class ContinentPortlet extends GenericPortlet {
public void processAction(ActionRequest request, ActionResponse response)
throws PortletException,IOException {
QName qname = new QName("http:xebia.com/address" , "Address");
Address add = new Address();
//set values in address
response.setEvent(qname, add);
}
}

3. Process the event in the portlet that has specified as supported-processing-event in the portlet

public class ContinentInfoPortlet extends GenericPortlet {
public void processEvent(EventRequest request, EventResponse response) {
Event event = request.getEvent();
if(event.getName().equals("Address")){
Address payload = (Address )event.getValue();
//process payload here
}
}
}

Portlet events provide more sphisticated way of exchanging information between portlets as compared to public render paramters as they can be used to share objects rather than simple string values. They also provide an additional callback method, processEvent, which can be used to process the event information before the view for the portlet in rendered. Also, portlet events share the information in a type safe manner as the event payload id bound to a type which we declare in the portlet.xml. Also, portlet specification does not standardizes how to wire the portlets, so, portal containers are free to choose convenient mechanisms to wire the portlets together.

However, as per the portlet specification, portlet events are not as reliable means of communication as is JMS, since the specification does not mandate the portal containers to persist the portlet event data. So, in case of server failures, the portlet events can be lost.

Summary
In this blog, we discussed about the JSR 286 inter portlet communication features. First, we discussed about the public render parameters and how it works. Secondly, we discussed about the portlet events, and it's working. So, how to decide when to choose either of the above two portlets. I would use the following principle

In case, the receiver portlet, does not need to do any processing/businees logic, it is advisable to use public render parameters as they avoid the overhead for portlets event creation and wiring the portlets together, which is required in case of portlet events. As already discussed, wiring portlets together is portal container specific and is an addtional overhead. However, to allow receiver portlets to process the shared information and sending type safe values, we need to use portlet events.

Overall, JSR 286 portlet coordination features make complex portal applications modular and manageable.




Click here to View more...

Use Eclipse effectively - tips and trics

In Germany they have an entire magazine devoted to Eclipse, called (imaginatively ;) "Eclipse Magazin"". I don't speak (or read) German, but I have to say the content always looks really good, and they've had some excellent coverage of AspectJ and AJDT in past issues. The magazine has a guest column, "MyEclipse" in which various users of Eclipse describe their favourite hints and tips for working with the IDE.

It was my turn to write the column this month.

I have to say, I enjoyed writing the piece more than I thought I would - amongst other things it made we really think about how I actually do use Eclipse, and whether I'm using it as effectively as possible. The original column can be found here. With permission, I'm making an English translation (strictly, the English original!) available here for those that don't read German. If you have any favourite Eclipse tips that I don't know about, please do let me know!

My Eclipse

I’ve seen a lot of different people using Eclipse over the last few years. Nearly every one of them was using Eclipse pretty much in its default configuration. My Eclipse looks quite different to that, and in this article I’ll walk you through a collection of hints and tips for getting the most out of the IDE for Java development.

I’ll show you how to get organized when working with multiple workspaces, multiple projects, and lots of jar files. I’ll show you how to configure the IDE to help you write better code, and how to organize the Java perspective for maximum efficiency. As you might expect, I’ll also give you a couple of hints and tips for working with AspectJ!





Getting Organized

Using multiple workspaces

I tend to have multiple workspaces on the go at any one time (about 8 at present having just done a quick check). I use different workspaces for each major project (or version of a project) that I’m working with. For example, right now I’ve got workspaces for AspectJ 1.5.1 development, the AspectJ 1.5.0 release branch, Spring development, a couple of demonstration workspaces I use when giving talks, a workspace I use when giving training courses, and so on. It’s not uncommon for me to have 2 or 3 eclipses open at the same time.

The first practical question becomes knowing which eclipse is which when looking at the task bar or selecting between open windows using Alt-Tab. I always launch eclipse from the command-line using a script. Passing the “-showlocation” flag adds the workspace location to the windows title bar so that you can easily see which window is for which workspace. I normally start Eclipse with a little extra memory too (I find it works a little snappier that way). A good default for launching Eclipse if you’re working with sizeable projects would be something like this:

eclipse.exe –showlocation –vmargs –Xmx512m > /dev/null 2>&1

(I use cygwin, and I find that Eclipse tends to dump nonsense to the console that I don’t want to see, hence the redirect).

Another problem with using multiple workspaces is keeping your preferences and settings up to date across all of them. There is no need to configure each workspace individually every time you create a new one! Get one workspace set up exactly how you like it, and then select File -> Export -> Preferences. This will create a file that contains all of your preferences settings that you can keep in (e.g.) your home directory. Whenever you create a fresh workspace, use File -> Import -> Preferences and you’re good to go.

(By the way, if you're adding plugins to the base eclipse set, see Colin Sampaleanu's excellent blog entry on how best to manage that).

Coping with lots of projects inside a workspace:

It’s also not uncommon for me to have a lot of projects inside a workspace (one project per module). This is where working sets can make a big difference. Take a look at how the package explorer shows my core spring training workspace by default:

It’s just a jumbled mess of projects. Working sets to the rescue! From the drop down menu at the top right-hand corner of the Package Explorer view click on “Select Working Sets…”. From here you can define logical groupings of projects. With your groupings defined, select “Show -> Working Sets” from the drop-down menu. Now the Package Explorer will look something like this:

Much better!

Sorting out the clutter inside a project:

When looking at an individual project inside the package explorer, all of the jar files on the project build path show up by default. Most of the time I find these just get in the way. Here’s how my spring development workspace looks with the jar files showing:

The list of jars goes on even further, and worse, there are additional folders that I do care about at the end of the list. Select “Filters…” from the Package Explorer drop-down menu and define a new name filter matching “*.jar”. This will hide all of these jars from view making it much easier to find what you really want.

Organizing jar files:

On the subject of jar files, if you have common groups of jar files it can be very effective to define them as “User Libraries” that can be named and added to a build path as a unit. You’ll find the settings page to define user libraries under “Windows -> Preferences…” and then select Java -> Build Path -> User Libraries.

Sharing projects with others:

To make projects easy to share with others (for example, checking into a shared CVS repository) make the maximum use of variables. Right next to the option to define User Libraries, you’ll find the option to define Classpath Variables. When adding an external library to a build path of a shared project, always define a classpath variable that points to the containing directory on your local machine (or just the jar file itself). Then you “extend” the variable when defining a build path entry. This way each user can define the variable appropriately for their own local environment, but the project settings can still be shared in the repository.

Using Eclipse for Java Development

Helping Eclipse to help you write better code:

I used to use a small editor font in order to see the maximum amount of code possible inside the Java editor window. A while ago I changed tactics. Now I use a larger font than normal – 14 pt bold. As a consequence, I can see a lot less code in the editor at a time. This helps me write better code.

Let me explain.

It’s natural to want to see a whole method in one go. Seeing less code on the screen at a time has the subtle effect of making me write shorter, clearer methods. It’s also easier to sit back and reflect on code, and easier to pair program and work with others. Give it a try and see if it works for you too.

Organising the Java Perspective:

It used to be that I was never satisfied with the width I’d set for the Package Explorer and JUnit views. Too narrow and I couldn’t see the package and type names properly, or the stack traces in a test failure. Too wide and the editor window would get crushed between the Package Explorer on the left, and the Outline View on the right. Especially if you follow my suggestion of using a bigger font this can be a real pain.

I found the answer in a combination of fast views and in-place views. Now my eclipse dedicates as much real estate as possible to the source code. I have no views on the right-hand side, and no views on the left-hand side. The views I typically work with are the JUnit View, Type Hierarchy View, Package Explorer, and Javadoc View. Open these views, right-click in the title bar, and select “Fast View”. By default fast views dock at the bottom of the screen, but it’s not as convenient to move a mouse up and down to open them as it is to left-to-right. Select the fast view bar and choose “Dock on… left”. You have now reclaimed all of the space on the left-hand side that these views used to take, and your perspective should look something like this:

Another hidden benefit of this mode is that you can make the views wider than they were before, so that you can see the content properly (or even better for e.g. JUnit and Search, set the orientation to "horizontal" from the context menu). You can also set the widths of each view individually (JUnit wider than the Package Explorer for example, which is a significant improvement). If you don’t like having to move the mouse across to open a view, I’ll discuss a solution to that in a moment.

Any views you may have on the right-hand side, just close them (for most people, this means the Outline View). Instead use the in-place views. Ctrl-O opens an in-place Outline View (over the top of the editor). It’s actually better than the more usual docked view because it supports type ahead to quickly find the member you are looking for. Along with Ctrl-O, you also need to learn Ctrl-T which opens an in-place “quick” type hierarchy. This is a really easy way to see all implementers of an interface for example.

A final tip on the subject of view arrangement. If you have a dual monitor setup (becoming very common in the client sites I visit) it is quite nice to undock the Javadoc view completely – just grab it and drag it right outside of your Eclipse window and onto your second monitor screen. Now you’ll have the javadoc permanently open as a reference tool while you work. (Yes, you can undock views in Eclipse now, a lot of people seem not to know that).

On the subject of key bindings, you can significantly improve your productivity in Eclipse by learning some of the basic keyboard short cuts for common tasks (and indeed, for some things in the Java editor that aren’t available from the menus at all). However it’s also true that some of the default bindings for common tasks are absurd: “Alt-Shift-X,T” to run a test case for example – one of the tasks you’ll be doing very frequently I trust. When using fast views, I also find it convenient to add key bindings to open the Package Explorer and JUnit views quickly without having to move the mouse at all.

I make the following changes to the default key bindings:

Key combinationResult
Ctrl-P Open the Package Explorer (normally bound to print, but I hardly ever print from Eclipse, and will happily use the menu for that)
Ctrl-R Run as a test case. (normally bound to run-to-line in the debugger). Running tests should be a simple key-stroke away at any time.
Ctrl-J Open the JUnit View (normally bound to incremental search)
Ctrl-I Incremental search
Ctrl-G Generate getter/setter
Ctrl-B Toggle breakpoint

Now that you have Ctrl-R to run tests, it’s worth knowing that you can use this shortcut from within the editor when editing a test case, when a package is selected (to run all the tests in the package), when a source folder is selected (to run all the tests under the source folder), and when a project is selected (to run all the tests in the project).

Here are some of the other key shortcuts that I find amongst the most useful:

You’re already familiar with using the arrow keys (left,right,up,down) to move around within the editor. Using the arrow keys in combination with Alt, Shift, and Ctrl put a whole new set of capabilities at your fingertips:

Key combinationResult
Arrow keys Move cursor point in editor
Shift + arrow keys Increase/decrease selection in editor
Alt+Shift + left,right Select previous syntactic element / next syntactic element
Alt+Shift + up, down Select enclosing element / restore last selection
Ctrl+Shift+left,right Select next word / previous word
Ctrl + left,right Move left / right by one word
Ctrl + up,down Scroll up / down by one line
Ctrl+Shift+up,down Go to previous member / go to next member
Alt + left, right Go forward and backward in history (really useful if you’ve been following links exploring the code)
Alt+up,down Hidden treasure! Move the current line or selected lines up and down
Ctrl+Alt+up,down Duplicate line above / below

Other useful keys (standard cut/copy/paste etc. not included as I assume you are already familiar with these):

Key combinationResult
Ctrl+O In-place outline view
Ctrl+T In-place quick type hierarchy
Ctrl+M Maximize/restore current window/view
Ctrl+D Delete line
Ctrl+Shift+delete Delete to end of line
Shift+Enter Insert new line below
Alt+Shift+R Rename
Alt+Shift+T Quick refactoring menu
F3 Open declaration
F4 Open in type hierarchy
F11 Debug last launched
Ctrl+F11 Run last launched
Ctrl+Shift+T Open type
Ctrl+Shift+R Open resource
Ctrl+Shift+G Search for references in workspace
Ctrl+F6 In-place editor selection
Ctrl+F7 In-place view selection
Ctrl+F8 In-place perspective selection
F12 Activate editor (useful if you’re following my suggestion of using fast views :- F21 will dismiss the fast view and return you to the editor)

AspectJ hints and tips

Eclipse has great support for aspect-oriented programming with AspectJ through the AJDT plugins. In this section I’ll show you how to set up projects using linked source folders, how to run JUnit tests with an aspect library using load-time weaving, and some things you can do with the Visualizer that you may not realise. See the AJDT site on Eclipse.org for a tutorial on using AJDT – this section just contains a few less-well-known pointers.

Before we start, if you’re trying out using fast views and closing all the views on the right-hand side, one of things you’ll be missing is the cross-references view from AJDT (with all of the advises and advised-by relationship information). You can either dock this at the bottom (alongside the console for example), or use the in-place quick cross references view (not a lot of people know about that!). It has a not-very-useful default key binding of Alt-Shift+P, I remap it to Ctrl+U (not many letters left to choose from!). Now just press Ctrl+U anywhere in the editor and get a pop-up view of the cross-references for the selected element. Press it again to get cross-references for the whole file. Perfect!

Linked source folders:

Linked source folders can be a great way to experiment with aspects on a project without touching the main (Java) project at all. Create an AspectJ project alongside the Java project that you want to work with. Put all of your aspects into the “src” folder of the AspectJ project. Now, inside the AspectJ project open the project properties (Alt+Enter, since we’re trying to wean you off the mouse!) and go to the Java Builder page, and then the “Source” tab. Click on “add folder” to create a new source folder, and then the “Create new folder…” button. Here you’ll see an “Advanced” button. If you press this, you’ll get the option to create a folder that is actually a symbolic link to another location. Use this technique to create source folders inside the AspectJ project that are symbolic links to the source folders inside the Java project you want to work with.

Now whenever you build the AspectJ project, you will get (in the bin directory of the AspectJ project) a woven version of the project files. You will also see any warnings or errors arising from your use of declare warning / declare error in this project. The “donor” Java project remains completely unaffected by this exercise. Any changes to the source files in the Java project are of course instantly visible in the AspectJ project (and vice versa). To get the best performance, you can now turn off incremental building for the AspectJ project (Project menu -> build automatically) and just build that project on demand using the AspectJ build button in the taskbar.

Load-time weaving

(See my entry on using an aspect libraryfor a more in-depth treatment of this)

If you’re using an aspect library (such as spring-aspects.jar that ships with Spring 2.0) it is very convenient during development to use “load-time weaving”. Load-time weaving is the name given to weaving your application classes at runtime as they are loaded into the virtual machine. In this way there is no need to convert your project to an AspectJ project, or to do anything special at all other than put the aspect library on your build path.

Say you have some integration tests that you kick off via JUnit, and that rely on the behaviour contributed by the aspects in order to pass. For example, you’re using @Configurable to dependency inject domain objects. With the needed library on the build path, create a launch profile for the test run. The easiest way to create a launch profile is just to highlight the test or set of tests that you want to run and run them with Ctrl+R (if you’ve followed my advice and remapped that key binding). This run will fail, because you haven’t activated load-time weaving yet. Now select “run…” from the launch menu and you’ll see the launch profile that was created for the tests you just ran. Click on the arguments tab, and in the “VM arguments” box add the following:

-javaagent:aspectj-install-dir/lib/aspectjweaver.jar

Where aspectj-install-dir is the directory where you installed AspectJ (it’s best to download the standalone compiler and associated tools from www.eclipse.org/aspectj when using load-time weaving, ant building etc..).

Now you can rerun the tests and you’ll find that AspectJ picks up and uses the aspect libraries that you have on your classpath. It really is as simple as that.

Visualizer:

One of the tools that you get when you install AspectJ is the Visualizer. In fact, you get a whole “Aspect Visualisation” perspective which is the best way to use the visualiser. By default, the visualiser shows you cross-cutting information such as advises and advised by relationships. The visualizer plugin actually provides a generic capability that is not tied to AspectJ though. Open the visualizer perspective, and from the drop-down menu of the main visualizer view select “preferences”. Here you can choose the data provider that the visualizer will use to display information. By default it uses the AspectJ provider as I said. If you change to the “JDT Search Results Provider” you can use the view to visualize the results of the current search (all the matches, and where they are in the project).

The following image shows the results of searching for references to “InitializingBean” in Spring. Just as with the advice visualization, you can navigate from the visualization to the source code locations simply by clicking on the bars.

If you select “Resource and Markers Provider” you can see where all of your breakpoints, Task markers, warnings and errors are. Clicking on the options in the visualizer menu enables you to choose the subset of these that you are interested in at the time:

And finally

If you haven’t done so already, you should check out the Mylar plugin for Eclipse (developed by one of the AspectJ team, Mik Kersten) (see www.eclipse.org/mylar, and then go to the getting started page and watch the flash videos there). Especially if you’re working with bugzilla, Mylar is fantastic. Mylar deserves an article all of its own so I won’t attempt to describe it here – just go and try it out for yourself, you’ll be glad you did!




Click here to View more...

Sach ka Samna - Or Just a High TRP Game ?

http://im.sify.com/entertainment/movies/images/jul2009/sks_23jul09_482x250.jpg



Star Plus debuted the Indian version of 'Moment of Truth' today and I think it rocks as much as the original, in terms of morbid fasciation quotient for the viewer.

The real meat lies not in one family being torn apart with skeletons tumbling out of its Godrej almirah but the fact that every viewer is thinking: "How would I answer that question?"

When I first saw the phoren version of Moment of Truth on Star World, I thought,"Here is one show that will *not* get Indianised." After all we are a 'khaandaan ki izzat' loving country, would we do such things for money or 15 seconds of fame? (Infamy is more like it!)


Well I was wrong. The very first contestant - Smita Mathai- was an average middle class, silk-sari-with-mangalsutra kind of woman. She answered 12 questions - on everything from parents and inlaws to husband's alcoholism. She admitted she had thought of killing her husband at one point (heh heh - who hasn't :)

But seriously, she gave an eloquent explanation about his alcoholic period and how she could not see him suffering...

Q 11 I thought might do her in: "Are you still married to your husband for the sake of your children?"

Eh - 95% of the Indian population is, and finds nothing wrong with that. "Log shaadi bachchon ke liye hi to karte hain.. aur nibhaate bhi hain. Yehi to Indian culture hai."

Anyhow, Smita's lips quivered, her eyes seemed uncertain but she said "No".
And the polygraph agreed.
Husband whooped with joy.

Q no 12:"If your husband never came to know about it.. would you consider sleeping with another man."

Oops, I thought, she is trapped now. This is a hypothetical question. "If the bank never discovers you have stolen a crore of rupees, would you steal the money?" It's a fantasy and everyone has fantasies!

Now Smita can say "Yes, I would consider sleeping with another man if you never find out". Husband need not get offended because another man is not necessarily Mr Muthuswami next door but perhaps Shahrukh Khan. Or Brad Pitt. Or the dishy gym instructor.

Cosmopolitan magazine says fantasies are healthy, baba.

But Mr Mathai does not read such magazines. He is a hot blooded Indian male and will definitely feel insulted.

Knowing the consequences of saying "yes" Smita says "no".
When the polygraph beeps 'false' she looks surprised and says,"Yeh nahin ho sakta!"

Husband looks suitably crushed, embarassed, takes off glasses and wipes eyes.

Smita leaves the show with zero rupees and will spend rest of her life explaining that polygraph tests are not always true. They are not admissible in court as evidence. That she was tricked.

The truth is she was tricked, kinda. She thought she had 'nothing to hide' but discovered we are constantly hiding things. Even from ourselves.

The makers of this show have every intention of disrobing you -just like Draupadi was, in front of a full house. She had no choice, but Smita did and I wish she had quit when she could... She was too brave for her own good.

Tomorrow there is a thrice married buddha on the show. It will be spicy but you know what, more friends and relatives will snigger behind Smita's back than his. Because the 'morals' of society are supposed to be guarded by the women.

That's why brides in MP are 'tested' for virginity.

And why Rakhi Sawant is asked about hers, from a guy who apparently has a girlfriend back home (but still decides to participate in a swayamvar!)

The fun part is Rakhi got to kick that guy off her show. Which I think makes a statement.. of sorts. It's nice to see such issues being aired - even if is on a show which is about as 'real' as Michael Jackson's nose.

Sach yeh hai ki I am watching 'Rakhi ka swayamvar'. Apart from the drama, the palace is beautiful, and so are her clothes!

Aur ek chhota sach yeh bhi hai that I can't blame my book-in-progress for writing less on this blog. I've just been lazy, and I think I'm getting hooked on twitter. 'Instant gratification' and easier to tweet than blog on GPRS!

I need to remind myself that I am first and foremost a writer.

And so I must write.
Even if it is, about what I think of twitter...

As Captain Kirk might have put it, this blog's mission remains: 'To boldly go beyond 140 characters'

Sach ka saamna - 11 pm, Star Plus. Watch for high drama & Rajeev Khandelwal. And to have something to discuss, at the water cooler.


Click here to View more...

Iss Jungle Se Mujhe Bachao's Pics Online

[Image]

Go through the entire post to get more free photos...




[Image]

[Image]

[Image]

[Image]


[Image]















save Click here to View more...

Is Jungle Se Mujhe Bachao - Shweta Tiwari HOT video

[Image]

National Television in India going wild to the extend that it doesnt care about, to what extend things have to be shown. The example of the same can be seen in the latest Sony's - " Is Jungle Se Mujhe Bachao"




Shweta Tiwari Hot Video 1

Shweta Tiwari Hot Video 2

Click here to View more...

Official Celeb Contestant : Shweta Tiwari


[Image]







Shweta Tiwari, once a stage actress, attained iconic status on Indian television as Prerna, the lovable character she played in a popular soap. Her television career kick started with a role in Lakeerein and then moved to meatier roles in serials like Aane Waala Pal, Karam, Kasautii Zindagi Kay, Kya Hadsa Kya Haqueeqat, Kahin Kissi Roz, Jaane Kya Baat Hui and was seen recently as the host of Jhalak Dikhla Jaa 3.
Click here to View more...

Hot pics from Iss Jungle Se Muhe Bachao

Iss Jungle Se Mujhe Bachao is the Indian version of the popular British reality game show I'm a Celebrity…Get Me out of Here!.

The show premiered on July 13, 2009 at 10 PM on Sony Entertainment Television (India), replacing another reality talent show Entertainment Ke Liye Kuch Bhi Karega whose Season 1 ended the previous week.



















Click here to View more...

"Iss Jungle Se Mujhe Bachao"

New Reality TV Show On Sony Television "Iss Jungle Se Mujhe Bachao" A full database comprising brief preview of their profile!!

Another New Reality Tv Show will starts on Sony Entertainment Television. Yes, the much awaited Sony's reality Show "Iss Jungle Se Mujhe Bachao" will starts from 13th July, 2009 and timing of the show Monday to Thursday at 10 pm and Friday 9 pm. Ten famous Indian Tv Celebrity are contestants of the show. They spent a whole month in the rich jungle of Malaysia. Famous lovely Mini Mathur will live hosting of the show "Iss Jungle Se Mujhe Bachao". So get ready to enjoy the new kind of reality show. Who entertain you, they are Sweta Tiwari, Anaida, Marc Robinson, Aakashh Deep, Fiza, Ishq Bector, Aman Verma, Chetan Hansraj, Mona Wasua and Palak. Check out the contestants photo and description given below...

Contestants Photo and Description of "Iss Jungle Se Mujhe Bachao"

Shweta Tiwari : Beautiful Shweta Tiwari is a top actress in Indian TV Industries. She is became famous as Prerna , this lovable character she played in a popular soap. She was seen recently as the host of Jhalak Dikhla Jaa 3. Shweta worked in many serials like Aane Waala Pal, Karam, Kasautii Zindagi Kay, Kya Hadsa Kya Haqueeqat, Kahin Kissi Roz, Jaane Kya Baat Hui.











Anaida : Anaida is a singer, dancer and also a good painter. She was the first singer to sing an English song for the film Bombay Boys. Hoo Halla Hoo was the first animated video to be produced in India for the movie The Lion King. Anaida stormed the Indian music.













Mona Wasu : TV Serial "Millie" fam Mona Wasu did a lot of commercials and travel shows. She enrolled with National School Drama and thereafter during her college days and she never gave it a serious thought before. She said that it was purely for the adventure and thrill that she agreed to put herself through the test in the jungle.












Palak : 19 years old Palak has sung the famous song "Bhoothni Ke" from movie Sing Is King. She famous from Roadies for her cat fights in the show. She will be seen in Movie Kissan. She is from Chandigarh. Palak calls herself Bindaas and fighter. She said that she takes to survive in the Jungle.










Fiza : Fiza's originally known as Anuradha Bali. She came in limelight because of her relations with Mohammed Chand, former Deputy Chief Minister of Haryana. She is a lawyer by profession. She also starts her carrier as a actress in up coming film Desh Drohi –II which is based on the Mumbai terror attacks. She want to get a new lease of life through her participation in Iss Jungle Se Mujhe Bachao.











Aman Verma : Aman Verma is a famous face of Indian Television. He started his career on television with Shanti but he famous from Kyunki Saas Bhi Kabhi Bahu Thi. Aman Verma has also acted in films like Baghban, Babul and Andaaz. He is a good anchor also. He anchored some very popular game shows like Dial Aur Jeeto, Khulja Sim Sim and reality show Indian Idol 1 and 2. Aman said that "This will open my horizon. I’m truly looking forward to this experience”.










Aakash Deep Saigal : Aakash is a TV and Film actor, Model, Sound engineer and documentary film maker. He is also former State level football player. Aakash also won the title of “Supermodel of the year” at the Gladrags Manhunt Contest. He became famous as Ansh when he played the character in Saas Bhi Kabhi Bahu Thi. Aakash said that I am a winner of the game.












Chetan Hansraj : Chetan started his career with modeling. He is the talented actors of Television industries. He has done almost 200 commercials as a kid and now he has been the heartthrob of many people. Chetan was also a state level water polo player.












Marc Robinson : Marc is a model and actor. He has worked as a model co-ordinator and choreographer for many fashion shows and glamorous events. He is a father of three kids and a husband fellow model Waluscha D'Souza. He is came into the limelight by choosing to be an actor in the movie Bada Din opposite seasoned actress Shabana Azmi. He is a die hard fan of Robert De Niro.














Ishq Bector : Ishq Bector is not just a hip hop artist and a performer but he is also a songwriter, producer, entrepreneur and a visionary poet. He has written, produced and sang songs for films like Ugly Aur Pagli, Maan Gaye Mugal-E -Azam and Race. He has also worked with Rishi Rich. He also worked in a movie Barsaat. Ishq said for the show that "I want to get into the Indian home … so either I break in and steal your television or be featured on it!”.







Click here to View more...

Car Wallpapers






Click here to View more...