Writings Photos Code Contact Resume

You are here

Written in English.

Opera provides FREE registration codes.

Submitted by msameer on Tue, 30/08/2005 - 2:46pm

Yes, It's there and I've just got mine. opera is provding free registration code. You can get one day without ads.
(Via fEnIo)

echo youssef | subdomains --add --host=foolab.org

Submitted by msameer on Mon, 28/03/2005 - 2:16pm

Finally, Youssef gets a new home bringing all of his interresting posts and mind bleed with him!

And Now I can say that I'm hosting 3 of my friends here:

I'm actually thinking these days about providing a free blogging service but the VPS resources doesn't allow me to do so.
I'm also not that sure whether I'll be giving subdomains or just allowing people to post here on foolab since this is supposed to be my personal website which'll be turned into the Capital Of Capitalism one day!

FOSS Conference 13-15 March 2005

Submitted by msameer on Mon, 07/03/2005 - 4:17pm

Free Open Source Software and Development Conference 13 – 15 March 2005

Invitation to attend the conference entitled Free/Open Source Software (FOSS) and Development (13-15 March 2005, daily from 6 p.m to 10 p.m, Shepard Hotel in Cairo), which is organized by Center for Knowledge Society with the cooperation of EGLUG (Egyptian GNU/Linux Users Group).

Open Invitation, for enquiries:

Conference Agenda

First Day: Sunday 13th March

6:00 – 7:00 FOSS and Development

  • Dr. Marlyn Tadros ''(Center for Knowledge Society)''
  • Dr. Adel El Zaim ''(IDRC)''
  • Mr. Ahmed El Sobky ''(RITSEC)''

7:00 – 8:00 Intellectual Property

  • Mr. Mohamed Hegazy
  • Mr. Ahmed Hussein ''(TE Data)''

8:00 – 8:30 Break

8:30 – 10:00 Challenges Facing FOSS (Local Case Studies)

  • Business Model of a Local FOSS IT Company ''(Open Craft)''
  • Abu El Nomros Community Media Center ''(Cospe)''
  • FOSS in Schools of Abu Qurqas ''(ArabDev)''
  • Clothes Company's Complete Migration to FOSS ''(EGLUG)''

Second Day: Monday 14th March

This day will consist of Technical Presentations on specific FOSS Technologies, Solutions.

6:00 – 7:00 Status of FOSS Desktop and Arabization

7:00 – 8:00 FOSS Web Publishing Platform

8:00 – 8:30 Break

8:30 – 10:00 Affordable Computing

Third Day: Tuesday 15th March

6:00 – 10:00 Mini-Expo

EGLUG volunteers will give hands-on presentations, and Companies and NGOs interested in FOSS will be available for discussions and will answer all your questions.

Asiasource 2005, The 1st day.

Submitted by msameer on Fri, 28/01/2005 - 9:31am

Yesterday I had a little walk, Tried not to go deep near the bushes as there are snakes after the rain.
I slept at 2+ AM, I was searching for my luggage and found it, I wanted to take a bath but I didn't as I had no soap, So I decided not to do it now.
I went to the room, One of the guys there requested that we turn off the light, I had to find my things and wear them in the dark, Not a big problem.
The 1st day, We had a circle "square" meeting, I'm now writing after the coffee break.
I wasn't able to wake up at 7:30 as I wanted to, I woke up at 8:20.
I'll conmplete later as Gunner'll start talking now!
The 1st part was simply an Identification thing, Everyone said his name, From where and a word or two describing his feeling, Some said stone! some jumpy, some said confused, ...
Then we had the coffee break.
After it, We had the Spectrogram! It's simple as Gunner sais any controversial phrase, people must move accordingly and stay near a mark describing the % of agree or disagree.
"It's never OK tp use non-free software" Was the 1st one, I was the only one at the yes, Later someone joined. "You don't have control over it, You can't modify it. It's not a crime, But ethitically, I blame the users" I said when he asked me.

Imagine that the place we are in is recycling the sewage, What an environment friendly place.

The next: It's always OK to copy data.
I was confused, I stayed at the 25% agree sign, then I moved to the middle space between it and the 50% sign.
I was really confused as not all of my personal things are allowed to be published, Anyway Ended!

Some people started to speak
NGO problems and that they start hesitating when moving to FLOSS.
And that NGOs go to the computer market, They sell them whatever cause they dom't ubderstand anything.They did a thin clients setup to a schools, They were happy, but when it's time to move; No one is moving, They are hesitating.

Many other things were said, Among them a problem with localizing Linux to Bangladish if I remember correctly.
And the problems with wemen regarding IT.

FLOSS is not software also, it's also sharing knowleddgw, info, open sociaty, law, media, we can put together and market.

FLOSS is tasty meal, You have all oof the components not the meal.

Off to spicy food!

After food, I had to go to the bathroom, I haven't seen these bathrooms since ages! It's a good experience seeing your stool coming out!
Now here I'm at the media lab posting this, I still have to go to Hinde and get the agenda.
I handled them the ubuntu copy I have so now they need to burn 6 copies instead of 7!!!
I took a photo of our switch!

Arabic, The big problem.

Submitted by msameer on Sun, 02/01/2005 - 12:04pm

I don't know why I'm writing this.
I've been envolved with Arabic for the last few years.
During the last few weeks I've started to realize the problems with Arabic, Noot only when it comes to text processing by the computer, But For non native Arabic speakers and even for native Arabic speakers like us.
Arabic is somehow a complex language which requires certain capabilities from the rendering backend to be displayed correctly.
One of thse capabilities is "shaping". To simplify things we we have 28 letters, Some of the letters have different shaping according to the position in the word. Initial, Medial, Final or Isolated.
The rendering backend should be aware of this to be able to display Arabic correctly.
Arabic letters are stored in text files in the Isolated form, The rendering backend must then "interprete" the letters and join them correctly otherwise we'll have non-joined letters.
The 2nd thing, Which is BiDi "Bidirectional algorithm". Now imagine when you embed Arabic strings within English strings for example Or vice versa, Not only With English, But this hppens with any language written from left to right. The rendering backend must also be able to resolve this situation and reorder the test sigments to obtain a visually correct order.

Now there is another thing which does require the rendering system to take care, Diacritics or what we call in arabic "tashkeel", Or the accents.

Before I talk about problems regarding the software we are using, I was talking yesterday woth a cool British guy, He was trying t teach himself Arabic by the means of flash cards. But he discovered that the letters - even in the arabeyes wordlist - are NOT accented so he'll have problems pronouncing it. I don't write the accents myself so I can't blame anyone.

Now let me state the problems with GNU/Linux, Though I can't separate the GNU/Linux problems from the problems in other operating systems, But I'll be mainly talking about GNU/Linux.

A GNU/Linux system is composed of several components working well with each others.
The desktop is composed of the X server or the X window system, Which the layer responsible for interfacing with the hardware, It gives you a plain desktop, On which the Desktop Environments start to put the background, The icons, A panel, ..........
You open applications "windows" the position of these windows is controlled by the "window manager".

With an open system like GNU/Linux you'll find yourself having multiple window managers and multiple desktop environments, Though you can assemble your own desktop from several components.
The most popular desktop environments are KDE and GNOME.

KDE is written in C++ using the Qt toolkit, While GNOME is written in C using the GTK+ toolkit.

A few years ago we didn't Sometime later GTK+ hit version 2.0 and QT hit 3.0, Both brought good Arabic support in terms of bidi and shaping. Some small problems remained but they are almost solved by now. One of them was GTK+ not supporting the letter accents, This remained a problem for a long time but it has been solved.
I'll be talking mainly about GTK+ since I'm more familiar with it.
As we said before we must have a rendering backend, The rendering backend'll be drawing strings on the toolkit widget, It might be incorporated in the toolkit like Qt, Or separated in another library like Gtk+, Which is using "pango" as the rendering backend. Since there is the X layer below the GUI toolkits, Then X provides functions t draw strings too, Actually I'll be addressing this later.
now GTK+ is using UTF-8 internally to represent the strings, UTF-8 is one of the Unicode Transformation Formats, UTF-8 is a multi-byte encoding.
Now let's try to explain this.
How do you map a certain character stored in a file to the corresponding character in the font ? The characters are stored in files as numbers, Since a character is a byte, And a byte is 8 bits, So we can't have more than 2^8 = 256 characters which might be enough to represent a language or two at the same time but are not enough to represent all the languages at the same time, Thus we had something called the encoding. We'll have a font with the Arabic letters, Another one with the Hebrew letters, Another one with Greek letters and so on. We can only use 1 font at a time to represent the character, This is the encoding.
With the unicode standard we now have more space to represent all the languages with one encoding.
UTF-8 is one of the unicode representations, A character might be 1 byte, 2 bytes, 3 bytes or 4 bytes. Arabic falls into the 2 bytes segment "0x06XX".
So now we have toolkits capable of rendering Arabic and apply bidi and shaping, Not all the toolkits can do this, But I'm talking about the major two.

The bidi might be very complex when we have an arabic string in which we embed an english string and embed an arabic string into the english string, Here comes the Unicode control characters, They are used to aid the rendering backend to resolv the bidi correctly, Though we have no keys on the keyboard to input them, But GTK+ text widgets have a submenu in the rightclick contxt menu to allow the input of them, AFAIK This is not present in Qt ATM.
I think this is a fast overview abut the current state regarding the desktop, Let's try to talk about the problems.
1) No standards, No standards on how to normalise arabic letters, So it's not implemented in any database server, It can be done using fuzzy search, but fuzzy searching is slow and requires the application to know about it.
2) Letter accents, They are not used thus making non-arabic native speakers unable to pronounce the words correctly.
3) The famous lam-alef problem.
4) Translation, Arabic to english translation requires high Artificial intelligence level. I think No one'll do this for us, We must do it either via research centers in the universities or via graduation projects by computer science students.
5) OCR and voice recognition, Same as above, But with an additional point that is no Arabic website is following the accessibility guides, Thus we can't apply the OCR technology if it's there.
6) We have no good open source font till now, the KACST fonts are fine, But the English glyphs are ugly.
6) Multiple implementations, Each application emplements the bidi and/or shaping by itself. We have a bidi library "fribidi" it's used by Pango, Pango is implementing the shaping algorithm. Qt is implementing bidi and shaping, Openoffice and mozilla both implements their bidi and shaping, We don't have a library for the shaping till now, fribidi was supposed to implement this but I don't know why this didn't happen till now. So if we find a problem with the bidi or the unicode standard changed we'll have to go through all the applications to fix it, Some applications don't implement bidi and shaping thus we are required to code the shaping into it, Thus increasing the mess!
7) Xft problems, This is somehow related to the above problem. X itself doesn't implement bidi and shaping, Xft doesn't, Xlib doesn't, So any application not using pango or Qt must be patched for Arabic to work correctly, Which is not the Right Thing (tm). Or we must implement bidi and shaping into xlib or Xft, But doing this'll break Qt, Mozilla, Openoffice, The Pango Xft rendering backends.

In my opinion this is a quick overview about the Arabic language in general from a programmer point of view!

Happy New Year, The foolab way.

Submitted by msameer on Fri, 31/12/2004 - 8:03pm

Happy new year all.
Alaa woke me up today saying that foolab is down. It was obvious that the codefilter.module "Which the drupal module used to highlight the php code." is not playing nice with drupal,I don't know why.
But Seeing an error about undefined functions is not a sign of good.
I don't know what happened, The site has been working for long time,
I tried to logout to find the error. It seems that it's happening to non logged in users, I searched drupal.org to find that this is a reported bug!
I don't know how many of you were affected by this error.
Anyway, I've disabled the following code in the module and everything is fine now.

function codefilter_init() {  
drupal_set_html_head('<style type="text/css">@import url('. $GLOBALS[base_url] .'/modules/codefilte\r/codefilter.css);</style>');         

I moved the code to the theme file.

// Codefilter block.
if (function_exists("codefilter_help"))
$output .= '<style type="text/css">@import url('. $GLOBALS[base_url] .'/modules/codefilte\r/codefilte\r.css);</style>';

Another thing just to fuck up my mind, the codefilter module prevents drupal from generating the node teaser, I wonder why ?

My Top 10 Resolutions for 2005.

Submitted by msameer on Wed, 29/12/2004 - 5:36pm

It's not 800x600!
And None of them'll happen.

  • Get a bank account and a credit card instead of keeping my money "do I have any ? ;-)" in a bag.
  • Try to reserve some money for the future, Who knows ?
  • Start saying "no" when I don't want to do a thing, Stop over extending myself, It's my right!
  • Try to pay my aDSL line bill on time.
  • Try to take care of my long hair "this won't happen".
  • I want to marry, Is there a chanse for me to find a girl the next year "I don't like to love what I find, I want to find find what I love!!!" ?
  • Try to be more involved in Debian, Maybe take the 1st step towards being a Debian Devaloper.
  • Get arabbix 1.0 out.
  • Try to live alone, Not with my family anymore.
  • I hope I can find a better chance to get out of Egypt.

Arabeyes core elections.

Submitted by msameer on Mon, 25/10/2004 - 8:28pm

So after having hard time with Shereef Nagy trying to let him run, I decided to run too, Maybe cause I gave him my word.
Shereef Is a hard worker though he doesn't understand what problem he is getting himself into ;-)
Anyway, Here is My plan:

Ok, I hate to write, And i won't write anything.
All what I can say is that I believe in arabeyes, though the way we are doing things suck, I also believe that the arab community is shit and that they won't do anything and that they should be all burned alive.
Anyway, As I always try to do what I can so when I stop doing no one can blame me, I'll nominate myself too. I don't think that I can do much, I don't think that I'll have much free time in the future, But I'll try to spare what I can for arabeyes.

After modifying my blurb to:
I think that since arabeyes is beyond all of the volunteers there, That's one.
The 2nd thing is that I feel I can give something to arabeyes, I do understand how things work inside arabeyes, And I think that I have enough free time to give.

When It comes to putting Arabic on the GNU/Linux desktop, I think that I can do it well by trying to facilitate it and providing/fixing/optimizing the i18n framework for Arabic.

I decided NOT to run, I'm in a bad mood these days, Maybe I can't take good decisions, But that's why I don't want to get myself into something that I won't be able to cope with.

I also remembered: "Treat your people using your own thoughts, And with what your mind is saying, Not with what your heart is saying"

Being a core is like giving a word, You'll have to be responsible for it, I think that I can give arabeyes what a core can give and still not being a core member, But I'm not sure I can do what I promised to when I'm a core.

postfix + spamassassin the simplest way.

Submitted by msameer on Wed, 08/09/2004 - 1:18pm

So, I had to do it today, Why was I afraid ? Don't ask, No answer, I don't know.
Now for the dirty work.
As usual: I'm using Debian woody.

# apt-get install spamassassin
# emacs /etc/default/spamassassin

# /etc/default/spamd.conf
# Duncan Findlay
# November 2001

# WARNING read README.spamd before using.  THERE ARE SECURITY RISKS!

# Change to one to enable spamd

# Options
# See man spamd for possible options. The -d option is automatically added.
# was -c only

# emacs /etc/spamassassin/local.cf

# Add your own customisations to this file.  See 'man Mail::SpamAssassin::Conf'
# for details of what can be tweaked.
rewrite_subject 1
report_safe 0

# emacs /etc/procmailrc

#VERBOSE=on # Debugging

* &lt; 256000
| spamc

# /etc/init.d/spamasassin restart
run rcconf and ensure that spamassassin is checked.

What's the problem with /. ??

Submitted by msameer on Thu, 02/09/2004 - 8:23am

What's the problem about having a terrible karma ?
For the 1st time, I wanted to be informative on /. and improve the situation a bit, That's what I wanted to post here:

use jhbuild
I've downloaded the tarballs yesterday, Garnome is outdated.
Ok, use jhbuild from the GNOME CVS, it's fine, install tla, docbook-xml, libbz2-dev and docbook.

You may need to tweak the configure.in here, or modify a C file there "happened with me in Xrender, But i can't remember what i did!".
It's going smooth now.

But damn, I get this:

Slashdot only allows a user with your karma to post 2 times per day (more or less, depending on moderation). You've already shared your thoughts with us that many times. Take a breather, and come back and see us in 24 hours or so.

If you think this is unfair, please email posting@slashdot.org with your username "Uniball". Let us know how many comments you think you've posted in the last 24 hours.

Anyway, I've posted anonymously