My Little Corner of the Net

Making Ubuntu “Pretty”

Since I started college, I’ve been a fan of Linux, at least for servers. The basic multiuser setup of the Unix environment (from which Linux is designed) has numerous advantages in a server environment and using Apache for web hosting allows for a lot more flexibility than most Windows-based hosting solutions.

When it comes to desktop OSes, however, Linux has traditionally fallen short. Driver incompatibilities, lack of professional-grade software, and a complicated setup have typically contributed to Linux’s shortcomings.

About a year ago I needed to begin using a utility for work that only runs in *nix environments. At the suggestion of my boss I started running a Ubuntu virtual machine in Sun’s Virtual Box. Prior to this, most of my Linux experience was with the Red Hat family, starting with the old Red Hat Linux and, more recently, with CentOS. I must say I was pleasantly surprised by Ubuntu—it has the smoothest running Gnome desktop implementation I’ve seen in a Linux distro and I now find myself doing more and more with my VM simply because it just works—sometimes better than the Windows XP host it runs in.

One thing, however, that bugs me about Ubuntu is its color scheme. Despite it also being my alma mater’s colors, I just can’t get over the orange and brown interface. Fortunately, as I’m about to show, that’s easy to change.

Default orange and brown Ubuntu desktop

Default orange and brown Ubuntu desktop

First, we’ll start by installing some new wallpaper images and the Tango icon set. The Tango Desktop Project seeks to establish a consistent user-interface across free and Open Source software. I chose Tango because it is visually appealing, it is nearly complete (or at least more complete than other icon sers I’ve tried), and because it is available in the standard Ubuntu repos.

First, open a terminal window and use apt-get to install the required icon packages (you’ll need admin privileges to do this):
sudo apt-get install gnome-backgrounds tango-icon-theme tango-icon-theme-common tango-icon-theme-extras

Now that the packages are installed, go to the System > Preferences menu and select Appearance.

Select Appearance from the Preferences Menu

Select Appearance from the Preferences Menu

On the Appearance dialog Theme tab, choose any of the existing themes and click Customize. Don’t worry about colors, as we’ll change those in a minute. Personally, I prefer the Crux theme.

The appearance dialog, theme tab

The appearance dialog, theme tab

In the Customize Theme dialog, click on “Colors.” Then click the background color chip for “Selected items.”

Chnge the selected item color

Chnge the selected item color

In the color picker “Color Name” field enter #3465a4. This is a shade of blue that is used extensively in Tango icons. Click “OK.”

Change the color of selected items in the UI.

Change the color of selected items in the UI.

Next, click on the “Icons” tab and find and select Tango in the list. When done, click “Close.”

Chose the Tango icon set

Chose the Tango icon set

Now click on the Appearance dialog’s “Background” tab. You should now see several new wallpaper images to choose. Find one you like and select it. You can also select other images you have stored on the computer and use those as backgrounds, as well.

Select a new background image.

Select a new background image.

Once you’re done, click “Close” and enjoy your new orange- and brown-free UI.

New, customized Ubuntu desktop in tolerable colors

New, customized Ubuntu desktop in tolerable colors

Welcome Back tayhouse.org

Several years ago I became connected with Tay House and, shortly after, found myself developing the troop’s website. At that time, we had the domain name tayhouse.org. Through my work, the troop was able to develop a new communications mechanism and gained highly favorable search engine placements rather quickly. We got lots of great comments from our scouts, parents, and alumni–and then one night it all disappeared.

Due to a number of snafus, we lost our tayhouse.org domain name. The story was about the same as every other “lost my domain name” story I’ve heard: I simply tried to make an update to the site one morning and the site wasn’t there. I knew the server was up because other sites on it were working fine. After exhausting my entire list of things to check, I did a whois lookup and found the name had expired. We never heard about it because, at the time, the name was registered to the business of a parent of a scout and the email address attached to it belonged to an employee that no longer worked for him.

Before we could rescue our name, the registrar dropped it and, of course, a squatter grabbed it right away. I eventually found that tayhouse.net was available and registered that (another cybersquatter had tayhouse.com already) and that became our new address. Eventually tayhouse.com became available and, when I noticed it, I registered that as well.

Old names die hard, and to this day I still find things that reference tayhouse.org and still refer to it erroneously myself—so I continued to feel a need to get it back. In March the name finally expired. As the expiration approached, I continuously checked the whois records hoping it would not be renewed. Then I watched as it sat in redemption for two months, checking daily to see if it had been dropped. Finally, yesterday afternoon, as I glanced at the Post-It note attached to my monitor and realized I hadn’t yet checked on it, I was greeted with the words I though I’d never see “tayhouse.org may be available for registration.” I immediately headed to my registrar’s site and grabbed it back and within 20 minutes had it resolving to our site once again.

I now feel as though I’ve found a long lost friend.

ImagineRIT Festival This Saturday

The ImagineRIT Festival is this Saturday, May 2. Come check out all the cool stuff that happens behind the scenes on the RIT campus.

Check out this cool promotional video that University Publications created:

ImagineRIT Festival official site

Traffic Lights

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.

<