Linux has been promoted as the free alternative to Microsoft Windows. Despite years of heavy promotion by its dedicated fans, Linux still remains a competitor to Windows only for server machines but looses ground when it comes to desktop computers. Linux started to gain some ground on the desktop computer front, yet it still has a long way to go.
The two main obstacles facing Linux when trying to gain ground in the desktop area are first that a large number of users are already familiar with using Windows and second because there is a huge amount of software applications that run on Windows yet does not run on Linux.
Enter ReactOS. ReactOS attempts to become an open source alternative to Microsoft Windows. An alternative in the real sense of the word, that is it can run all software applications that have been developed for Windows! That's a freakingly interesting idea. If they succeed in achieving their goal, I believe that could deal a heavy blow to the Windows operating system. I wonder then how will Microsoft React.
Wednesday, April 04, 2007
Tuesday, April 03, 2007
Seaside - A Smalltalk Framework
Although I do not do any Smalltalk myself yet I was interested in knowing about Seaside which, according to the official website, is "a framework for developing sophisticated web applications in Smalltalk."
What interested me most was that the developers of Seaside boldly stated that their framework is breaking with common accepted best practices in web development. Usually a new framework tries to use all sorts of buzz words and tell you it conforms with all widespread as well as new best practices, yet finding a framework that is bold enough to state upfront that it is breaking with common accepted best practices is something that would attract my attention. I'll try to learn more about Seaside, not in order to develop web applications with Smalltalk, but perhaps to learn some concepts on which that framework is build hopefully to carry them over to other languages which I do use.
What interested me most was that the developers of Seaside boldly stated that their framework is breaking with common accepted best practices in web development. Usually a new framework tries to use all sorts of buzz words and tell you it conforms with all widespread as well as new best practices, yet finding a framework that is bold enough to state upfront that it is breaking with common accepted best practices is something that would attract my attention. I'll try to learn more about Seaside, not in order to develop web applications with Smalltalk, but perhaps to learn some concepts on which that framework is build hopefully to carry them over to other languages which I do use.
Cyclomatic Complexity
Cyclomatic Complexity is an interesting concept in computer science. It is one of the methods by which the complexity a piece of software code can be measured.
Dreamweaver CS3 Announced
I was excited about the announcment of Adobe Dreamweaver CS3. I had been using Dreamewaver 8 for a while and before it used Dreamweaver MX 2004 and Dreamweaver MX. I've even used an earlier versions as well which I can't remember its name right now. I believe Dreamweaver is a really powerful product although it has a bit steeper learning curve than its competitors.
Labels:
Adobe,
Dreamweaver,
program,
web design,
web development
Vodafone Cash in Egypt
An ailing problem with ecommerce in Egypt is that credit cards are used by a tiny fraction of the population only. Even such small fraction mostly fear to use their credit card online. The bottom line is that it is usually not realistic to sell your stuff online in Egypt and expect to collect the money online via credit card. The alternative that seems to have worked till now in Egypt is cash on delivery of which Otlob has been the leader in.
Finally there is hope. Vodafine Egypt is introducing a new service in Egypt called Vodafone Cash. The service is basically a method for money transfer by which subscribers can transfer money, currently with an upper limit of 1000 LE, to one another. A subscriber can deposit money in his or her Vodafone Cash account and withdraw money from it via any 123 ATM machine. Depositing or withdrawing from one's account costs 2% of the amount.
With some money transfer services inside Cairo costing up to 7%, Vodafone Cash turns out to be an interesting and perhaps more convenient alternative. I believe such a move would dramatically nourish the budding ecommerce marketplace in Egypt.
UPDATE: Check out the Vodafone Cash FAQ at the bottom of the page.
Finally there is hope. Vodafine Egypt is introducing a new service in Egypt called Vodafone Cash. The service is basically a method for money transfer by which subscribers can transfer money, currently with an upper limit of 1000 LE, to one another. A subscriber can deposit money in his or her Vodafone Cash account and withdraw money from it via any 123 ATM machine. Depositing or withdrawing from one's account costs 2% of the amount.
With some money transfer services inside Cairo costing up to 7%, Vodafone Cash turns out to be an interesting and perhaps more convenient alternative. I believe such a move would dramatically nourish the budding ecommerce marketplace in Egypt.
UPDATE: Check out the Vodafone Cash FAQ at the bottom of the page.
Friday, March 30, 2007
Use SQLite not MySQL
When thinking of developing a new web site using PHP, it is a no brainer which database management system you will be using. MySQL has become the standard in developing web applications based on open source technologies even in the case of many enterprise Java projects. Some would prefer to use PostgreSQL due to its more complex features, yet MySQL still remains the king and a common denominator in most PHP web applications.
Although I have looked at SQLite with some interest in the past, yet I had never took it seriously as an option when creating a web application. Under "Situations Where SQLite Works Well" at the official SQLite web site, they mention the following:
Although such claims should still be verified, yet I just tend to believe them. Now if you are thinking BIG of your next killer web application which will attract millions of users, perhaps even in this case it would not hurt if you start out small at first with SQLite then switch later on to MySQL when you need to scale. As Getting Real suggest, it is better to start with a simple solution and then scale later.
Although I have looked at SQLite with some interest in the past, yet I had never took it seriously as an option when creating a web application. Under "Situations Where SQLite Works Well" at the official SQLite web site, they mention the following:
SQLite usually will work great as the database engine for low to medium traffic websites ... . The amount of web traffic that SQLite can handle depends, of course, on how heavily the website uses its database. Generally speaking, any site that gets fewer than a 100000 hits/day should work fine with SQLite.Not bad. Not bad at all.
Although such claims should still be verified, yet I just tend to believe them. Now if you are thinking BIG of your next killer web application which will attract millions of users, perhaps even in this case it would not hurt if you start out small at first with SQLite then switch later on to MySQL when you need to scale. As Getting Real suggest, it is better to start with a simple solution and then scale later.
Thursday, March 29, 2007
Google and Microsoft Fight for Egypt Students
Egypt's Business Today magazine has an interesting article this months titled Bit-by-Bit in which it sheds light on how Google is following in the footsteps of Microsoft trying to grab a share in Egypt's huge education pie.
Wednesday, March 28, 2007
Reusability Redefined
Stuck with a piece of code that you want to figure out how to write in order to add that feature to your application? Get unstuck by tapping into the massive number of lines of code that have already been written by other developers all around the world. All you have to do is just use Google Code Search to look for a piece of code similar or identical to the one you want to write. You can even specify in which programming language you want the code to be!
The open source code has always been there, but the idea of instantly having access to any part of it and having Google pinpoint the exact piece of code you are looking for from among this enormous body of code is what makes the whole idea amazing. No need to reinvent the wheel anymore. Now that's what I call real usability of code.
The open source code has always been there, but the idea of instantly having access to any part of it and having Google pinpoint the exact piece of code you are looking for from among this enormous body of code is what makes the whole idea amazing. No need to reinvent the wheel anymore. Now that's what I call real usability of code.
Saturday, March 24, 2007
3D Character Creation Made Easy
iClone enables you to easily create animated 3D characters that can be used for creating 3D movies or for other purposes.
Google AdSense in Arabic
Google supports AdSense for Search in Arabic. I hope the day comes when Google finally starts to support AdSense for content in Arabic as well. I believe it would be a tough thing for them though. First of all there is the linguistic difficulty of making being able to figure out what the content of the Arabic web page is about. Then comes the other even more difficult problem of managing click fraud and similar malicious abuse of the AdSense program.
Monday, March 19, 2007
Sending HTML Email with PHP
Here is an example showing how to send HTML email using the PHP mail function.
Sunday, March 18, 2007
Data Visualization from Google
With Google's latest acquisition, Google will be bring data visualization to a much "wider audience." Is that why Google Docs & Spreadsheets lacked charts till now? Was it a wait for an incredibly better way of visualizing data? Will Google add a presentation component to it's arsenal of applications similar in a way to Microsoft PowerPoint?
Thursday, March 15, 2007
Egypt Business Plan Competition 2007
2 million LE in cash and services are the total prizes of the Business Plan Competition which is being held for its third consecutive year in 2007. The deadline for the online submission of executive summaries is April 1st 2007. So if you have a bright IT idea and the right business plan to back it, hurry up and apply.
Wednesday, March 14, 2007
Yahoo Releases its AJAX Library into Open Source
YUI or Yahoo! User Interface Library is an open source library provided by Yahoo! that offers a rich set of code elements enabling user interface manipulation with AJAX, JavaScript, DOM, DHTML and CSS. You can download YUI from Sourceforge.
Yahoo's user interface library is an attempt to answer back to Google's GWT or Google Web Tookit. Here is where you can download GWT.
Yahoo's user interface library is an attempt to answer back to Google's GWT or Google Web Tookit. Here is where you can download GWT.
Labels:
AJAX,
CSS,
games,
JavaScript,
open source,
web development,
Yahoo
Monday, March 12, 2007
Creating a PHP Login System
PHP Login System with Admin Features shows you how to create a complete login system for your web site using PHP. Any web site that allows users to sign up would need some sort of login system. Not only does the above example give complete code to accomplish this, but it also goes ahead to explain the code so you can modify it to your liking later on according to your need.
Saturday, March 10, 2007
Google Calendar Supports SMS Notification in Egypt
I was so excited when the sound of an SMS message arriving at my mobile phone jingled in my ears. The SMS was sent by Google to notify me of an event I had set in my Google Calendar. I have a Vodafone line in Egypt.
The reason behind my excitement was that Google Calendar did offer support for SMS notification before, yet I found they only supported US carriers at the beginning. I had failed to add my mobile number to recieve SMS notification from Google Calendar in the past. Today, as I tried again, it worked. I was amazed. If you are in Egypt, you can use Google Calendar to keep track of your appointments and get free SMS notification for each appointment sent directly to your mobile phone. Here is how to register your mobile phone with Google Calendar.
The reason behind my excitement was that Google Calendar did offer support for SMS notification before, yet I found they only supported US carriers at the beginning. I had failed to add my mobile number to recieve SMS notification from Google Calendar in the past. Today, as I tried again, it worked. I was amazed. If you are in Egypt, you can use Google Calendar to keep track of your appointments and get free SMS notification for each appointment sent directly to your mobile phone. Here is how to register your mobile phone with Google Calendar.
Borland and PHP
CodeGear, a Borland spinoff, has released Delphy for PHP. That's an interesting concept. Delphy has been known as a visual RAD tool for developing applications based on the Pascal programming language. As PHP's popularity is souring, CodeGear decided to catch part of the action by introducing PHP support in Delphy.
Thursday, March 08, 2007
Show Files in Directory using PHP
Sunday, March 04, 2007
Google Gives Machine Translation a Boost
I was once highly interested in the field of machine translation and even worked in that field at a software company in Egypt. I had written an introductory article about machine translation myself. I've always looked with interest on Google's attempts to provide automatic translation of web sites and text.
Now Google is taking a qualitatively different and massive step towards machine translation that might spell the difference between success and failure in this difficult field of research that has proved hard for over 50 years. Google is now allowing users to suggest better translation themselves to the systems! Google's system will learn from such suggestions in order to avoid mistakes in future translation. The great wight I am giving to this approach is because of Google's huge user base. Imagine all those people using Google Translate being able to fix and enhance the translation of the system. Google again is harnessing the power of the people as it did when it made use of the Open Directory and the blogging community and fed on links from both. I think with some time Google will be able to achieve what over 50 years of research in machine translation has failed till this very day to achieve, which is high quality automatic translation of unrestricted text. I am highly excited about this move the the possibilities it would open.
Now Google is taking a qualitatively different and massive step towards machine translation that might spell the difference between success and failure in this difficult field of research that has proved hard for over 50 years. Google is now allowing users to suggest better translation themselves to the systems! Google's system will learn from such suggestions in order to avoid mistakes in future translation. The great wight I am giving to this approach is because of Google's huge user base. Imagine all those people using Google Translate being able to fix and enhance the translation of the system. Google again is harnessing the power of the people as it did when it made use of the Open Directory and the blogging community and fed on links from both. I think with some time Google will be able to achieve what over 50 years of research in machine translation has failed till this very day to achieve, which is high quality automatic translation of unrestricted text. I am highly excited about this move the the possibilities it would open.
Thursday, March 01, 2007
"What's my Name?" Asks PHP
$_SERVER['PHP_SELF'] returns the PHP filename in which the script is running. It turns out to be handy at many occasions when you need to use the name of the PHP file in which the script is running.
Wednesday, February 28, 2007
Google Builds a Network of Partners
For a company to succeed well on the long run, it should make sure there are many who are benefiting from its existence and its growth. Microsoft has long been building a far reaching network of partners and so has IBM and many other large companies. The partner network of a company helps keep the company strong and ties the success of many businesses to the continued growth and strength of that company. This is what Google is now trying to build and extend, a network of partners who build their services around Google Apps. Here is a list of Google partners that are offering services and solutions around Google Apps.
Tuesday, February 27, 2007
The Anchor Tag
I used to think that the only way to make internal links inside a web page pointing to sections found in the same web page was to surround the target section with an anchor tag like this:
Let's say you have a section in your web page titled as follows:
By the way, using internal anchors and linking to them from the same web page helps a lot in search engine optimization (SEO). Google seems to love web pages that have such links in them. They give spiders many clues and Google just loves this and usually ranks such web pages high.
<a href="section-name">Some Link Text</a>I just by coincidence while scanning the W3C documentation for anchor tags discovered that there is another method which in my case proved to be easier and more compact.
Let's say you have a section in your web page titled as follows:
<h2>My Section</h2>If I wanted to link to such a section, I would modify it as follows:
<h2><a name="section-name">My Section</a>But I discovered that I can alternatively write it as follows:
<h2 id="section-name">My Section</h2>This has the exact same effect as the first method and looks neater and easier to write.
By the way, using internal anchors and linking to them from the same web page helps a lot in search engine optimization (SEO). Google seems to love web pages that have such links in them. They give spiders many clues and Google just loves this and usually ranks such web pages high.
Monday, February 26, 2007
Dell is Listening
Dell IdeaStorm is a web site launched by Dell to act as a place for users to give feedback on Dell's products and spell out their wishes for future products. An interesting way to keep an eye on what customers want as well as an excellent source of new ideas for designing new products. Reminds me of how Google is keeping an open ear and eagerly taking in user feedback.
Sunday, February 25, 2007
PHP Flavored Eclipse
The PDT Project is promising to offer a distinctive PHP flavor to the Eclipse IDE. the PDT is still in its infancy, yet as it matures, it might be a strong contender to other PHP development tools out there.
Tracking External Clicks
Google Analytics allows you to track traffic coming to your web site. It's an excellent too and its free.
I wanted to also track how many people who are visiting my blog click on a specific link I have on the blog. The link I want to track clicks on points to an external site and not to a web page in the blog itself. I have just discovered by mere coincidence that Google Analytics allows you to do this as well using a function called urchinTracker. Now I can know how many people visiting my blog have clicked on that specific link and visited the external site it is pointing too.
I wanted to also track how many people who are visiting my blog click on a specific link I have on the blog. The link I want to track clicks on points to an external site and not to a web page in the blog itself. I have just discovered by mere coincidence that Google Analytics allows you to do this as well using a function called urchinTracker. Now I can know how many people visiting my blog have clicked on that specific link and visited the external site it is pointing too.
IT Seminars in Egypt
The idea just crossed my mind. Why not make some form of meetings where some of the IT enthusiasts in Egypt get together and watch a one-hour preselected Google TeckTalk then discuss it together after watching focusing in particular on how such technology can be used to improve our daily work in the software industry in Egypt. That could be a series of seminars in which we watch a different TeckTalk each time. Perhaps this can help fuel things up and encourage more software developers to act as a catalyst in technology transfer to Egypt.
Saturday, February 24, 2007
AJAX Chat
Chat on the web has been implemented mostly using Java applets. Another rudimentary web chat method was dong by automatically refreshing the web page. ActiveX was also an option for implementing chat on the web.
AJAX now is a new contender to the mix and enters as an interesting method for enabling chat on the web. Here is a very simple AJAX chat room created with PHP code.
AJAX now is a new contender to the mix and enters as an interesting method for enabling chat on the web. Here is a very simple AJAX chat room created with PHP code.
Thursday, February 22, 2007
Google Goes Beyond Ad Supported Services
Google has based its business around ad supported services with the few exceptions of its search appliances. Now Google seems to be pushing towards a dual business model in which it provides some free ad supported services and other ad free services in return for a fee. Google is now offering a business edition of Google Apps.
The premier edition of Google Apps is costs $50 per user account per year. The standard edition is free and is supported by ads. Here is a comparison between the two editions.
The premier edition of Google Apps is costs $50 per user account per year. The standard edition is free and is supported by ads. Here is a comparison between the two editions.
Wednesday, February 21, 2007
Microsoft Egypt is Hiring
Microsoft is launching its new CMIC, Cairo Microsoft Innovation Center, in the Smart Village. They are recruiting bright Egyptian software engineers in their CMIC. If you got what it takes to work at Microsoft, apply for a job at the Microsoft Egypt.
Monday, February 19, 2007
Mona Hired by Microsoft USA
Mona was among several FCIS Ain Shams 2005 graduates whom joined Microsoft in USA.
Python Tutorial
Python is an object oriented scripting language used for developing web applications. It is not as popular as PHP, yet it's code is neater and cleaner. Google uses Python extensively in its web applications. Here is a basic python tutorial for new comers to this cool scripting language.
PHP Reading List
I came across this interesting PHP reading list compiled by IBM. There is too much online material about PHP to read, you may get lost trying to figure out what is worth reading and what is not, where to go for specific information you want or from where to start. This guide provides you with a road map of some of the materials about PHP that are worth reading. It also organizes things so that you can know where to go when you are looking for some specific thing.
IBM is a great supporter for open source. Google is another strong supporter of open source as well. I wonder when or if ever will Microsoft follow suit. Probably not.
IBM is a great supporter for open source. Google is another strong supporter of open source as well. I wonder when or if ever will Microsoft follow suit. Probably not.
Sunday, February 18, 2007
Introduction to Neural Networks
I came across this neural networks course. It looks interesting and can act as a good introducing to this interesting field of computer science.
Google SourceForge
SourceForge has by far been the most popular place to host open source project. Freshmeat is one other popular home for open source projects. It's interesting that Google itself is entering this field and offering a place to host open source projects as well.
Sure Google aims to pushing open source to the limits by doing so. I've had a look at Google's open source hosting service and found it to be very clear and clean. It is easy to use and I believe would be so convenient for hosting open source projects. I believe this would give a boost to the open source community. Unlike with SourceForge, you do not have to wait till your project gets approved when hosting it with Google. I remember trying to host an open source project at SourceForge before, when it finally got accepted, I found it extremely difficult to know how to get about performing any sort of actions on their site. I believe the simplicity Google is introducing for open source project hosting would create a positive boom in the open source community helping it expand dramatically.
Sure Google aims to pushing open source to the limits by doing so. I've had a look at Google's open source hosting service and found it to be very clear and clean. It is easy to use and I believe would be so convenient for hosting open source projects. I believe this would give a boost to the open source community. Unlike with SourceForge, you do not have to wait till your project gets approved when hosting it with Google. I remember trying to host an open source project at SourceForge before, when it finally got accepted, I found it extremely difficult to know how to get about performing any sort of actions on their site. I believe the simplicity Google is introducing for open source project hosting would create a positive boom in the open source community helping it expand dramatically.
Egyptian Students in Google Competition
I hope that starting from March, bright intelligent Egyptian computer science students would be joining Google Summer of Code 2007. It is an excellent opportunity to showcase our talent to the world and in the process be exposed to a lot of experience while entering such programming contests. I believe FCI, Cairo University and FCIS, Ain Shams University should look seriously at propelling their bright students through such an opportunity at Google Summer of Code 2007.
Labels:
competition,
Egypt,
Google,
open source,
programming
Saturday, February 17, 2007
Dojo - A JavaScript Toolkit
D0jo is a JavaScript toolkit that provides an impressive library packed with JavaScript functionality including AJAX and much more.
Amaya - W3C's Web Editor
Thursday, February 15, 2007
Database Migrations for Agile Web Development
I love the concept of migrations found in Ruby on Rails. It allows you to use an agile methodology when developing web applications. You do not have to make a the full database design first before starting to develop your web application, you can start with a partial database design, make a working application then gradually evolve it in an easy way by adding more and more functionality till it reaches the full functionality you need.
The key here is that database migrations in Ruby on Rails make very easy to go back and forth between more or less functionality in the system you are building. I really hope that PHP would have some similar easy way that supports migrations. That way going truly agile with PHP would be possible as is the case with Ruby on Rail.
The key here is that database migrations in Ruby on Rails make very easy to go back and forth between more or less functionality in the system you are building. I really hope that PHP would have some similar easy way that supports migrations. That way going truly agile with PHP would be possible as is the case with Ruby on Rail.
Labels:
agile,
database,
open source,
PHP,
Ruby on Rails,
web development
Wednesday, February 14, 2007
Free PHP Book
Monday, February 12, 2007
Class Vs. ID in CSS
I've had this question in mind of several years by now. What is really the difference between using ID and using class in CSS. I Googled it for years but just couldn't get it despite reading the many attempts to answer this question. Still I did not completely comprehend the difference between using them and why we needed two different methods in CSS to for styling.
That was until I got, by chance, across the most clearly stated answer I have ever seen. Here is the difference between ID and class in CSS. Not only does this make clear the difference between them, but it also gives direction to when to use each.
That was until I got, by chance, across the most clearly stated answer I have ever seen. Here is the difference between ID and class in CSS. Not only does this make clear the difference between them, but it also gives direction to when to use each.
HSQL in OpenOffice
Base is part of OpenOffice.org. Think of it as the equivalent of Access in Microsoft Office. The interesting thing is that Base enables you to work with your own database created in any any of several database management system including MySQL.
Base uses the HSQL database engine to achieve its work. HSQL looks interesting. I wonder if it will expand and have more uses than just being the database core of the OpenOffice.org suit.
Base uses the HSQL database engine to achieve its work. HSQL looks interesting. I wonder if it will expand and have more uses than just being the database core of the OpenOffice.org suit.
Sunday, February 11, 2007
Yet Another Word Processor
I used to use Microsoft Word as my word processor. Later I toyed with the freely available open source OpenOffice for a while yet Microsoft Word felt more familiar so I stayed with it. Now that I've tasted Google Docs & Spreadsheets, there is no way I'll go back to Microsoft Word, OpenOffice or any other type of offline word processor. Google Docs is just so great in it's simplicity and collaboration features that make getting back to offline word processors lame.
Today I discovered yet another word processor that seems to have been out there for quite a while but I just did not happen to know about it. AbiWord is it's name for those of you wh0 would still like to use an offline word processor and want a free alternative to OpenOffice.
Today I discovered yet another word processor that seems to have been out there for quite a while but I just did not happen to know about it. AbiWord is it's name for those of you wh0 would still like to use an offline word processor and want a free alternative to OpenOffice.
Build your Own Social Networking Site
I've been looking with a lot of interest and admiration to the booming phenomenon of social networking web site. I've been wanting to harness the power of social networking in a site of my own. This dream has been in my mind for long, but really did not have the energy to write the PHP code for building such a site from scratch. I therefore kept looking for some ready made open source system that does social networking. I had no success in locating any open source social networking system that would be mature enough for a production site. I once considered Drupal, but it did not really do the trick of social networks, maybe in the future it would add social networking features. I do hope it will.
In the meantime, I just came across an interesting open source system that does open source. It is called Elgg. My dream can now come true without having to worry about coding a social network from scratch. All I have to do now is just install it and my social networking site is ready!
In the meantime, I just came across an interesting open source system that does open source. It is called Elgg. My dream can now come true without having to worry about coding a social network from scratch. All I have to do now is just install it and my social networking site is ready!
Saturday, February 10, 2007
What Makes an Excellent Tutorial?
I got across this CSS tutorial by chance while Googling around for a specific CSS question. The tutorial explains how to make a horizontal menu by styling an HTML list using CSS.
What I really loved about this tutorial was the method by which it guided you through the steps. It's really an excellent example of what a good tutorial should be made of. First of all, it follows a gradual approach to building the final thing. It goes only one small step at a time. It uses very simple, short and clear titles for each step. It shows how the outcome of each step would look like. Finally, it shows the code needed for each step, clearly pointing out the newly added code in that step with a different color. Googling through this tutorial was a peaceful and lovely trip, I didn't even need to read the instructions written in it, just following the title of each step, the code and its highlighted section and seeing the outcome of that step was enough to make me understand and absorb all the information. Hands up for this tutorial. I hope others creating tutorials would use this one as an ideal model for how excellent tutorials should be done.
What I really loved about this tutorial was the method by which it guided you through the steps. It's really an excellent example of what a good tutorial should be made of. First of all, it follows a gradual approach to building the final thing. It goes only one small step at a time. It uses very simple, short and clear titles for each step. It shows how the outcome of each step would look like. Finally, it shows the code needed for each step, clearly pointing out the newly added code in that step with a different color. Googling through this tutorial was a peaceful and lovely trip, I didn't even need to read the instructions written in it, just following the title of each step, the code and its highlighted section and seeing the outcome of that step was enough to make me understand and absorb all the information. Hands up for this tutorial. I hope others creating tutorials would use this one as an ideal model for how excellent tutorials should be done.
Friday, February 09, 2007
Association for Computing Machinery
ACM, the Association for Computing Machinery, is the world's first educational and scientific computing society.
Wednesday, February 07, 2007
Manage Email Traffic With Gmail Filters
My clients ask me to put job ads for them. They expect to receive CVs of interested candidates in their email boxes. So I write the email address of my client in the job ad so that interested candidates can send their CVs to that email box at once.
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.
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
Google Base might turn out to be the most massive database ever created containing structured data.
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.
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
O'Reilly, the popular publisher of IT books, is releasing an interesting online code search tool that allows you to search for sample code found in the examples of nearly 700 of its books.
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.
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
Media Temple are offering an alternative to shared hosting which they claim is much better without the costs nor the risks of a dedicated server. Grid Server is the new hosting model they are promoting. They claim that grid is better than shared hosting.
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.
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
As Jimmy Wales, founder of Wikipedia, along with Amazon aim to develop a new search engine challenging both Google and Yahoo, the two search giants are fighting back with innovations of their own.
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.
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
HTML is a web standard developed by the Word Wide Web Consortium. The ISO has taken HTML and made a neater standard out of it by removing deprecated HTML elements and bringing out a tighter edition of HTML. The ISO HTML standard is called ISO/IEC 15445:2000.
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.
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
An interesting phenomenon in Google Video is the resonance of popular videos. Once a video becomes popular it is show in the top 100 and there it has an even much larger chance of being seen by a large number of members which makes it even more and more popular. Due to this resonance effect many videos once they reach the top 100 tend to stick right there for long, not because they are actually better than new videos but because they have managed to reach the top 100 list and therefore get a boost in popularity just by being among the top 100 list. It's a circular and unfair thing.
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.
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
Google SketchUp makes creating 3D models really easy. Check out these interesting SketchUp video tutorials.
Tuesday, January 30, 2007
24-Hour PHP Competition
What can you develop with PHP in 24 hours? That's what PHPThrowdown aims at finding out. PHPThrowdown is a PHP competition in which contestants compete against one another using PHP during a 24 time frame.
Monday, January 29, 2007
SQLite Rocks
The database management systems in common use are relational client-server databases. MySQL, Oracle, Microsoft SQL Server and many other popular RDBMS are built on the client-server model. SQLite is an interesting departure from that well known model. SQLite is a library that can be embedded within an application and become part of this application. You no longer need to setup, configure and manage a separate DBMS to do database transactions. You can do all this from within your own application without a need for any external system.
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.
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 2007 Cairo ICT exhibition will be held at the Cairo International Conference Center from February 2nd to February 4th, 2007. The exhibition will be accompanied by a forum.
The Cairo ICT 2006 report provides statistics on last years exhibition.
The Cairo ICT 2006 report provides statistics on last years exhibition.
QEDWiki - Easier than Visual Basic
IBM is working an a new revolutionary technology that enables developers to do drag-and-drop web development from within a browser! QEDWiki attempts to make the process of developing common types of web applications extremely easy. QEDWiki can also be used by non-programmers to develop a range of web page types.
Women Can Code Too
Who said that only guys are good at programming? Women too can be good at writing code. Irina Khmelinina is one of the contributors to the open source Zend Framework project.
Version Control in Open Source
CVS had been the classic standard version control system for open source projects. Still many open source projects use CVS as their version control system till this very day. Today, Subversion is the new kid in town. It offers better functionality than CVS and is being used by a growing number of new open source projects.
MVC Design Pattern Gets More Popular
Due to the increased reliance of web application frameworks on the MVC design pattern, it is becoming the most popular object oriented design pattern out there. This is leading also to spreading the concepts of design patterns to the web development community.
IRC Still Alive
Since many years ago, I've kept trying to use IRC but found technical difficulty in doing so. I used to think that IRC was something of the past and is either dead by now or used only by computer geeks. I kept seeing references to IRC rooms though at open source communities for developers to communicate through. Today I said to myself I'll give it another try.
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.
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
Googlebombs have been around for quite a while. A year ago, Google acknowledged their presence yet mentioned they'll just do nothing about it. Yesterday, however, Google announced the introduction of a new algorithm to its search engine which "minimizes the impact of many Googlebombs." The trick is to show web pages that talk about the particular Googlebomb searched for instead of returning the site that was subject to a Googlebomb attack. Googlebombs look like they will finally be deactivated.
Friday, January 26, 2007
Thursday, January 25, 2007
Google Imitates Yahoo! Video
Yahoo! Video is a search tool that helps one search for videos scattered on various websites. Google Video was something different. Google Video acted as some sort of hosting place for video content. Of course you could search for videos using Google Video but you were only able to search for those videos that are hosted on Google Videos itself and not for videos present in the rest of the web.
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.
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
Satyam, the giant Indian IT company, is starting a 300-seat center in Egypt's Smart Village. Not only is Satyam aiming at capitalizing on the availability of a pool of software engineering talent in Egypt, but it is also eyeing the growing Egyptian IT market. Read more in the Satyam Expands into Egypt article.
Sunday, January 21, 2007
Egypt vs. India in IT Exports
According to Business Today Egypt, Egypt's IT sector was worth $70 million in 2002. Egypt IT exports amounted to $105 million in 2005 while those of India reached $12.2 billion in 2004.
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.
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?
Social networking with a spin. That's what Geni is all about. Family tree web applications are nothing new, but Geni attempts to take them a step further by giving them a social networking spin. The cool thing about Geni is its user interface, not only is it very easy to use and intuitive, but it's also pleasant to use. They use a Flash user interface to achieve such a result.
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 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
Blue, red, yellow and green are the distinctive Google colors. Those same four colors have been Microsoft's colors ever since Windows was launched. Why is Google using the exact same four colors that have been Microsoft's for long? Was it a coincidence? Of course not.
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.
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?
Tags are one of the defining elements of Web 2.0. When Google started gmail, it used the term label instead of the term tag. When Google developed the new version of Blogger, it also again used the term labels instead of tags.
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?
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
I was delighted today to receive a phone call from Islam who works at the Masr El Gedida branch of Resala. I had previously volunteered to deliver a mini-course in HTML there. He asked me to start a fresh web design course. I really missed Resala having not been there for a couple of weeks. I agreed to deliver the course.
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.
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
Ever sicnce I faced the problem of noisy computers I've been thinking a lot about the amount of heat and dust computers in Egypt go through. These computers are not actually designed for our weather conditions. They are designed for dust-free environments and places with lower temperatures than hours. Both heat and dust accumulated in a computer in Egypt cause it to become more noisy with time, reduce its lifetime and may in extreme cases cause headaches to the user and reduce work efficiency or gaming pleasure.
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.
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
HotScripts contains thousands of scripts in various server-side scripting languages such as PHP, ASP, Perl, Python and even Ruby on Rails among many others. There are also client side scripts in JavaScript.
A Crash Course in Smarty
I liked this Smarty crash course. Smarty is popular PHP template engine. It has many elements of a good tutorial. It is direct and to the point. It also shows side by side the code and output of that code. This way of illustration is an excellent one for the brain.
Labels:
open source,
PHP,
tutorial,
web development
PHP Access Control
While looking around for a ready-made way to put some sort of an access control system for my PHP web application I bumped into this open source script that provides PHP Generic Access Control Lists.
Tuesday, January 16, 2007
Excellent Training Concepts
I really lift my metaphorical hat in praise for these excellent training concepts referred to at the Moodle web site. Because I love delivering IT training and had been doing so on a professional basis and now on a volunteering basis, I highly appreciate those concepts mentioned at the Moodle site. I know that those concepts are really true and are the core of what spells out the difference between and good and a bad training course.
MDC 2007 in Cairo
Last year they've learnt the lesson, Microsoft's MDC attracted an extraordinary number of attendees. This year they are making the MDC 2007 attendees fee for 100 LE! That's interesting. This will help reduce the number of attendees, and make some cash at the same time *smiles*.
Saturday, January 13, 2007
Cool Web Design
Here is a stunning example of what I call cool web design. The gradient background color, the splash of colors at the top left, the simplicity of design, the large space of 'air' in the page to breath in, the links and the fonts all make this web page have a soothing effect on the mind and soul. That's what I call cool web design.
Black Box Testing
This educational video clarifies the difference between various types of software testing, including black box testing, glass box testing, acceptance testing, unit testing, system testing, integration testing and other types of software testing. Watch the Black Box Testing video.
Friday, January 12, 2007
XFN and Social Networking
If you keep a personal blog, you might put links on the side bar linking to other people's blogs. Those people whose blogs you are linking to can be your friends, your colleagues, your relatives ... etc. XFN, or XHTML Friends Network, is a standard way to indicate your relationship with the owner of the blog you are linking to.
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.
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
SMF is an open source forum system. What I really liked most about SMF is the ease by which you can upgrade to the latest version whenever it is out. In other open source solutions, it is often not easy to upgrade to a newer version. You usually have to download the new version, upload it to your site, then fix some stuff that could have been broken due to the upgrade.
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.
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
In it's January 2007 article Year of the Technophiles, Business Today Egypt traces the increased spreading of IT into the Egyptian community.
Egypt IT Exports Reach $700 Million
Egypt IT exports have reached $700 million and are expected to rise up to $1 billion by 2010 according to Gulfnews.
Tuesday, January 09, 2007
Apple Makes Mobile Phones
Apple Computer Inc. has changed its name today to Apple Inc. Apple has revealed the release of its first mobile phone. Apple will be competing with giant players in the mobile phone industry like Nokia and Motorola.
Monday, January 08, 2007
Is PostgreSQL better than MySQL?
I've just read PostgreSQL vs MySQL: Which is better? and found it to be highly interesting.
Death of XML?
Will JSON be the future replacement for XML? XML is markup, JSON is not like markup languages that use . JSON looks more like the C programming language. It is a richer way to describe data and facilitate data exchange between different languages/machines in a standard way.
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.
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?
Is Google using extreme programming? One of the elements of extreme programming is user stories. Perhaps Google is not using extreme programming as is, but it looks like it is using some similar approach to software development.
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.
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
I came across this article that explains to you how to avoid making a bad web site. It lists many common mistakes bad web sites fall into and gives direction to where one should head when making a web site. I recommend reading it. Actually, it is a chapter in a book with the name Philip and Alex's Guide to Web Publishing.
Friday, January 05, 2007
Java SE 6
Java SE 6 is currently the latest release of the Java SE platform. Java SE 6 introduces a bunch of new features.
Google Alerts
Google Alerts has bee around for quite a while. "Google Alerts are emails automatically sent to you when there are new Google results for your search terms." That explains what Google Alerts are.
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.
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 announced the Latin America Code Jam. I hope the day comes soon when Google makes it's Code Jam for the Middle East region.
Google uses Perforce SCM for Version Control
As this job ad for Web Developer at Google suggests, Google is using the Perforce SCM System for version control. Many software companies use Microsoft's Visual SourceSafe for version control. Subversion is another popular version control system. The most well known version control system in the open source community is CVS. ClearCase is still another version control system in wide use. Perforce tries to show its advantage by comparing all those popular version control systems.
Faster Web Browsing
Google Web Accelerator claims to make your web browsing experience faster if you are on DSL connection.
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.
Subscribe to:
Posts (Atom)