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.