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.

Get Started

Wednesday, June 04, 2008

ExtendedRobot

I liked the java.awt.Robot class so I decided to make my ExtendedRobot class and add some functionalities that I used in some of my applications.

Functions added:
  • getMousePosition: returns the mouse position relevant to the screen
  • getCurrentPixelColor: returns the color of the pixel the mouse is pointing at
More is coming, just stay tuned ...!

Bowling Buddies Bot

Hello,
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.
It's very funny and it's already working but the problem is that every time the bot holds the ball and releases it, it is launched in a different way (I think that's intended by the developers of the game) so I didn't find a good configuration that allows for always getting strikes in the game.

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)

Hello,
Instead of trying all combinations of words using the first bot, a wonderful modification was added. I used the dictionary located here and used only the words inside it.
The difference is amazing.
Try it here.

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.

You can see an example on how to use this class on this link.

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 :)
Of coarse the program is subject to many modifications, you are encouraged to do your modifications and send me the updates if you want.

Enjoy,

Monday, March 03, 2008

CVs and Resumes

Most employers look at either, the CV or the resume, but the question is, how well does it highlight accomplishments and promote the individual? Either way, a resume or a CV is the first thing a hiring manager or a recruiter sees, and they will typically spend no more than 10 seconds looking at it if they don't see exactly what they are looking for right off the bat.

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)

I liked some quotes from the african cup of nations so I wanted to share them with you...

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

here's still much disagreement about the exact definitions but I'll try to clarify them for you...

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

Hello...
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