Sunday, November 22, 2009

A "significant amount" ...

One of the best news most recently i hurd was finding water in the moon. While i have paid so much interest for the science fictions by Sir Arthur C. Clarke the news was a real nice news for me.

then i kept reading the feedbacks and comments of the people. Then i identiyfied that many people are really excited about this matter as me and some are aginst wasting money for 2 buckets of water in moon.

The points people discuss are seeems to be really true for me in both sense. But i really belive we are living becouse of hope. So everyday we need something new to live. This is one of the news that change the future.

Friday, September 11, 2009

University of Moratuwa hits top in Google Summer of Code

First of all i like to congratulate all the people who have selected to GSoC and finished it as they promised. And i thank them for making our university the top of the world from this GSoC competition.
The statistics of GSoC can be listed as follows.

Top 10 Schools in 2009 by # of Accepted Students
Sri Lanka - University of Moratuwa - 22
Brazil - University of Campinas / UNICAMP - 12
China - Graduate University of Chinese Academy of Sciences - 11
Romania - Polytechnic University Of Bucharest - 11
Poland - Gdansk University of Technology - 10
Austria - Vienna University of Technology - 9
India - Birla Institute of Technology and Science Pilani, Goa campus - 9
Sweden - Royal Institute of Technology - 9
India - Institute of Technology, Banaras Hindu University - 8
Singapore - National University of Singapore - 8

And for comparison:
Top 10 Schools 2005 - 2009 by # of Accepted Students
Sri Lanka - University of Moratuwa - 79
Brazil - University of Campinas / UNICAMP - 37
Canada - University of Toronto - 34
Austria - Vienna University of Technology - 31
China - Graduate University of Chinese Academy of Sciences - 30
United States - University of Illinois at Urbana-Champaign - 28
Poland - Wroclaw University of Technology - 27
Hungary - Budapest University of Technology and Economics - 21
Canada - Carleton University - 21
Romania - Alexandru Ioan Cuza University of Iasi - 20

The original article about this can be found here

Wednesday, August 12, 2009

My First 3D Movie Experience

It was around 2 weeks ago. We watched Ice Age 3 at Finkino (Oulu) theater. It was my first 3d movie experience and its awesome. It makes you feel your traveling inside the film. But still the glasses made a bit of pain. Still the experience is unforgettable.

As i feel this a simple thory that was mplemeted time ago and now it has come to a better level. When i serched on web for the technology it expalined here.

This is how you see the screen if you look at the screen without glasses.

Friday, August 07, 2009

How to put 13 keys inside 4 cm X 1.5 cm area ??

This might sound bit silly. But if somebody asks you to arrange set of keys on an area of size 4X1.5 cm in a very feasible manner, How would you do it ?? I started thinking of all the varieties of keyboards. here are some sizes and pictures of some of them.
This Keypad has 17 keys in a area of size 9.5X6.5. So If we calculate the area of a unit key, that will be 3.63 (cubic centimeters per key). But the good thing is this keypad is extremely easy to use. I can type super fast even without looking at the keys.

Then a general calculator. Normal size of a general calculator will be either same as that of a Keypad or less. We'll amuse that it is of size 8X5. So the area of a unit key will be 1.53.
And this is the most probable answer for my question. It's super cool. I know there are plenty of keys inside this tiny area. BUT who are you going to press those?. The area is around 2X2 cm in size. And have 16 keys on it. I don't see any use of all the keys if you don't have a pin. So the unit area for a key is 0.25.
The Other keypad that everybody users now a days is the mobile keypad. This is taken from the N95. it has 12 keys in a area of 4.5x2.5. So the area of a one key can be calculated as 0.93. This key pad is far better sample of a compact design.

But still why people do not think out of the box?? All the above samples demonstrate the very traditional way of arranging keys. The following image is the answer that i was looking for. I was really amazed by the design. You can use is as easily as the very first once. You dont need to look at it once you get used to it. And its not a pin head operating pad.
And if you count the number of keys there that is 13. And the area taken by a single key is 0.46.

So from next time when you asked to think out of the box, don't recall the history. Think of something new, and it will make you a real designer & a revolutionary person like Albert Einstein.

Wednesday, August 05, 2009

WSO2 & Its Service of 4 years

Yesterday i got to know that WSO2 is having its 4th birthday. WSO2 is a company which leads in a different direction than other Sri Lankan companies. As i found from one of the founders blog, at the very beginning the company was described as follows. (in 2005)
"WSO2 is a Web services software platform company with a difference.

We are creating an uncompromising middleware platform for Web services which treats Web services as first class components instead of as a facade to some existing platform like J2EE. Apache Axis2 is the first SOAP stack which espouses this design in its guts: we focus entirely on doing what's right for Web services first. We make no apologies for being XML centric instead of Java object centric. An add-on layer allows Axis2 to play by the, sometimes klunky, Java rules and regulations (like JAX-RPC) for those who want the comfort of (and are willing to pay the price of) those rules & regulations.

The best part is, all of our software is available free under an open source license.

The even better part is, we are not just giving the software away under open source licenses, but we are also developing it in true open source fashion fully involving the user community. Our role in Apache Web services projects proves that but much more is to come. We've only just begun.

In WSO2, in addition to building the pieces in Apache, we are working on offering integrated Web services server stacks which will provide uncompromising solutions to those looking for the absolute best Web services middleware. "

Now its one of the leading companies which provides various list of services and open source products mainly around the Apache server (as i know).

The good thing with the company is it gave a meaning to the Open Source community in SL. And it earns a large amount of money inside to the country. And the best thing i see is the higher level management (specially Dr. Sanjiva Weerawarana) allows and help workers to continue their studies in PhDs. The comapny makes a platform for the employees, to be famous in the open source world and to make their study plans easier.

I wish all the best for WSO2 and i wish sri lanka to have many other new companies who servres Sri Lanka and lift the quality people.

Monday, August 03, 2009

Use IdeaScale and Brainstorm your ideas

IdeaScale enables users or companies to put the comunity ideas together and rank them by the votes of other people.

The ultimate measure of an idea is determined by a voting system. Any idea can be voted to the top or buried back down to the bottom. It combines the "wisdom of the crowds" concept with Web 2.0 models like Digg.

IdeaScale enables Customer Engagement which is beyond customer satisfaction. Interact with your customer community through an IdeaScale portal that puts your customer on a level playing field instead of second class citizens.

The basic account can be created on Free of charge at the IdeaScale home page. Brainstorm you ideas and Enjoy.

Wednesday, July 29, 2009

Installing Nagios on Fedora (Quick)


During portions of the installation you'll need to have root access to your machine.
Make sure you've installed the following packages on your Fedora installation before continuing.
* Apache
* GCC compiler
* GD development libraries

You can use yum to install these packages by running the following commands (as root):
yum install httpd
yum install gcc
yum install glibc glibc-common
yum install gd gd-devel

1) Create Account Information

Become the root user.
su -l
sudo su

Create a new nagios user account and give it a password.
/usr/sbin/useradd -m nagios
passwd nagios

Create a new nagcmd group for allowing external commands to be submitted through the web interface. Add both the nagios user and the apache user to the group.

/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -a -G nagcmd nagios
/usr/sbin/usermod -a -G nagcmd apache

2) Download Nagios and the Plugins

Create a directory for storing the downloads.

mkdir ~/downloads
cd ~/downloads

Download the source code tarballs of both Nagios and the Nagios plugins (visit for links to the latest versions). At the time of writing, the latest versions of Nagios and the Nagios plugins were 3.0.3 and 1.4.11, respectively.


3) Compile and Install Nagios

Extract the Nagios source code tarball.

cd ~/downloads
tar xzf nagios-3.0.6.tar.gz
cd nagios-3.0.6

Run the Nagios configure script, passing the name of the group you created earlier like so:

./configure --with-command-group=nagcmd

Compile the Nagios source code.

make all

Install binaries, init script, sample config files and set permissions on the external command directory.

make install
make install-init
make install-config
make install-commandmode

Don't start Nagios yet - there's still more that needs to be done...

4) Customize Configuration

Sample configuration files have now been installed in the /usr/local/nagios/etc directory. These sample files should work fine for getting started with Nagios. You'll need to make just one change before you proceed...

Edit the /usr/local/nagios/etc/objects/contacts.cfg config file with your favorite editor and change the email address associated with the nagiosadmin contact definition to the address you'd like to use for receiving alerts.

vi /usr/local/nagios/etc/objects/contacts.cfg
(you can use any editor as you wish)

5) Configure the Web Interface

Install the Nagios web config file in the Apache conf.d directory.

make install-webconf

Create a nagiosadmin account for logging into the Nagios web interface. Remember the password you assign to this account - you'll need it later.

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Restart Apache to make the new settings take effect.

service httpd restart

Note Note: Consider implementing the ehanced CGI security measures described here to ensure that your web authentication credentials are not compromised.

6) Compile and Install the Nagios Plugins

Extract the Nagios plugins source code tarball.

cd ~/downloads
tar xzf nagios-plugins-1.4.11.tar.gz
cd nagios-plugins-1.4.11

Compile and install the plugins.

./configure --with-nagios-user=nagios --with-nagios-group=nagios
make install

7) Start Nagios

Add Nagios to the list of system services and have it automatically start when the system boots.

chkconfig --add nagios
chkconfig nagios on

Verify the sample Nagios configuration files.

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

If there are no errors, start Nagios.

service nagios start

8) Modify SELinux Settings

Fedora ships with SELinux (Security Enhanced Linux) installed and in Enforcing mode by default. This can result in "Internal Server Error" messages when you attempt to access the Nagios CGIs.

See if SELinux is in Enforcing mode.


Put SELinux into Permissive mode.

setenforce 0

To make this change permanent, you'll have to modify the settings in /etc/selinux/config and reboot.

Instead of disabling SELinux or setting it to permissive mode, you can use the following command to run the CGIs under SELinux enforcing/targeted mode:

chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/
chcon -R -t httpd_sys_content_t /usr/local/nagios/share/

For information on running the Nagios CGIs under Enforcing mode with a targeted policy, visit the wiki at

9) Login to the Web Interface

You should now be able to access the Nagios web interface at the URL below. You'll be prompted for the username (nagiosadmin) and password you specified earlier.


Click on the "Service Detail" navbar link to see details of what's being monitored on your local machine. It will take a few minutes for Nagios to check all the services associated with your machine, as the checks are spread out over time.

10) Other Modifications

Make sure your machine's firewall rules are configured to allow access to the web server if you want to access the Nagios interface remotely.

Configuring email notifications is out of the scope of this documentation. While Nagios is currently configured to send you email notifications, your system may not yet have a mail program properly installed or configured. Refer to your system documentation, search the web, or look to the wiki for specific instructions on configuring your system to send email messages to external addresses. More information on notifications can be found here.

What You'll End Up With

If you follow these instructions, here's what you'll end up with:

* Nagios and the plugins will be installed underneath /usr/local/nagios
* Nagios will be configured to monitor a few aspects of your local system (CPU load, disk usage, etc.)
* The Nagios web interface will be accessible at http://localhost/nagios/

Monday, July 27, 2009

Solved : Adding Perfromace Data to External Scripts in NSClient++ for Nagios

Insering Perfromance data to the External Script that you executes with NSClient++ to send data to Nagios Monitoring Server. For that simply you can create a .bat file as follows.

echo off
echo <string>^|<performance data>
exit <code>

Explanantion of the tags given in the sample can be given as follows.

<string> : Just a string with Nagios Status Information. No Specific way of this string

^| : the HAT (^) mark before the pipe(|) is used to avoid the pipe symbol making a dos command

<performance data> : Making this data in a specific way helps you to use many graphing techniqus (such as pnp4nagios) without any problem. It should come as "<key>=<value>;<warn>;<critical>;<min>;<max>"

<code> : the code can be a value from 0 to 3. 0-OK, 1-WARNING, 2-CRITICAL, 3-UNKNOWN, will be displayed on Magios Status.

So the final sample code of a .bat file can be shown as follows.

echo off
echo CPU works fine. ^| CPU_Load=34;70;95;0;100
exit 0

This will show that the current CPU_Load is 34, 70 is the level of WARNING and 95 is the level of CRITICAL. And the value varies from 0 to 100. And the exit code 0 shows that the Status is OK. The Status Information shows that "CPU works fine"

For more information you can check Nagios Performance Data, Nagios Plugin API and Thread By Michael Medin on this matter in NSClient++

Thursday, July 23, 2009

Problem "rrd not found" (Nagios - PNP)

If you start adding the plug-in to make graphs for Nagios using PNP, you might not succeed with all the services that you monitor in Nagios.

The first thing that you should check is the availability of performance data in the particular service. But if it is empty as shown below PNP will not generate any of the graphs for it.

So you have to find a way to add Performance data to the specific service to make the graphs. Currently im going to search the way of doing it. And I'll post about it very sooner.

Check my next post for the answer.

Monday, July 13, 2009

Problem reading Google RSS from Java

I dont know why the google makes it a problem. But when you try to access a RSS feed posted by google from java application it gives the following error. Server returned HTTP response code: 403 for URL:

Here im using Rome to read the RSS feeds made by a google group. Here other than passing the url to XmlReader, im passing a URLConnection. But the difference is, here im faking this request as a request made by a Mozilla browser, by setting up the User-agent property.

reader = new XmlReader(urlConn);
SyndFeedInput input = new SyndFeedInput();
SyndFeed feed =; 

And i guess you cant make more than 1000 requests for the google per day. So dont make any applications which exceed that limit.

Enjoy !!

Read RSS using ROME ( sample code )

ROME is an open source tool to parse, generate and publish RSS and Atom feeds. Using Rome you can parse the available RSS and Atom feeds. Without bothering about format and version of RSS feed. The core library depends on the JDOM XML parser.
Considering you have all the required jar files we will start with reading the RSS feed. ROME represents syndication feeds (RSS and Atom) as instances of the com.sun.syndication.synd.SyndFeed interface. This library can be downloaded from here.

ROME includes parsers to process syndication feeds into SyndFeed instances. The SyndFeedInput class handles the parsers using the correct one based on the syndication feed being processed. The developer does not need to worry about selecting the right parser for a syndication feed, the SyndFeedInput will take care of it by peeking at the syndication feed structure.
A sample java code can be described as follows:
package com.infosys.hanumant.rome;

import java.util.Iterator;

import com.sun.syndication.feed.synd.SyndEntry;
import com.sun.syndication.feed.synd.SyndFeed;

* @author Hanumant Shikhare
public class Reader {

public static void main(String[] args) throws Exception {

URL url = new URL("");
XmlReader reader = null;

try {

reader = new XmlReader(url);
SyndFeed feed = new SyndFeedInput().build(reader);
System.out.println("Feed Title: "+ feed.getAuthor());

for (Iterator i = feed.getEntries().iterator(); i.hasNext();) {
SyndEntry entry = (SyndEntry);
} finally {
if (reader != null)

Sunday, July 05, 2009

email to rss

How to convert an email message to a RSS feed. But again we need to think why we are doing this. This will be the easiest way to publish many ideas of different people into a one single site, or many of them.

In the web there are some systems available like MailBucket. And these are some gateways which converts email messages to a RSS feed.

But if you check in Google Groups, it will give you a faster and easy way to convert all the mails which are going inside the group emails.

Monday, May 18, 2009

My Wish !

At this time i should be happy as a person, because the SL forces won the war against terror. Im really lucky to witness the ending of Sri Lanken war.

Still i dont like the concept of WAR, whcih is mainly killing people. But when a war is happening with a terrorist group, its a dilema to fight or not to fight. If you dont kill them, they will kill civilians and harm public asstets. But still the terrorists are humans as well. And many of them dont know why they are fighting for.

Now its not the time to change the past. Evrybody had chancers to finish this war without WAR. But majority of the country and majority of the terrorists selected the war as the only soulution. And after a huge amount of effort, money and lifes the war ended.

Now its time to think of a country that all the people can live with peace and harmoney. Now everybody knows what are the things that drive the country for a war. And its good take the lessons out of them, and build a new country, where all the ethnic groups can live.

Thats my wish.

Tuesday, April 14, 2009

Domain Extension Meanings

TLD - Top Level Domains
There are three types of top-level domains that are classified by the Internet Assigned Numbers Authority (IANA) which I've described below.

TLD - These are the most common extensions that you're probably familiar with. They are made up of .COM, .NET & .ORG domains.

ccTLD - These are country code domain name extensions and they are generally made up of 2 characters. Some of the ccTLD extensions that you're probably familiar with are .US for United States, .CA for Canada, .JP for Japan and .CN for China.

gTLD - These are generic TLDs and are generally made up of 3 or more letters. Some of the gTLD domain extensions that you may be familiar with are .BIZ, .INFO, .NAME & .MOBI.

Domain Extension Meanings
.COM (Commercial) - Generally intended for commercial use. By far the most recognized domain name extension.

.NET (Network) - This was originally intended for network oriented sites such as internet service providers. This definitely isn't the case any longer. People will register .NET domains for commercial use, generally if the .COM extension isn't available or if they'd like to protect their main .COM domain by registering all available extensions.

.ORG (Organization) - This domain extension was originally intended for non-profit or trade organizations. Again, this is no longer the case and is generally registered by anyone looking to protect their main domain by registering all available domain extensions or simply because a better extension isn't available for registration.

.BIZ (Business) - This is a gTLD that is generally registered  to classify their website as a business. Although it's not a commonly recognized extension, I feel that it's a great alternative if the .COM extension isn't available and for only $8.95 per year through it certainly wouldn't hurt to register the extension so that your competition doesn't try to squat on it.

.INFO (Informational) - This gTLD is generally used as an extension for informational websites. I believe that other than .COM, .NET & .ORG, it's the most popular domain extension used. If you are developing an informational website it's definitely a domain extension that I'd register.

.MOBI (Mobile) - This domain extension, as of this writing, is fairly new. Although majority of the domain name owners registered their domain name with the .MOBI domain name to protect their brand, it is primarily reserved for website built for displaying on mobile devices.

.TV (Television) - In my opinion it's used primarily for media, primarily video, related websites. 

.WS (Website) - This is actually a ccTLD for Western Samoa but was converted to a domain extension commonly used as an acronym for 'website'. Although it seems that it would be a great extension I don't feel that it really ever took off and you can find very good domains available with the .WS extension.

.ME (ME) - This is the newest domain, as of this writing. It was originally the ccTLD of Montenegro but would generally be used for personal related websites such as family websites or blogs another option would be to pose your resume or even artwork that you may have done. The other use would be to create a very memorable personal email address.

.NAME (NAME) - This is a gTLD that's intended for personal use. You'll find that this extension is used for personal / family websites or simply used for name related email addresses.

.US (United States) - This ccTLD generally refers to US based companies. Although the domain has been out for quite some time now it's possible to find some very good domain names with this extension.

.CA (Canada) - This is a ccTLD that is generally reserved for Canadian based businesses.

.LK (Sri Lanka) - This is a ccTLD that is generally reserved for Sri Lanken based businesses.

.CO.UK (United Kingdom) - This country code domain is generally reserved for commercial related websites based in the United Kingdom. Although it's not restricted to just UK based business, I see very little value in registering the domain extension unless you plan on doing some sort of business in the UK.

.CN (China) - This is the ccTLD for China. This domain is not restricted to companies based in China and can basically be registered by anyone that would like a .CN extension.

Wednesday, April 08, 2009

Add Authentication for your Tomcat Web Application (Using Tomcat Security Realms )

Here im going to note down small set of steps which are very esay and fster to do and create a login for your tomcat web application.
1. get root access and get into the tomcat folder.
2. Open conf/server.xml and uncomment the following line.

<Realm className="org.apache.catalina.realm.MemoryRealm" />
package com.infosys.hanumant.rome;

3. Open webapps/your_tomcat_application/WEB-INF/web.xml and add the following security constraint:


here you have to use the same "web-resource-name" and the "realm-name".

Open conf/tomcat-users.xml and add the following <user> sub-element:

<user name="anyUserName" password="anyPassword" roles="name_of_the_role_which_has_access">

remember that the role which we use here in this tomcat-users.xml and the one which we used in the step 3 should be same. And here we dont need to creat a role differently. Just adding the above line will be enough.

5. Now its time to restart tomcat server.


Easy way to write XML (or HTML) Tags on your blog

When you try to copy and paste xml or html tags on you blog, the blogger count it as a html tag and it will result various other things other than the output you needed.

So i found a link where you can convert you code easily to the code that should be written.

If you really feel thats the wrong way still you can waste time on typing all the charactors as well.


Friday, March 27, 2009

Never let you computers on public IPs with stupid passwords

The worst thing ever happend in near future for me happend today. Just got a public server to install the tools that i have developed. And i have just put a password which is very simple, actually the worlds simplest password for the root. :D. Unfortunately in a less than one day the server been hacked and the problems that it had made are still on investigation. :(. Feels so bad about it.

Remember to put a very long and secured password for a any computer or a server which is publicly opened :).

Thursday, March 12, 2009

Adding a Row Dynamically to a HTML Table using JavaScript

The following code part can be used to add a new row and a cell to a html table dynamically using javascript.
var tbl = document.getElementById('table_id');
var lastRow = tbl.rows.length;
// this adds the row to the end of the table
var row = tbl.insertRow(lastRow);
var cell1 = row.insertCell(0);
var textNode = document.createTextNode("Hello World");
by creating set of cells you can append to the row which you have created.

Thursday, February 19, 2009

Watch TV and Listen Radio from Web (Sri Lanken)

Last week the newest two websites were launched to provide free internet TV and internet Radio, which mainly broadcast Sri lanken seected set of channels. The following are the broadcasted channels form both web sites.

Derana-2/Citi Hits

Damlak TV
BBC Headlines
BBC World Live
CNN IBN (India)
SKY News
Press TV

9 X Music
Classic FM TV
SONY Music
Ministry of Sound
Rock 1990s
Rock 1980s
FLY Music
Invisible TV

Reel Good
FOX Movies
HBO Hits
Sci Fi Channel

National Geographic
Research Channel
Magician TV
NASA 1 (Science)
NASA 2 (Science)
Globe Trekker (Travel)
ESPN Sport
College Humor
FTV (fashion)

Sirasa FM
Hiru FM
Siyatha Radio
Neth FM
Ridham FM
Swadeshiya Sewaya
City FM
Welanda Sewaya
Lak FM
Rangiri Sri Lanka
BBC Sandeshaya

DJ Remix
C Radio
Daham Radio
J 9 Radio
Three Sinhala

Real FM
Yes FM
TNL Rocks Radio
Lite FM

Shakthi FM
Thendral Radio
Tamil National

BBC World Service
Voice of America (VOA)
Radio Australia (ABC)
Bollywood Music