Sunday, December 31, 2006

Intel Installs WiMAX in an Egyptian Village!

Now this is really cool. Intel connected two public schools and other public services using WiMAX in a village in Egypt. Looks like Egypt villages are starting to go digital!

Thursday, December 28, 2006

Analysis and Design

I couldn't help myself but to point to this well presented analysis and design example. Although it is done for a Ruby on Rails web application, yet the object oriented analysis and design concepts and process presented can be used for any web application developed using other scripting languages and web application frameworks.

RadRails Tutorial

If you've already installed and configured RadRails, here is what appears to be a good RadRails tutorial that goes beyond the fast and simple basics.

RadRails Demo Video

If you are new to RadRails, the popular Ruby on Rails IDE, have a look at this RadRails demo video to get familiar with some of the things it can do and how it does them.

Wednesday, December 27, 2006

Cheat Sheet for Google Search

Here are a couple of interesting operators to use when searching in Google. Have a look at this Google search cheat sheet.

I often use the define: and the site: operators, but I had never used the date: operator, perhaps I should try it as it could be really handy and useful in many cases.

Tuesday, December 26, 2006

CodeGear, A Borland Spinoff

The popular Delphy, JBuilder, C++ Builder and other previously Borland software development tools are no longer Borland tools! Borland has created a spinoff called CodeGear to handle such wildly popular tools.

EasyEclipse for C and C++

Perhaps educational institutions in Egypt teaching C/C++ should stop using the age-old Borland C++ 3.1 or even Borland C++ 4.5 for introducing C/C++ programming to their students. Now EasyEcplipse for C and C++ is an free open source IDE that can get the job done. It is based on the open source Eclipse project.

Integrating RadRails into InstantRails

After downloading and installing RadRails, I was clueless about how to use it with InstantRails. I tried to use RadRails but failed completely. This made me leave RadRails and confine myself to using InstantRails alone from the command line console and the rudimentary file editor that comes with it.

Hearing about how convinient RadRails is, I thought of downloading the Ruby on Rails stack one by one by myself and installing it, first Ruby, then rails and finally downloading and installing MySQL then configuring them all and running them. But that sounded like a headache, after all InstantRails was doing all this for me in a single step.

I then, by accident, came across this clear and simple description of how to configure RadRails to work with InstantRails! Mission accomplished.

Installing ActiveRBAC

I have downloaded and uncompressed InstantRails on my Windows XP system. In order to perform user authentication in my web application, I attempted to install the ActiveRBAC library for Ruby on Rails. Steps for installing ActiveRBAC are detailed in the excellent ActiveRBAC tutorial. However, to further take confusion away from installation steps, I will outline here the final steps I have come up with after some trial, error, failure then success on my side in installing ActiveRBAC on my Windows system.

  1. Start InstantRails.
  2. Open a Ruby console window.
  3. cd your_app_name.
  4. ruby script/plugin discover.
  5. Reply by no to all questions, except the two questions for http://svn.rails-engines.org/ and https://activerbac.turingstudio.com/.
  6. ruby script/plugin install engines.
  7. ruby script/plugin install active_rbac.

Congrats, you're done!

Monday, December 25, 2006

Trying Microsoft Office 2007

Perhaps I'm now a late adopter when it comes to Microsoft technologies and products, yet I just managed to try my hands with Microsoft Word 2007. I have not yet grasped the big change from the previous version of Microsoft Word except for the neater and sleeker interface. The interface looks and feels really cool. I believe also getting rid of the age-old concept of menus is a relatively big step. After all ever since the days of DOS, we've been used to programs using menus. Till this days almost every desktop program uses menus. So replacing traditional menus with this neat new way is quite cool and kind of a change in long standing concepts. This said, I still would like to say that the new way of getting about your tasks done in Microsoft Office 2007 is similar to a great extent to the old menu system, except that you see icons organized in front of you instead of a pull down menu. So in terms of programming, it's not really that different, yet in terms of usability, I believe it is a far concept from the age old pull-down menu style.

RadRails - IDE for Ruby on Rails

RadRails is the leading IDE for Ruby on Rails. RadRails is a far cry from FreeRIDE, the popular Ruby IDE. RadRails is way better. RadRails is based on the IBM-backed open source Eclipse IDE. RadRails is basically a plugin for Eclipse. RadRails is built on RDT, an Eclipse plugin for Ruby, and JRuby, a pure Java implementation of Ruby to work with Eclipse. Go ahead and download RadRAils and experience its magic.

Sunday, December 24, 2006

Wikipedia Challenges Google

The founder of Wikipedia is teaming up with Amazon to create a search engine the competes head-to-head with Google and Yahoo. The new search engine is called Wikiasari. The idea behind the Wikisaria search engine is to to be driven by the same kind of community force that has been driving the Wikipedia.

I personally believe that both Google and Yahoo will be fighting back ferosiously. Google's Co-op, Google Base and Google Apps for Your Domain programs offered by Google will be a strong force by Google in the direction of using the massive user community to help refine search results by classifying and creating content.

Code Igniter - A PHP Framework

As Django is a web application framework for Python, and Rails is a web application framework for Ruby, there is also Code Igniter, which is a web application framework for PHP. Code Igniter appears to be a much better PHP framework than CakePHP.

Converting ASP into PHP

ASP2PHP is a cool tool to convert your ASP code into PHP. Here is how to also convert your Access database into MySQL.

Agile Software Development

Extreme Programming is one of the popular, relatively new, agile software development methodologies. Scrum is another agile methodology that is gaining sweeping popularity. Both Scrum and Extreme Programming share the main concepts of agile software development, but while Extreme Programming focuses more on the details of how to do the programming, Scrum lifts itself a bit towards the project management level. Both methodologies can be used together at the same time: Extreme Programming for the technical part and Scrum as a project management wrapper.

Another agile software development methodology also gaining in popularity is Test Driven Development. There are many other new methodologies rising in popularity, but they all share the same concepts of Agile Methodologies. The Wikipedia has a good article about Agile Software Development.

User Authenticaiton in Ruby on Rails

Unlike in Django, the popular Python web application framework, Rails, again the popular Ruby web application framework, does not offer user authentication out of the box. If you want to do user authentication with Rails, you must use some plugin or write the authentication part of the web application from scratch. There are a number of ways to do authentication in Ruby on Rails. The salted hash loging generator is one popular method to do user authentication in Rails. Another method is the ActiveRBAC. RBAC stands for: Role Based Access Control. The nice thing about ActiveBRAC is that it offers more features the most important of which is allowing users to access parts of the web application based on roles. To get started, try your hands with this well-written ActiveRBAC tutorial.

Saturday, December 23, 2006

Ruby on Rails Forum

Get more familiar with Ruby on Rails and have your Rails questions answered at the Ruby on Rails Forum.

Google Uses Scrum

Google is using the agile Scrum software development methodology.

Google Co-op

Google Co-op is Google's attempt to involve users into enhancing the results of search engines. Google believes, and rightly so, that user involvement and user creating content, tagging and ranking are the necessary supplement to automated computer algorithms. This is the spirit of the highly controversial phrase: Web 2.0.

Second Life - A Real Life Game!

It took me quite some time to grasp the concept behind Second Life. Second Life is kind of a computer game. You can think of it as a multiplayer game. The main difference is that you don't just play with 8 or 10 players, but you are playing it with hundreds of thousands of players at the same time and you can interact with any of them while you are playing the game! Another crucial difference is that the game never ends. You just log in to the game at any time and you find it going on between the massive number of people playing in it. There is no win/loose situation like in regular games.

The interesting thing about Second Life, and similar 'games', is that you can build stuff inside the game. You can build a house, you can talk to other players, you can move around and you can buy things. The mind boggling feature of Second Life is that you can buy things with real money! This concept is the hardest to understand at first when you are new to Second Life. Yet there are people making a lot of money buy building houses for example in Second Life and selling such houses to other players in Second Life! You might think that this is kind of crazy, but think of it as someone painting a picture and selling it. The people who are building or making things inside Second Life and selling them with real money to other players are like those painting a picture then selling this picture or design to others. In Second Life, you buy and sell using artificial money inside the game, but you can later go ahead and exchange such artificial game money with real US dollars. That's the really amazing thing about Second Life and the most difficult concept to grasp at first. You can try Second Life for yourself to be able to better understand the whole concept behind it.

Renting Computer Processors

EC2 is a service offered by Amazon.com. It allows you to rent computing power. Renting hard drives to store your data has been a service offered by many and used by an increasing number of consumers. Now EC2 is offering rent not of storage space, but of computing power. Computing power of course is comprised of computer processors and RAM. The interesting thing about this service is that you can rent computing power as small as a 1.7 GHz processor to as large as thousands of such processors. Such processing power is prices by the hour. A very interesting concept.

Imagine Cup 2007

I hope Egypt programmers manage to win high ranks in Imagine Cup 2007.

ITWorx Web Site Redesigned

I would like to congratulate ITWorx on the recent redesign of their web site. I have long believed they deserved such a redesign. Now their web site more closely reflects their actual size and level. Congrats to the hundreds of Egyptian Software Engineers working at ITWorx.

Friday, December 22, 2006

Ruby Inventor Speaks!

Listen to the Japanese guy who invented Ruby. Yukihiro Matsumoto is the inventor of the Ruby language.

Ruby Developers in Egypt?

I came across this interesting site today, it's called Working with Rails. It is a community web site that allows Ruby on Rails developers to add their names and other info about themselves. I found 6 Ruby on Rails developers listed under the Egypt section of the site. I added myself, so now there are 7 Ruby on Rails developers from Egypt listed at Working with Rails. I hope this number increases many folds as time passes. I'm planning to offer a brief free Ruby on Rails crash-course at Resala, Masr El Gedida branch God willing.

Thursday, December 21, 2006

Steps in Creating a Rails Application

For those new to Rails, here is a proposed sequence of steps to follow in order to make a Ruby on Rails application:

  1. Use the rails command to generate a skeleton for your web application.
  2. Create a database and its tables using MySQL. Make sure to follow Rails conventions in naming tables and table columns.
  3. Use the scaffold generator to automatically create each model and its controller and views.
  4. Manually code relationships between tables into model files.

You can now go ahead and view your web application in the browser after starting the web server.

You can start shaping up your web application from here. Go back to the controllers and views, make needed modifications then go back and view your application in the browser. Keep modifying the application files till your web application is complete and is shaped like what you have in mind.

The above sequence is merely a proposed sequence. It is specially suitable for new comers to Ruby on Rails. Sure there are alternative paths. For instance, one can start by creating an empty database, and use Ruby on Rails migrations to create the tables. One can also go about writing controllers and views by hand without first using the scaffolding features of Rails.

If you would like to use migrations rather than creating the database tables directly with MySQL, then you can follow this alternative approach:

  1. Command line prompt, rails_apps folder: rails appname
  2. MySQL command line console: create database appname_development;
  3. Generate a migration after going to the appname folder: ruby script/generate migration add_tables
  4. Edit 001_add_tables.rb file to define database tables.
  5. rake migrate
  6. For each model (~table): ruby script/generate ModelName
  7. Define relationships between database tables inside model files (appname/app/models/ModelName)
  8. ruby script/server
  9. Open your browser at: http://127.0.0.1:3000/ModelName+'s'

Wednesday, December 20, 2006

From 2D Mouse to 3D Remote

Nintendo has made the Wii Remote, a 3D remote used in playing computer games on its Nintendo's Wii game console. The Wii Remote contains sensors by which it is able to detect motion in 3D and know its position in 3D.

The typical computer mosue only moves on a 2D surface controlling a pointer on a 2D screen. Wii Remote opens the door for wireless 3D controllers that can give users a totally deeper experience. Operating systems in the future might offer a 3D interface with much richer functionality and ease of use than the 2D interfaces offered by the current popular operating systems.

New Blogger Out of Beta

Google has finally released the new version of Blogger out of beta! The new version of Blogger contains a lot of interesting and useful features and is way more convenient in terms of usability and performance than the older version. Take the tour of the new Blogger features.

Migrations in Ruby on Rails

When Ruby on Rails was first released you had to first create a database and all its tables by yourself. If you were using MySQL for instance, you could have created the database and its tables via the command line console or via PHPMyAdmin for instance. You had to do all this outside of Rails then go to Rails in order to start developing your web application.

With the introduction of migrations in Ruby on Rails, now all you have to do is create an empty database without even creating any tables in it. Then you go into Rails and write migrations. Those migrations take care of creating the database tables for you. The really interesting and useful thing about migrations is that you can expand your database by adding more tables or more columns to existing tables in an incremental way. The application would still run smoothly. Most importantly, you can role back to previous states of the database also using migrations. For instance let's say that after you had a database containing a table with 4 columns you made a migration to add a 5th column to that table. You can easily role back to the previous state of the database when it had only 4 columns by using migrations in Ruby on Rails. With complex database structures that have many tables and many columns built in an incremental way, the migration feature of Rails makes it very convenient to go back and forth between different stages of the database without worrying about spoiling it.

Computer Student Conference in Egypt

The Faculty of Computers and Information at Cairo University (FCI-CU) joins forces with the Faculty of Computers and Information Science at Ain Shams University (FCIS) to organize the Student Conference of Computers and Information (SCCI).

Tuesday, December 19, 2006

Voicemail Invasion

Voicemail is not a new concept, but so was the concept of email when Google first launched gmail. Now Google is breathing life once again into the idea of voice email, voicemail, by allowing anyone with a Google account to send voice messages via Google Talk. The ease by which sound messages are received in the email box of the person you are sending to is what makes this feature unique. Google makes it so easy to listen to the voice message one has received and can even download it as an MP3! I can envision the time when a considerable amount of emails sent back and forth between people would consist entirely or partly of a voice message. Thanks Google for popularizing this idea once more by making it so easy and convenient to use.

Monday, December 18, 2006

Using the Tab Key in Windows cmd

Hey, I admit I only knew this today! And probably would have never known it throughout my life. I've been using DOS long before DOS version 6.0. I've also been using "Command" to reach a DOS console in Windows 95 and before. I've used "cmd" since Windows 2000 and Windows XP, yet I never knew that the tab key had a special interesting function in the Windows console!

Do the following in Windows XP: Click on Start; click on Run... then type cmd to get to the command line prompt (DOS-like). Now type the first few letters of any folder and press the tab key. If that folder exists at the current place, Windows will automatically complete the name of the folder for you! I know this might be considered as a trivial thing, yet it is so handy, specially given the presence of long folder names at some times.

The more interesting thing about this issue and what really made me write about it is the fact that no matter how long you've been using tools and programs, there could be small things hidden from you that you never discover but by chance and can take really long for you to know.

Sunday, December 17, 2006

Django

Django is a web application framework based on the Python programming language in the same way Rails is a web application framework based on the Ruby programming language. Both Python and Ruby are object oriented server-side scripting languages used for developing web applications. Django and Rails offer a framework for building web applications with high speed. Both claim that PHP is tedious and that web applications built using PHP are a difficult to maintain.

Browse Faster with Fasterfox

Fasterfox several interesting tweaks to make your web browsing experience smoother and faster. You'll have to be using Firefox of course.

Arabic Search Engine

Developers of Maktoob are releasing the beta version of an Arabic Search Engine.

Friday, December 15, 2006

Learning Ruby

Ruby is a server side scripting language, like ASP and PHP. Ruby is built from the ground up to be completely object oriented. It has elegant syntax which helps write beautiful code. If you are already acquainted with object oriented programming through C++ or Java you'll find learning Ruby easy and exciting. Go ahead and try Ruby online!

Death of the Web Hosting Business?

Google is making a tremendous leap which might spell a sharp turn in the web hosting business. The leap is almost as massive as the one Google made when it announced gmail and it's 1 GB storage when the other big players only offered 6 or 2 MB of free email storage.

Now Google is offering free hosting space and tools for everyone! All you have to do is just purchase a domain name from one of their partners for $10 per year and you get the storage for free from Google! Amazing.

I wonder what is Google up to next. In any case, I believe this will have a massive impact on the web hosting business scene in the months to come, specially if Google follows this up with additional surprises.

Thursday, December 14, 2006

Planning a Web Application

Getting Real is a book by 37signals, creators of the popular project management and collaboration web application Basecamp from which the Ruby on Rails framework emerged. The book discusses a complete methodology for rapidly developing elegant web applications. Have a look at the free online version of the book.

Wednesday, December 13, 2006

HTML + CSS Training at Resala

I'm currently delivering a brief mini-course at Resala Masr El Gedida introducing HTML over 4 sessions of 1.5 hours each. That training starts at 10:00 AM every Friday. I've already delivered the first session.

I'll also, God willing, be touching upon CSS so that new comers to web development/web design would make neat web sites from the start without suffering from using the deprecated font tag or struggling with the table tag to define page layout.

This mini-course at Resala is totally free of charge is is being delivered in the small 8-computers lab at the Masr El Gedida branch of Resala.

I really enjoyed delivering the first session a lot. I'm thinking of volunteering to deliver a brief introductory course about Ruby on Rails at Resala also after I finish the current one God willing. A prerequisite for attending such a course would have to be at least some knowledge of web development in either PHP or ASP in addition to awareness of object oriented programming concepts.

You may call Ahmed Momtaz or Islam who are responsible for the computer lab at Resala Masr El Gedida via one of the following phone numbers: 6207801 / 6207802 / 6207803 / 6207804 /6207805 / 6207806. Then ask to be connected to the "Computer Training Center". You can ask Ahmed or Islam about the time the course is starting or about the availability of other free courses delivered by other volunteers.

If you are expert in some IT field and you have a talent in training, perhaps you may like to volunteer and deliver some course at Resala. You may call 19450 using a regular phone line to be routed to the Resala branch nearest to you.

Tuesday, December 12, 2006

Java Developer Conference in Egypt

After organizing the ESEA 2006 job fair, the Egyptian Software Engineers Association is joining forces with the Egyptian Java Users Group to host the Java Developer Conference in Egypt on the 20th of January 2007. It will be held in the Saraya Hall of InterContinental Citystars Hotel.

Saturday, December 09, 2006

Extreme Programming

I've bumped into Extreme Programming a couple of years ago. I found the concept to be extremely interesting. The aspect that caught my attention most was the pair programming concept found in XP. This aspect of Extreme Programming lets two software developers sit side by side at the same computer, one of them writes code while the other observes and comments whenever needed! The concept at first sight sounded counterproductive. At first glance it appears that a project would take double the time it should because half the programmers are not coding and are sitting idle. In practice however, the concept of pair programming actually reduces testing and debugging time. At the end, the software project my go faster or at the same pace of a project where pair programming was not used. Why bother then and go for pair programming if the project would take almost the same time? The answer is that with pair programming the code is much more robust and the system is tighter and more stable.

Extreme programming has many other interesting features and concepts. Get to know more about it by having a look at those XP rules.

Friday, December 08, 2006

Make a New Linux!

Linux From Scratch provides you with "step-by-step instructions for building your own custom Linux system." I found the idea amazingly interesting a couple of years ago when I bumped into it. Although I have not tried it myself, yet I believe there are those out there who would love to give it a try.

I just came across their web site a while ago and I noticed it had a sleeker cleaner look. This made it look much more appealing to me. After all this could reflect a more tidied and user friendly approach in their step-by step instructions. I remember last time a sow their site a couple of years back it looked so geek-like. Now it's neat.

You can think of LFS (Linux From Scratch) as a book which gives you instructions on how to compile different bits of source code, taken from the open source community of course, to finally arrive at a Linux operating system. This OS will be unique because you are the one who built it. You may decide to take it further and pass it around. Who knows, it might turn out to be a popular Linux distro. Perhaps you can name it after your own name too!

It came to my mind that perhaps one of the tests one could make to an job applicant is to provide him/her with the LFS web site and ask him/her to build a Linux distro. This will show how the applicant can read and understand English, solve problems and show perseverance. Perhaps it could be too long for a mini-project for job assessment. Maybe it would be a better idea to make applying LFS be a graduation project for Computer Engineering grads for instance. That would be interesting. They also would have the time to build a usable and useful distro. I hope some Computer Science or Computer Engineering students in Egypt pick up this idea and take it for their graduation projects. Would be a really good exercise in problem solving, and in learning new technologies and how things work. Perhaps the distro they come up with too could be of use and even wide distribution and adoption in our community later on.

Tuesday, December 05, 2006

JavaScript 1.7

JavaScript is cool. JavaScript 1.6 had been the one in use. Now JavaScript 1.7 must be cooler and Firefox 2 is making use of it! I wonder what kind of impact this new version of JavaScript would have on AJAX.

Microsummaries in Firefox 2

Firefox 2 is introducing some interesting feature called microsummaries. Normally web pages have static titles, which appear in the title bar and are used when bookmarking a web page. Microsummaries allows those previously static bookmark names to be dynamic and change along time. I'm still puzzled about the practical usefulness of this feature, maybe I don't understand it well still, but perhaps its importance becomes clearer when it is combined with RSS/Atom feeds. Maybe that's why Firefox is introducing it, having been a leader in supporting feeds since earlier versions of Firefox.

Internet Explorer 7 - Final Push

Microsoft is pushing Internet Explorer 7 now to the rest of the people who have not installed it yet. They are pushing it via the Windows Update feature so that everyone will be automatically updated. Looks like a response to the release of Firefox 2.

Sunday, December 03, 2006

OASIS

OASIS is developing standards for structured information. XML is a key component of their standards.

Monday, November 27, 2006

Rails and Clean URLs

One cool feature about Ruby on Rails is that clean URLs is something that comes natural. Rails uses clean URLs by default. I love this. This is because I have suffered a lot with Drupal trying to make it use clean URLs. I also found it needed some work with PHP trying to make it use clean URLs too.

The W3C web site uses clean URLs in all its web pages. One interesting article in the W3C about clean URLs talks about this. The article though comes under the name Cool URIs.

Saturday, November 25, 2006

Game Programming in Egypt!

A repeated dream of many Egyptian programmers, specially students, is to go into game programming. I am talking about 3D games, Doom style, that are action games or adventure games. A group of ambiguous and bright minded Egyptians are developing a 3D game engine and have started a software company in the Smart Village with the name of Khayal. In order to make a demo of their 3D game engine, which they call the physics engine, they have created a game that uses such engine. The game is called Boo7a.

Tuesday, November 21, 2006

Google AJAX Based Web Site Builder

Google Page Creator is not the first to offer do-it-yourself web site creation. Geocities, now part of Yahoo!, and many others have offered long ago 'easy' means for the pubic to create their own web sites without having to learn HTML or other web technologies. The spin Google has added is to use AJAX instead of low-usability forms or relatively heavy Java applets to enable users to develop their sites. Google again is pushing users towards the web, making the browser as powerful as desktop applications, and is doing so through AJAX.

Perhaps Yahoo! will respond with an AJAX web site builder. Who knows.

Saturday, November 18, 2006

Google Boosts AJAX on Java

Google is maintaining its push for AJAX giving Java developers a convenient way to develop web applications with front ends that are almost on par with desktop applications. This move is driving Microsoft crazy because it is making the operating system less important. Take a look at the Google Web Toolkit.

Thursday, November 16, 2006

Ruby on Rails Gaining Popularity

Ruby on Rails is gaining popularity as indicated by Google Trends.

Wednesday, November 15, 2006

Usability Study

When developing a web site, it's a good idea to keep usability in mind. One can make usability studies in order to find out how to improve the design of his web site, but good usability studies can be expensive. Another good alternative I often resort to is to follow the findings of large companies that have already invested in usability studies. Their findings can be safely assumed to be strong indicators to what a site with good usability should be like.

Have a look at how Google redesigned its Google Base homepage. Google is a big fan of usability.

Tuesday, November 14, 2006

Symfony

Symfony is a PHP web framework. Time will show if it will gain the same popularity of the Python framework Django and the Ruby framework Rails.

Help Google Classify Images

You can help Google in classifying images. Your efforts will have a direct impact on the performance of Google Image Search.

The regular Google search indexes and classifies web pages based mainly on their text content. Text is relatively easy to process and 'understand' at least in comparison to images. Images on the other hand are extremely hard to understand automatically by a computer without the help of humans. Image processing and comprehension is still a branch of AI that is under heavy research in academic places and in practice needs a lot of resources. For an online search engine to do the same processing on a astronomical number of diverse images present online this requires an unrealistic amount of resources which is not practical, and even then the system will not be fail proof. The only an online search engine can effectively 'understand' images is through the help of humans. By introducing Google Image Labeler, Google is allowing humans to help it classify images found on the Internet. An interesting thing I just noticed today is that Google asks the permission of webmasters to use images in their web sites as content for the Image Labeler. This feature is part of the Google's Webmaster Tools.

Wednesday, November 08, 2006

Yahoo! Follows Google

Looks like Yahoo! is starting its own Google Base alternative. Welcome to Yahoo! Time Capsule. Although at first sight they look as if they are completely different things, yet I get the feeling the time capsule is an initial test and seed by Yahoo to develop its own version of Google Base. Time will show us what it will turn up to be. Perhaps it is just some sort of experiment by Yahoo! and a way to let the user community help it categorize content.

The interesting thing is that Yahoo! is following Google in using far fetched mind expanding ideas, by saying the capsule will be opened in year 2020 same way as Google set a far date for reaching its goal of organizing the world's information. Yahoo! selection of topic also reminds us of Google's early lunar jobs ad.

Wednesday, November 01, 2006

Google Wiki

Google is adding wiki service to its arsenal of web applications. It looks like the wiki will be sooner or later integrated into Google Docs & Spreadsheets. This is really cool, I love wikis. It was my first time to hear about JotSpot which Google has just acquired. I really wish I had tried it before Google acquired it in order to experience the difference in service after Google's acquisition. Anyway, it seems the JotSpot service was not for free (I'm not sure if they had a free edition), so I wouldn't have tried it anyway if I had known about it earlier. I love using free stuff, perhaps that one of the strong reasons I love Google.

Saturday, October 28, 2006

Egypt and Google CodeJam

I will still not loose the dream of seeing bright Egyptian software developers climbing up the ladder and reaching top ranks in the Google CodeJam competition. The top 3 winners this year, 2006, were from Russia and USA. I still believe that one day not so far from now an Egyptian will reach the top.

Perhaps as Google comes to Egypt, it will make a CodeJam for the region.

Saturday, October 21, 2006

Control the Googlebot!

Hey, this is really really an interesting new feature! You can actually control the speed at which Google spiders your website! Amazing, isn't it?

Google Webmaster Tools (previously called Google Sitemaps), provides you with interesting stats about how often the Googlebot (Google's web spider/crawler) is actually visiting and crawling your site. The amazing thing is that you can even control the frequency by which the Google Bot is visiting your site to make it either visit your site more often or less often than it normally does. The stats show on a graph plotted against time the number of pages the spider has crawled in your website per day, the number of kilobytes it has downloaded and the time it spent downloading your web site pages each day.

Kudoz again Google.

Wednesday, October 18, 2006

Google Office in Cairo!

At long last, Google has decided to open office in Cairo, according to ITP.

We have eagerly sought after this for long and even created a wiki page asking for the establishment of Google Egypt.

Although the regional Google office in Cairo is said to focus on marketing activities, yet I still believe and strongly hope that such presence would evolve one not-so-far day into a fully fledged Google R&D development center to be based in Cairo, similar to the one Google has in India.

Cool Word Processing!

Oh my gosh! How more cool can word processing be than this? Although I have been using Google Docs (formerly Writely) for a while and loved its functionality and features, yet I just discovered a feature I have not used before and it turned out to be really cool.

Google Docs allows you to see past versions of your document. You do not have to setup anything or configure it to do so, it does so by default! At any given time, you can go to your document and see past "Revisions" of it. It's like a time machine where you can go back in time. It's a really really cool feature that is not only cool but actually useful.

To use this exciting feature in Google Docs, all you have to do is open a document then click on the Revisions tab. Then select any point in time, in the past, and you will find in front of you how the document changed since that time! Amazing!

Kudos for you Google again and a gain.

Tuesday, October 17, 2006

AJAX, Flash and Java Applets

The web first started as static HTML pages. Later dynamic web pages were introduced putting life into the web by interacting with databases and the user. Those dynamic web pages collectively enabled web developers to develop web applications using a server side scripting language of their choice such as Perl, PHP, ASP, JSP, Python among several others.

The problem with web applications was that compared to regular desktop applications they were pretty much slow in response time. An attempt to answer this issue came from Sun by introducing and strongly pushing Java Applets as the way ahead to create dynamic rich web applications that were responsive much the same as their desktop counterparts.

The problem with Java Applets was that they were heavy to load, not to mention you had to have the JVM installed on your machine. Microsoft, being an opponent of Java due to its threat on Microsoft's operating system and office monopoly, tried to push Flash forward as an alternative for Java Applets. Indeed Microsoft managed to throw Java Applets from their hoped for place and position Flash instead. First Flash was touted as the means to do animation for the web, which was also what Sun was pushing Java Applets to be, a way of making rich graphics and animation on the web, later Flash was pushed further and proposed as a method for making rich web clients that are interactive with users much the same as web applications, Java Applets tried to do so as well but failed.

While both Java Applets and Flash failed to gain widespread acceptance as the way ahead for rich web applications that mimicked desktop applications in their look and feel and response time, JavaScript attempted to be a way to perform some sorts of animation on the web as well as interactivity with the user within the web browser (client side interactivity). Yet JavaScript by itself fell short of creating the sought after web applications due to its inability to talk to the server.

Enter AJAX. AJAX appears to be the answer for what Flash and Java Applets failed to achieve. Indeed Google is pushing AJAX forward and using it in many of its applications such as Gmail, Google Calendar, Google Docs & Spreadsheets, Google Maps and many others.

Monday, October 16, 2006

Ruby on Rails

Today I managed at last to make Ruby on Rails work on my website hosted at BlueHost. Ruby on Rails is a web application framework that lets you create web applications in a more neat and much faster way than using PHP. Here is a simple introduction to what Ruby on Rails is all about.

Wednesday, October 11, 2006

Google Office!

Google has just integrated it's online word processing and spreadsheets applications. Google is aiming at an online web based alternative to Microsoft Office. Go try your hands with Google Docs & Spreadsheets.

Tuesday, October 10, 2006

Same Time Document Editing!

You can think of Writely as the Google version of Microsoft Word. You might ask, what's the big deal, Word is doing fine already. But let me tell you why I love Writely.

First of all, all your documents are saved online instead of being saved on your physical computer. This means if your computer breaks down, a hardware failure happens, your hard drive is locked or damaged or any other disaster happens to your computer, your documents will still be safe, having been saved online instead of being saved on your physical machine. Of course you access your online document via a username and password, so don't worry about any intruder gaining access to your private documents because they are secure. Another cool thing is that you might switch computers, in this case you can still easily access all your documents, because simply they are stored online. If you want to access your docs from home, from work or from anywhere, they are always there. Sure there is a catch to this, which is the computer must be connected to the Internet, but who hasn't got a net connection these days anyway. Hotspots are sprouting around, so even in the streets you'll have access to the net. The future is pointing towards total connectivity where you can access the net from just about anywhere.

Besides being able to access your documents from any computer, the second cool feature of Writely is that you can decide to share one or more of your documents with a friend or colleague. You may allow one of your friends to view a document you wrote. You may even give this friend permission not only to view your document but to edit it as well! Amazing! You are in control. You can allow as many people as you like to view or edit the documents you with them to view or edit. You will realize how cool this feature is when you actually use it. If you are working on a document of yours and one of your friends, whom you've granted permission to edit that document, is editing it at the same time, you almost instantly see the edits as your friend types them! Try it, because it is a lot of fun.

Sunday, October 08, 2006

Linux is Easier to install than Windows!

It is not secret that installing Linux on your machine is always more difficult than installing Windows. At least that's what I have believed up until yesterday when I bought my new PC. I have previously tried installing Linux in my machine years ago. I know that installing it is usually not smooth, sometimes it misses the monitor, other times it cannot figure out the modem. I remember the hell of trying to make Linux connect to the Internet via a dial up modem. One might argue that it was not fault of Linux, but that such internal modems have been designed for Microsoft Windows and blaming Microsoft for monopolizing the market. Yet the point was still valid, if you tried going online using those dial up modems you could be lucky after some hard work to succeed. I remember having to recompile the kernel, an older version of it, in order for the dial up modem to work.

When I bought my new computer, I did have in mind putting Linux on it, at least as one of the options. The old miseries of trying to install Linux and making it figure out all the hardware came to my mind. I hoped that I can ask those who have tried and select hardware that is Linux-friendly. Yet I did non of that. I just bought the hardware and prayed it would work smoothly with Linux.

It seems that my prayers have been answered. Yesterday I installed Novel's SUSE 10.1 distro of Linux on my new machine. In below an hour Linux was setup and all hardware configured except just for the wifi card. The following day I decided to scrap Linux and install Windows just to check if the wifi card was working or not. The wifi card had a CD with it which said it has software and drivers for Windows only. Not so nice of them, but that was the case. Anyway, I installed windows, but guess what. After installing Windows it did not detect by itself the sound card, the LAN card nor the video card! I had to use the CD that came with the motherboard to set them up. Linux had done that the previous day by itself and did so very smoothly! That was the time when I realized, and for the fist time, that installing Linux can be easier than installing Windows!

Saturday, October 07, 2006

Google Code Search!

Google blog announces Google Code Search. This is really amazing. Image search, video search, blog search, all that can be accepted normally, but code search! That is really amazing. I'll try to explore it further. But I think it is a great thing. I've been using Source Forge to look for code, now Google Code Search will push open source to the limits. I believe it's effect on the web would be enormous in the coming period and beyond.