Over the last two years, they've changed the URL patterns and had numerous bouts of downtime on WebDAV. It was free, it was unsupported, it was only marginally annoying.
I installed it an hour ago and it gave my site a performance grade of D with a score in the low 60's. After a few small tweaks, my grade is B and my score is 83. My blog should be noticeably faster to load.
The first thing it recommended I do (an "F" on Reduce DNS lookups) was to strip a number of the third-party JavaScript features I'd added over time in order to reduce the number of domains my site referenced. I removed the Technorati, Skype and Twitter JS calls because, well, they really don't add much value. I changed my Site Meter code to use the non-JavaScript version - which also had the benefit of removing attempts to ping specificclick.net which sets a third-party tracking cookie (Google for more details - some people feel Site Meter should have been more open about this change).
I also got an "F" for ETags. Reading the Yahoo! site (linked from the YSlow plugin) gave me the Apache magic necessary to disable those (in my .htaccess file):
An "F" in Expires header scoring became a "D" after I enabled Expires headers for CSS and images (again, in .htaccess):
ExpiresByType text/css "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
My Gzip components scored improved to a "B" by adding a directive to deflate CSS:
Another tweak I made that seemed to help was adding defer="defer" to the Developer Circuit JavaScript include - the only third-party JS left on my site now.
The only remaining "red flag" - my one remaining "F" - is the recommendation to use a CDN which isn't really available for free to folks like you and me.
If Developer Circuit adds a few Expires headers, enables Gzip and disables ETags then my site will get faster still but I'm impressed with what I've been able to do in a short space of time.
Thanx Yahoo!
p.s. Also thanx to John Farrar who was the first person to notify me about YSlow!
Today I decided that my Apache setup was less than ideal and took the plunge and reconfigured everything to use named virtual hosts instead. It went pretty smoothly because all I did was:
- Replace existing Alias directives with VirtualHost groups (and copy in any associated Directory group)
- Changed each port-based VirtualHost group to use *:80
- Added appropriate ServerName directives with made up domain names
- Added those domain names to /etc/hosts
- Restarted Apache (sudo apachectl restart)
The only roadblock I hit was that I drew a complete blank on how to enable directory listings (for my local "scratch" ColdFusion instance). I had Options Indexes enabled everywhere but no dice, just "403 Forbidden". I could browse directories on my main document root but couldn't browse directories on any of my ColdFusion domains. I thought it was something deep inside an XML file. After bashing my head against a wall for about half an hour I asked a few folks online. They didn't know. So I did what I should have done in the first place: I asked on the #coldfusion channel on irc.dal.net. Sure enough, within a few minutes I was up and running. Thanks go to B0llock5 for that!
The solution? To add the following directives to the VirtualHost that needed directory browsing:
- Order Allow,Deny
- Allow from All
Updated link March 1st, 2007.
Now, I love Apache but I'll accept that it has some, er, "quirks"... My favorite slide is the one that talks about the powerful mod_rewrite:
I probably don't need to say anything more than just "mod_rewrite". But I will."Voodoo" and "... flexibility of sendmail"
The docs practically scream "GO AWAY!"
I figured I could publish my calendars to get at the .ics files. iCal publishing supports .Mac and WebDAV. My ISP does not offer WebDAV. Hmm.
Guess I could enable WebDAV on my local Apache and publish to that, then use my old cron job to push the files from the webroot up to my ISP...
I found these articles about WebDAV on O'Reilly and WebDAV.org that helped me figure out most of it. I added a .htaccess file to Limit the WebDAV operations but couldn't write to the new WebDAV setup. Finder could connect, even prompting for the right credentials, but the folder was mounted readonly. Eventually I realized that the DAVLockDB directory path I'd specified didn't fully exist. A quick mkdir and a chmod and everything started working!
Now iCal happily publishes to my local Apache setup, my cron job pushes the files to my ISP and my wife can, once again, see what I'm doing.
It's the first time I've used WebDAV. It's pretty neat!
http://corfield.org/search/keyword will search this blog for keyword as if you'd typed keyword into the search field (below, right).
This has been achieved with an Apache mod_rewrite directive (search this blog for mod_rewrite).
Enjoy!
Steve Collins, Rae Buerckner and Jeremy Cox have put together a great document on how to setup a development environment based on Apache, CFMX 7, MySQL and Eclipse for Windows. It's a great step-by-step guide (with a little humor thrown in). This "ACME" environment is what I use locally (on Mac OS X) although I've substituted DBEdit for QuantumDB and XMLBuddy for <oXygen/> (since XMLBuddy is free). It makes for a great localhost development system - free, flexible, robust and powerful.
It was not as easy to get that far as I'd hoped. A Mono developer said "Well, just pull the latest files from CVS" but what's in CVS differs from the packaged source files so you have to run an 'autogen.sh' script to create the 'configure' script. However, the mod_mono autogen.sh complains about a few things on Mac OS X and then the generated configure script fails with a syntax error (at line 18,817!). After struggling with the infrastructure for a while, I simply ran a diff across the mod_mono source code and then applied what looked like the necessary changes. Ack!
I discovered I don't have IIS installed on my VPC copy of Windows 2000 so that was a good excuse to download and install Apache 1.3.29. That went very smoothly and took only a few minutes. The CF5 install took a bit longer but was still fairly straightforward. It complained that it couldn't find IIS but it didn't detect Apache so I was in for a manual install.
That manual install consists of copying
AddModule mod_coldfusion.c



