Writings Photos Code Contact Resume

You are here

Katoob, the baby has a new father.

Submitted by msameer on Mon, 12/05/2008 - 7:31pm

This post has a bit of my history and emotions. It can be skipped!

The summary is: Katoob has a new maintainer.


Yes, a long time.

Back in 2002, Gtk 2.x was just released. Efforts were spent porting, rewriting and redesigning parts of GNOME. The aim was GNOME 2.0 and later on 2.x

Previously, we had Gtk which did not support Arabic at all.
At that time, the only usable Arabic capable GUI editor was a closed source one, Axmedit. I was also trying to learn programming and write something useful. Katoob was born at that time. The aim ? provide the Arabic user with something usable and the secret agenda was me learning Gtk and get my hands dirty with C. Not having enough skills to contribute to something as large as GNOME.

It wasn't called Katoob (Which means something like an exaggerated writer in arabic). Me and Alaa wanted to call it gDhad (G is for GNU, Gtk, GPL, ... and Dhad is the letter. Arabic is known as the language of "dhad") but a miscommunication lead to that name.

Arabeyes hosted the project in the beginning. The problem was it was released after the first version of GNOME2. I missed a contest.

The problem is that it was already used by a few of my friends. A lot of testing has been done in the beginning. I still remember feeding it various media files as well as random garbage to see what will happen.

Years later, the whole thing grew into a pile of spaghetti code. It was the time for me to start learning C++. What else can I use to learn it ?
Then 0.5 was born. A bit cleaner, C++, Gtkmm and moving it to my own place. It even survived my migration from CVS to SVN last year.

It also started to be used by more people.

As I become busier with work and as my interests have started to change, I found myself incapable of maintaining it. It's actually a motivation problem more than anything else. I'm not involved into Arabization issues (I was never involved but people claimed I was ;-)) and I wasn't getting enough testing.

I don't use it a lot anymore. Everything supports Arabic now. I don't think we need that project anymore.
I can also use Emacs to read and write Arabic

Now, Fred Morcos decided to step up and maintain it. Good luck to him. At least I found someone to take care of the baby.

More packages for Chinook.

Submitted by msameer on Sun, 16/12/2007 - 2:47am

I was trying to package hunspell-ar for Chinook so I ended up packaging:
* hunspell (libhunspell and its development headers)
* enchant (hunspell and ispell providers but I'll disable ispell soon)
* hunspell-ar
* dictionaries-common and dictionaries-common-dev (hunspell-ar depends on them)

As for dictionaries-common and dictionaries-common-dev, they are different than the Debian ones. Yes I'm using the same source but I'm only providing the bits related to myspell. I didn't include the policy too.

uri = ftp://foolab.org/pub/apt
dist = chinook
components = spell

him-arabic is also available as well as a few Arabic fonts:

uri = ftp://foolab.org/pub/apt
dist = chinook
components = arabic

hildon input method and new languages...

Submitted by msameer on Fri, 14/12/2007 - 5:25pm

I noticed this because of my work on him-arabic.

If your plugin provides a language other than the 16 "known" languages, It will be displayed as " ()".

Ideally, The fix should be somewhere else but not all of the components are open so even if I can fix it, I won't be able to publish patches or packages.

It seems that the source provided with the SDK is a bit outdated so I had to grab the latest trunk: https://stage.maemo.org/svn/maemo/projects/haf/trunk/hildon-input-method/

And here's a patch. It'll return the language code if it fails to get the language description. (I know it's a bit hackish :|):

diff -Naur him.orig/src/hildon-im-languages.c him/src/hildon-im-languages.c
--- him.orig/src/hildon-im-languages.c  2007-12-14 19:09:29.000000000 +0200
+++ him/src/hildon-im-languages.c       2007-12-14 19:12:31.000000000 +0200
@@ -82,7 +82,18 @@
   if (translate_function)
-    return (*translate_function) (lang);
+    gchar *res = (*translate_function) (lang);
+    if (!res) {
+      return res;
+    }
+    else if (!strcmp(res, " ()")) {
+      g_free(res);
+      res = g_strdup(lang);
+      return res;
+    }
+    else {
+      return res;
+    }
   } else

Apply, build the packages and install hildon-input-method_1.99.33-2_armel.deb and libhildon-im-ui3_1.99.33-2_armel.deb

I hope it will be fixed otherwise I'll be providing packages soon. I know I promised to provide a lot of things (-:

Have a nice weekend.

My Arabic related TODO list for maemo

Submitted by msameer on Tue, 04/12/2007 - 5:45pm

This is my Arabic related TODO list for maemo. It's my personal one not the Nokia employee one :-)

* katoob should be fully functional (I'm learning here). Actually I did more work today and I guess it's fine.
* Package and publish some Arabic fonts (I know there's one provided by the browser team).
* See what can be done regarding input (Low priority. Sorry to say that I don't like the HIM plugin interface).
* Check arabeyes.org apps. Is there anything useful and needs "porting" ?
* glibc/x11 Arabic locale ?
* Any suggestions ?

I'll not translate the UI for 3 reasons:
* I'm not of a translator.
* The license you agree to while downloading the OS image prevents me from doing that.
* Because we are using logical IDs in the code, we will f*** up the UI unless all of the strings are translated.

hunspell-ar for debian hits NEW.

Submitted by msameer on Sun, 12/08/2007 - 2:10pm

I've just uploaded the result of the ayaspell-dic project packaged for debian as hunspell-ar (The Arabic hunspell dictionary).
The packages are now waiting in new.

The same packages can be downloaded from here. Maybe someone other than me'd like to use them ;-)

مسابقة البرامج العربية مفتوحة المصدر

Submitted by msameer on Sat, 20/01/2007 - 1:31am

مسابقة الشيخ على الجابر العلى الصباح العربية للبرامج مفتوحة المصدر

المسابقه تنقسم الى قسم للمطورين و قسم للمستخدمين

مدة المسابقه من 15-1-2007 الى 15-5-2007

وادى عنوان الموقع بتاع المسابقه:

katoob 0.5.5 is out.

Submitted by msameer on Thu, 02/11/2006 - 12:22pm

* Replace dialog: Removed "Find And Replace".
* Severe optimization for the lam-alef detection and manipulation code.
* Syntax highlighting support (Via libgtksourceviewmm)

Tarball, md5sum and GPG signed md5sum

يوم ويكيبيديا العربية

Submitted by msameer on Fri, 18/08/2006 - 7:39pm

ماذا ؟
سيقوم المتطوعين المهتمين بالمساهمة فى الويكيبيديا العربية بالاجتماع افتراضيا على شبكة الانترنيت لمدة يوم كامل, حيث سيتم طرح قائمة بالمقالات المراد انشاءها أو استكمالها أو تصحيحها. وسيعمل كل متطوع من بيته ولكن الكل مجتمعين افتراضياً فى غرفة محادثة واحدة (IRC #wikipedia-ar@irc.freenode.org).

ويكيبيديا ؟
ويكيبيديا مشروع متعدد اللغات في أكثر من مئة لغة لصنع موسوعة دقيقة ومتكاملة ومتنوعة ومفتوحة ومحايدة ومجانية للجميع، يستطيع الجميع المساهمة في تحريرها.

تعانى ويكيبيديا العربية من نقص شديد فى المحتوى مقارنة بلغات أقل شهرة منها ويتحدّث بها عدد محدود من الناس. كما أن نسبة كبيرة من صفحات ويكيبيديا العربية ناقصة وغير مكتملة بل وربما لا تحتوى على أكثر من بضع كلمات. لذا نهدف من هذه الفكرة إلى تشجيع الناس على المشاركة فى الويكيبيديا ونشر الفكرة على قدر المستطاع.

اليوم المقترح: السبت 26 آب، 2006

للمزيد من المعلومات:
* يوم ويكيبيديا العربية.
* لازم نقف وقفه
* الموقع الرئيسي لويكيبديا العربية
* المساهمة في ويكيبيديا

CLRSpell, My first and hopefully last VC++/.NET application.

Submitted by msameer on Fri, 12/05/2006 - 9:30pm

So, The wordlist has been growing lately, We hit 250,000 words, I tried hard not to put incorrect words but a lot of incorrect words went in, Manual review doesn't seem right to me, It'll take years!

There's already an Arabic spell checker shipped with Microsoft Office 2003, Why not use it ?

I tried to do it manually but hell, No way!

I tried to discover how can it be coded, Neither VBA nor VC++ helped me, Of course it's me here as I'm not a windows developer at all.

Diaa Radwan, One of our LUG administrators and the master of talking proposed that I wait for him, He'll ask any .NET developer to do it, Long weeks with nothing from him.

BooDy, The only one I know with windows development background said that he doesn't have windows installed.

Mohammed Nabil is a sweet guy! He wrote something for me using mono, Maybe it was my stupidity that I wasn't able to compile and run it.

Now enough is enough! I'll code it, Google found something for me this time and here it is in the CVS, Now I really don't get the whole thing of .NET/CLR

I thought that you can use existing COM objects in VC++ applications and that's what I did, The point is that no COM object was available in the Visual Studio 2005 References window when I didn't enable CLR, Strange.

Now WTH is CLR ? And how can .NET tie all this ?

Did I really use .NET ? I think yes, So .NET is only the System classes and such things ? So what is CLR doing here ?

And god damn it! You have old syntax for CLR where you have to use pointers and for sure no one is using the standard C++ auto pointers, There's a new syntax where you have to use ^ instead of a *, If I understand right, The main(int argc, char *argv[]) works fine with the old syntax but not with the new!!

The problem is that most of the tutorials use pointers, They don't use the new syntax and no one is telling you about that.

No farther comment about me searching for the Microsoft::Office::Interop namespace and not finding it, How would I know that I neede to rerun the Office 2k3 setup and select .NET programmability "Sure the setup had to fail for a lot of times anbd don't ask me how!", Poor windows developers using pointers because the damn classes don't have copy constructors!

Yet another Arabic support patch, Gedit!

Submitted by msameer on Sun, 02/04/2006 - 8:14pm

God damn you Islam you are always getting me into this.

Gedit doesn't identify Arabic as a known language thus won't use the aspell Arabic dictionary for it. This patch adds Arabic and Arabic (Egypt).

The patch is against 2.12.1 but should apply to 2.14 and here's the bug report!

Written and worked from the first time!