Monday, June 7, 2010

Who is the true God, Jesus or Allah?

Everything that is made should have a maker. The computer you are using right now did not come from nothing randomly. There should be a maker of it. The earth, sky, mountains, rivers, your body and everything should have a maker. This maker should be one and only one because if there is more than one, there would be much discrepancy throughout the creatures. This creator is the only God who is so powerful, so great and so merciful. This God is called for since Adam, Noah, Moses, Jesus and Mohammad, Peace be upon them all. They all call for the same creator, the same God, Allah. This is what Muslims believe.

As for Jesus, Peace be upon him, he was given birth without a father. Allah sent his angel Gabriel to Jesus mother, Mary with the blessing of a baby. She asked Gabriel, oh how can I have a baby without a father? He replied, for Allah, the most powerful, do you think it is difficult for him? Allah created Eve without a mother, and Adam without a mother, nor a father.

Jews at that time condemned Mary of making illegal love, they did not believe Jesus is a blessed prophet sent from almighty Allah. They even tried killing him over the Cross when he was an adult. However, Allah, the most merciful, sent someone that resembles him to be prosecuted instead of him. Since then, Christians believe it was Jesus was really prosecuted for the humanity sake. They even believe that he is God himself, or the son of God. But how could a God stay in his mother's womb for 9 months? How could he eat and drink and then urinate and defecate? And how was the world managed while he was in his mother's womb?

If you need more information about Allah and Islam, you can check these websites:
http://www.islam-qa.com/en/cat/12
http://www.islamicity.com/education/understandingislamandmuslims/

Peace be upon you.

Read more...

Thursday, June 3, 2010

The undocumented changes in Google Groups posting policies

I have been noticing that my email posts on one of the Google Groups I am subscribed to do not get replies from other members anymore. I was starting to get upset and thought my popularity has dropped and people are totally skipping my emails! I asked Mahmoud what was the last email he got from me and he told me it was several days ago! I logged in to the group website and found that my recent posts do NOT get delivered at all, without a single notice from Google!

After several tests I came to the following:
When your subscription in Google Groups is on email A, you have to really send from this email account A. If you use an email account B with an alternate account A (that appears in the From field), this will not work (as of May 29th and at least for me!)
You will not even get a delivery error from Google in this case because they think you are forging this email.

However, if you send from a totally different account C (and don't try to modify the sender), you will get a delivery error.

Moreover, if you send from account A USING ANY ALTERNATIVE ACCOUNT B, C, D, ... The message will be delivered!

Bottom line, now they only look for the real sender, and if an alternative account is used, they don't reply back with any error.

Read more...

Saturday, September 5, 2009

Getting your location using iPhone with no GPS

One of the main big features in iPhone 3G that was not shipped with its ancestor iPhone 2G is GPS support. You can determine your location using GPS satellites.
It is known that although very accurate, GPS has some drawbacks. It needs a lot of time to connect to the satellites, in the order of tens of seconds. It won't work indoors as well. Moreover, it is banned in Egypt, Syria and North Korea!
Update: It is not banned anymore in Egypt.

So can one determine his location without the aid of GPS technology? The answer is Yes. This can be done by identifying nearby GSM cell towers and query a database that stores their location. So lets divide the rest of this post into 2 parts:


Identifying nearby GSM cell towers

Doing this on the iPhone was a bit tricky. Actually it was a challenge for us at eSpace to get such information. I will list here the challenges we met and how we managed to solve them:
  1. There is no official SDK for iPhone OS 1.x. This was the easiest challenge to solve. Everybody uses iphone-dev for building the iPhone toolchain. Most of the header files in the toolchain are generated by class-dump! This is a tool that takes a binary framework (library) as an input and emits some Objective-C code in a header file that represents symbols in the library. Its idea is as simple as using nm to query symbol names and some extra code to wrap this info in Objective-C syntax.
  2. Even in the non-official toolchain, there is not a word on how to deal with telephony features like calls and text messaging. Thanks to CellStumbler, we used it to get cell information. It is a tool that exploits CoreTelephony framework functionality. CoreTelephony.h is also generated with class-dump.
  3. CellStumbler is very fragile, if you do simple edits in it, it may crash! The guys say it is toolchain bugs! Just keep this in mind if you need to modify it. Be aware that server connection callback never get called, so keep on retrieving cell information until you get something useful.
  4. Because CellStumbler is that fragile, we left the code untouched in its major parts, we just changed the part that outputs results. We then called the binary from a shell and parsed its output to get useful nearby cell information.

Querying a database for cell location

Google used to have a secret API for this. It is called My Location. This is the API it uses in Maps. Unfortunately, at the time of our development, the API was secret, we had to sniff upon packets to/from Google Maps to know what happens under the hood and replays it. Now this API is open to developers, thanks Google.


Read more...

Tuesday, June 2, 2009

Fortunately, another reason why I use Ubuntu

Since I installed Ubuntu 9.04 on my work machine (and replaced Micro$oft Outlook with Evolution), I always wondered why my download speed became surprisingly a lot faster! My surprises approached a relief today when I came across a local speed test service. I tested the speed on Windows (with no firewalls or anything coming in the middle) and Ubuntu.

The result was Ubuntu achieving DOUBLE speed than Windows! Yes you read it right, DOUBLE speed on the same machine!
I will leave you with the screenshots to witness it yourself.

Windows download speed:


Ubu download speed:

The only explanation I can tell is that the TCP/IP stack default parameters on Windows are not optimally configured, while the defaults in Linux are!
Any other suggestions?


Read more...

Sunday, May 17, 2009

Dr Mohamed Slim Alouini farewell at TAMUQ

Today we gathered for the farewell of Dr Alouini at TAMUQ. It has only been one week since I am here at TAMUQ, but Dr Alouini did have an effect on my career! Last October when I came here for an interview, Dr Slim (and Dr Shehab Ahmed) urged me to finish my Masters so that they can apply for my VISA.

After I came back to Egypt, I took an unpaid vacation from my work at eSpace and started the campus of studying! Thanks to Allah, I got the Masters certificate last February. I was always remembering Dr Alouini's words about pushing my career onwards and finishing the Masters as quickly as possible.



From right: Hossam Hammady (me), Dr Wessam Mesbah, Dr Alouini, Dr Ahmed Masoud, Majid Farouqi.

So although we didn't meet much, but thanks Dr. Alouini for pushing me onwards.


Read more...

Thursday, May 14, 2009

My new job at Texas A&M University at Qatar

It has been so long since I posted anything here. I am always lazy writing blogs :( Today I thought I should write something. From now on, my blogs should be short so that I don't get lazy writing them!

So, I am writing this to let you know that I have joined Texas A&M University at Qatar as a Teaching Associate. The hiring process took too long since I had to finish my Masters first before I apply for the VISA. Thanks Allah, I finished my Masters last February, but this is another story, I will write about it soon insha2Allah :)

I am now in Doha with my little family, my wife and my little 1-year-old kid, Abdullah. My job here includes both teaching tasks and support in IT-related issues for the faculty.

A lot of paper work to do here to finish my residency permit and settle in my new house. I didn't take any task yet, just all about orientation and settlement. I hope work would be fun here as I have always enjoyed my job :)


Read more...

Thursday, November 6, 2008

MCabber: a command-line-only multi-protocol IM client

Command-line geeks, its time to stay focused on your terminals and not switch to X back-and-forth when chatting with your buddies.
mcabber is a small Jabber console client.
mcabber includes features such as SSL support, MUC (Multi-User Chat) support, history logging, command completion, OpenPGP encryption, OTR (Off-the-Record Messaging) support and external action triggers.

As you can see MCabber is just a Jabber client. So you can not use it to connect to your favorite IM servers like MSN, Yahoo!, GTalk,...



However, you can use it to connect to these networks with little effort. All you have to do is to install OpenFire (or any Jabber server software) and enable the GatewayIM plugin. From its name, this plugin enables you to connect to other IM networks. Just create an account on your Jabber server through its nice web interface and configure it with other networks login information. Next, let MCabber connect to your server and do everything you love.




To install MCabber on Debian/Ubuntu just type:

sudo apt-get install mcabber


Before you connect with the server, you have to configure MCabber first. The only mandatory configuration is server address, port, username (jid format: username@servername, you can know the servername from OpenFire admin console) and password. You can start with the example configuration file by copying it to your home directory:

cd $HOME
mkdir -p .mcabber/histo
zcat /usr/share/doc/mcabber/examples/mcabberrc.example.gz > .mcabber/mcabberrc

So far, I have been talking about everything old! Anything cool here?

A great functionality of MCabber is that you can write an external script in any language and let it handle IM events like message received, buddy logged in, ...
I have wrote a bash script which plays some nice sounds (got them from Pidgin) on some events, so that you don't have to poll mcabber "window" to watch for new messages! You can download the script from here.

Update: The script now "says" the jid of the buddy logging in/out! However, you need to install festival before you can use this feaute:


sudo apt-get install festival


Don't forget to turn on execution bit or it won't be able to run.

chmod u+x $HOME/.mcabber/event-handler.sh


Don't also forget to edit mcabberrc to tell it to use that script for handling events

set events_command = /your/home/directory/.mcabber/event-handler.sh




Read more...