Monday, December 14, 2009

qsFOX - My Level 3 Project



Project Description

(skip this part if you have already gone through it at http://qsfox.mozdev.org/)

qsFOX is an extension for Mozilla Firefox which enables Sinhala Unicode Reading and writing capability for Firefox. Most of the machines at internet cafes and some labs do not have Sinhala Unicode installed.

In order to install Sinhala Unicode we have to go through series of steps which takes too much of time. And lack of privileges makes it even tough for the normal users.

So it is always good to have a quick way of enabling Unicode without administrative user privileges since time is a highly considerable factor for the users who browse internet in those places.

Even though it is possible to read Sinhala Unicode text using a small trick, not being able

to write in Sinhala has become a great problem for the users who work with Sinhala Unicode (ex. Sinhala bloggers).

From qsFOX I have given a solution for this by providing both reading and writing capabilities in Sinhala Unicode for Firefox.

qsFOX comes as an extension for Firefox. Here I have developed the standard Wijesekara Sinhala keyboard.

So I hope it will be a great tool for the Sinhala Bloggers and Blog readers who are having problems with working in Sinhala in those constraint environments.

And there is an option for those who like to use the Phonetic style (singlish) keyboard.

User will be provided a UI with useful information (ex. Keyboard Layout).

The Story

For level 3 course module Programming Project (3200) we were asked to develop a plug-in for an existing code base (like Firefox, Thunderbird, Open Office, etc).

Initially I thought to develop an extension to record statistics of downloads/uploads. I asked some of my friends (Bhanu, Pahan, Nuwan) for a project idea.

Pahan came up with this great idea (I believe it is great) of developing an extension which allows users to use Sinhala Unicode in a constraint environment (without administrative privileges) which was in his mind for a long period of time. He has already created a portable Firefox with Sinhala reading capability which has some draw backs. He explained me how his portable Firefox works.

My project proposal got approved and I started the development. Initially part of the project is full of documents. Level 3 project runs very much similar to a real world project. Software Engineering course module which is conducted by Dr. Shahani Weerawarana was very helpful to gain knowledge to do the initial part of the project.

Initially I had to put some effort to learn JavaScript and XUL (XML User Interface Language) since I am very new to those two technologies. Luckily there are lots of online resources available.

First I developed the Wijesekara Keyboard functionality. It was not that easy as I thought. ‍ෙ(”Kombuwa”) caused series of troubles to me :-).

Lack of familiarity with the Wijesekara keyboard layout became a problem. Once again I got the help from Pahan to test the Wijesekara keyboard. He chats with me in Sinhala by using the extension to identify bugs.

Finally I succeeded in creating the entire Wijesekara Keyboard layout including “Rakaransha” and “Bendi Akshara”.

Implementing Sinhala reading functionality was a challenge. I created my own XPCOM component in C++ to access windows API. I am not going to describe more on that.

But you can get some idea from the following Logical view.



GUI



I think I am always good at GUI designing. I got some good feedbacks for the GUI and for the logo. I tried to make it attractive and user friendly. You can decide whether I am successful or not.

Finally I ended up all the development phases successfully on time.

If you like to create Firefox extensions I can give you a small guidance according to my knowledge.

Mozilla Developer center (MDC) is a good online resource to learn extension development.

And if you have any problems during the project you can get the help from the Mozillazine forum members. I got a good support from them (most of the times they give code snippets)

Credits

Pahan Sarathchandra for project idea, supportive ideas and testing (I can definitely say that if he is not there I will not get this chance to contribute to Sinhala Blogosphere. He deserve a very big credit for his concept and for the support he gave me throughout the project.)

Creators of Unicode Real Time converter

Creators of Malithi Web Font

Authors of articles at http://siyabas.lk/

Still there may be some unidentified bugs in this extension. If you find a serious bug please let me know.

And please add your reviews here


19 comments:

  1. thank you very much for posting. Hope this will clear all doubts about qsFOX.
    "I think I am always good at GUI designing. "
    Yes I remember the multimedia player which was your A/L project.:) (sorry cant remember its name. Is it Sihasara?).
    why only designing. I think you are good at coding too. Because I know how much of effort you put it into qsFOX.
    Thanks again for making my concept a reality.

    ReplyDelete
  2. A big step! As I've already mentioned in my review, this will gain me more readers. So thank you very much! :-)

    Now I know how it works. It's not just a regular add-on. You have done a considerable work with Windows API to handle Sinhala rendering. It's not just embedding fonts, right?

    The next step -- make a portable version, and include this add on with it. So, just one download at the office desk, for our readers.

    Thank you.

    ReplyDelete
  3. Machan, brilliant work. Although I didn't use this still (I use wijesekara, and all the places I need sinhala, the needed things are installed) my friends are uninstalling the sinhala kit and trying this on. You will get best grades for this.

    About the bugs part, every time the plugin puts out a bug, it is Pahan who gets scolded :P, because of the simple fact that he is the closest one we can get a hold on :p.

    Nice job dude!!!. We expect more like this from you.

    ReplyDelete
  4. @පහන් yeah it is Sihasara.

    @ශාකුන්තල I created a XPCOM component. Extensions cannot directly access the Windows API. Thanks!

    @chamila Pahan is not responsible for bugs :-) .Thanks!

    ReplyDelete
  5. As I already mentioned in my blog, this is a great achievement of all of us, the Sinhalese. This will provide a huge contribution to propagate Sinhala Unicode among all the Sri Lankans.

    Special thanks to you who developed this great add-on & to Pahan who came up with this great idea & who supported you throughout the project.

    All the Best for your project demonstration which is to be held! :)

    ReplyDelete
  6. වැඩ.... පිස්සු හැදෙයි.. මැක් උඩ වැඩ...
    උම්මා.....

    ReplyDelete
  7. this is work on winxp SP1;
    thanx :)

    ReplyDelete
  8. Thanks for the add on.
    it is very useful for a beginner like me.
    cheers and hope new things from u !

    ReplyDelete
  9. කොහොමද මේ වගේම ක්‍රෝම් වලටත් එකක් ආවනම්....
    ට්‍රයි එකක් දෙමුද...?

    ReplyDelete
  10. Have been using this for a while now. Is there a quick way to select a font face other than malithi for sinhala? At least a choice between malithi and potha would be useful.

    ReplyDelete
  11. Meka dan vada karanne nahane,Helppp
    Mizilla eken download error ekak enavaaaaa

    ReplyDelete
  12. hey, it is great work done.

    I have decide to make sinhala enabled in open office. and even i dont have any technical back ground too. may be you can give me some advices.

    best of luck with everything.

    ReplyDelete
  13. Nothing to say..Because this is Goooood,Amazing!!!!!!!!!!!

    ReplyDelete
  14. @chamin I will fix it after 22 March

    ReplyDelete
  15. chrome ekata mewage extension thiyanawanam
    Godak watinawa!!! podi try ekak dennako
    thnx......

    ReplyDelete
  16. mozilla 4 eke meka enne nehene :( mokawath karanna berida?

    ReplyDelete
  17. @ම න් දා කි ණි

    It's now available for FF4.

    ReplyDelete
  18. බොහොම පිං

    ReplyDelete