Static Websites

It’s been over a decade since I touched a static website. After Amazon announced website endpoint support for S3, I wanted to give it a try since the benefits are pretty appealing.

A static website eliminates the databases and serverside code execution.

Hosting a static site on Amazon S3 eliminates supporting the web server, load balancing, caching, etc.

By switching from a common cms system such as WordPress, your most likely to gain a lot of speed and lower the possibility of security vulnerabilities.

A con for some users is that your only option for increasing functionality is to write JavaScript and let it run clientside. For a blog, this is perfect in my opinion.

The tools I used to create a full featured static blog:

Cyrax generates the static site (python / Jinja2 templates)

Amazon S3 serves the HTML and JavaScript

Flickr for photo hosting (could do this with S3, but I like the iPhoto integration with Flickr)

Feedburner serves the rss and publishes new posts to Twitter via Feedburner Socialize

Disqus handles the user commenting system

Google Analytics takes care of traffic analysis

In the end, I am sticking with WordPress for For simpler blogs, I’d definitely consider using Cyrax.

WordPress App for iOS Devices

Testing out the official WordPress app for iOS.

So far, I think there is some primary functionality lacking… There is no way to save a draft post. And the post editor is very simple.

I attempted to paste an image into this post with no luck.

I do value the simplicity but would like to be able to save drafts and embed images in the posts from my iPad and iPhone.

As I am typing this last line, I can’t even see it since the post editor does not scroll up. I had to rotate into portrait mode to finish this. I hope there are more WordPress apps to choose from!

After Upgrading to Mac OS Lion (workstation and server)

I upgraded 2 machines to Mac OS Lion yesterday. The download is not fast and the file is almost 4GB. So it‘s a good idea to save a copy of the installer app after it finishes downloading. That file will be auto-deleted after the Lion upgrade. Then you‘ll be able to create usb installer disks and upgrade other machines while saving bandwidth.

First up was the MacBook Pro 17 (my primary workstation). The upgrade was seamless and I have no complaints. I disabled Spotlight indexing since it was lagging the system, now it’s super snappy.

Next I upgraded a Mac Mini (my primary server). The Mac Mini was at a different physical location, so I performed the upgrade via Apple Remote Desktop. Since the box was already running Mac OS 10.6 Server, the App Store forced me to purchase both Mac OS Lion and the new Server app… which I expected.


Mac OS Lion Server Upgrade CompleteMac OS Lion Server Upgrade Complete




The server upgrade did take a bit more effort. Here are the issues that I had to deal with:

– I was charged for Mac OS Lion upgrade twice. I emailed the App Store and received a refund less than 1 hour later.


Mac OS Lion Server purchaseMac OS Lion Server purchase


– WebDAV is broken. The settings are there (they have been moved from the Web Server config screen to the File Sharing config), but it just doesn’t function… I tested with cadaver and it would not work. Instead of spending the whole night banging my head on this issue, I setup WebDAV with Apache in a Linux VM.

– FTP server is gone. Yeah FTP isn’t ideal, but I do have some devices which only support offloading files via FTP. This bugs me, but I’ll use vsFTPd in a Linux VM instead.

– The config options are lacking. In 10.6 there were way more settings and configurable options available in the Server Manager app. Here is an example of the Web Server settings gui:


Mac OS Lion Web Server Settings

Before You Upgrade To Mac OS Lion

Mac OS Lion was officially released earlier this week and I have been holding off on the upgrade since I didn’t want to disturb any of the projects that I was working on. Well now the weekend is here and I am ready to give it a spin! FWIW, I have been running developer beta releases of Lion on a spare MacBookPro but now I want the final release on my production workstation.

Before you upgrade, it’s a MUST to check the RoaringApps App Compatibility List and compare all of your apps to see which ones will work and which ones will not. This list is built by the community and is the most critical tool in determining if your ready to upgrade.


Another MUST is to create a clone of your existing system, I use SuperDuper!. If your upgrade fails, SuperDuper makes it simple to roll back the system state quickly.


Ok, I am ready to go upgrade my box… And then will be upgrading my Mac OS Servers!

Backup Google Voice Messages

I’ve looked for solutions to automatically download and archive all of my Google Voice voicemail messages, without success.

Fortunately I discovered the PyGoogleVoice project ( Google Voice for Python allows you to interface with the Google Voice API from within your Python apps.

Since I only wanted to download the mp3 files for each of my voicemail messages, I modified the example code to suite my needs. Here is a sanitized copy of my google voice backup script:

Uncomment the last line ‘message.delete()’ to automatically delete the message from Google’s servers after your download is complete.

To fully automate the backup script, schedule the job with cron. Here is an example that will run the script every day at 1am.