Oh yeah, I am bringing it ALL home in this post... Open-source Java based blogging software and the infamous (at least in some circles) "World Series of Birding". "What Up Dawg?" you say? Read on...
Some of my coworkers find my blog to be a little, um, "disjointed" - first a post about spiders, then one about the Linux kernel, "nanoseconds", and Java 5, and so on... Last time I talked to Portico's COO, he said he had looked at my blog and it gave him a headache! :-) I think he expected to see some stuff about technology, but was suddenly and unexpectedly exposed to videos of flocking birds.
What can I say? I get bored of computers from time to time! Wait a minute. That's totally false. Actually, the deal is... I have interests other than computers! Sacré Bleu!
Ok dawg, so What Up with the "World Series of Birding?" This is my yearly excuse to get away from the computers for a while, squinting in pain as my eyes are suddenly exposed to "natural outdoor radiation", and enjoy meatspace! It's a fund raiser for New Jersey Audubon. And rather than rant on regarding the event here, I have started ANOTHER blog, expressly for the event. (Please check it out if you want to learn more.)
And, pray tell, what is this OTHER blog built on? Why Roller, of course! So here's the deal - I needed to set up a blog server. I wanted it to be Java based. I didn't want to use a commercial service. And it needed to be easy to use for non-techies, because I was going to be sharing the server with such types. I did a lot of research, and finally settled on Roller.
My first experience was via installation on my OS X desktop at home. I chose MySQL as the backend. Could of used just about anything else, but they point out in the Roller documentation that MySQL is the preferred. We have used MySQL at Portico Systems for many years now - in fact our first major online presence for an HMO was built on a "LAMP" stack, but back in 1997/1998. We also use MySQL as the backend for many of our internal systems, including tracking the millions of version control checkins that have been made over the years to our CVS servers (using ViewCVS).
For the app server I used Apache Tomcat 5.5.16 (running under Java 1.4.2_09).
Long story short - I got Roller up and running fairly easily. The only tricky part was getting the MySQL server to start up using the UTF-8 character set, which Roller depends on for internationalization (I18N):
You also need to make sure the Catalina connector defined in server.xml is using UTF-8 for its URIEncoding, otherwise diacritical characters like 'ç' in a blog post title would break:
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
So after playing with it a little bit on my desktop, I customized one of the themes that comes with the base distribution (Roller uses Velocity internally as its template language), and then migrated the entire server to a Linux server. How easy was this migration? A snap! Here is what I had to do:
- Backup the MySQL database: /usr/local/mysql/bin/mysqldump --opt roller -u sfraser -p > roller_backup.sql
- Copy the entire tomcat tree including the Roller webapp from my Mac to the Linux server
- Installed Java/MySQL on Linux
- Created the MySQL Roller database and user
- Assigned appropriate MySQL permissions to user
- Restore the MySQL database
- Edited the roller.xml as appropriate to connect to the new MySQL backend
- Startup Tomcat!
It is an amazing thing when you can migrate an application like Roller, that is a mix of native (MySQL), and "managed" (Java) code, from OS X to Linux with no problems whatsoever.
So that about brings it all home - biology and software - worlds collide! That's just how I roll people. Goodbye for now.