Tuesday, May 26, 2009

Effectively Using Wikipedia

When using Wikipedia or other similar Wiki's most of us just read the article only. But there are much more details, which can be found if we use the wiki effectively. This post is written having Wikipedia in mind, but it is still applicable to the other wiki's as well.

1. Wiki articles have their earlier revisions accessible to the users. By accessing the 'history' tab on top of the article, you can get a list of the earlier edits. This is really useful, for a current hot-topic, a news item, or a subject with the conflicts on interest. In some not-so-maintained wiki's this option allows to omit the latest version, if it has some irrelevant material inserted into it. However Wikipedians are active that random text or irrelevant spam inserted into an article is removed immediately as it is found.

See whether there is a considerable difference exist between the revisions, by comparing them. If a considerable change has been found, it is worth looking at earlier revisions. Usually the contents of the wiki articles are removed to maintain the size of the article to a standard level. Some are removed to maintain the unbiasedness of the article.

Whatever the case reviewing the earlier revisions give a panoramic view on the topic.

2. In some case, the 'discussion' page will be available. Usually there you can find a summarized information regarding the issues going around the article. Taking a look at this will give you the first hand knowledge about the alternate views and interests.

3. If you are multilingual, try to read the article in the other languages, if it is available, as the articles in different languages are not a mere translation of the English version. However, it is always recommended to take a look at the article written in a local language related to the topic, even if you are not familiar with that language at all. At least you will be able to find more images and links.

Sunday, May 24, 2009

Internship At WSO2

A project - "Event Monitoring System" that  Supun and I did during our internship can be found in the SourceForge Project Page. Source code can be checked out from the SVN in SourceForge.

Oct 6th / 2008 - May 11th / 2009

Saturday, May 23, 2009

Common mistakes : IRC

Today the GSoC2009 coding period officially started. During the last two months, I could get some ideas on how NOT to use IRC channels in an open source world.

1. Leaving IRC immediately after a response is given:
Some users log in to the channel, and leave the channel immediately after they got a response for their query. This is a dangerous habit. Wait for some more time, you may get some more responses too.

2. Expecting a reply promptly:
Don't forget people are not paid to answer you. Someone will eventually answer your question. Don't panic and leave the channel without getting the answer. You may have to wait for hours for an answer.

3. Demanding:
Don't try to demand the hackers. They are volunteers, and you have no moral right to do so.

4. Expecting all the hackers to be knowledgeable in the whole subject:
Some hackers know part or full of the source code. If someone says he is not sure about the issue, wait for someone else to respond to your query.

5. Avoid SMS writing:
Don't use 'u', '4 wat', and '4n'. This is IRC and not your mobile phone. Your sms writing will definitely irritate the hackers.

6. DON'T WRITE LIKE THIS UNLESS YOU ARE SHOUTING AT SOMEONE.

7. dOn'T wRiTe lIkE tHiS!!!!!!!!!!, uNlESs yOu aRe iNsAnE :) :) :).

8. Try to be in a synchronization with the ongoing discussion. If it is going with a touch of fun, you could crack some jokes too. Otherwise be serious.

9. Finally use English on the international channels. You may know someone personally, but that doesn't mean you could have a conversation in your mother tongue, unless it is a local user group.

10. Use the channel display name to refer to the people. Don't use their real names, sir, or other similar salutation.

11. Debates - Each has his/her own opinion. Avoid being religious on topics such as Richard Matthew Stallman (rms) vs Eric S. Raymond (ESR).

For further reference regarding irc and other open source communication media, refer to the book, "Producing Open Source Software - How to Run a Successful Free Software Project, by Karl Fogel".
The online version is available here.


Useful Links:
IRC guidelines from freenode.
Beginners' guide.
Information on registering a channel - [1] and [2].
Operator commands.
A nice op guide with the introduction to modes.
ChanServ commands.
ChanServ Help Page.
Freenode irc chanserv help.

Wednesday, May 13, 2009

Tracker Applet

Tracker Applet.
"There was an error while performing indexing: Index corrupted."

Since I upgraded to Ubuntu jaunty (9.04) from 8.10, I am getting the above message frequently. Which will stay there, asking for an indexing, where it will never disappear even if we positively respond to its query. So regardless of our response, this message thingy will be popping up again and again.

I found a temporary solution for this well known bug from web.
sudo apt-get install tracker-utils
tracker-processes -r # --hard-reset

This bug was not appearing after that for a long time, but appeared again today!
Had to do tracker-processes -r # --hard-reset again.

The terminal output follows:

pradeeban@pradeeban:~/c$ tracker-processes -r # --hard-reset
Found 157 pids...
Found process ID 3742 for 'tracker-applet'
Killed process 3742
Found process ID 3827 for 'tracker-indexer'
Killed process 3827
Found process ID 8746 for 'trackerd'
Killed process 8746
Setting database locations
Checking database directories exist
Checking database version
Checking database files exist
Removing all database files
Removing database:'/home/pradeeban/.local/share/tracker/data/common.db'
Removing database:'/tmp/tracker-pradeeban/cache.db'
Removing database:'/home/pradeeban/.cache/tracker/file-meta.db'
Removing database:'/home/pradeeban/.cache/tracker/file-fulltext.db'
Removing database:'/home/pradeeban/.cache/tracker/file-contents.db'
Removing database:'/home/pradeeban/.cache/tracker/email-meta.db'
Removing database:'/home/pradeeban/.cache/tracker/email-fulltext.db'
Removing database:'/home/pradeeban/.cache/tracker/email-contents.db'
Setting index database locations
Checking index directories exist
Checking index files exist
Removing all database index files
Removing database index:'/home/pradeeban/.cache/tracker/file-index.db'
Removing database index:'/home/pradeeban/.cache/tracker/email-index.db'

AdminEMS

M.A.Mohamed and I did a pair project for CS3200 - Level3 Programming Project. Our project was "Entertainment Management System" aka EMS. EMS contained two parts; client side program [EMSClients] was developed by Mohamed using PHP, and the administrator program [AdminEMS] was developed by me using C#. The project proposal of AdminEMS can be found here.

How to build Abiword for Windows from the source

Now you have two options that are working and tested.
1. Cross-building
2. MSVC2008

1. The traditional cross-building using wine has been tested for Ubuntu 8.04 / 8.10 / 9.04.
Details can be found here.
Dependencies packed by robsta (here, or here(same copy))

When cross-building with the above dependency pack, it will demand libtool, automake, and fribidi, unless you already have them installed in your Ubuntu. A simple sudo apt-get install of these three will solve the issue (for Ubuntu).


2. With uwog's continuous effort, Microsoft visual C++ 2008 build has been made stable and complete. Just checkout http://svn.abisource.com/abiword-msvc2008/trunk/ and build using MSVS2008. (Express Edition 2008 is fine).


Seems these two options are in a higher demand than the traditional MinGW/MinSYS building, nowadays! The MSVC build is, surely going to grab more Windows developers into the Abiword community.

Sunday, May 10, 2009

gsoc2009unicode

Jordi Mas has organized his code so that you could build both ANSI and Unicode builds. Mostly, this uses ugly macros like TCHAR and macro'd functions. I will use wchar_t and the "W" version of the Win32 APIs, since I am going to build only a Unicode only build.

In src/af/util/win/, there are bForceAnsi flags in a number of functions that need to go; in src/wp/ap/win/ap_Win32App.cpp, there are a number of fromXtoY functions that need to be investigated (e.g., AP_Win32App::s_fromUTF8ToWinLocale).
Those fromXtoY functions are used in a number of dialogs.
Also I have to convert *A functions to *W ones. I thought of starting with the editing area and it is said that gui might be the tricker part.

It is also suggested to get rid of the xapencoding manager.

Recent Bug Reports regarding win32 + unicode:

UTF-16 and UCS-2
Microsoft uses UTF-16 little-endian as its standard for Unicode encoding

For Unicode (“Wide”) characters:
typedef unsigned short WCHAR; // 16 bit character
typedef WCHAR *LPWSTR; //pointer to 16 bit string

Abiword's internals are utf-8 and ucs-4. but the win32 parts should use utf-16, and then translate that into utf-8 or ucs-4, asp appropriate.
Internally the text engine uses UCS4.

Jordi Mas' unicode/ANSI build using tchar.h and tchar, and in mine (Unicode only build)
Unicode WCHAR and string functions.

Dialogs. menus. and toolbars to be ported first.

My project proposal can be found here.
List of all the projects and students along with their mentors can be found here.

Summer of Codes additional requirement: debug output.

Thursday, May 7, 2009

MacOS Theme for Ubuntu!


Ubuntu 9.04 is simply great.

I have also given it a Mac OS appearance using Mac4Lin.
It is awesome!!!

Abiword 2.7.0 released!

Abiword 2.7.0 was released yesterday!
Download it here.

Abiword 2.6.6 is the supported version for Ubuntu jaunty.
Download it here.

But feel free to try this debian packaging, if you prefer Abiword 2.6.8, and ready to install dependencies yourself.

An interview with the Abiword team after the Abiword 2.6 release can be found here.

A comparison of the open source word processors, OOo Writer, AbiWord, and KWord can be found here. However it could mostly be outdated by this time.

Apart from this, you may always prefer to check out gsoc2009unicode branch, which will be my branch for this gsoc - Porting Abiword Windows to Unicode.
I will use cross-building for my project.
Windows dependencies can now be found here too.

Initial discussions on this topic, by Jordi Mas, can be found here.

Sunday, May 3, 2009

Computing for all

I have recently started to translate Abiword to ta-LK. It should also be noted that ta-IN already exists for Abiword. So in a language point of view, a Tamil localized form of Abiword can be found. But still ta-LK has some clear differences from ta-IN and follows different standards. In case if a Sinhala translation for Abiword starts in a near future, I hope, we can think of making Abiword the national localized word processor of Sri Lanka.

Yesterday I attended the LAKAPPS fellowship event, which was organized to mark the success of the LAKAPPS team, in the concept "Computing in Sri Lankan languages." Abiword with the adaptability to the OLPC system, suits the position in localized computing for rural community. I wish LAKAPPS team will go forward in its effort for a better computing for all Sri Lankans.

Friday, May 1, 2009

libtool: link: cannot find the library `' or unhandled argument `Version'

When I was building again after some minor directory changes, build failed.
Oh.. Then I found, this 'libtool' is considering 'Version' in the directory name (Working Version mm) as an argument. :)
Removed the white spaces from the directory name. *Issue resolved*!


libtool: link: cannot find the library `' or unhandled argument `Version'
make[4]: *** [opendocument.la] Error 1
make[4]: Leaving directory `/home/pradeeban/Desktop/BackUp/Working Version mm/plugins/opendocument'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/pradeeban/Desktop/BackUp/Working Version mm/plugins/opendocument'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/pradeeban/Desktop/BackUp/Working Version mm/plugins'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/pradeeban/Desktop/BackUp/Working Version mm'
make: *** [all] Error 2
pradeeban@pradeeban-laptop:~/Desktop/BackUp/Working Version mm$