Thursday, October 28, 2010

Shortcut launcher for IntelJ Idea in Ubuntu

Than starting from command prompt, Launcher is a fascinating way to start programs by a single click in Ubuntu.



We can add launchers either in the Desktop or on panels.
To add one, right click the panel and select "Add to panel...", you will get the "Add to panel" window.
Here double click on "custom application launcher".



On the "Create launcher" window, for name type "Idea" and for the  command type:
/bin/sh -c 'export JDK_HOME=path for Java home && path for /bin/idea.sh
E.g.
/bin/sh -c 'export JDK_HOME=/usr/lib/jvm/java-6-sun-1.6.0.20 && /home/suho/proj/idea-IU-95.66/bin/idea.sh'

By clicking the launcher icon on the "Create launcher" window you can select an image file to add as the icon of your launcher. For Idea you can find its image form Idea_Home/bin/

Happy coding!

Huawei E1550 USB 3G Modem on Ubuntu

USB modem configuration is always an issue for Ubuntu users. Here I provide an easy solution which worked for my Huawei E1550 USB modem on my Ubuntu 10.04 Lucid Lynx.

Ubuntu has a great feature called rule files, here we only need to create a new configuration file for our USB modem. After creating the corresponding rule file the machine will automatically switch the USB mode of your 3G Modem from USB Storage to USB Modem.

As the first step we need to find out the product id and the vendor id of our 3G USB modem. Connect the Modem, then in the terminal type;
$ lsusb
You will get a list of drivers connected to the USB ports.
In my case, one of the entries I found was.
Bus 002 Device 004: ID 12d1:1446 Huawei Technologies
Here 1446 is the Product id, and 12d1 is the vendor id, of my USB Modem.
Note: In this case, my system has only recognized the USB Modem a USB Storage drive.

Now you need to create a rule file for the Modem.

$ sudo vi /etc/udev/rules.d/15-huawei-155x.rules

Then type the following:

ACTION!="add", GOTO="huawei_zerocd_end"

SUBSYSTEM=="usb", ATTR{bDeviceClass}!="ff" ,ENV{DEVTYPE}=="usb_device", GOTO="huawei_zerocd_disable"
SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", GOTO="huawei_zerocd_disable"
GOTO="huawei_zerocd_end"

LABEL="huawei_zerocd_disable"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1446", RUN+="modem-modeswitch -v 0x%s{idVendor} -p 0x%s{idProduct} -t option-zerocd"

LABEL="huawei_zerocd_end"

Now, save and exit. Next time when you plug in your USB modem, your system should automatically switch it to USB Modem mode and you’re good to go.

To cross check whether Ubuntu has properly detected the USB modem, type;
$ lsusb
now your output should contain a line like;
Bus 002 Device 004: ID 12d1:1001 Huawei Technologies Co., Ltd. E620 USB Modem
Now if you get something like this, then you can be sure that the system has successfully recognized your USB as 3G Modem.
Note there is an “USB Modem ” at the end of the line.

But before you can finally start using your USB modem to connect to the Internet, you still need to configure your network connections. Simply go to “System -> Preferences -> Network Connections” and select the “Mobile Broadband” tab. Then click the “Add” button and the Mobile Broadband Connection wizard should be able to help you configure your Internet connection in no time.

For other USB Modems try the same technique by adding the corresponding product and vendor ids. Wish they will work for you :-)

Tuesday, October 5, 2010

The 'vi' arrow keys not working in Ubuntu

Most people get this issue of arrow keys not working for 'vi' in Ubuntu. Instead, it displays A, B, C, and D characters.

This is because the default 'vi' in Ubuntu is a vi 'light' version (that is the vim-tiny package). This does not use the arrow keys as you would expect.

If you want the arrow keys to function you have to install the 'full' vim package. By this you not only get the arrow keys working but also other nice features such as colored syntax.

Just installing the 'vim' package should get you fixed up. Try:

sudo apt-get install vim
or
sudo apt-get install vim-full

'vim-full' will install all the vim related package and the dependencies, that includes gnome libs, etc... if you don't use gnome and just want to fix this issue in the text mode you can also run :

sudo apt-get install vim-runtime

Thursday, August 26, 2010

My happy Gsoc with PhotArk

Every dawn of summer blooms with expectations of laughter and enjoyments, and this summer for many students in Computer Science was the time to make their dream come true; To do a project and walk home with money.

I as a student very much interested in Open Source, this summer was so amazing. My third year at university started with Industrial Training, and as a part of it I started my intern-ship at WSO2, one of the organizations which give all its products under Apache Licence. This intern-ship gave me a very good exposure to Open Source, and this exposure greatly encouraged me to participate in Google summer of code (Gsoc)



I was also doing CIMA as an additional qualification apart from my university studies, and I thought of pausing CIMA for a year as I have to ensure my maximum contribution on computing. This sacrifice really worked out, I got a chance to work at WSO2 and also to participate on Gsoc.  I'm happy that I had enough time to sail both the boats, where I worked for WSO2 in weekdays, and also concentrate on Gsoc during nights and on weekends.

My search for a Gsoc project started well ahead of the proposal date, I had a solid one month time to look into all the projects and select one that suits me. First I went through the last year projects and after going through several mailing lists, the projects on Apache Wookie and Apache PhotArk seemed pretty cool for me.


I thought to concentrate on both, but then I found, standing on two boats with a day job in my hand is going to kill me. When time progressed I get more involved in PhotArk and finally I got selected to the project on "Integrating OpenID with PhotArk".

This interesting project was proposed by Avdash Yadav, here my task  is to implementing authentication through OpenID integration, and to provide authorization through Role Based Access Control with User Management.

As my first step towards Gsoc I started checking out the project source code, and building it. Then I started fixing some small issues reported in the Jira issue tracking system, and submitting patches. The PhotArk community got more interested in me, and gradually started applying my patches. Then they gave me some complicated tasks, where I implemented new features such as adding album descriptions, deleting pictures and albums, and so on. Then I also started writing some test-cases for PhotArk.

When proposal deadline approaches, I wrote a proposal, got it approved form my mentor, and submitted that on time. My proposal got accepted, and I finally got selected to Gsoc among 1026 students all around the world. That’s one of the happiest days in my life.

I started my project with a small research on OpenID libraries where we selected dyuproject for our implementation. During the first half of Gsoc I implemented authentication to PhotArk. Here I integrated dyuproject, and tomcat's FORM based access control to PhotArk.

At this time my mentor proposed me as a committer for PhotArk. My ambition to become an Apache committer finally became true on 10th May 2010 - just some days after the beginning of Gsoc. Because of this I also got an email id as suho at apache dot org.

After the successful midterm evaluation I implemented authorization by implementing Role Based Access Control to PhotArk. This gave me a very good experience, where we handled some problems on user friendliness based on the design and implementations of authorization. I was force to redo the implementation in-order to minimize user issues. By fixing this issue I successfully finished my Gsoc for the year 2010. This optimization of user friendliness is very important to PhotArk as this is a photo gallery application, and its user’s wont necessary have much computer literacy.

Since I was handling security I had the chance to work in almost all PhotArk modules, this greatly help me to get myself familiar with PhotArk code base. Through this now I have become an active contributor in PhotArk, Thanks for Gsoc. I like to invite every one to try PhotArk and manage your photos with it.

The detail information, and the project description can be found at the project's wiki page.

I would like to thank all who made my Gsoc a reality, and a happy one. I also request all students to take part in future Gsocs and to get the greatest experience on Open Source and some good money ;)

Thursday, August 19, 2010

Forgot your password...! This is how you reset in Ubuntu.

It's a common case that when you have not used your Ubuntu machine for some time you may have forgotten your password.
If you want to reset a new password instead of your old one,
and don't want to loose any of your date this is the coolest way to do.

But for this your computer need to have a CD ROM and you need to have a Ubuntu Live CD with same(preferred) or fairly close version.

Step 1.
Insert the Live CD and boot the computer in the Live CD mode.

Step 2.
Open the terminal and change to the root user

sudo su

Step 3.
create a directory
e.g.
mkdir foo

Step 4.
Find your Linux partition.
e.g. using the command
fdisk -l

by this you will get all the partition in the computer, and by looking at them you can find out your Linux partition.
e.g.
Device    Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1       18710   150288043+  83  Linux
/dev/sda2           18711       19457     6000277+   5  Extended
/dev/sda5           18711       19457     6000246   82  Linux swap / Solaris

here the Linux partition is /dev/sda1

Step 5.
mount the partition the the newly created file.
e.g.
mount /dev/sda1 foo/


Step 6.
Use chroot to access the partition as its root
e.g.
chroot foo/

now you have all the root permission to the mounted hard-disk partition.

Step 7.
Use the file etc/shadow to find out the users of the system
e.g. if the user name is bar,
use the commands
passwd bar

to change user password
and
passwd root

to change the root password

that's it! all done.
Now restart the computer and login to the system with the new password.

Write Unmaintainable Code & Ensure a job for life ;-)

"In the interests of creating employment opportunities in the Java programming field, I am passing on these tips from the masters on how to write code that is so difficult to maintain, that the people who come after you will take years to make even the simplest changes. Further, if you follow all these rules religiously, you will even guarantee yourself a lifetime of employment, since no one but you has a hope in hell of maintaining the code. Then again, if you followed all these rules religiously, even you wouldn't be able to maintain the code! 

You don't want to overdo this. Your code should not look hopelessly unmaintainable, just be that way. Otherwise it stands the risk of being rewritten or refactored."

by "Roedy Green"

To write Unmaintainable Code, go to...

Tuesday, July 20, 2010

How to install ANT in Windows

Its soo simple...
Go to
and download the latest version and install.

When you install this it not only install Ant but it also installs Ant-contrib
and it too sets all the environment variables for you..!


For all these you only need to know the JAVA_HOME
To find out your Java home open the command prompt and type

echo %JAVA_HOME%

Tuesday, June 1, 2010

Shell scrips to start and stop background processes in Linux

Here I presents an overview of some useful shell scripts for starting and stopping background process, manually, or by other shells or programmes.

To start and stop background processes, in most situations we need their PID (process ID).

To find out the PID of the process
use the command;
ps 

To show all the processes;
ps -A 

To find out the  PID and the PGID (process group ID) of the processes;
ps -o cmd,pid,pgid

To get the PID for the given process name;
pgrep <process name>
e.g 
pgrep bash
 
To
kill the process

To kill the process by process name;
pkill <process name>
e.g. 
pkill java

To kill by PID;
kill -9 <PID>
e.g.
kill -9 12345

To kill by
PGID (process group ID);
kill -9 -<PGID>
e.g. if pgid is 9876, then type as;
kill -9 -9876

To kill process by their process name;
pkill <process name>
e.g.
pkill java

Now we'll move in to background processes. These
processes seems to useful situations like;
  • Other processes want the same terminal to execute them selves.
  • When time consuming processes is executed
  • Several processes need to be started one after other
  • etc

There is a very easy way
to do this in Linux. We just need to add '2>&1 &' at the end of the shell command, where the process will start in the background and immediately returns the terminal back to the user.

e.g. 
./server.sh 2>&1 &
./server.sh > server.log 2>&1 &

Note: If you use '2>&1', the script won't return the terminal, until the processing is over.

But when we start and kill processes pragmatically, we encounter a new challenge. We should kill the exact process that we started, and we
should not kill some other process!!
To do so, we should keep tack of the PID of the processes we started.

In order to get the PIDs, we can add the following code to the shell script that we are running.
To get the PID of the process that is currently running;
echo $$ > server.pid

Or to get the PID of the process,
last started;
echo $! &> server.pid

Well, now we have the PID. Next, we have to kill the processes we stated.
If we only have single processes - which don't have child processes
- we can use a command like;
cat server.pid | xargs -i kill -9 {}

This kills all the processes, who's PIDs in the servers.pid.

But
sometimes we encounter process trees, in this case when we kill the parent process the child process wont just get killed, but it itself will become a parent. In such situations we should kill the whole process tree.

If you want to view the process tree, you can use the command;
ps f

Or for a detailed view;
pstree

Sometimes in background processes, you encounter problems that the child processes wont get killed even we kill the parent process. Therefore to kill the child processes, you can use two approaches.
  1. kill the process tree (recommended)
  2. kill the processes which contains the same PGID (this works because in most cases the whole process tree will have the same process group id (PGID))

Killing the process tree using the parent's PID

you can uses that following shell script;
#!/bin/sh
for i in `ps -ef| awk '$3 == '${$1}' { print $2 }'`
do
echo killing $i
kill -9 $i
done
echo killing $1
kill -9 $1

Save this as 'kill-process-tree.sh'

Give executable permission to the script by the command;
chmod 755 kill-process-tree.sh

Then use the command to run the script;
./kill-process-tree.sh
e.g.
./kill-process-tree.sh 7234

Killing the processes which contains the same PGID

First we need to find out the PGID of the given PID of the process;
echo $! |xargs echo | xargs -i ps -o pgid -p {}|xargs echo |awk '{print $2}' > server.pgid

Then to kill the processes with give PGID use the command;
cat server.pid | xargs -i kill -9 -{}

Tuesday, May 25, 2010

What motivates Open-Source ???

Apache PhotArk M2-incubating released

The Apache PhotArk team is pleased to announce the release of Apache PhotArk M2-incubating.

Apache PhotArk will be a complete open source photo gallery application including a content repository for the images, a display piece, an access control layer, and upload capabilities. The idea is to have a rigid design for the content repository with a very flexible display piece. The images in the content repository will be protected with granular access control.

PhotArk gallery currently allows you define and manage a set of albums hosted local into the content repository and provides a default web UI for album navigation. PhotArk also supports creating and deploying your own photo gallery into Google AppEngine cloud infrastructure.

For full details about the release and to download the distributions please go to:

http://incubator.apache.org/photark/photark-downloads.html

Apache PhotArk welcomes your help. Any contribution, including code, testing, contributions to the documentation, or bug reporting is always appreciated. For more information on how to get involved in
Apache PhotArk visit the website at:

http://incubator.apache.org/photark/

Thank you for your interest in Apache PhotArk!


The Apache PhotArk Team.

Sunday, May 16, 2010

Linux/Unix chmod (chmod xxx file)

Here I'm giving a brief explanation on how to changes the permission of a file in Linux/Unix system.

Syntax;
chmod [numeric number] [file]

here [numeric number] is created using the following criteria.


owner
(User who owns the file.)
group
(Group that owns the file.)
anybody
(Other)
non 0 0 0
read 4 4 4
write 2 2 2
execute 1 1 1

so its easy.
if you want only read by owner;
chmod 400 file

if only executed by others
chmod 001 file

if read/write by the owner and only read by everyone else
chmod (4+2)(4)(4)  file
which is;
chmod 644 file

With this if all need executable rights
chmod (4+2+1)(4+1)(4+1)  file
that's it;
chmod 755 file

This can also be calculated in a more professional way.

when we are checking the permissions of files using "ls -l" command in the terminal we get a results which looks like "- rwx r-x r-- file ".
this can be interpreted as;
- rwx r-x r-- file 
--111 101 100
here;
    r  read
    w  write
    x executable
    - non
 
Where now when we convert each set binary digits to decimal,
BinaryDecimal
0000
0011
0102
0113
BinaryDecimal
1004
1015
1106
1117

We get the numeric values we wonted. In this case its 754
So we have to use the command.
chmod 754 file

Wednesday, May 12, 2010

Sri Lanka among the First 10 in Google Summer of Code 2010

Though Sri Lanka is geographically a small country in the world, its not that small when it comes to the IT world. The Google Summer of Code 2010 has proved what an important role Sri Lanka is playing in the Open Source world.

As a student of University of Moratuwa, Sri Lanka, I feel proud that there are 34 students accepted from Sri Lanka among the total 1,026 accepted students and most importantly its a glory that Sri Lanka has secured the 10th place among the 69 countries which are taking part in Gsoc 2010.

According to the statistics in the Google open source blog, it says ;
Our top ten countries by number of students accepted this year are: United States (197), India (125), Germany (57), Brazil (50), Poland (46), Canada (40), China (39), United Kingdom (36), France (35), Sri Lanka(34).




Its a great pleasure to say that University of Moratuwa, Sri Lanka has produced 27 among the 34 Sri Lankan students who were selected,

They are;
12 from level 3, Department of Computer Science Engineering
Kasun Gajasinghe
Umashanthi Pavalanathan
Nirmal Fernando
Sanjaya Liyanage
Thilanka Kaushalya
Sriskandarajah Suhothayan
Ishan Jayawardene
Shelan Perera
Kasun Lakpriya
Eshan Sudharaka
Meharuban
Keheliya Gallaba

10 from level 4, Department of Computer Science Engineering
Kathiravelu Pradeeban
Harini Sirisena
Charith Dhanshuka
Harshana Eranga Martin
Udayanga Wickramasnghe
Chamith Buddhika
Kapila Bogahapitiya
Buddhi Prabath
Maleesh Prasan
Rajeev Sampath

1 from Department of Electronic & Telecommunication Engineering
Akila wajirasena

4 from Faculty of Information Technology
Lakshan Perera
Dilantha
Firzhan Naqash
Nuwan Sameera


If you are a past, present, a potential future student or mentor, or an enthusiast of the Google Summer of Code from Sri Lanka. Join Google Summer of Code - Sri Lankan Community at http://groups.google.com/group/gsoc-srilanka.

Thanks, Umashanthi for the resources. 

Saturday, May 8, 2010

Installing Ubuntu parallel to your existing Windows

With the introduction of Ubuntu 10.04 LTS
I'm sure all of you are eager to install Ubuntu.

Its true, many of us have problems in doing this!
During this process we loose our data and sometimes our windows itself.
In certain cases this happen when we are updating Ubuntu :(

Because of this, Ubuntu installation has always been a scary thing!!

He is some simple steps how to solve this problem.

DISCLAIMER: Please use the information at your own risk. I do not take responsibility of whatever damages you do to your Ubuntu installation, data or anything else by using the information in this tutorial.

Step 1;
Back up your data(for safety)

Step 2;
Creating a separate partition for Ubuntu.

Windows comes with two built in features, shrink and extend.
  1. Click on "Start" button
  2. Go to "Control Panel"
  3. Select "System and Security"




  4. Select "Administrative Tools"




  5. Click on "Computer Management"




  6. Select the "Disk Management" option which is in "Storage".








  7. Now right click on the partition you want to Stink,
    by this you can reduce the size of that partition and allocate some space to create new partition.

    To do this Right click on the partition you want to Shrink,
    You will get a drop down,
    click "Shrink Volume"





    it will take some time




            This will ensure that no data is lost and when striking the Partition size.         Now you will get a pop-up stating the the allowable Disk space.





  8. Enter the amount of disk space you prefer for that partition
    (15 GB or more is recommended ) and click "Shrink"
  9. now you will be able to find a new field appearing
    by right clicking this Unallocated space you can now create a partition. (this is not a must you can leave it as Unallocated for this purpose). This is the new space where we are going to install Ubuntu!!
  Step 3; Installing Ubuntu
  1. Now you insert the Ubuntu CD
  2. Restart the computer
  3. Set the boot-up setting to boot from the "Optical Drive"

    Then the Ubuntu CD will get booted




  4. Click "Install Ubuntu"

    You will be asked for conformation



    Click "Forward"

  5. Select your language





    Click "Forward"

  6. Select your time zone








  7. Now most importantly Select "Specify partition manually" radio box.



    Now you will get the partition table
    (the entries in the table will look different according to your computer)

    you will had unallocated space you will get a "free space" field.




  8. You can click on the free space field and add new partitions. If you dont have any free spcace select the partition you created to install Ubuntu  (You will be able fo find that out by it's size) and then by clicking the "Change..." button you can go to "Edit partition".



    Now you can make new portions within this selected partition.
    This can be done by entering the "New portion size" value in the "Edit partition" dialogue box. You will be also able to further divide the free space created by this into small partitions.

    create 3 partitions 




    1. create a "swap" partition
      this should be twice the size  of the RAM memory in your computer.
      for this select "use as" as "swap"
      check the check box "format partition"
    2. Create a "root" partition:
      it should be greater than 4GB (recommended) (4GB to 8GB)
      for this select "use as" as "Ext4 journalling file system"
      check the check box "format partition"
      set mount point as "/"
    3. Create a "home" partition: (optional)
      it could be the rest of the space left.
      for this select "use as" as "Ext4 journalling file system"
      check the check box "format partition"
      set mount point as "/home"
    4. Change the mount point of the windows partition
      Edit the windows partition
      for this select "use as" as the one you had e.g. "ntfs"
      and only change the mount point as "/windows"
      Note : Do not check the "formate" check box

  9. Now click "forward" button



  10. Enter name, password, etc. and click "forward".

    It will ask to import data form your existing windows operating system.
    Check on the ones you wonted to import. If you don't wont to import any files you just leave it as it is.



    Then click "Froward"

  11. you will get the info of what you going to do.

    Click on "Advanced" button





    Now you will get a dialogue box to install boot loader



  12. Select  /dev/sda.  This will install the Ubuntu boot loader.

    In any case if you are installing this in your external hard drive please select the appropriate dev for that.

  13. Now click install.

    The Ubuntu will get installed...!





  14. Finally you have to restart the system.
    And thats it, all done!
  15. Now you can login to both windows and Ubuntu.

Configuring GRUB Sources: apcmag.com

    This is not needed but if you didn't get your windows back or if you want to change the login order you can use this.
If you want to modify how GRUB handles the new dualbooting environment, you need to edit the boot menu. Boot into Ubuntu and open up a Terminal window (Applications, Accessories, Terminal), and type in:

sudo cp /boot/grub/menu.lst /boot/grub/menu.lst_bak

and enter your root password when asked - this makes a backup of the GRUB menu file just in case things go wrong.

Next, type in:
sudo gedit /boot/grub/menu.lst


Dualboot - Configure Boot Menu 


Dualboot - Configure Boot Menu

This opens up the boot menu as a text file in gedit.


Dualboot - Boot Options 

Dualboot - Boot Options
There are loads of options you can change, but only a couple that you’re likely to be interested in.

The default boot entry is defined by the “default” value. The default value is 0, which means that the first entry in the list (which is Ubuntu) always gets loaded.
 
If you want to make it so that Windows Vista loads by default, change the value to 4, as Vista is the fifth item in the list (the numbering system starts at 0 and "Other operating systems" counts as a line).

The other way to load Windows Vista by default is to change the value for “default” from a numerical value to “saved”. Then, GRUB will load whichever boot entry has been marked with “savedefault”.
 
If you scroll down the list and have a look at the entries, you’ll notice that both the main Ubuntu entry and Windows Vista have been marked with “savedefault”. Remove the value for Ubuntu and Windows Vista will launch by default. 
It's also worthwhile changing the description of the Vista entry from "Windows Vista/Longhorn (loader" to just "Windows Vista". 

You can also increase the boot menu timeout – just change the value for “timeout”. You can also hide the GRUB boot menu by removing the hash in front of “hiddenmenu”. Save and exit gedit to keep any changes.

If instead of GRUB you want Vista's bootloader to be in charge, load up the Vista installation and install EasyBCD.
Go to “Manage Bootloader”, then “Reinstall the Vista Bootloader”, an GRUB is overwritten. You can then configure the Vista bootloader to add Linux to the boot menu.  

Thanks.

Monday, March 8, 2010

Mounting .disk files on Ubuntu

Sometimes we may be very unfortunate and we may not be in a situation to boot our Ubuntu. In such situations our only choice is to go for the file recovery.

This can be done easily in Ubuntu.

First use the Ubuntu live CD and boot your system.
Then locate the root.disk file. which is your Ubuntu's root directory.

If you have installed Ubuntu inside Windows
you may find this in C:\ubuntu\root.disk

in such situation you need to first mount your filesystem partition. This can be done by

Code:
sudo mkdir /win
sudo mount /dev/sda1 /win


always, replace "sda1" with the appropriate configuration, i.e. "sda2" or "sda3"...
(just remember: a=disk, 1=partition number)
and now you can find your partition in /win Directory.

Now you can mount your root.disk and this can be done by:
Code:
sudo mkdir /vdisk
sudo -o loop /win/ubuntu/disks/root.disk /vdisk


now your files in root.disk can be accessed through /vdisk

Saturday, February 27, 2010

EasySinhala for English to Sinhala Transliteration, A Firefox add-on


This is to facilitate Sinhalese friends who use Firefox.

If you are not familiar with the Sinhala keyboard! Or you don’t have the proper technology to type Sinhala in your browsers! Don’t worry. Now you don't need to spend time on searching to find mapping Sinhala keys..!!

All you need is to start typing Singlish ("ammaa”) with EasySinhala and it will show a tooltip with the transliterated Sinhala word ("අම්මා"). Then when you press spacebar the English word you typed will be replaced by the Sinhala word on your textbox.


Now EasySinhala version 1.2 is released (on 25-12-2010)

I hope this will help you all...

Addon URL:
https://addons.mozilla.org/en-US/firefox/addon/87445/

HomePage URL:
http://code.google.com/p/easysinhala/


Note:
If you couldn't read Sinhala words in your browser
please install proper Sinhala Unicode from: http://locallanguages.lk/


EasySinhala 1.1 was awarded SOFTPEDIA "100% Clean" AWARD

Softpedia guarantees that EasySinhala 1.1 is 100% Clean, which means it does not contain any form of malware, including but not limited to: spyware, viruses, trojans and backdoors.



your comments are appreciated.

Wednesday, February 24, 2010

How to set JAVA_HOME in Ubuntu