Monday, April 23, 2007

PHPTriad Successor

In my early days with PHP, I used to love PHPTriad which installed and configured PHP, Apache and MySQL on my Windows machine instantly. The process of downloading each separately, installing each then configuring them to work together on your Windows machine was really a pain. So PHPTriad was a killer package back then.

As PHPTriad was ditched and not maintined, it was no longer an option, since it did not keep up with new versions of PHP, MySQL and Apache. Despite a recent renewed interest in the resurrection of PHPTriad under the new name of Sokkit, which is a commercial alternative, yet another free open source alternative seems to be on the rise.

XAMPP is the strong PHPTriad alternative, adequately replacing it and filling the gap. It is available for a number of different platforms.

Creating Site Search with PHP

If your web site has a large number of pages, it might be a good idea to augment the navigation structure with a handy search facility. This can be done using PHP as this ONLamp article shows.

Nile University in Egypt

Nile University was established last year in the Smart Village. It's "Unlike existing universities in Egypt, it is intended to be ... specialized in graduate education and research." Currently it offers three masters programs.

Nile University is "dedicated primarily to excellence in technology-related fields with focus on business development and applied research."

Sunday, April 22, 2007

BambooINVOICE Built with CodeIgniter

BambooINVOICE is a simple open source invoicing web application built using CodeIgniter. The interesting thing is that you can download the code and see how a complete real-life web application is built with CodeIgniter as its framework.

Google Egypt Hiring QA Engineer

I was excited to know about the Software QA Engineer vacancy at Google Egypt. I hope that Google Egypt would follow this one day soon with positions for Software Developers as well.

Saturday, April 21, 2007

Google Video Talk

Google tried to downplay its acquisition of Marratech's video conferencing software saying that it "will enable from-the-desktop participation for Googlers in videoconferencing meetings wherever there's an Internet connection." Yet it sounds to me like Google is actually aiming at adding video chat features to Google Talk, a feature which has been present in both Yahoo! Messenger and MSN Messenger for quite a while.

Thursday, April 19, 2007

Measure Your Street Now!

It's amazing. You can actually grab a ruler and measure the length of your own street using Google Earth! I thought that feature was reserved for the Pro version only, but it turns out it is available in the free version of Google Earth too. The Pro version however adds ability to measure areas.

So have some fun, find your own street using Google Earth then use the ruler feature to measure how long it is. Amazing!

Wednesday, April 18, 2007

Yahoo Pipes

This is so exciting! Yahoo Pipes is a web based platform that enables anyone without even having any programming experience to create mashups in a really creative way . Here is an overview of pipes.

Video Tutorial - AJAX in PHP

Derek Allard made an interesting video tutorial on how to use AJAX within the CodeIgniter PHP framework to create a cool web application with AJAX flavored search capabilities. Derek makes use of Scriptaculous to incorporate AJAX capabilities into this tiny web application.

Google PowerPoint

30 days ago I've been asking if Google will be adding a presentation component to its Google Docs & Spreadsheets web application suit as a parallel application to Microsoft PowerPoint.. Google finally gives us the answer, yes they are.

Tuesday, April 17, 2007

Colorize Code

CodeIgniter offers a really cool and handy helper function called highlight_code(). It is a handy little function that allows you to pass it a string of text including HTML tags, PHP code ... etc and it returns a colorized version of that string highlighting the code and tags in distinct colors.

I wish I'd known abou this nifty function before when I was struggling with creating tutorial web pages that included HTML code and I longed find a way to highlight such code easily.

Word Inflection in CodeIgniter

I love the cool idea of providing inflection helper functions in CodeIgniter. They allow you to get the plural, singular, camel case ... etc of a word.

Monday, April 16, 2007

endforeach

I never knew before this day that PHP offered an alternate syntax for closing blocks of code. The standard syntax which we are used to and comes from the C programming language is opening and closing braces: { and }. For instance:

foreach($list as $item)
{
    echo $item;
}

The alternative syntax I just knew about today is like this:
foreach($list as $item):
    echo $item;
endforeach
Quite cool. Other control statements as well can be closed in a similar manner. Check out the alternative syntax for control structures from the PHP manual.

Sunday, April 15, 2007

OpenID Becoming a Reality

Was just trying out the free version of Highrise, a mini web based CRM from 37signals, when I found them offering me to register using an OpenID. I was really thrilled. I have heard about the idea of OpenID before, yet have never seen it in action. I thought it was just talk but would not really take off. Now 37signals, sponsors of Ruby on Rails, seem to have been taking the lead. I really do hope many others follow suit. That would help us all reduce the ID clutter we have in today's web space.

Saturday, April 14, 2007

Google HotJobs?

Looks like Google once again is going after Yahoo's share of online services. Google might be entering the online jobs market, competing with Yahoo! HotJobs.

Some time before Google launched its calendar service, there were reports of aggressive activity by Google bots chewing up ferociously on calendar sections found on people's web sites. I was startled two days ago when I found the googlebot repeatedly reading my resume at emurse. I believe that could be an indicator that Google is planning to enter into the online job market as has Yahoo!

Yet as Google Calendar is no where the same as Yahoo Calendar, I expect Google Jobs to be way different and cool. So let's wait and see when and if this will turn out to be true. After all, Google's mission is to organize the world information, and sure resumes and job vacancies are a large part of highly sought after information in this world.

Friday, April 13, 2007

Clean URLs and AJAX

I have been perplexed for a while when starting to develop a new web application. I wanted to implement clean URLs in it, because clean URLs are the buzz these days. Actually I wanted to use clean URLs to make my web application more user and search engine friendly which would help in SEO as well as make the application look cleaner and neater.

AJAX is another hot topic these days which I did want to make use of in my application. The interesting thing is that by default an AJAX based application does not change its URL while the user interacts with it. Gmail uses AJAX extensively and its URL never changes.

Those two concepts, clan URLs and AJAX seemed to collied with one another at first. Then after some research and thought I came up with the logical conclusion. For parts of your web site which you want search engines to see and index and which you want your users to be able to bookmark and exchange its link with others, use clean URLs. For other parts of your application where a user interacts with the system to display specific information for that user as a result of his or her interaction with the system, then use AJAX for such parts of the system and do not change the URL while the user interacts with the system.

I came across this interesting wiki about unique URLs which discusses in some detail how to use AJAX while at the same time making your web application have more than a single URL so that people can bookmark specific parts and search engines can index those parts as well.

Thursday, April 12, 2007

Registration-Free User Log In

The standard approach in web applications is to allow new users to register by selecting a user name and a password in addition to providing other information such as email, date of birth and so on. Next time a user visits your web application, they just need to log in using their user name and password combination. So basically it's a two step process: first register (or sign up) then log in (or sign in).

With Yahoo!'s browser based authentication, you can relieve yourself from building a registration component for your web application and relieve your members from having to go through yet another registration process. Yahoo! allows you to authenticate users using their Yahoo! IDs. So you only need to ask users to log in, without ever needing them to register at your web site.

Two-Level Menu with PHP

Here is how to make a dynamic database-driven two-level menu with PHP.

Wednesday, April 11, 2007

PHP and Python Creators Working for Yahoo and Google

It's interesting that Rasmus Lerdorf, creator of PHP, has been employed by Yahoo! as an Infrastructure Architecture Engineer since September 2002.

It's more interesting that as of October 2005, Guido van Rossum, creator of Python, has been hired by Google and became a Google software engineer.

Free Java Hosting

If you are a Java developer or learning how to develop web applications using Java, then perhaps deploying your Java based web application online would be a nice way to learn as well as fun to experience. MyJavaServer offers free Java hosting for Java developers. Go ahead and try it.

Tuesday, April 10, 2007

MySQLi

For those still using the old MySQL functions of PHP, perhaps it is time to take a fresh look at an improved version of this old extension. MySQLi (MySQL improved) is the newer PHP extension that allows you to do prepared statements among many other cool things that the old MySQL extent ion does not offer.

Monday, April 09, 2007

Simple English Wikipedia

I've always been an avid fan of Wikipedia. I frequent it all the time checking whatever new concepts I happen not to know about. I have just recently discovered that a simplified edition of Wikipedia also exists! The Simple English Wikipedia is an attempt to provide an simplified edition of Wikipedia that introduced concepts in simple English words that are easy to understand by students and by people whose English language skills are not strong.

In my opinion, making things easy and clear makes things more popular. Just think how popular the For Dummies computer book series has been. I believe that the Simple English Wikipedia will gain more popularity with time and might even eclipse the main edition of Wikipedia itself.

Saturday, April 07, 2007

PHP Creator is Against Frameworks

Rasmus Lerdorf, the creator of PHP, strikes a high note against PHP frameworks. I live this article written by him because it takes a lot of the hype away from the insane number of PHP frameworks that are sprouting by and creating a lot of confusion for newbies to PHP.

His article shows how to build a web application designed on the MVC pattern without having to use one of the popular PHP frameworks. His message is essentially that you better evolve your own framework that is best suited to your own needs than spend your time trying to learn a ready-made framework that might turn out to be tough to tame for your needs as your web application grows.

At the end of his article The no-framework PHP MVC framework, Lerdorf concludes that:
Many frameworks may look very appealing at first glance because they seem to reduce web application development to a couple of trivial steps ..., but these same shortcuts are likely to be your bottlenecks as well since they achieve this simplicity by sacrificing flexibility and performance. ... Instead of starting by fixing the mistakes in some foreign framework and refactoring all the things that don't apply to your environment spend your time building a lean and reusable pattern that fits your requirements directly. In the end I think you will find that your homegrown small framework has saved you time and aggravation and you end up with a better product.
Instead of relying on a canned framework, Lerdrof applies "an MVC approach with clean and simple views and still have all the goodness of fancy Web 2.0 features" using the following technologies:

Coding Standards

It's often of great benefit to stick to some coding standards when a system is being built by a team of developers. Even in case of a single developer following some form of code standards would be of great benefit. Sticking to coding standards makes it easier to understand the code written, easier to find bugs and makes the code less prone to having bugs in the first place.

Here are some coding standards for PHP that have been set forth by the PEAR group. Even if you are not writing code for PEAR, it might be a good idea to incorporate some or all of their coding standards while writing your own code.

Clarity of Design

A web page that has a clear design makes life simple for visitors and would attract many more visitors to take action than a web page with an obscure design. Emurse is one good examples of a clearly designed web page.

So what makes the above mentioned web page tick? I believe it is the presence of the following elements:
  • The page is not cluttered with a lot of content.
  • Three steps of action are clearly indicated: Creat, Send and Share.
  • Background color of the three actions is distinct and clear.
  • Simple navigation is kept at the bottom with a small font size.
  • The funtion of the site is clearly spelled out: "emurse means resumes, improved."
  • Sign in and sign up forms are clearly shown.

I believe such clear design would lead to many visitors taking action because they can easily grasp the intention of the site and know what action to take. Confusing the user with a complex and obscure design is nothing to be proud of.

CodeIgniter

CodeIgniter is a simple yet powerful PHP framework. What I like about it is its simplicity. There are other more sophisticated PHP frameworks that might be more powerful and offer a more rich set of features, yet CodeIgniter wins when it comes to simplifying things in a pretty way. Its learning curve is also not as steep as other frameworks.

Friday, April 06, 2007

Breadcrumbs in Navigation

Simple web sites can do with a simple navigation system. Sites with a navigation structure that is only one or two levels deep can get along with links listed in a sidebar. More complex sites that have a navigational structure that is more than two levels deep would best augment their navigational system with breadcrumbs.

Breadcrumbs are so useful in web sites that have a deep navigation of 4, 5 or more levels. In such web sites, it would be really confusing to the user if breadcrumbs were absent and would look really messy if the navigation was implemented using nested menus.

Thursday, April 05, 2007

Genena Mall on Google Maps!

If you search Google Maps for Genena Mall you will be taken to the Genena Mall location.

How does Google achieve this? Easy. I have created a small map including Genena Mall, Fatma El Zahraa Mosque and a small garden not far from them called Al Ferdaws Garden. I then put this map over at Google Maps. You will find blue rectangles that I have drawn around each of these three places.

But how have I managed to do this? Well, Google has just announced the ability to create your own maps very easily over at Google Maps. This new interesting feature makes it so easy to creat your own map and put it at Google Maps for everyone to see. It even appears in the search results as mine appears when you search Google Maps for Genena Mall. Here is how to use Google's exciting new My Maps feature.

Speaking SQL

Speaking SQL looks like an interesting SQL tutorial that starts at the vry beginning yet goes deeper than many other SQL tutorials.

Wednesday, April 04, 2007

One Billion Web Pages Analyzed

Just above a year ago, Google made an interesting study in which it took a sample of over 1 billion web pages and analyzed them to discover how HTML tags are actually being used on the Web. The results of such study might be interesting to web designers and web developers. Have a look at those enlightening web authoring statistics from Google.

ReactOS - A Microsoft Windows Alternative

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.

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.

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.

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.