Wednesday, February 07, 2007
Manage Email Traffic With Gmail Filters
The problem with this is that I do not get to track how many CVs my client has received as a result of the job ad I had put for him. I get no idea about the results of the job ad. Each time I have to ask my clients about the results, and even then I do not get a full picture still.
I later thought of putting my own email address in the job ad instead of the email address of my client. Now CVs will all come to me first. But given the large number of CVs that each job ad I send creates, manually forwarding each CV that arrives to each client would be a tedious job, not to mention error prone.
Now gmail's filter feature comes to the rescue. First of all, I have set up an auto forward to forward all email coming to my cv @ egypt-it-jobs.com email to go to my gmail account. From there, I have set up a filter for each job ad I post. The each filter forwards all incoming email that was sent to cv @ egypt-it-jobs.com to the appropriate client depending on a numeric code that candidates write in the subject line. Each job ad has a different numeric code and in the job ad I instruct candidates to write it in the subject line of the email that contains their CV.
The only problem with this system is that some candidates do not follow the instructions I have given in the job ad and do not write the job ad code in the subject line of their email when sending their CV to me. Of course in this case the automatic forwarding of the filter does not work and I have to manually forward their email to the correct client. Yet again the percentage of those whom do not follow my clear instructions in the job ad is small. Moreover, usually such candidates either do not possess the ability to read, understand and follows instructions or are not interested enough in the job ad to read it carefully. In both cases such candidates are not really a desirable type of candidates to be selected for the job, so missing their CVs is not a big loss, actually it is a gain, for it saves my client from going through bad CVs.
Other than that, the system has worked great automatically forwarding the incoming candidate CVs to the appropriate client and keeping a copy in my inbox for later review or just to count the number of CVs that have been sent as a result of each job ad.
Tuesday, February 06, 2007
A Massive Database
If Google Base allowed users to store their structured data there privately and access such data securely then maybe in the future no one will need to keep his own database any more, one can just use the massive Google Base to store his application's structured data! What a thought.
Before getting too excited though about this idea, I don't see any reason why Google might be interested in offering such ability to store their structured data privately in Google Base. However, if Google finds out a way to make this option available to users, then this will change the whole landscape of databases and applications that use databases extensively.
Dig For Code Easily
With Google Code Search around, one can very easily find a programming function that performs what he needs. I think that such ease of search might entice many computer science students into using it to help them out with their programming assignment. It's a brave new world, I believe it will change the way things are done in the software development world. Google is giving another massive push to open source which is qualitatively different from any other push open source had ever been given.
Refer to the Google Code Search FAQ for more info about its functionality.
Sunday, February 04, 2007
Shared Hosting Challenged by Grid
The catch, however, is in their GPU (grid performance unit) which charges their customers extra monthly fees if they happen to use more CPU resources. Their model though sounds interesting and is nice to examine.
Friday, February 02, 2007
Google Co-op and Yahoo My Web
Jimmy Wales' idea is to develop a search engine that relies heavily on users to refine the search results. Google introduced Co-op to do just that, using users as a source for search results. Yahoo aims at building the same network of users who are building search results through its My Web initiative. Both Yahoo My Web and Google Co-op are still in beta.
My personal opinion is that the push given by Amazon to Jimmy Wales' idea will still not be able to dethrone Google or Yahoo from their high thrones in the search engine kingdom. They will just fight back ferociously with the same idea of Jimmy Wales, using the knowledge of users in an online social networking setting to build and refine their search engine results. The good news is that the push by Jimmy Wales and Amazon however will make the move towards this take place sooner, which means a better search experience for users.
Have a look at Jimmy Wale's budding search engine.
ISO HTML
One of the interesting features for instance of ISO HTML is that if you use an <h1> tag you cannot use an <h3> tag directly after it, but you must follow the <h1> tag with an <h2> first then you may use an <h3> after that. I think this gives you the picture and a taste of what ISO HTML is all about. It tries to make HTML more neat by removing deprecated elements and adding some restrictions to come up with a tighter HTML than that of the W3C.
The question remains however on who will be using such a standard and whether it will ever gain popularity on the web. I personally believe it will not, yet still I find it interesting to use it.
Thursday, February 01, 2007
The Resonance Effect in Google Video
Google seems to calculate the popularity of a video by counting the number of users who have clicked on it to view it. Perhaps they have a more complex algorithm for determining popularity including how many people viewed the video till the end as well as other criteria. Yet still the resonance effect dramatically accelerates some videos and keeps them at the top much longer than they deserve.
To counter this effect, Google introduced the Movers & Shakers video list which lists videos that are gaining popularity quickly even if their popularity has not reached a high level, but what counts here is speed of increase in popularity and not the popularity rank itself. This has helped a lot in reducing the resonance effect by giving a higher chance for new videos to climb up the popularity ladder and shake down old videos which had clung for long to the top 100 list due to the resonance effect.
Google then introduced yet another feature to help reduce the resonance effect. If a user is signed in with his Google account when visiting Google Video, his popular list is customized to reflect his own interests depending on his search and video viewing history. This again helped reduce the resonance effect.
The final push that Google has made till now to reduce the resonance effect even more was to introduce Recommendations which again rely on each users video search history yet rely less on the popularity of a video and more on the users own interests.
Although social networks and community driven content, which are said to be part of the buzz word Web 2.0, are expected to give even more democracy to the Internet by letting people decide what is good and what is bad, what is popular and what is not, yet it looks like Google should also work on developing a more robust algorithm to determine the popularity or the 'niceness' of a video on not just rely on simple calculations of how many users have viewed a video.
Perhaps Google should consider adding a feature similar to the fascinating interestingness feature found at Flickr which is able to automatically discover marvelous photos using a complex algorithm.
Creating Email Autoresponders in cPanel
Wednesday, January 31, 2007
3D Modeling Made Easy
Tuesday, January 30, 2007
24-Hour PHP Competition
Monday, January 29, 2007
SQLite Rocks
Of course SQLite would be suitable for specific purposes only. Most production web applications cannot rely on it. Yet the idea itself of having such a nice way to do database transactions in itself is interesting.
Cairo ICT 2007
The Cairo ICT 2006 report provides statistics on last years exhibition.
QEDWiki - Easier than Visual Basic
Women Can Code Too
Version Control in Open Source
MVC Design Pattern Gets More Popular
IRC Still Alive
I discovered that the problem was that I was using the popular mIRC program which was not so user friendly actually. I downloaded and installed XChat and was able to do IRC at once. I love it. You can download an XChat version for windows from here.
Saturday, January 27, 2007
Googlebombs Deactivated
Friday, January 26, 2007
Thursday, January 25, 2007
Google Imitates Yahoo! Video
When Google bought YouTube, the expectation was that Google would in one way or another merge both Google Video and YouTube into one thing. It was expected that YouTube might ultimately be dissolved into Google Video, since both provide essentially the same service which is hosting video content and building video sharing communities on top of that.
Today, Google announced that it would continue supporting YouTube as a separate entity providing video hosting for its video sharing community. On the other hand, Google Video will be refocused to act as a search engine for videos on the whole web. Google Video allowed you to search only content that is hosted on Google Videos itself. Starting from today, it allows you to search for content present on YouTube as well. Later on Google will add more video content providers to its video search and ultimately search all videos found on the web. This brings us to essentially what Yahoo! Videos was doing ever since it first started.
This move sounds reasonable. When you use Google Images it allows you to search the whole web for images. So it's reasonable enough that when you use Google Video it would allow you to search the whole web for videos.
This explanation today by Google clarifies things out. It also explains why Google kept using YouTube instead of Google Video to publish its own videos ever since its acquisition of YouTube. I wonder if the next step would be to disable the hosting of new videos at Google Video and to make this only possible via YouTube. We'll just have to wait and see.
Monday, January 22, 2007
Satyam in Egypt's Smart Village
Sunday, January 21, 2007
Egypt vs. India in IT Exports
Currently, Egypt's IT industry is valued at $250 million while that of India is valued at $30.4 billion. By 2010, Egypt aims to reach $1.2 billion in IT exports, while India aims to reach $96.9 billion by that time.
I hope these numbers act as a wake up call for Egyptians working in the IT industry and make them realise the potential ahead of us.
AJAX or Flash?
Google has long pushed AJAX to the limits in order to provide rich user interfaces on the Web. Despite the growing interest in and excitement about AJAX, many cool web applications use Flash to achieve a rich interactive online user experience. Although Google is using AJAX most of its web applications such as gmail, Google Docs & Spreadsheets and Google Maps, yet it's interesting to note that in one of Google's applications they use Flash instead. This application is Google Analytics.
Google Uses Microsoft Colors
My guess is that grouping those four colors represents a product made to be used by everyone. Windows was launched to be the easy operating system for everyone, not for an exclusive group. Google was launched to be the same, a service that is easy to use by everyone, not an exclusive group. I don't know why those four colors in particular convey this meaning, but sure marketing research experts are the ones that have the answer.
Friday, January 19, 2007
Tag or Label?
I wondered why Google used this term instead of the other popular one. My first impression was that Google is trying to have its own terminology, same thing for instance as when Netscape Navigator had "bookmarks" while Internet Explorer has "favorites", another similar pair of terms in the two browsers is "reload" and "refresh" and so on.
When Google used the term label instead of tags in its new version of Blogger I said to myself this might be to continue on the same tradition of gmail. But I noticed something that made me get puzzled. I found that in Google Docs & Spreadsheets, Google does not use the term label and used the term tag instead! That was really puzzling to me and got me thinking in a different path asking myself if the two terms actually had different meanings.
Perhaps Google is still using the term tag in Google Docs & Spreadsheets as a continuation from its predecessor Writely. I suggest that Google would unify its terminology and use the term label there as well. Or do you think Google should instead go with the rest of the world and use the popular and almost standard term tag in gmail, Blogger and any other of its services?
By the way, Google uses the term labels in Google Bookmarks while it uses the term tags in Google Reader. Is this making the situation more puzzling or is it giving any clues to the existence of some subtle difference between a label and a tag?
In Google Video and in Picasa Web Albums, Google uses the term tag. Are you starting to see a common thread now and a consistent pattern emerging on when to use the term tag and when to use the other term label, or is it getting even more puzzling?
Thursday, January 18, 2007
Web Design Course at Resala
My plan is to start with the basics of HTML, give a little CSS then move on to Dreamweaver. I plan to make the course light and simple. I want it to act as an introduction and to pave the way for a correct start in web design.
The course will start tomorrow Friday 20th of January 2007, God willing. It will be from 1 PM to 3 PM every Friday at the Masr El Gedida branch of Resala. The course is free to attend.
Intel Makes Dust Resistant Computers
I've been increasingly thinking about why not someone design a computer specially for our type of environment. A computer that is dust-resistant and can work efficiently in high temperatures. That's why I was delighted to know that Intel is developing computers that can accommodate environments with high temperatures, high humidity and dust. The ruggedized PC was initially designed for India, but other countries are expressing interest in it.
I believe when such dust-resistant computers enter the mainstream Egyptian hardware market they will be a blockbuster.
Wednesday, January 17, 2007
Thousands of Scripts
A Crash Course in Smarty
PHP Access Control
Tuesday, January 16, 2007
Excellent Training Concepts
MDC 2007 in Cairo
Saturday, January 13, 2007
Cool Web Design
Black Box Testing
Friday, January 12, 2007
XFN and Social Networking
The XFN code indicating the relationship between you and the owner of the blog you are linking to is written inside the XHTML anchor tag itself. Here are some examples.
So what's so good about this? If XFN spreads out in links inside blogs and other community web spaces, then a new generation of web applications will emerge able to read such relationships and understand them. This can result in a huge social networking connecting people on the web to one another.
Thursday, January 11, 2007
SMF - An Easy to Upgrade Forum System
With SMF, each time a new version is out, all you have to do to upgrade to that latest version is to click on a single button inside the admin area of the installed forum system itself, and the magic happens, it self upgrades to the latest version, with no problems taking place. For me, this is perhaps that brightest thing I found in SMF, specially after the headache I had trying to upgrade my Drupal to a new version, loosing my old data in the process.
Wednesday, January 10, 2007
Egypt Going Digital
Egypt IT Exports Reach $700 Million
Tuesday, January 09, 2007
Apple Makes Mobile Phones
Monday, January 08, 2007
Is PostgreSQL better than MySQL?
Death of XML?
Some argue that JSON would be a much better alternative than AJAX which relies on XML. Time will prove which technology will win in the future.
Is Google Using Extreme Programming?
First, Google toys with very simple applications with very few features, then adds more features later on based on usage patterns and feedback of users. Take for instance Google Page Creator. The feature set it presents is really minimal. This is not only good for users, making the application easy to use and less confusing by not providing too much choices, but also this is a method for developing applications, by starting with very basic functionality then adding only what users need based on their feedback and usage patterns.
As for user stories, Google tries to collect them using several means, two of which are discussion groups and direct requests for feedback and 'testimonials' in the form of stories. Here are some testimonials about Google Docs & Spreadsheets. In the Google Docs & Spreadsheets Help Group there is a special section dedicated for encouraging you to share your storey about Google Docs & Spreadsheets. Those stories and those testimonials are not for the sake of testimonials, but Google is using them to develop its applications. This is the methodology Google is following. Sure such a methodology is unique, not all applications can be built this way, for Google has a huge user base from which it can sculpture its applications by feeding on their feedback, stories and usage patterns.
Here is another page from Google pausing as a testimonial page, enticing people to share their stories in the hope of getting features there. A top link at the page explicitly calls for users to Share your story with us.
Sunday, January 07, 2007
Bad Web Sites
Friday, January 05, 2007
Java SE 6
Google Alerts
I really find them handy. For instance, I can create an alert with my own name as the search term. Then whenever a website mentions my name Google sends me an alert in my email box. That's pretty cool. I also keep track of topics that interest me, for instance I have an alert for "Google Egypt." I'm able to keep track of anything said on the web about this topic. Go ahead and try using Google Alerts with a search term that interests you.
Thursday, January 04, 2007
Latin America Code Jam
Google uses Perforce SCM for Version Control
Faster Web Browsing
Google Web Accelerator uses various strategies to make your web pages load faster, including:
- Sending your page requests through Google machines dedicated to handling Google Web Accelerator traffic.
- Storing copies of frequently looked at pages to make them quickly accessible.
- Downloading only the updates if a web page has changed slightly since you last viewed it.
- Prefetching certain pages onto your computer in advance.
- Managing your Internet connection to reduce delays.
- Compressing data before sending it to your computer.
Sunday, December 31, 2006
Intel Installs WiMAX in an Egyptian Village!
Thursday, December 28, 2006
Analysis and Design
RadRails Tutorial
RadRails Demo Video
Wednesday, December 27, 2006
Cheat Sheet for Google Search
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
EasyEclipse for C and C++
Integrating RadRails into InstantRails
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
- Start InstantRails.
- Open a Ruby console window.
- cd your_app_name.
- ruby script/plugin discover.
- Reply by no to all questions, except the two questions for http://svn.rails-engines.org/ and https://activerbac.turingstudio.com/.
- ruby script/plugin install engines.
- ruby script/plugin install active_rbac.
Congrats, you're done!
Monday, December 25, 2006
Trying Microsoft Office 2007
RadRails - IDE for Ruby on Rails
Sunday, December 24, 2006
Wikipedia Challenges Google
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
Converting ASP into PHP
Agile Software Development
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
Saturday, December 23, 2006
Ruby on Rails Forum
Google Co-op
Second Life - A Real Life Game!
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
ITWorx Web Site Redesigned
Friday, December 22, 2006
Ruby Inventor Speaks!
Ruby Developers in Egypt?
Thursday, December 21, 2006
Steps in Creating a Rails Application
- Use the rails command to generate a skeleton for your web application.
- Create a database and its tables using MySQL. Make sure to follow Rails conventions in naming tables and table columns.
- Use the scaffold generator to automatically create each model and its controller and views.
- 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:
- Command line prompt, rails_apps folder: rails appname
- MySQL command line console: create database appname_development;
- Generate a migration after going to the appname folder: ruby script/generate migration add_tables
- Edit 001_add_tables.rb file to define database tables.
- rake migrate
- For each model (~table): ruby script/generate ModelName
- Define relationships between database tables inside model files (appname/app/models/ModelName)
- ruby script/server
- Open your browser at: http://127.0.0.1:3000/ModelName+'s'
Wednesday, December 20, 2006
From 2D Mouse to 3D Remote
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
Migrations in Ruby on Rails
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
Tuesday, December 19, 2006
Voicemail Invasion
Monday, December 18, 2006
Using the Tab Key in Windows cmd
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
Browse Faster with Fasterfox
Arabic Search Engine
Friday, December 15, 2006
Learning Ruby
Death of the Web Hosting Business?
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
Wednesday, December 13, 2006
HTML + CSS Training at Resala
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
Saturday, December 09, 2006
Extreme Programming
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!
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.