Thursday, February 22, 2007

Web Page Layout 101 - Part I

Many newbie webmasters make mistake when designing and laying out the content of their web pages. Most of them try to put in as much as possible in one page. For example, they tend to have lots of graphics, URL links are scattered almost everywhere and there are probably have 10 different types of font, color and size combinations. Also, some make use client side scripting excessively like menu, mouse over effect etc.

Website layout plays a very important role in keeping visitors. When I say layout, it also includes:
  • Page Width
  • Site Navigation
  • Graphics
  • Contents Section
  • Text/Font Size
  • Client side scripting
  • Cross Browser Compatibility
Let's take a look at each of those in the list.

Page Width
It has been a trend ( at least it looks as if it is anyway), most popular websites are simple and straight forward. The page width is limited to just below 800 pixels wide. Some sites limit the width to just below 1024 pixels. Look at these figures (800, 1024 etc), does it relate to anything? Okay... it is the page width of the users computer screen. Some popular size includes 640x480, 800x600, 1024x768 and 1280x1024. And some weird size screen (like my Dell Latitude D620) is 1440x900. It is known as screen resolution. The height is not very important. The width is critical here.

In general, these popular web sites designed their page to suit the visitors screen. It is very annoying if you have to scroll your browser to the right just to read one line of text. Then to scroll back again when going down to the next line. Your eyes rolls from left to right, and wait for the scroll, read some more and move to the left again.... It makes reading so unpleasant. Yes, some of your visitors will just look somewhere else regardless of the content - really good or not. Make your visitors comfortable if you want their repeat visit. Limit it to a comfortable width.

So, making it smaller technically is a lot better. But too small a size is also not very good. You won't be able to put extra stuff in there like navigation bar, advertisement and catchy graphics for example. So, very seldom you come across web sites with limit of 640x480. It is too small to begin with and not many visitors have that resolution anymore. 800 pixel wide is just nice and 1024 pixel probably good choice also. From my experience, I would stick to 800 since there are still a lot of visitors have this screen resolution. You need to check your web log or web analytics tools to find out more. More about this later.

Site Navigation
When your visitors come to your site, most probably they are referred to by a search engine. After looking at the page, they might not get what they are looking for. At this juncture, think of the next available options. What do you have to offer on the page? Another similar page on your site or some links that is looks or sounds similar to what they are looking for. If this two options is not available, then your visitor will just abandoned the page and look somewhere else.

This is where site navigation come into the picture. If the visitor could easily locate the links to other pages, the chances are they might browse to another page or few more pages just to find out the content that they are looking for. So, make your site navigation easy to find. Use conventional button links or text link on the side (left or right) and either top or bottom. Also, put it nicely sorted with a clear text and theme.

Use simplified menu system. First, it should link back to the main page or home page. Second, it should have links to next pages in the same section as current page. Thirdly, it should have links to entry page of other section. To make it clearer, have a look at this site, http://info.asianbatik.com. This is what I mean by simplified menu. BTW, the site is still under construction and far from complete.

All navigation menu system relies purely on style sheet. It is cross browser compatible. (More on this later). I first make a mistake of using fancy pull down menu using Javascript. At one stage, I am using slide in / out menu from the side bar. Not many people know where to find the menu. The visitors have to try clicking here and there and it really annoys them. Bear in mind that not all of them are web savvy or literate. Frankly speaking, some of them still does not know what is HTML !. So, think of your visitor.

Finally, if the visitor still cannot find what they are looking for on your website, you still can capitalize on this. What I mean is, refer them to something that they might be interested. In this sense, link exchange is good but today, most sites would have its own affiliated site or use infamous Google Adsense advertisement. It is good because the ads is targeted. Meaning, the links given by Google Adsense are based on the keywords that the visitors are looking for. You help the visitor and at the end, Google rewards you for referral. It is a win-win situation. And to me, it is not exploitation if you do it properly.

We will continue this in second part later on this week.

Monday, February 19, 2007

Integrated Development Environment (IDE) for PHP

While searching the net for FrontPage replacement, I have stumbled upon this article, 10 things a PHP IDE has to have. I however, somewhat agreed to all the points written. IDE stands for Integrated Development Environment and as such should be a collection of tools and gadget in order to ease the development of products being intended for.

First IDE
Being a season developer for nearly 2 decades, I have come across many kind of IDE for all kind of languages. Most of my programming skills I learn from trying to develop my own IDE using the targeted programming language itself. For example, I started programming in 1989 using assembly language to develop the IDE for own use. Due to a busy schedule, it takes me nearly 2 years to complete that.

Finally, I have an IDE which is less than 30 kb in size. Yes, it is 30 kilobytes. Features included color coded, pull down menu (it was in MS DOS environment, so pull down menu is really cools, IMHO) and use very low memory. I you come from old schools like me, you will appreciate how precious RAM (Random Access Memory) is in that good old days. I have a PC running at 12Mhz, 20 MB (megabytes) of hard disk and 1MB of RAM. It was the fastest in town and I was a very proud owner. But, the maximum RAM usable is only 640kb and having an application that make use only a fraction of memory is very useful. Well, it was a sweet history.

IDE For Web Development
Now, back to cyber world. As I said, I have been using FrontPage for many years since the first Front Page Express is available free from Microsoft - WYSIWYG editor with minimal coding. It help me up and running rather quickly with my web pages. I have been developing web pages just for fun. I have tried many other tools like HomeSite but most of it falls short of my expectation. I don't really explore other tools and they are mostly very expensive and bloated with unused features. I want a plain vanilla HTML page. No messy code for ActiveX plug in. No Flash as it really slow. I hate Flash enabled web site. It is only as smart as the developer who designed it. And sorry to say, most of them are slow because of high resolution graphics. There are many cases where I just abandoned the site once I see that the web site uses Flash. Sorry guys.

Microsoft FrontPage
Firstly, what I really want is a fast IDE. In this sense, FrontPage is good. It loads fast and it gives you the control on the directory structure. The files are easily managed. It has drag and drop feature everywhere. It is not bloated with nonsense features like its competitor. It help you get the job done faster and easier. FrontPage also support template. You designed the layout once and only worry about the content later.

But what I don't like about FrontPage is the additional files that it created for FrontPage Extension web server. If you removed, it will be created again and again. It rather annoys you. Also, if these files / folders are removed, Front Page won't recognized the whole directory structure as a web. Another thing about FrontPage is the publishing wizard. I simply don't like it.

Another annoying thing about this utility is that it change all the links to reflect local folders layout. The publishing wizard will change this to the actual URL later. And of course you need to use FrontPage to publish to the server. If for same reason you need to publish using FTP and not using FrontPage, then you will be in trouble. All the URL links are messed up.

Most of the time, Linux server does not support FrontPage extension. (Well some of them say so but I have NEVER succeeded publishing a FrontPage website until now). My current server now do support Frontpage Extension but I just disable the option to preserve resources.

My Wish List
So, what is next? On top of what is mention in the article 10 things a PHP IDE has to have, I will add some more here.
  • What you see is what you get (WYSIWYG) HTML Editor. Reason - When I do PHP development, I always do rapid prototyping to see how it looks like on visitors browser. Once I satisfied, then I would do the coding or come up with a HTML template page.
  • Site Wizard. Yes, a wizard that will churn out a new site in seconds with a few clicks of mouse button. This is also for rapid prototyping when trying out new ideas.
  • Source Safe or CVS integration. It is really a must nowadays. Most people work in group. Also, to avoid point #8 in the article, version control is a way to go.
  • FTP enabled publishing and quick editing. After you upload, most of the time you need to change the configuration file to match the live server as oppose to local development server. A simple download->edit>upload cycle would be very handy. Also, a publishing wizard is required to keep track of files changes and when the editing/upload was done to the file. It is more important when the project is done in a group of several programmer.
  • Intuitive and up to date user interface. I have to admit that I am biased towards Windows graphical user interface. I am so complacent with it such that I feel awkward if the application does not confirm to Windoze GUI guidelines. Probably, it is just me. :)

Sunday, February 18, 2007

Microsoft .NET - For Real and For Living

I have always been skeptical when Microsoft introduce new technology to the real world. The latest (well, it was about 5 years or so ago), Microsoft unveiled the .NET platform to match Sun's Java development language.

Java is kind of "program once, and run on many platform" philosophy. Microsoft .NET is meant for Microsoft's owned Windows family of operating system. What I could not understand is that the common language run time (CLR) is available to all language supported by Microsoft namely (VB, C#, C++, J# and ASP). Regardless of what language you use or decided to use, it would be compiled to a common run time environment.

Come with the package is the "decompiler" which would reverse the effect of compiler. Since the .NET platform library is common to all language, you could practically write an application in VB, compiled it to .NET runtime and then decompiled it back to other language like C# or J#. It is very interesting.

It is a lot easier to work with (regardless of the language) and you could have a very useful application in a few hours. For example, I could create a What You See Is What You Get (WYSIWYG) HTML page editor in just 2 or 3 hours working on the code. It uses the same engine as Microsoft Frontpage and Internet Explorer. Pretty cool !!.

I did go to .NET intensive training - well, it is 3 hours a day / 5 day week for 3 months. It was kind of tiring and very exhaustive. At the end, I valued the training more than any other similar course I have attended so far.

I will be using .NET for many years to come as it is very easy and I could do more in less time. I have more confident now. Is is for real.

(pssst.... I need more RAM for my notebook as the new Visual Studio 2005 is so resource hungry. I have never use 2 GB of memory before. With .NET tools, 2 GB is just a breeze.. Since, I only have 1GB at the moment, a lots of disk swapping activity happen and it slows down my PC tremendously. Never mind, it is an investment and I am pretty sure it really pays off !! )

Saturday, February 17, 2007

In quest for a good eMail client

I have been searching for an alternative eMail client for quite some time. There is none of them to my liking. I have been using Microsoft Outlook Express for some time then moved on to full version of Outlook soon after that. I was a great eMail client.

However, Outlook Express is a hell lot faster compared to Outlook. It is very light and fast. What is missing in Outlook Express is multi email account support. Yes, I know you could switch identity but if you are like me, you will be very disappointed. I have 4 domain and each of my domain would have at least 3 email address. That would translate to 12 emails. If you need to switch identity every five minutes, then it would be a big task and time consuming. I still believe that I would better do something else rather than keep switching identity every few minutes or so just to check my email.

On the other hand, Outlook is great. But it is heavy and resource hungry. I am 100% sure that the new Outlook 2007 could be worst. It has lots of unused goodies. Also, not to mention that it is expensive to certain extend. Why pay for something that is not used? Also, Outlook does not have Newsgroup support. Correct me if I am wrong.

Other email client available on the NET is catching up with Microsoft. However, I normally do not like the user interface very much. The philosophy behind the Graphical User Interface (GUI) just simply different. I know, Microsoft is not the best but we all are getting used to it. They are pretty consistent and persistent throughout any application. That is what I like. Some of the third party FREE eMail client is no doubt very good.

So, my eMail client should have these features:
  • Must be light weight and fast. No excessive nonsense features which is unused most of the time.
  • Must support multiple account. Preferably, multiple Inbox for easy sorting and administration. While you could get away by using filters, somehow I still believe that multiple Inbox should be the way to go for a lazy bum like me :)
  • Newsgroup support. Newsgroup would be very useful in some cases but nowadays, not many of them is relevant. There are full of spam.
  • Faster searching or old mail archive. Very useful when searching old email.
  • It must be FREE in all sense. No advertisement. No nonsense additional stuff to the footer.
  • It must support mass mailing or mailing list. Being a web hacker and web master, I need this feature. I want to sent my Newsletter probably once a week for marketing purposes. So, mailing list is a MUST have feature and of course a multiple list.
  • Preferably a common standard for mail box like Unix mbox and its family.
  • POP3 and IMAP4 support.
  • Many more wishful list which would be very hard to come by....
I will update here again if I come across these kind of eMail client.