I drive through 18 sets of traffic lights on my normal route to work. What is the chance of all of them being red? It sometimes happens…
Discovering MODx
Many people who know me know that I am not a big fan of most web content management systmes (CMS). In general I have found that the hoops these systems make you jump through to set up and manage sites far outweighs the benefits they bring for easy content maintenance.
I am not, however, a content guy. I’m a pretty good editor, but as far as writing original content is concerned, I suck (that’s probably why I blog so infrequently). For that reason I am trying to offload some of the website responsibilities for Tay House onto other people. Bringing more people into the mix means that I need an easy way for them to manage the site without them being able to screw up my design (I’m kind of anal about that)–and doing that pretty much points to using a CMS.
A couple months ago an online acquaintance asked me to get involved developing a CMS called OpenLeaf. Openleaf was a fork of another CMS called Immerse and I was rather impressed by it—it had a nice interface with full control over templates, custom template variables, and a nice live edit feature. Unfortunately OpenLeaf was still rather immature and I didn’t have the time necessary to develop new modules to do what I wanted, so I found myself doing a lot of things by hand. Because of the trouble finding talented developers to assist with the project, it now seems to have been shut down, too. Too bad, too, because it has a lot of promise.
Last week I started looking for a new CMS for the Tay House site and headed to OpenSourceCMS.com to check some out. After reading a couple of positive recommendations for it on other sites, I decided to take MODx for a spin. After playing with the admin interface on OpenSourceCMS for a while, I decided to download and install it on one of my servers and I’m happy that I did. Within about an hour I had my templates built (the design, base XHTML, and CSS were done in advance, of course) and I was already starting to implement features like automatic menus and breadcrumbs.
Ironically, MODx and OpenLeaf are distant cousins—MODx is a fork of Etomite which was evidently originally developed by the founders of Immerce.
MODx has a very active community with lots of contributers providing code. So far, for everything I’ve wanted to do, I’ve found a solution. MODx makes it easy to build complex sites with the use of custom template variables, chunks, and snippets.
Template Variables (TV’s)—One of my biggest frustrations with a lot of CMSes is that they provide a single “content” field in their editors. I often create designs that have multiple areas where I’d like to include content–and often its not just display content but rather, perhaps, a variable CSS class to affect styling on certain pages or something such as that. MODx allows me to create as many custom template variables as I need in a variety of formats, such as text fields, rich text fields (WYSIWYG enabled textareas), or dropdown lists. MODx isn’t quite as flexible as OpenLeaf in this regard, but the difference is so minor its hardly worth mentioning.
Chunks—Chunks are nothing more than little pieces of HTML, stored outside of the main templates, ready to be shared across pages. In my templates I’ve been putting my common headers and footers into chunks—that way, at redesign time, I only have to change them once to change the whole page.
Snippets—Snippets are little pieces of PHP code that make up the real power of MODx. Want to insert the current date on a page? Add a snippet. Want to build a menu of all child pages of the current one? Add a snippet. Snippets can also reference chunks to display different information based on certain circumstances, making it really easy to build dynamic, easy to maintain content–including validating forms–without having to break out of the CMS.
Within a few hours of the install I had a fully working site (sans most content, of course). I’m now making tweaks–for example, in one section of the site I wanted to add previous and next links to easily move between pages, which the PrevJumpNext snippet is designed to do. However, PrevJumpNext has a ton of options and to get the output I wanted required me to pass about ten different options to the snippet and that still didn’t still didn’t get me exactly what I wanted. With about a half-hours work on a lunch break the other day, though, I was able to trim it down to “light” version that does exactly what I need with no fuss.
While I still have reservations about CMS tools in general, I’m already thinking of how MODx can help me with other projects I want to take on.
Upgrade to WP2.7
I am horrible about keeping WordPress, the software that powers this blog, up to date. Even though the upgrade process has always been fairly simple and has never given me problems in the past, its manual nature always leads me to put it off until that utopic period of free time I am always envisioning.
Tonight I decided to upgrade to the latest version, 2.7. I’ve heard lots of good things about this version and, so far, I like what I see. The new admin interface, while perhaps a bit more monochrome than I would have designed, is very clean and easy to use and all of my plugins (not that I use that many) are working without issue. Perhaps best of all, though, is the fact that this version comes with an automatic upgrade feature, so I’ll never again have to put off a manual upgrade…I hope.
Next on the list is upgrading my custom theme. The sites current design is something I thew together for a blogging tool I was writing myself but have long since abandoned. It was actually my first attempt at a fully CSS-controlled, tableless design. When I switched to WordPress 1.x I brought the design with me and later adapted it to be a WP2.x-compatible theme. But, alas, I haven’t kept up with the developments of WordPress, so my humble theme doesn’t support many of the “new” features like pages, widgets, or tags.
I’ll begin the upgrade as soon as I have some free time…
Say Goodnight Gracie
A pretty major event occurred at RIT on Monday, but hardly anyone probably noticed. It wasn’t marked by any sort of fanfare or celebration, just a simple email that popped up on my screen saying “Mike Young has completed a PCR.” And with that the “Grace” web server was retired.
Anyone who’s spent any time on the RIT campus knows Grace. Over the years the venerable Digital Unix cluster has served many purposes. For many years it was one of two main email servers for the campus. It also handled file sharing. But most people know it as the web server.
In actuality, grace.rit.edu is nothing more than a shell server. All it handles—and all it ever handled—are shell connections (telnet and later SSH) and file transfers (FTP, SCP, SFTP, etc.). It is but one small piece of the whole OSF environment but, as the most people’s primary gateway to the other OSF services, it is the best known.
The OSF environment was a powerhouse in its day, but with the acquisition of DEC by Compaq and the discontinuation of Digital Unix it eventually became a dinosaur. Like so many enterprise systems, though, moving on was difficult to do, so “Grace” kept chugging even though she couldn’t support anything newer than Apache 1.x and PHP 3.
Grace was the server through which I published my first website. I still remember going to the ISC (now ITS) HelpDesk, then in building 10, to request a Grace account. Once I got it, I had to sit down with the Unix tutorial the HelpDesk provided and Harley Hahn’s Student Guide To Unix before I could figure out how to use it because I had no clue about Unix and vi had me stumpped, but I persevered and, thanks to Grace, became pretty proficient with Unix in the process.
About two years ago, after a wait of what seemed like forever, a new web environment was brought online. The new environment, running on Solaris, is much more modern and can scale to the institutes needs much better. The new environment also replaces the illogical department-number-based URL structure of “Grace” with a more meaningful hierarchical structure that makes URLs easier to share and remember. During the transition, sites not yet migrated to the new environment were proxied through it to ase-web, the “Grace” web server. Last Friday I had the honor of disabling the last remaining proxy and making way for the event that happened on Monday.
On Friday the Grace shell server gets switched off and we officially close another chapter on computing history at RIT. Then we party!