Thursday, November 11, 2010
Long time no see
Thursday, November 12, 2009
CVC Presentation (Presenting myself and my country)
Monday, October 26, 2009
Google Voice + Gizmo5 = Free Calls from and to USA on your Android phone
- A Google Voice account. It's currently by invitation only. Look for a friend of you who has some invitations and buy him a bar of chocolate. (I have some invitations by the way ;))
- A Gizmo5 account. It's FREE. Just go to the website and create a free account.
- At Google voice account settings. You should add a phone number. Again you'll need some help from a friend. Give his number and make a test call where you hear the confirmation code and copy it from him. I think there are some programs that can give you a virtual phone number. I think localphone.com does this but I haven't tried it with them. Anyway feel free to solve this issue by any possible means.
- Now you can add a Gizmo5 phone number to your Google voice account. Add your Gizmo5 number at this point.
- At Gizmo5 account settings add your Google voice number. You'll figure out how as soon as you login to the website.
- Install guava on your Android phone.
- You don't need a SIM card in your phone to do this trick. Only using a WiFi is enough.
- If you don't have an Android phone. Theoretically, as I didn't try it, when you make a Google voice call you can receive the call from any Gizmo5 client like from your PC as an example. Or if Gizmo5 is supported on your phone you can download a client and that will be enough.
- Maximum call from your phone is 3 minutes and you can receive unlimited number of minutes.
- You can call USA using smartvoip for FREE. This will let you call your friends who are doing this trick for free on both sides.
Friday, September 19, 2008
Stanford Engineering Everywhere (SEE)

For the first time in its history, Stanford is offering some of its most popular engineering classes free of charge to students and educators around the world. Stanford Engineering Everywhere (SEE) expands the Stanford experience to students and educators online. A computer and an Internet connection is all you need. View lecture videos, access reading lists and other course handouts, take quizzes and tests, and communicate with other SEE students, all at your convenience.
This fall, SEE launches its programming by offering one of Stanford’s most popular sequences: the three-course Introduction to Computer Science taken by the majority of Stanford’s undergraduates and seven more advanced courses in artificial intelligence and electrical engineering.Stanford Engineering Everywhere offers:
- Anytime and anywhere access to complete lecture videos via streaming or downloaded media.
- Full course materials including syllabi, handouts, homework, and exams.
- Online social networking with fellow SEE students.
- Support for PCs, Macs and mobile computing devices.
Stanford encourages fellow educators to use Stanford Engineering course materials in their own classrooms. A Creative Commons license allows for free and open use, reuse, adaptation and redistribution of Stanford Engineering Everywhere material.
Wednesday, June 04, 2008
ExtendedRobot
Functions added:
- getMousePosition: returns the mouse position relevant to the screen
- getCurrentPixelColor: returns the color of the pixel the mouse is pointing at
Bowling Buddies Bot
I thought about writing a bot for the Facebook's Bowling buddies game.
The idea of the bot is as follows:
- Go with the mouse to the upper left area.
- The bot goes to the ball.
- It presses the mouse click.
- It moves backward then forward releasing the ball.
I'll leave you with the source code and if you found something useful that allows me to do a perfect game just tell me please.
Enjoy,
Friday, May 30, 2008
The Word Challenge's Bot (UPDATED)
Monday, May 19, 2008
java.awt.Robot and the Facebook's Word Challenge Bot
Imagine that you have a Java GUI program written using the AWT and Swing libraries, and you'd like to automate the program. For example, you'd like to automatically supply GUI input events from the keyboard and mouse to the program. In this way, the program could operate without user intervention. This type of automation might be useful for testing purposes, or to produce a self-running demo program.java.awt.Robot
is a new class in JDK 1.3, designed to handle this type of automation. It's a way to automatically feed input events to a program. The events are generated in the native input queue of the platform, as if they had actually been generated by the user. For example, using java.awt.Robot
, you can generate an event that is equivalent to a user moving the mouse to particular (X,Y) coordinates on the screen.
Facebook's Word Challenge Bot
Now lets see how can we use this in making our cool bot for the Facebook's word challenge game.
In this game you are required to construct words whose lengths range from 3 to 6. No need for a dictionary to do that, the range is already small enough to try all combinations of letters in a reasonable amount of time, then use the java.awt.Robot
to print this output on the keyboard while you keep the focus on the game, you'll find it so much fun :)
Here's a link to the Netbeans project I used to make the bot.
And here's the bot itself.
Usage
- Start the game and Know the allowed alphabet.
- Edit the batch file provided with the game.
- Add the alphabet at the end as the first command line arguments all in a single string.
- e.g. If the allowed alphabet was {a, b, c, d, e and f} add "abcdef" - without the quotes - at the end of the file.
- After adding the alphabet add an integer from 3 to 6 indicating the maximum length you desire for the letters generation.
- e.g. Adding 4 to the end of the file generates words of lengths 3 and 4.
- Now save and close.
- Run the batch file.
- Set the focus at the game (Just click at any place in the game's window).
- Watch your score :)
Enjoy,
Monday, March 03, 2008
CVs and Resumes
The main difference between a resume and a CV is the resume is supposed to be geared toward particular positions and job descriptions, roles and responsibilities, as well as educational background. A CV is more geared toward particular areas of interest, educational background, degrees received, additional courses taken, and awards received, as well as a list of jobs one has had. The key to both of these is to be to the point. CV's should never be more than a page long, and resumes, while the norm is one page, can sometimes run over. In your job descriptions, employers do not want to have to figure out what you did at any job you've had, so be direct, give a good description of your roles and responsibilities and move on. Same thing with CV's.
Resumes should not only get your point across that you are someone an employer should consider you, but they do also have to look nice. It's better that the resumes have a brief 3 or 4 line statement (Executive or Professional Summary) at the top that states what you are looking for in a company, type of job, and why. For example:
A dedicated software engineer with 7 years of experience designing and developing cutting edge software applications seeking new challenges with a growing company which will allow me to utilize my current skills and help me learn and develop new ones.
It doesn't have to be much, but it helps the reader understand very quickly who you are, what you do, and what you are looking for. For people with more than one year of experience, Professional experience should come next on the resume. List jobs in chronological order from the most recent, back. Give a brief but pointed description of what your roles and responsibilities are/were, technologies used.
Next should come the certification classes, and any certifications you have. Following that, is your educational background. If you have more than a few years of experience, you do not need to list your GPA since it is usually irrelevant after you graduate and get real jobs. If an employer is interested in that, he will ask for it. And finally list any additional skills that are not evident in your job descriptions.
Now I'll leave you with a title 10 ways your resume irks hiring managers
1. Spelling mistakes and grammatical errors.
2. Opening objectives.
3. Personal attributes.
4. Interests and hobbies.
5. Details of every task you've ever performed in every job you've ever had.
6. Excessive bragging.
7. Outdated information.
8. False information.
9. Unexplained gaps in work history.
10. A lack of professionalism.
References:
http://forums.topcoder.com/?module=Thread&threadID=505191&start=0&mc=11
http://jobs.aol.com/article/_a/10-ways-your-resume-irks-hiring-managers/20070809123709990001?ncid=AOLCOMMjobs
Friday, February 15, 2008
Quotes I liked from the African Cup of Nations (ACN)
Egypt VS Cameroon (4-2)
After the first penalty
هات من جوة يا كاميني
After Zizo's first goal
بص شوف الكورة وحلاوتها
بص شوف ابن بورسعيد الباسلة
بص شوف زيدان
عدى عدى عدى... وسمع كاميني لحن الخلود
Before the 4th goal
ابو تريكة دلوقتي تحس انه عامل زى الدمغة بتاعت الأظرف... معروف جدا في افريقيا
حسني كمان معروووووووف... حسني كمان حكاااااااااااااااية
Egypt VS Cote d'ivoire (4-1)
Beginning of the match
بسم الله الرحمن الرحيم... وما النصر إلا من عند الله
The fourth goal
الرابع يا مصر... الرابع يا مصر... الرابع يا مصر... الرابع يا ابو تريكة
لالالالالالالالالالأ خلاص... خلاص خلاص خلااااااااااص... خلصت... 4-1 خلاااااص
Egypt VS Cameroon (1-0) "My favourite"
The goal
أاادي زيدان... سرعة زيدان... زيداااااااان... وسونج
قووم يا زيداااااان... زيدان وسونج.... هى هى هى ابوتريكة
أااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااه
أه أه
أبو تريكة أبو تريكة أااااااااااااااااااااااااااااااااه
أبو تريكة أبو تريكة.... زيدان زيدان زيدان
يا زيدان يا عالمي.... شكرا يا سونج... شكرا يا سونج
منتخب مصر بيلاعب المنتخب الكاميروني بطريقة البنج بُنج
شوف إصرار زيزو
شوف تبديل ابوعلى
شوف عرضية ابوكريم
يا عيني عالكلام والدلع
يا عيني عليك يابوتريكة
ياللي الدنيا ماجابتش حلواني للكرة المصرية... زى روعتك وجمالك وأدائك
Sincere congratulations to my country's team... congratulations for the whole arabic world, congratulations to Hassan Shehata who made monsters out of those players... made them play with honor, till they won their deserved cup :)
Thursday, February 14, 2008
The difference between A geek, a nerd and a dork
A Geek: Originally used to describe circus performers, "Geeks" are intense fanatics of unconventional subject matter, who proudly memorize its minutiae and incorporate it into every aspect of their lives
A dork: Is simply someone with no clue about normal rules of social interaction
What's the difference? All dorks are geeks, but not all geeks are dorks :)
A nerd: An 80's term we'd all like to forget :)
Reference:
http://www.phdcomics.com/ A very nice website for those who want to continue in their PhD degree :)
Saturday, January 19, 2008
Programming quotes I liked
I heard many programming quotes that I liked so I wanted sharing them with you so enjoy
It should be noted that no ethically-trained software engineer would ever consent to write a DestroyBaghdad procedure. Basic professional ethics would instead require him to write a DestroyCity procedure, to which Baghdad could be given as a parameter. (Nathaniel S Borenstein)
Voodoo Programming: Things programmers do that they know shouldn't work but they try anyway, and which sometimes actually work, such as recompiling everything. (Karl Lehenbauer)
Reusing pieces of code is liked picking off sentences from other people's stories and trying to make a magazine article. (Bob Frankston)
Software is like sex: It's better when it's free. (Linus Torvalds)
Without a specific reference, 1 + 1 = 2 is just a string of symbols (I Don't know)
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning. (Rich Cook)
Beware of bugs in the above code; I have only proved it correct, not tried it (Donald Knuth)
Those are what I remembered for now, If I remembered anything more I'll surely edit and add them to this post