Windows Web Hosting, Web Technologies, etc
WoW – Wordpress on Windows
JessCoburn.Com running on ARR! and that not be Pirate speak thar Matey!
Aug 9th
3 Blog posts to say “Hey I’m running on my site load balanced using ARR”. This is the third and hopefully last blog post for tonight. I posted two other posts tonight:
- Discusses the first stage of Applied Innovations Cloud Initiative.
- Discusses ARR & Load balancing.
All of this was to explain how I’m running my website currently (which I tend to test everything on first so I break it a lot but you have to break eggs to make cake, right?).
ARR or Application Request Routing is a new extension to IIS7 that allows you to turn a Windows Server (or VPS as in my case) into an Application Aware Load Balancer with such features as offloading compression and SSL encryption!
How I’m running JessCoburn.com
For the past year and a half, JessCoburn.com has (and continues to) run on a shared web hosting server that runs IIS7 on top of Windows Server 2008. My site is treated identically to how my customers sites are treated as I firmly believe in eating your own dog food (no not ALPO but using the same services you sell). The site makes use of FastCGI to run the PHP engine and backends to a shared MySQL server. All of our shared web servers connect to the SQL servers via a private dedicated gigabit network for optimal performance. In addition, I make use of expiry headers for output caching of my images and also use the wordpress plugin supercache to reduce my reliance on MySQL queries so my pages render faster. So that’s why it’s been fast, I think you’d agree that’s pretty well optimized for a Windows shared hosting website (same thing you could for as little as $8.33 a month with one of our Windows hosting accounts.. Sure it’s optimized but there’s still a problem.
What’s the problem with JessCoburn.com?
The problem is my web site runs on a single web server. This means if there’s maintenance on the box (don’t worry we do this during load traffic times) there’s still potentially downtime. This also means if my site ever gets popular enough to make the first page of DIGG or REDDIT (use those social bookmarks please) then no matter how much I optimize my site on that one web server, I could have a problem… These are the trade-offs we accept with shared hosting (today).
But what if, I could run JessCoburn.com on multiple web servers and load balance them? Yeah who’s going to go out and spend 20K to load balance his little wordpress blog (the profit margins aren’t that good you know). Well thanks to our own cloud computing initiative and the good folks on the IIS Team at Microsoft I can do just that for peanuts! Today!
My new configuration
I have a Windows 2008 VPS running IIS7 with ARR 2.0 Beta 2 on it. It’s of course running on our High Availability Managed Windows VPS Hosting Cluster. I also have JessCoburn.com still running on the shared Windows Hosting server running on IIS7 and I setup another VPS server running on top of Virtuozzo running Windows 2003 and copied the site there. Just to show that you can route requests to any kind of server. Both servers back end to the same MySQL server.
All requests for JessCoburn.com come into the ARR server and it then proxies these requests between the Shared Server and the Win2003 VPS server. In the event one of the sites crashes, is down or has problems, ARR will redirect all requests to the other server.

The easy way to create your first WordPress Theme.
May 6th
Tired of trying to find just the right wordpress theme? There’s millions of them to choose from afterall. Would love to create your own but have less artistic talent now than you did in Kindergarten with a box of busted chunks of crayolas? (You know what I’m talking about. First week of school you had brand new Crayolas by the second week they were all bits and pieces and nubs)
Well No worries! Artisteer to the the rescue! If you can use word, if you can click a couple buttons you can create your own WordPress theme with ease.
Creating your first wordpress theme is as easy as 1, 2, 3
After you download and install Artisteer you’ll want to run (uh duh, tell me something I didn’t know Jess). You’ll be prompted to pick what kind of theme you want to create and it supports more than just WordPress. In fact today it supports WordPress, Joomla, Drupal, an HTML template, an ASP.NET Application and a CodeCharge Studio Template (CodeCharge is for wannabe programmers just like us wannabe artists, I’ll talk about it in the next series and yeah, I use it too and no real programmers use it too).
Here’s the startup screen:
You’ll select WordPress and then get a screen like this:
Now with absolutely ZERO artistic ability and effort. I could export that theme and have just created my first WordPress theme. Let me show you how.
First you’ll click on the Export Button on the top right. and it will prompt you with a screen:
You’ll give it a name and set a path to where you want it to export to as I did above and then click the OK button to let the magic happen. Open up that folder you had it export to and ta-dah! There it is:
That’s it upload that folder to your wwwroot/wp-content/themes folder and you’ve got your own theme installed and ready to go.
Here’s my blog right now (that uses an artisteer theme)
and Here’s my blog with that new theme we just created selected as the theme to use:
Just as easy as 1, 2, 3 I was able to completely change up my blog’s design.
Making the Artisteer theme, your theme.
Here’s the thing. I don’t really care for the yellow sunburst, the palm trees or general layout of this theme so let’s change it up. By clicking the “Suggest Design” a few times, artisteer will randomly create some suggested designs for me and every time it’s something completely different.
After three clicks I got this:
I like the design, but I don’t care for the colors. So I click the suggest colors button a few times and I get:
Those are colors I can live with but I don’t like the background so guess what, I click suggest background:
Now I can go through and get suggestions for every element of my theme and I can also go in and tweak the particular features of the theme as well. Let’s look at the header. I want to change it up. So at the top I click Header and get a new menu bar at the top:
Now I can change the background image, the text location, add a foreground photo, etc, etc, etc.
With a little playing around (and don’t worry if you goof it up just click the undo button at the very top to roll back) this is what I came up with:
Yeah, I know what’ you’re thinking. That’s one scary clown Jess.. But you get the idea, you can tweak every single element of your theme and if you actually have (unlike me) more artistic talent than you did in kindergarten with those broken bits of crayola, it will look pretty nice.
If you haven’t grabbed artisteer yet, definitely do head over and give it a whirl.

Cleaning out unused tables in your WordPress Blog
Mar 27th
Today I moved my database from a MySQL 4 database server to a MySQL 5 database server, for no reason other than to move to 5. But I found a ton of tables in my database for various plugins that I knew I was no longer using. In fact, I had disabled ALL plugins shortly before this move. I wanted to go in and delete all tables except those absolutely required for a base wordpress install.
To do the clean up I used two things:
- a plugin called CleanOptions for WordPress
- a MySQL database client
Before the cleanup
Here’s what my tables looked like before:
and
After the cleanup here’s what was left
Here’s how I did it.
Step 1 backup your database (you never know)
Step 2 remove database tables I no longer require
By working off the Database Description in the WordPress Codex I was able to identify what tables were absolutely required by WordPress in a default install. Since all plugins were deleted/disabled all other tables were not needed. So I nuked them.
Step 3 remove all options no longer required.
This involved installing and executing the Clean Options plugin and best I can tell it got everything.
Finally re-enable the plugins I required
The only plugins I kept after this clean up were Akismet, WP-SuperCache (I didn’t need to hack it to work, it just worked this time) and a lightbox plugin that I need to re-enable. I like to test out and install plugins so I had so much garbage in there over the past few years that I really needed to clean house. Well, the house is very clean now I also deleted more than 120 different themes I had tested over the years and only have the default themes and the one I’m currently using enabled now.

Enabling WP Super Cache for WordPress on Windows Hosting
Feb 10th
PHP on Windows Server is gaining great popularity thanks to Windows Hosts that support PHP like us (Applied Innovations), the work Microsoft and Zend are doing together to make PHP even faster on Windows and the large number of PHP developers that realize Apache represents only a piece of the total website/ webserver market out there and want to really expand their market.
A few months ago I had enabled WP-cache on my site but in order to get it running I needed to make numerous tweaks. WP-SuperCache actually offers many more abilities over wp-cache and it supports Windows by default from install (well, almost).
Why install caching on your WordPress blog (or any blog)
WordPress dynamically generates your pages for you by making calls to the MySQL database server. If your site suddenly sees a HUGE increase in traffic or popularity it’s possible that the MySQL database server you’re using won’t be able to handle the traffic load. What would cause this to happen? Well, one could only be so lucky. Typically if your blog is posted on a site like digg.com or slashdot.org or hey maybe CNN.com even. Chances are your shared MySQL database server isn’t going to be able to handle the load and before long you’ll find either the server crashes or the hosting provider shuts down your DB to allow the other sites on the server to remain online. Not good.
Caching applications like wp-supercache, cache these dynamic requests as static content on your site and pull the content from that static cache instead of making each page that’s called get generated dynamically. Static content can be served EXTREMELY FAST in IIS compared to dynamic content and puts almost no load on the webserver. So by serving static content and limiting the calls to the database server you’re improving the site speed, lowering the load on the server and increasing the number of simultaneous site visitors your blog can handle.
Warning to the faint of heart.
NOTE: Before we go any further it’s important to understand that when we first install this plug-in it’s going to break our blog. We’re going to need to edit one line on one file to fix this. If for some reason after you install this plug-in if you need to manually uninstall it and aren’t able to access the admin interface here’s how to do that:
- Delete the entire folder wp-supercache in the folder wp-content/plugins in your blog directory.
- Delete the files advanced-cache.php and wp-cache-config.php in the folder wp-content in your blog directory.
Once you delete these files and folders the plug-in should be disabled. Go into the plugins menu and verify it’s removed and not listed there.
Remember, this has worked for me on 6 different installs of WordPress 2.7 on Windows 2003 and 2008 based servers but the configuration at Applied Innovations may be different than your host’s configuration.
You make these changes at your own risk and are solely responsible for anything you break.
How to install WP-SuperCache
Within the WordPress Dashboard you’ll select the Plugins option on the left
This will bring up the Manage Plugins page and expand the plugins options in the menu. From here we’ll select ‘Add new’
This will bring up the Install Plugins page with a search box at the top. For term we’ll type “super cache” and click the search button:
The search will run and list several plugins. We’ll select “WP Super Cache’” which as of this writing was at version 0.9 and we’ll click the install link.
This will bring up a pop up and we’ll click the install button to automatically install this plug-in.
Once the plug-in is installed we’re going to activate it but before we do that I need to warn you, that we may start getting errors on our blog. The reason we activate it and enable these errors is that activating the plug-in creates a file we need to edit in order to remove these errors. Without first activating (and/or enabling the plug-in) these files won’t be created and we’re not able to edit them to proceed.
So go ahead and activate it now but understand we’re going to get errors.
Activating the plug-in & editing it for Windows
When we activated this plug-in we probably got an error like this:
Warning: include(D:\Domains\domain.net\wwwroot/wp-contentD:/Domains/domainnet/wwwroot/wp-content/plugins/wp-super-cache/wp-cache-base.php) [function.include]: failed to open stream: Invalid argument in D:\Domains\domain.net\wwwroot\wp-content\plugins\wp-super-cache\wp-cache.php on line 49
Warning: include() [function.include]: Failed opening ‘D:\Domains\domain.net\wwwroot/wp-contentD:/Domains/domain.net/wwwroot/wp-content/plugins/wp-super-cache/wp-cache-base.php’ for inclusion (include_path=’.;C:\php5\pear’) in D:\Domains\domain.net\wwwroot\wp-content\plugins\wp-super-cache\wp-cache.php on line 49
As you recall I said that I had found this plug-in works “almost” out of the box on Windows. I believe each host has a different PHP configuration and at Applied Innovations you have to make a slight tweak to allow this app to work.
NOTE: If for some reason these files don’t exist for you yet. skip ahead and turn on the caching and then open the site again in your FTP client to edit the files. Remember if you need to completely disable this plug-in just delete the folder wp-supercache in wp-content/plugins. If you delete these files and it still doesn’t load you may need to delete the files advanced-cache.php and wp-cache-config.php in the wp-content folder as well.
Open your FTP client and download the file in wwwroot/(yourblogfolder)/wp-content/wp-cache-config.php
and edit the line like this (it should be line #7):
define( ‘WPCACHEHOME’, WP_CONTENT_DIR . "D:/Domains/YOURDOMAIN/wwwroot/wp-content/plugins/wp-super-cache/" ); //Added by WP-Cache Manager
to this:
define( ‘WPCACHEHOME’, "D:/Domains/YOURDOMAIN/wwwroot/wp-content/plugins/wp-super-cache/" ); //Added by WP-Cache Manager
Basically remove the “WP_CACHE_DIR .” portion and reupload the file.
So once we clean this up the paths we should get no more errors displayed.
Enabling WP Super Cache now that we’ve edited it.
From here click on settings and then WP Super Cache to bring up the Super Cache settings menu
Now we’re going to turn on the cache feature:
and click the update status button. WP Super Cache should now be enabled and you should now be caching your dynamic pages as static pages.
Verify caching is enabled.
Now we need to make sure our site loads and is caching. Go to your site in a browser and make sure the page comes up. Hit refresh after it first comes up and it should load faster. Do this on a few different pages and then click “view source” in your browser on one of your pages and scroll to the bottom you should see a couple lines like this at the very bottom:
<!– Dynamic Page Served (once) in 0.429 seconds –>
<!– Cached page generated by WP-Super-Cache on 2009-02-10 12:45:34 –>
You can go back into the WP Super Cache Settings and you’ll see stats on your cached content:
We’re all cached up!
So there you have it. We’ve enabled caching on your site. This article is a work in progress and may be updated or followed up from time to time. Any questions or problems though feel free to comment.

5 Cool Plugins for Windows Live Writer
Dec 20th
One of my favorite applications is Windows Live Writer. It’s a simple to use WYSIWYG blog editor that I’ve wrote about many times. I’ve been using it for probably over a year now and not too long ago it came out of beta. One of the things I truly enjoy with Windows Live Writer is that it’s extensible with a very easy to use plugin system and because of this I’m going to spotlight a few of my favorite Windows Live Writer Plugins.
The Insert Polaroid Plug-in
This plug-in is actually very clever as it makes use of a wordpress plugin (imagine that, I’m blogging about wordpress) called the thumbnail viewer and it’s self. The plugin creates a cool Polaroid style frame around your image, allows you to tilt the image and also display text below the image.
The application has a very thorough set of options available including the ability to define the size of the ‘large’ image displayed in the lightbox, the background color, the tilt, the font, pretty much you name it and you can control it.
The picture above is that of myself with Rob Howard from Telligent so you can see just what it does.
You can learn more about this great plugin from the author’s website: http://www.brettonstuff.com/index.php/tech/polaroid-style-thumbnails
The Insert SnagIt Screen Capture
I absolutely love SnagIt. I’ve used it for years and don’t think I could ever get away with using anything else for my screen captures, it’s a lightweight application that runs in the background and can be called at any time. Using the Insert SnagIt Screen Capture plugin you’re able to add screen captures to your blog posts from SnagIt.
The image here is of my Google Desktop sidebar. What makes SnagIt stand out is that after you capture the piece of your screen you’re able to go into SnagIt and adjust it adding text, highlights, you name it.
You can learn more about the Insert SnagIt plugin from the WLW Gallery: http://gallery.live.com/liveItemDetail.aspx?li=6ba7122b-56aa-4651-a7ab-613359a31986&bt=9&pl=8
The Insert Website Screen Capture
How often have you wanted to take a snapshot of a website and share it with your blog visitors? Okay, probably not very often but when you want to wouldn’t it be cool to have a tool to do so? Well there is.

Unfortunately, there’s little control over the image layout and settings but I think this is a work in progress and we’ll see more before long.
Insert Code
This one is available from: http://gallery.live.com/liveItemDetail.aspx?li=1f57bd9b-a692-4593-9e9e-e2962d9c0eee&bt=9&pl=8 and it’s pretty cool. It allows you to insert formatted source code into your blog entry making it easier to read for your visitors below is a snippet of code I found out on the Internet. It supports C#, VB, HTML, JavaScript, MSH and TSQL. It also allows you to include line numbers, a stylesheet and format alternating colors for the lines.
1: private void menuItem1_Click(object sender, System.EventArgs e)
2: {3: MessageBox.Show("Hello World. This a tray icon application. Bye!");
4: }5: private void menuItem2_Click(object sender, System.EventArgs e)
6: {7: // exits the application
8: Application.Exit(); 9: }Insert Video
This is the top dog of WLW plugins. It allows you to insert a video from all the major video networks:
and you can embed it such that it starts playing immediately. It takes care of all the crazy tags and code, etc so you just click, copy the url and you’re done.
You can learn more about this plugin at: http://gallery.live.com/liveItemDetail.aspx?li=65584500-3bd3-404b-818a-2cdec6304892&pl=8&bt=9
That’s a wrap
Those are some of my favorite Windows Live Writer plugins, there’s over 4 pages full of plugins at the Windows Live Writer Gallery but these are ones that I find especially useful and enjoy using. I’ve love to hear what your favorite plugin is and why. In the meantime be sure to visit the Windows Live Writer Gallery frequently to stay up to date on the available plugins. If you’re interested in writing your own plugins check out the WLW Plugin SDK.
