I have added a fully functional RSS and ATOM feed to the
content management system.  There are still bugs to be
 worked out, but the system is up and running.

I have been meaning to learn how to program RSS and
ATOM feeds for a while now.  I have workded with software
that did this in the past, but never really know the actual
format that RSS and ATOM needed to be in.

I would seem that RSS and ATOM would be simple
enough to implement, but any time you try to make
somthing conform to standards, you end up running
into obscure problems that you didn't anticipate.

With ATOM is was the self referencing link.  There isn't
a whole lot of documentation supporting this, but to have
a fully implemented ATOM feed that is standards
compliant, you need to include a link back to the
feeds location.

Google Sitemaps
I have just added a Google sitemap to the Content Management System.  It was actually quite a bit easier than I expected.  I haven't implement all aspects of the Google sitemap spec, just the bare bones however.  The general creation of a Google sitemap consistes simply of an XML document with a list of all the URL's in the site.


For each page of the site.  The Google sitemap spec also offers advanced functionality to describe how often pages are changed, and what their priority is in comparison to the rest of the pages within the site.  I plan on adding this functionality later on so it is all editable through the admin.

So far, the Google sitemap has done very well for my site.  After I added the site map to Google's database of sitemaps, I had all of my pages crawled within a day.  Pretty good.

You can check out the sitemap at http://345software.com/sitemap.php

URL Rewrite
I have heard great things about the Apache Webserver mod_rewrite extension for quite a while now.  I have never investigated it or spent time learning about it because all of the production web servers that I work with are IIS.  Today I was spending some time learning some of the intricacies of SEO, and decided I would see what type of solutions there were for URL rewriting in IIS.  It turns out that there are quite a few out there, and even a couple that are open souce and freeware.

Making sites that take advantage of URL rewriting requires yet another level of complexity, but if planned for properly, the benefits can be wonderful.  The idea of writing URLs is to make your web pages easier for web crawlers to index.  Usually web crawlers won't index a page that has more that one or two attributes in the querystring if even that.  By rewriting your URLs, you can make a page like:
http://345software.com/index.php?page=12&menu=13_24 into

Thus the spider will be more likely to index the page.  You can even drive more benefit out of this by adding in your SEO keywords into the URL rewrite.  So maybe you have something like.

I will be implementing the URL rewrite functionality on this site in the future.  Stay tuned to see what types of issues I run into.

404 Error Pages
I learned something today about creating custom error pages.  I finally launched a site that I had been working on for quite sometime yesterday, and I realized that all of the legacy links would end up pointing to nowhere.  The obvious solution for me was to create an error page that redirect back to the landing page.  This worked fine, and all requests that ended up in a 404 error just landed on the home page.

The problem didn't occur until I tried to add the Google sitemap to Googles database.  I was unable to verify the site because the 404 error was returning the 200 - OK status.  What was my solution?  On the redirect from the error page, which is just a simple header('location: index.php') call, I appended a querystring called error.  Now when the index page gets an error=404 querystring, it appends:
header("HTTP/1.0 404 Not Found");
to the HTTPheader.

I have been learning there are a lot of little subtleties to HTTP headers that you would never really concern yourself with unless you were a web standards nut, like I'm becoming.

FireFox reaches 100 Million
It's no secret that I love the FireFox browser.  I pitch it to everyone that uses the web, and I have seen great adoption of it's use.  It excels Microsofts Internet Explorer in many ways, especially if you are a web developer.  Somehow, IE has become that bastard browser that you have to account for when developing standards compliant websites.

Just yesterday, I found a new use for FireFox that IE simply couldn't, and probably won't for many years be able to accomplish.  I had to examine my HTTP headers, and IE (being the idoit proof brower that it is) has no way of accomplishing this.  FireFox, from the default install has no way of accomplishing this either.  But there are so many contribs and extensions and modules written for FIreFox, I did one search, and the first page was exactly what I needed.

Don't get me wrong, I love Microsoft and Microsoft products.  I personally believe that the .NET framework is one of the greatest things to happen to developers, even though I spend a lot of time working with PHP.  I'm concerned that FireFox is beating IE to the punch on at every corner, just like AMD is doing to Intel.  Microsoft finally released a developer toolbar, which I think is even nicer that what the FireFox tools offer, but it's too late, I already switched to FireFox for their wonderful developer tools.

I can't believe that Microsoft hasn't released a patch for IE to allow tabbed browsing.  Everyone that I talk to that hasn't used tabbed browsing thinks it's completely overrated.  As soon as I get them to download FireFox, their entire point of view changes.  I can't say that I was any different.  I find myself hopelessly dependent on tabbed browsing.

As a web developer, I find that it's easier to develop in FireFox, then fix the issues that IE has displaying the site properly (I call them "hacks).  I'm afraid that if Microsoft doesn't change their toon soon in regards to standards compliance and browser features, they will loose the brower market share that they so wonderfully took from Netscape.  Then they will be the ones struggling to keep up with the competitions features (which is already happening).  With AJAX becoming a very popular buzz word indeed, they had better figure out how to make IE use the XMLHTTPRequest object correctly.

We love you Microsoft, but it's time for an IE update quick like.

OpenOffice Disappointment
There has been a lot of buzz in the industry lately about OpenOffice and other office suites and how their going to challenge Microsoft Office's market share. I was starting to buy into the buzz, until I downloaded OpenOffice. I had been meaning to download OpenOffice for some time now because the only word processors that I have on my home machines is WordPerfect due to the fact that I was too cheap to pay the extra money to get Microsoft Office.

Certainly this has been a nuisance when trying to open Word docs, epically documents for my girlfriends homework assignments. For the most part, I can get by with the so-so document conversion that WordPerfect performs. I was excited about OpenOffice, I keep hearing about how well it can open Microsoft Office documents, and makes conversion real simple.

So I finally got around to installing OpenOffice the other day. With great excitement, I went about checking out the programs that the suite provides. OpenOffice provides similar programs to Word, Excel, PowerPoint, and Access. They even have an additional program called Math for creating math formula representations.

First thing I tried was Writer (equivalent to Word). When I first started it up, the hard drive started to churn, and seconds then minutes ticked by. I thought that it wasn't going to load, so I click the Writer icon again, CRUNCH. Applications open: zero. System crashes: one. Ok, lets try that again. This time it opened in about 20 seconds (Yikes!) and I finally got a chance to click around. Well there are some features in here that look pretty cool, but first I have to print a document for the lady. Wait. Where is the print preview button? Nevermind, just print. CRUNCH. Documents printed: 0. System crashes: 2. Not off to a good start.

Ok, one more time, lets try and open this Word document using OpenOffice and try printing it. "Open with - > OpenOffice". CRUNCH. Documents Open: 0.  System crashes: 3.  Well, I'm starting to think that my productivity is going to drop drastically with this office suite, as I have only tried to open 2 documents and print one, and I have already spent 15 minutes dealing with system crashes.

So I guess what I'm getting at, I was really excited to have an office suite at home that was comparable to Microsoft Office, but have been extremely let down. Anyone who things that OpenOffice, or Sun's StarOffice is going to present and challenge to Microsoft Office has never installed and tried to work with either. Do I think that these products could improve in the future? Maybe, but I think there is an issue here that was outlined in an article called "Why Open Source Usability Sucks" that talks about how  developers that aren't getting paid don't want to work on fixing other peoples bugs. As a result, all the meaningless features that are fun to program get written, but all the bug fixes and features that aren't fun to code, but are essential to a good program don't get finished.

I hope that OpenOffice will have a bright future, but just like anything Sun backs, I see little to no light at the end of the tunnel. There is just no getting around the fact that OpenOffice is just a cheap knock-off of Microsoft Office.

AJAX Web Chat Tutorial
I have been working on a tutorial to explain how to create a web chat application using AJAX technologies.  I'm almost finished with the client site tutorial, and I'll be starting the server side tutorial soon.  You can find the AJAX Web Chat Tutorial here,  and you can find an example of the tutorial application here

I will be working on this application in the comming months, so stay tuned to see it's progress and view the new tutorial information.

Wikipedia Browser
I ran across this, and it'spretty cool.   This little AJAX application is released under the GPL and allows you to browse the Wikipedia in a friendly little browser style interface.  I'm looking forward to digging through the code to see how it's all setup.  This is definitly a great example of the capabilites of AJAX technologies.

By the way, I have finished Part One of my AJAX Chat Tutorial.  It's pretty basic, and lacking much desired functionality, but if you need a quick start to creating AJAX style websites, this is a good place to start.  All the source code to the application is avaliable, and the tutorial explains the application line by line.  Try it out and let me know what you think.  I will be working on part two later this week.

An AJAX Instant Messenger
Now that I'm finished with Part One of my AJAX Chat Tutorial, I was going to move on to part two which involves making the AJAX chat more robust.  Instead, I'm going to use the AJAX Chat Tutorial as a base for an AJAX driven Instant Messenger for websites. 

I'm currently about halfway through the coding, and just getting started with the documentation, but I will have the internet back up at my house tomorrow which should make it much easier to post updates.  Stay tuned to see a neat little AJAX IM application. I will also be finishing up part two of the AJAX Chat Tutorial in the coming weeks.

I was looking at the statistics of an old site that I don't maintain anymore to see if anyone is still visiting it.  It was never a very good site, so it only got a few visitors a month.  I have stopped maintaining it for quite some time now, but I have left it up for no real reason.

The site was mainly a blog / test site where I had written a rant about how there is no documentation on running an IXSSO query in PHP.  The only people who visited the site were looking for information about how to do it.  So I have decided to write an article on this site about querying the Microsoft Indexing Server from PHP.

Hopefully this answers some of the questions that are hard to find.

AJAX Suggest and IXSSO
I have just about finished a new AJAX tutorial that teaches you how to create a Google Suggest style search box.  The article walks you through the steps for creating the front end, making the AJAX request, and a simple backend that can be easily extended.  Suggest is one of the better AJAX patterns that I have seen as far as usability is concerned.  You can find the AJAX Suggest Tutorial here.

I have noticed there is a lack of really good information out there explaining how to use the Indexing Server, so I decided to write a series of articles explaining how to use the Indexing Server in several different scenarios.  There are some really cool things that you can do with the Indexing Server from a website including creating, deleting, and rescaning catalogs.

I have also finished a rough draft that explains how to run IXSSO Queries from PHP.  I will also be covering how to query the indexing server from .NET with the native CISSO wrapper.