Posts Tagged ‘sunbird’

I am an absent minded person and use tasks and to-do lists extensively to maintain my sanity. I use a collection of tools to keep myself organized . I have talked about two of them already : Hamster for Time Tracking and Sunbird for reminders . Task Coach is the third tool I frequently use.

Task Coach is a very powerful task/to-do list management tool . There are many cool things to say about it – It is cross platform and hence you can use the same task list across OSes. It is even available for IPhone and IPod Touch ! It has an extensive set of functionalities and lot of ways to customize the app to suit you.

Task Coach Or Sunbird

There are multiple tools to maintain to-do lists – like Google tasks, Remember the milk , Sunbird etc. Each of them have its own set of neat features. One of the main reasons I use Task Coach is that it is desktop based. Web based to-do apps are cool and portable etc , but they do not offer the extensive set of features that Task Coach has. Also, I spend most of the time in front of my laptop and do not use any smart phones – So a desktop task manager seemed like the perfect option to me.

That narrows the choice between Task Coach and Sunbird. I use both of them extensively. The rule of thumb for me is that , if the task is very simple and needs a reminder then use Sunbird . This includes things like calling my family in India regularly, wishing my friends on their birthdays correctly, doing some regular system administration tasks each week etc. Each of the tasks are straightforward and have a simple structure.

I use Task Coach for more complex tasks. I use Task Coach if the task at hand has sub tasks – Or if I want to track the number of hours I spent on this project. (I also use Hamster to track the timing but it is easier to store the information along the task). I also use Task Coach when I want to categorize my tasks.


If you are in Ubuntu, you can use apt-get to install task coach.

    sudo apt-get install taskcoach

If you are in other operating systems (Linux or Mac or Windows) , you can download the appropriate installation file from Task Coach’s download page .

If you are in Ubuntu, you can start Task Coach from Applications -> Office -> Task Coach. I guess the process is similar to other operating systems.

Playing With Categories

Categories is one of the important features in Task Coach. You use Task Coach to stay organized – but that does not mean your to-do list can be unorganized. You can use Categories to group your tasks in to appropriate bins. Task Coach has multiple neat touches that makes using Categories a breeze.

Creating a New Category

To create a new category, use Category -> New Category. If you have the Category viewer (more on this later), you can use it to create categories faster. Once you do that you will see a Categories window which has multiple options to create a Category.

The first tab is the Description tab. It has fairly straightforward options. You can enter a title and description. Additionally , you can specify if the sub categories are mutually exclusive. This means that if this category has two sub categories, then a task can belong to only one of them.


Task Coach Category Description


The next tab is the Notes tab. Categories in Task Coach are complex objects and can contain multiple notes . I consider notes as additional information to the category but which are not really tasks. For eg notes can include email Ids or Phone numbers, preferred way of contacting etc.  As seen in the picture below, a category can have multiple notes.


Task Coach Category Notes


The third tab is the Attachments tab. In this you can attach additional resources needed for the tasks. This can either be local resources like files. Or it can be remote resources like URLs. I typically use this feature to point to folders that contain the necessary relevant resources.


Task Coach Category Attachment


The last tab is that of Appearance. If you are using Task Coach extensively, you will amass a long list of categories and tasks and you will need a fast way to eyeball them. Appearance to rescue. This tab allows you to create custom foreground and background colors to the category. You can also differentiate them by varying icons and font but I usually find that colors do the job.

Task Coach Category Apperance


Advanced Categories Stuff

Creating categories is just the first step in using Task Coach. As you use Task Coach more, you will notice that you want to allocate tasks to finer categories. For eg, I had a single category called Research where I put most of my tasks. As my defense gets closer, I created two sub categories – one for Bayesian networks , the topic of my research and another for my thesis. What is more, I can set up notes,attachments and colors for each sub category which allows me to group them together.


Tasks are the meat of Task Coach. Tasks in Task Coach are complex objects with lot of features. I will try my best to introduce most of the important features.

Once you created categories (and subcategories), the next step is to create tasks within them. To create a task, select Task -> New Task. (Ctrl + insert for keyboard addicts). You will see a new window with lots of tabs. If you feel it is cluttered, it is. But it also gives you enormous flexibility and power. The Description tab is fairly straight forward. One important field in this tab is that of Priority. You can assign different levels of priority to a task. By default, Task Coach orders the tasks based on their due date and priority. Priority is very important if you have multiple tasks in a category or multiple sub task inside a task.

The next tab is the "Dates" tab. This gives some options to specify when the task starts , ends and actually completed. Task Coach also has options to create reminders like Outlook or Sunbird. Again, you can set a task to recur based on some pattern and you will use "Dates" tab for doing it.

Task Coach Task Dates


The Progress tab is used to describe what percentage of task is completed. The "Categories" tab allows you to assign the task to some Category. Task Coach allows a task to be in multiple categories/ subcategories at the same time. For eg, the test task I created is in all the categories I created. Note that if you have set your subcategories to be mutually exclusive, then the task can belong to only one of them.

Task Coach Task Categories


In my opinion, "Budget" tab is misnamed. It allows you to do two things. It allows you to assign the maximum amount of time you allow yourself to do this task. For eg, I can give myself 10 hours to a task. You can track your time spent on this task and it keeps a track of your "time" budget. It also has a "Revenue" option which allows you to calculate how much money you have earned or should charge the client. In the screenshot, I have set myself a 10 hour budget. I have spent 2 hours already on the task which leaves 8 more hours. I charge $100 to the client and this means, the client has to pay me $200 as of now.


Task Coach Task Budget


The "Efforts" tab is one of the most important tabs. It is highly useful to store the time you spent on the task. Basically an "Effort" is the time you spent on the task. There are two ways to enter an effort for the task : Manual and automatic. You use the Effort tab to enter efforts manually and also to verify the effort you spent so far in the task.

This was the way in which I entered the detail that I spent 2 hours in the test task that I created. For each task, you can have as many efforts as you want. Task Coach also has a convenient way to see all your effort details (or even group per day/week/month). The Efforts tab work in conjunction with the information in Budget tab. If you set any budget/revenue, it gets reflected in this tab.


Task Coach Task Effort


The Notes, Attachments , Appearance tabs are straight forward. You can attach multiple notes / attachment to a task. See the discussion in Category for additional details. You can also set a task to have a foreground/ background different from its parent categories. For eg, I set my test task to have an orange color even though the individual categories used different foreground colors.

Of course, once a task is created, you can edit it by double clicking it. You can increase/decrease its priority , mark it as completed etc. You can add notes or attachments.


Efforts are an important topic that I want to discuss it again. Basically, an effort is amount of time you spent on a task. You can specify an effort on a task automatically or manually. If you are doing a task NOW, then you can start the effort tracker. There are multiple ways to do that : Easiest is to right click on a task and select "Start Tracking Effort".  Alternatively, you can select Effort -> Start Tracking Effort .  When you stopped working on a task , you can stop tracking effort in the same way as you started the effort.

The manual way to specify a effort happens when you want to make an entry in Task Coach , the time spent on the project at some time in the past. Again, there are two ways to do that – If there is a single effort to add to task, the easiest way is Effort -> New Effort. This will open a new window, where you can select a Task and add Start and End times. If you are going to add multiple efforts for the same task, then the easiest way is to double click on the task and open the edit task window. Go to the "Effort" tab and add multiple efforts to the same task.


Templates are one of the neat ideas in Task Coach. If you notice that you are entering similar details in task then it is time to create a template out of a task. A sample scenario is this : Lets say, I create tasks t1, t2. Both of them need same notes, attachments, colors, revenues etc. You can manually enter details for each task individually. Or you can create a template from the task and then use this template to create new tasks.

Lets say you have a task t1 which contains the settings that you want some future task t2,t3,t4 etc to contain. The first step is to create a template out of t1. So click on the task t1 and select File->Save Selected Task as Template. It will ask you to enter a name for the new template. Enter some meaningful name. When you want to create tasks t2,t3 etc , go to Task->New Task from Template and select the template you saved. This will create a new task with almost all the settings inherited from the old task t1. A very neat functionality !

Task Manager

I used the name Task Viewer as the generic name for the primary window of Task Coach. You can see my sample window here.

Task Coach Task Viewer


You can see two important panes – One which shows all the tasks and other is the category viewer. The primary pane is where all your tasks are shown. It shows by default the most important attributes of the task – Title, Categories, Start and Due Date. If you want , you can alter the attributes it shows from View -> Columns. There are two primary views of the tasks pane – Tree and List view. You can use the drop down near the tool bar to toggle the views.

You can use the category pane as a filter to show only the tasks from a selected set of categories. For eg, if I want to see only tasks from my Thesis category, I will check that category and uncheck all others.

Task Coach has lot of very useful "views". To access them select View->New Viewer and select the viewers available. My favorite viewers are the category , calendar and effort. These are alternative ways of looking at your tasks and very useful.

Task Coach also has a filter option to select a subset of events based on some condition. For eg , you can hide completed or overdue tasks. You can see all tasks that are due next week and so on.

By default, the tasks are sorted by Due Date. You can alter that from View –> Sort and selecting the field.


You can access Task Coach’s preferences from Edit->Preferences. Most of the preferences are the sensible ones. One change, I will suggest is Files->Auto Save after every change. Some times, I make the changes in Task Coach but forget to save them. Since I use AllTray to hide them to panel, some of the changes are lost during shut down.

Syncing/Sharing Task Coach To-Do Lists

Task Coach is available in all major operating systems. Lot of time , you will want to sync your task / to do list across OS or machines. There are many different ways to do it.

1.If you want to share across operating systems in the same machine, then the easiest solution is to put the tsk file in a common folder and let the Task Coach in individual OS access the same file.
2. If you want it to be accessed across machines, you can use services like DropBox or Ubuntu One. Just mark the folder containing the tsk file to be synced . Repeat the same process in the next machine. Now changes in each machine will be reflected across machines.
3. Task Coach supports SyncML. You can sync it using any Funambol server. A list of the available server is at the wikipedia page for SyncML.
4. Use Task Coach Portable. Store the files and the program in a USB disk and carry it wherever you go.

Misc Stuff

1. It look a while for me to figure it out . But Task Coach has support for drag and drop. This means you can drag and drop files to create attachments.
2. You can export tasks, categories as HTML or CSV. If the task contained efforts, then they can be exported as ICS files.
3. You can print list of tasks or email them .
4. Task Coach internally uses the tsk file which is nothing but xml. I do not see any reason to tinker with the raw data, but I can think of lot of additional data mining that can be done using the information.
5. Task Coach has a portable edition which can be used to have tasks on the go.

Potential Usage Cases

Task Coach is a very flexible and powerful application. This means it is possible to have multiple use cases. I have explained how I use it at the start of the post. If there is some complex task with lot of sub tasks , I use Task Coach. It allows me to track my progress and do some useful annotation on the tasks. It also allows me to simultaneously do multiple tasks at a time. I also have multiple categories for handling different scenarios. For eg, I have categories for my blogging, research, self development, programming projects, my course work , long term things  etc. The flexibility that Task Coach provides is amazing.

I also work as a Graduate Research Assistant (GRA) in my university. I use Task Coach as a pseudo project management and tracking application. So whenever I get some email on a task, I make an entry in Task Coach and add the email text as description. Since it also has effort tracking and priority, it makes an excellent project management and tracking tool.

I know a friend who uses Task Coach to work as per the GTD (Getting Things Done) methodology. Since Task Coach is very flexible, it is a simple matter of creating appropriate categories and subcategories to get GTD going.

Useful Resources

1. Home Page of Task Coach.
2. Task Coach Screen Shots .
3. Task Coach download page.
4. Task Coach : FAQ1 and  FAQ2 .

Task Coach is a very powerful tool for maintaining to do lists and task management. At first, its interface might look cluttered or even worse unintuitive to beginners. But trust me, it is this flexibility from which Task Coach derives its power. You will start loving it once you get a hang of it. Have fun with Task Coach !


Add to DeliciousAdd to DiggAdd to FaceBookAdd to Google BookmarkAdd to RedditAdd to StumbleUponAdd to TechnoratiAdd to Twitter

Read Full Post »

Sunbird and Hamster are two applications by which I get most of work done. I have already talked about Hamster at Time Tracking in Linux using Hamster . In this post, I will talk about Sunbird and Lightning.

Sunbird at its heart is a simple stand alone calendar application. You can manage tasks , add events and reminders and sync calendars. Lightning is a Thunderbird extension which gives access to all of Sunbird’s features from Thunderbird. So , once you are comfortable with one of sunbird/lightning , it is very easy to work with the other.

The decision to select one is primarily based on whether you want a stand alone or Thunderbird extension. In my case, I wanted a stand alone calendar application. I was subscribed to multiple online calendars (Google, Exchange, my university’s event calendar etc) and it did not make sense to integrate all of them with Thunderbird. Also, Lightning’s remainders were not playing well when you minimized Thunderbird using AllTray . With Lightning 1.0 and Thunderbird 3.0 , the problem is no longer there but I had become used to Sunbird.

Note : Mozilla foundation will not add any more new features to Sunbird and will focus primarily on Lightning extension for Thunderbird. That is not a big deal as Sunbird, as it exists , is a very stable application. Also most of the discussion here applies to Lightning too. So if you decide to go with Lightning instead of Sunbird, the instructions in this post will still work.

Sunbird Installation

Installing Sunbird is very easy. If you are in Ubuntu (Lucid or something older) , you can use apt-get to install it.

    sudo apt-get install sunbird

I think the instructions for other operating systems is very similar. You can also check out Sunbird’s download page for more details about installing.

Sunbird Tasks

Tasks are one of the important tasks in Sunbird. You can consider a task as anything that should be completed by some due date. Tasks are very similar to Events and the difference between them is mostly pedantic. Tasks have a start date, due date, recurrence and reminders. Tasks have some additional information like the current status and completion percentage . Sunbird will very helpfully color code your tasks based on their status and due date. You can also optionally hide all the completed tasks. Also, you can classify your tasks using "Category" field and assign it to one of your local or online calendars, provided you have appropriate providers (more on that later).

If you do not use tasks much, you can always hide it by unchecking View -> Task List. (And vice versa).

Sunbird Calendars

Calendars are one of the basic ideas in Sunbird. Calendars can be local (residing in your hard disk) or online (eg Google Calendars, Outlook Exchange server or even Remember The Milk). You can optionally have more that one calendar. For eg, I have multiple calendars – one for my personal stuff, one for my research, one for my university’s events etc. It is always a good idea to have multiple calendar – one for each purpose.

Sunbird Local Calendars

The simplest type of calendar is the local calendar. To create a new local calendar, File -> New Calendar (or Ctrl + L). Select "On My Computer" for local calendar. Click Next. Select a name for the calendar and a color by which the events in this calendar will be highlighted. I usually find color coding of events is very useful when you have multiple calendars and you skim over them. Click Next and then select Finish. Your local calendar is now created. All the local calendars will be listed  at the left hand corner of Sunbird.

Sunbird Online / Remote Calendars

The other important type of calendars is the online / remote calendars where some server publishes the calendar and Sunbird acts as a client application. (Some thing like Outlook does for Exchange Server). Sunbird is versatile as it supports a variety of calendar formats (ICS, CalDAV etc). It also allows you to plug in providers if your calendar server has some different format. To add a remote calendar , File -> New Calendar -> On the Network -> Select protocol and give URL -> Next -> Select colors for this calendar -> Finish.  Some of the popular remote/online calendar providers are :

a. Google Calendar : Adding Google Calendar has become very easy recently after Google added CalDAV support. Follow the instructions at Enable Google Calendar in Mozilla Sunbird  . You can also check out Google Calendar Provider  plugin if the first instructions did not work out.
b. Outlook/Exchange server : There are two cases here. The first case is you want to move some of your outlook appointments to Sunbird. In this case, you can export your appointments into a csv/ical file from Outlook    and import it into Sunbird using File->Import .

The other scenario is you want to sync to a Exchange server. I never found a good solution to sync Sunbird and Outlook/Exchange. I finally used a indirect way to achieve it. The basic idea was to sync Exchange and Google Calendar using the instructions at Getting started with Google Calendar Sync. Then use Sunbird to sync the events from Google Calendar as discussed above.
c. Apple iCal : Lot of Apple’s apps use iCal format and it works very well with Sunbird as it supports ICS. You can import the ics file and create a new calendar.
d. Syncing with Smart Phones (IPhone / Android / Blackberry etc) : The basic idea is same. Google has apps in each of the smart phones to interact with google calendar. So use the app to sync the smart phone and google calendar. Make Sunbird sync with Google calendar.
e. Other Providers : Other calendar servers may have different format. Sunbird has lot of provider add-ons which can import/sync calendars to Sunbird. See the list of these providers  . Probably the most common is Remember the Milk. If you are interested in RTM, then check Remember The Milk’s instructions to sync tasks/events.

Other Calendar Operations

Sunbird has other calendar operations other than creating it. You can import events from a calendar file (typically ics/ical). You can export Sunbird’s calendar events and import it to other applications like Outlook. You can also publish your calendar to your own CalDAV server as an ics file. The other cool stuff is to Subscribe to be a remote calendar. This is useful if you want to follow some organization’s public schedule. For eg, I follow my university’s event calendar. For Apple’s fan boys,  they provide their events as an ICS calendar.  All these operations are available from the File menu.

You can also delete a calendar by either right clicking on it and selecting "Delete Calendar" . Online calendars are refreshed every few minutes – so if you want to get the latest events NOW, do File->Reload Remote Calendars (or Ctrl+R) .

Creating Events and Reminders with Sunbird

Once you create a calendar, the next thing to do is to set up some events and reminders. If you have multiple calendars, select the calendar in which you want the new event to reside in. File -> New Event (Ctrl+N) . This will bring up the event dialog window. You can enter the title/location of the event , the category of the event (some birthday or meeting etc) and also optionally change the calendar.

The other fields are pretty intuitive if you have used other calendar applications like Outlook. You can have very flexible (custom) recurrence and remainders which makes scheduling events pretty powerful . Sunbird also has a basic event scheduling features. When you create a new event , you can invite additional participants and check their conflicts. Again, you can make this event as public or private which is very important for online calendars like Google Calendar. All these options are available from the "New Event" dialog. There are additional options available to control the event/appointments in the Options menu of the New Event dialog.

Sunbird will show a reminder for the event at the time you have set . You can snooze the reminders or dismiss it. Sunbird can show reminders only when it is running. So I usually start it at bootup and also minimize it using AllTray. You can find the instructions at my AllTray Primer.

Advanced Stuff

If you want to play around with Sunbird’s internals – most of the stuff is present at ~/.mozilla/sunbird/<profile name> . The calendar information is usually at storage.sdb . This is a SQLite file and you can play around with it. The database schema is a bit unintuitive but you will have fun figuring out how all the stuff are organized – Try finding how Sunbird stores recurrence, remainders and other stuff like attachments.

Sunbird also has lot of extensions (or addons). You can the entire list at Sunbird’s addons page. One of my favorite addon is FoxClocks which allows me to find out times at other countries/time zones fast. This is especially needed in US as I never correctly know the time zone differences across texas/new york / california/ seattle etc. To install an addon, download the xpi file. Tools -> Addons -> Install and select the xpi file. Restart Sunbird to apply it.

Sunbird also has lot of themes. If you are not satisfied with the default theme , you can find new ones at Sunbird’s Themes page. To install an addon, download the theme file. Tools -> Addons -> Select Theme tab -> Install and select the theme file. Restart Sunbird to apply it.

Lightning Extension for Thunderbird

If for some reason you do not want to use Sunbird as a stand alone application and want to use it along with Thunderbird, then you can install the Lightning extension. The extension can be downloaded from its official homepage. If you are in Thunderbird 3 , then you can install it by Tools -> Addons -> Get Addons tab. Type "Lightning" in the search box. Install the Lightning extension. You may want to restart Thunderbird for applying it.

Note that the above steps only works if you are using a 32 bit version of Thunderbird. If you are using 64 bit computer then you need to manually download the extension file from Mozilla’s page. Go to Mozilla’s Lightning release page, select the latest stable version and select your OS. Download the lightning.xpi file. To install it , Tools -> Addons -> Install and select the xpi file and you are all set.

Once you install Lightning, there are two ways to use it. The first way is as a side pane. Enable the today pane at View -> Today Pane -> Show Today Pane (or F11) . You can cycle around through different views in Today pane (only tasks/only events or both ). This is probably the best way as it conserves space.

If you want to do lot of changes in your calendar, then it is a good idea to switch to a Sunbird-ish view. If you look at Thunderbird , at the top right corner, there will be two innocuous looking icons – One looks like a calendar and other like tasks. Clicking on them opens Events and Tasks in different tabs. People using Sunbird will be immediately comfortable with this interface.

Sunbird and Lightning are really cool applications. Have fun with them !


1. You can find lot of information at Sunbird’s  Home page.
2. More details about Sunbird can be found at its FAQ page.
3. Lightning’s release page is here.


Add to DeliciousAdd to DiggAdd to FaceBookAdd to Google BookmarkAdd to RedditAdd to StumbleUponAdd to TechnoratiAdd to Twitter

Read Full Post »

AllTray is a very useful Linux utility that many are not aware of. The problem it solves is this : Many a time, the Linux application (Eg Thunderbird, Subscription, Gedit) that you use may not have a tray icon. This means when you click on the application’s close button , the application is terminated. This is in contrast to some other applications like Pidgin, Empathy , Rhythmbox and others which gets minimized to system tray and stay in the background when you click on the close button.

AllTray is a Linux utility that can make any Linux application to get minimized in the system tray (and not get terminated) when you press the close icon. An alternate way to say the same thing is that , AllTray allows you to “dock” any application, although it looks more like a Mac lingo.


If you are in Ubuntu, then the easiest way to install it is
sudo apt-get install alltray
If you are in any other Linux variant, then you can go to AllTray’s homepage and get the source code and install it yourself.

Using AllTray in GUI Mode

The most common way to use AllTray is using its GUI. So start any application that you want to be minimized. Then start AllTray from Applications -> Accessories -> AllTray. You will get a small dialog box which says “Please click on the window you would like to dock ” and a “Cancel” button . The mouse pointer also changes to a “+” sign. Now click on the title bar of the application that you want to minimize (or dock). The application now moves to system tray and it is immediately minimized.

Now you can click on the icon at the system tray to maximize/minimize the application. If you want to permanently close it , then right click on the application and select  “Exit” . If you want to remove AllTray’s behavior (ie make the application behave conventionally) then right click on the tray icon and select “Undock”. The application will now be maximized, the icon is removed from system tray and if you now click on the close button , then the application is truly terminated.

Using AllTray in Console Mode

I really like the fact that AllTray also works well from the console and it has more options when you invoke from the console. You can try “alltray –help” to get all the options.

Scenario 1 : Dock/Minimize a new application
This is the typical scenario in which you start a new application from the console, and want it to be minimized to the system tray. Using thunderbird as an example,

alltray thunderbird

This makes allTray run in console’s foreground. If you want to make it run in the background , append an “&” to the command. The side effect is that if you close the console , the application gets terminated.

Scenario 2 : Dock a new application but do not minimize it immediately
Usually, for an application like Thunderbird, you do not want to minimize it immediately. You want to check your emails first and then when you close it, you want it to be minimized. To do that ,

alltray thunderbird -s

Scenario 3 : Dock an existing application
Sometimes, you might want to move an existing application to be docked. AllTray currently does not have any functionality from console to do that. (previously it had a -p pid option). So in this case, it is easier to do it using the GUI. (Refer the steps for GUI above).

Scenario 4 : Maximizing a docked application using keyboard shortcuts
Currently, once you dock an application, the only way to view it again is to click on the system tray icon. AllTray has an option that allows you to maximize a docked application using a keyboard shortcut. Using Thunderbird as an example again,

/usr/bin/alltray  /usr/bin/thunderbird -k Alt:t

In this case, Thunderbird starts out minimized and I can press Alt+t to maximize it whenever I want. Pressing it again, minimizes it. I was not able to assign it a shortcut using the super key (ie Windows key) like super + t . This was because Super was not an acceptable modifier – I was able to assign shortcuts like Alt+Super(windows) though. For more details check alltray –help.

Scenario 5 : Using it for startup applications
I use Thunderbird and Sunbird extensively and have it in my startup applications. I used to manually minimize them using AllTray GUI. Now a days, I use the command line version to minimize it automatically. For eg, enter either of the following command at System -> Preferences -> Startup Applications

/usr/bin/alltray  /usr/bin/sunbird -k Alt:s
/usr/bin/alltray  /usr/bin/thunderbird -k Alt:t –s

So , when the system starts, it starts both Sunbird and Thunderbird. Sunbird is immediately minimized and I can use Alt+s to maximize/minimize it. Thunderbird starts out in a maximized form (and does not dock immediately). I can check the emails and then click on the close button and it will get minimized to system tray. I can use Alt+t to control minimizing/maximizing Thunderbird.

AllTray is  a neat utility and I hope it is useful for you !

Add to DeliciousAdd to DiggAdd to FaceBookAdd to Google BookmarkAdd to RedditAdd to StumbleUponAdd to TechnoratiAdd to Twitter

If you liked this post , please subscribe to the RSS feed.

Read Full Post »