All posts by gorzek

Travelicious #1: The Departure

In using #1 to designate this entry, you might think I’m boxing myself in and indicating there can’t and won’t be entries that describe events prior to this, such as planning and packing and so forth. Oh, but you would be wrong, because #0 and #-1 and so forth are still available. If it’s good enough for comic books, it’s good enough for me.

That little detour aside, I am sitting in Terminal B at Newark Liberty Airport, waiting for my plane to be called for boarding. That won’t happen for another couple hours, so I have plenty of time to kill. I’m seeing if I can pull one over on my wireless carrier and tether my phone without buying a separate plan. We’ll see how that goes. Not that it will do me any good in Europe. Did I mention that’s where I’m going? Well, that’s where I’m going. I will land in Brussels tomorrow morning, have just about an all day to kill, then I will fly to Budapest.

About that tethering thing: it worked. Sweet! Not that you care. This is a travel blog, not a technology blog. Nobody likes technology blogs anyway, unless they’re Slashdot, and everyone hates Slashdot, too. So I’m told.

I actually had to endure less security for this flight than I did during my last trip to Indiana. Go figure. But then I had to present a passport, and they scan that upon check-in, which no doubt pulls up any naughty things I’ve ever done. As long as I’m not bad enough, I guess they will continue to let me through. The stupid thing actually wouldn’t scan at their computer terminal for some reason. Brand new passport, wouldn’t scan. Figure that one out. On the fourth try it finally went through and they sent me on my way. They assured me my one and only checked suitcase–containing my clothes and other essentials–would be forwarded along to my connecting flight without me having to do anything. I know with some international flights this is not the case when you have a connection, so I at least made sure to ask.

Items of interest: in this terminal, there are no restaurants and I didn’t see any particularly interesting stores. What they do have is a Samuel Adams bar (with just alcohol, no food) and a duty free shop with alcohol, cosmetics, and cigarettes. All things which have just so much appeal for me, you know. I was thinking maybe I could get something to eat here but evidently that is a non-starter. I might wander back up the corridor and see if I missed a place with genuine food. Or I’ll get drunk. Who votes for drunk? That’s the spirit.

Unsurprisingly, most of the people in this terminal are Indian. In case you didn’t know, Jet Airways is an Indian airline. The name isn’t Indian so you might not pick up on it. There is also “India Air,” which I bet actually flies out of Malaysia or something, just to throw people off. But no, I have an Indian airline taking me from New Jersey to Belgium. Try to figure that one out. Not that I am complaining, since I got such a killer deal on the tickets, without which this trip would not have been possible. I stalked the prices for weeks and happened across a fare that was about half the normal rate. Just couldn’t pass that up.

The cab ride to the airport was uneventful, moreso than usual. Traffic was only bad along one a short stretch of a notoriously-lousy highway. The driver was young, possibly younger than me. Not very talkative, either. I like a cab driver who will chat you up a bit. He asked where I was going but beyond that he didn’t seem to care much, so I daydreamed and took in the architectural wonders of downtown Newark. (In case you’ve never been to Newark: that’s a joke. There isn’t much to look at, unless buildings with shattered windows and ubiquitous graffiti are your thing.)

I had no idea the whole check-in and security theater proces would take, but I got through everything in maybe 20 minutes. I think it might have taken less time than a domestic flight, somehow. I didn’t have as many people to wait for in the security line. I also “accidentally” left my belt on, and no one noticed. Whoops!

It occurs to me that this particular entry may not be very interesting since I have not actually seen anything interesting yet. But hey, maybe my prose is enjoyable enough on its own.

For the traveler who has never been to Newark Liberty Airport, it’s actually pretty damn nice once you get to the terminal area. Very clean, and there are pillars with electrical outlets so you can charge up your phone and/or laptop. You also get a sweet view of the flightline, if you are into that kind of thing, which I am.

If you arrive at the correct terminal to begin with, you will probably find EWR very easy to navigate. However, if you must go to another terminal (there are three), you’ll have to use the AirTram system. The AirTram itself is cool, but the connective tissue can be a little absurd. You might have to go upstairs and then downstairs and then upstairs again. Parts of the airport resemble a maze. This is really just a failing of the airport’s central facility. The terminals themselves are much more logically laid out, which is why I strongly recommend just hitting the proper terminal right off the bat. It is a nice airport, but I would say it’s not as nice as Indianapolis International. Indy’s airport is much newer, though, so that’s to be expected, right?

Given that I haven’t flown on anything besides short-hop commuter planes since the late ’90s, I’m interested to see what an Airbus A330 is like. I’ll be on the 200 model. From Brussels, I’ll be on a 737-800, I believe. My first flight is a window seat. I can hardly wait to see all that ocean. Oh yes. My second flight, however, is an aisle seat. I guess I get to enjoy the immense variety of economy-class flying. Bwahaha.

My next update will most likely be from Budapest. I have no idea if I will have Internet access in the Brussels airport. And even if I do, I’d rather be poking around the airport and the city while I have the opportunity than playing around on the computer. Nevertheless, I plan to put up a blog every couple days, minimum. Worst case, I will take down notes and compose the blog entries later. But they will come. And pictures! Yes, pictures. Everyone loves pictures.

So, until next time.

Adventures in Typesetting, Part 1

A task I undertook a while back was typesetting my (still-upcoming) book, Shatternity: Origins. This post is not really about the book but rather the process of editing and typesetting it. For this article I will focus specifically on the use of styles.

Going in, I had no knowledge of typesetting. I’d taken word-processing courses over the years and I know my way around Word and OpenOffice. I can usually figure things out when I need to. However, I’d never taken a stab at typesetting a novel into a format appropriate for publishing. Since I intend to self-publish this volume (a separate article altogether), it was up to me to make sure the finished product was slick and professional. So, I am going to attack the various details that came up in the process of typesetting this book. I hope these tips are of use to you, the amateur typesetter and self-publisher.

To start with, I’ll assume you’re using version 3 of OpenOffice Writer. If you’re using Word, the same features should exist but will be in other places. If this article gets a decent amount of attention I might consider writing a Word version of it, too. In the meantime, though, let’s just go with OpenOffice. Now, on with the details!

Widows and Orphans

First, you need to know what widows and orphans are in a publishing context. A widow is what you call the final sentence of a paragraph when it reaches the following page, leaving part or all of that sentence by itself on the page. An orphan is the same basic idea but regards the opening sentence of a paragraph. Both of these are ugly and should be avoided. Luckily, OpenOffice provides a way to control this.

Before we go any further, you’ll need to know about OpenOffice’s style features. Instead of manually adjusting font sizes and formatting every time you want to do a chapter heading or a subtitle or body text, you should define styles. You should see a bar just above the ruler or a floating toolbox named “Styles and Formatting” with items named things like “Heading 1,” “Text body,” etc. Each of these is a style. If you don’t see the “Styles and Formatting” box, click the button all the way to the left of the style toolbar. This will bring up said box. Then, right-click one of the styles–preferably “Default”–and pick “Modify…” This brings up the “Paragraph Style” menu.

Next, click the tab marked “Text Flow.” You will see many options, but here we want to worry about “Orphan control” and “Widow control,” which are the two options at the bottom. Set both to at least 2 lines. That should be sufficient for avoiding orphans and widows. Note that you’ll still want to visually check your document for them later, in case any were missed, but this option will thwart most offenses.


Now that you’ve done a little bit of modification to a style, you’re probably interested in what else is possible. For the time being, make sure you’ve selected “Paragraph Styles” in the “Styles and Formatting” box. This is the button in the upper left with the traditional paragraph symbol on it. (There are styles for pages and other things, but we’ll only worry about paragraphs for now.) You can think of each style as a paragraph template. You can control numerous settings including the font, text size, kerning, indentation, alignment, hyphenation, drop caps, and many other options. For a no-frills novel, you’ll at least want to define styles for body text and chapter titles. To apply a style, simply select the text you want to style and then double-click the appropriate style in the “Styles and Formatting” box. You can define as many styles as you want, just keep in mind that any styles you’ll use for your body text should have widow and orphan control enabled.

While you should feel free to tweak styles to your liking, don’t get carried away turning on all the special effects and features. You want your book to have a clean, polished look, free of things that distract from what’s important: the actual text of your novel! For body text, use a sensible serif typeface with a point size of 10-14. For chapter titles and subtitles you can certainly be more expressive, just try to be consistent. There may also be times you want to use a special style for effect, such as a script font to represent the text of a written letter. These sorts of decisions are up to you but remember not to get carried away.

Page Numbers

Good luck getting by without page numbers! But I’ll make it easy for you. Books in general have special requirements when it comes to page numbering, which include:

  • Not numbering every page (such as the inside cover and title pages.)
  • Skipping numbers on some pages (again, such as the inside cover and title pages.)
  • Multiple numbering schemes (for instance, using Roman numerals for a preface and Arabic numerals for everything else.)

All these things can be taken care of without too much difficulty if you know where to look. It is not very obvious but you can find these things in the Insert menu, under Fields. First, however, you will need to work with styles again. This time, in the “Styles and Formatting” box, click the fourth button from the left, which looks like a page. This changes your view to consist of page styles rather than paragraph styles. You’ll need to create one page style for each page numbering scenario.

First, let’s create one for pages we don’t want to be numbered. In the “Styles and Formatting” box, right-click in an empty area and pick “New…” This will let you create a new style, naturally. The style dialog will come up. Name this style “Not Numbered.” Go to the “Page” tab and make sure “Page layout” is set to “Mirrored.” Click the “OK” button.

Now, let’s assume you have a preface or some other section you wish to number with Roman numerals. Create a new style and call it “Preface.” Go to the “Header” tab and check “Header On.” Go to the “Footer” tab and check both “Footer On” and “Same content left/right.” The latter option ensures that both left and right pages will be numbered. Go to the “Page” tab and make sure “Page layout” is set to “Mirrored.” Click the “OK” button.

Finally, let’s make our “normal” page style that will be used for the bulk of the book. Create one more style and call it “Default” or something easy to remember. Go to the “Header” tab and check “Header On.” Go to the “Footer” tab and check both “Footer On” and “Same content left/right.” Go to the “Page” tab and make sure “Page layout” is set to “Mirrored.”┬áThis sounds familiar, doesn’t it? Don’t worry, there is a method to our madness. Click the “OK” button.

We are at last ready to style our book! We have three page styles to work with. Go to the very first page, then double-click “Not Numbered” in your “Styles and Formatting” box. This will apply the “Not Numbered” style to both the current page and all subsequent pages. Next, go to the last page before your preface. Go to “Insert” and click “Manual Break…” You want it to be a “Page break.” From the “Style” dropdown menu, pick “Preface.” All pages after this break will use the “Preface” style! Click the “OK” button.

You’ll want to insert page numbers into your preface now, right? Here’s where the fields come in. Click the footer box at the bottom of the first page of your preface. Click “Insert,” then “Fields,” then “Other…” Make sure you are on the “Document” tab and that you’ve selected the “Page” type. You’ll see that the center box has an option for “Page numbers.” Select that and then in the right box will be a list of page number formats. Pick whichever you prefer, then click “Insert.” For the duration of this page style, that type of numbering will be used. As a bonus, since you reset the style, the numbers will start from 1. Click “Close” once you’ve inserted your numbers.

Naturally, you don’t want Roman numerals on all your pages, just those of the preface. So, do what you did before: go to the last page of your preface, click after the end of its text but before the first page of the novel proper, and insert a manual break. Select “Default” or whatever you called your body text style from the “Style” dropdown. Once again, all subsequent pages will be assigned the new style. To insert page numbers, repeat the same drill with “Insert,” “Fields,” and “Other…” Once you’ve done this, you’ll have applied three distinct page styles: one without numbers, one with Roman numerals, and one with Arabic numerals. Good work!


It’s also customary to have your book’s title and your name as a header. Typically, the book’s title goes on the right-hand pages and your name goes on the left-hand pages. To insert these titles, click in the header box at the top of one the pages of your novel proper (not the title pages or preface) and type in your name or the title of the book. Since we’re not showing the same thing on the left and right pages, you’ll need to insert two headers: one with your name, and one with the book’s title. Once you have done that, the alternating name/title headers should appear on all subsequent pages. To get the cool “small capitals” effect normally used for these sorts of headers, create a new paragraph style and go to the “Font Effects” tab, selecting “Small capitals” from the “Effects” dropdown list. Apply this style to both the right and left headers! You need only do this once for each header for it to be applied to the rest of the book.

With the above items out of the way, we’ve taken care of styling the book. If there is a positive response to this article I will cover things like margins and gutters next, though those aren’t nearly as daunting as learning how to style!

The Layoff: One Year Later

Exactly a year ago today, I lost my job.

In so many ways, it was a first for me. I started working at this place–a software company–part-time while I was in college. The only other jobs I had in that period involved babysitting computer labs for minimum wage, and doing some consulting work for a CPA. Eventually, I left both of those for the sake of the software company, so I could work more hours there, but I was still considered an intern. The pay was better, and the work was more challenging and interesting.

Eventually, they picked me up full-time and put me on salary. It was a nice pay increase, and I got benefits, too. But, perhaps more important than that, they decided they liked me well enough that they didn’t want me to go anywhere. I enjoyed working there. I made friends. I learned a lot. The company had a strong culture of trust. You could walk to anyone else’s office, no matter where they were in relation to you on the org chart, and talk to them. The company felt like a family. They were understanding when my (then-future) wife was dealing with difficult medical issues that had me taking care of her instead of going to work. In general, they weren’t even that concerned at what times you were in the office, as long as you got your work done. Like I said: trust. They trusted you to do your work and put in the time they required.

One of my favorite stories from working there involves the new employee orientation. Mind you, this was while I was still an intern, and I’d only been there a month or two. Nobody knew who I was at that time. Most of the orientation was your typical “welcome to our company, this is how we do things” sort of presentation. I don’t recall it being very memorable. But for lunch, we went out to a nice hotel restaurant, and I ended up sitting at the table with the man who was the President and CEO of the company, not to mention one of the founders. I’m the sort of person whose instinctive reaction to “suits” is one of suspicion–that they’re putting on an act and would just as happily stab you in the back if it was good for the bottom line. But Wil was different. He spent most of lunch listening rather than talking, learning details about his new employees. We even talked about programming techniques for a while. There was no subject he wouldn’t discuss, and there was a kindness and integrity about him that I’ve seen in very few people over the years, especially those so high up the corporate ladder. Needless to say, he made a strong impression.

After lunch, we headed back to the office. I rode with one of the other Vice Presidents. I realized sometime later that I’d lost my keys somewhere–most likely in that same VP’s back seat. Now, VPs being such busy people, he was booked up in meetings for a while. So, I checked his schedule and went to wait by his office around the time his last meeting was set to end. Meetings being meetings, it apparently went long–he didn’t come to his office, in any case. Along came Wil, who had probably just gotten out of a meeting himself. He remembered my name, asked me if I was looking for someone, and I explained the situation. “Well, let’s go find him!” he said.

And that’s what we did. We went to the meeting where the VP was, who gave us his keys so I could go get my keys. I retrieved them, handed the other keys back to Wil, and thanked him for taking the time out to help me. It certainly wasn’t something I would have asked him to do. But that incident always stuck out in my mind as exemplary of him, someone who would always take the time out to help someone, even if it’s with something trivial.

Time passed, the company grew to over 500 employees, and I got immersed more and more in their development processes and tools. Version control became my specialty, which turns out to be quite a complex and interesting task when you have over a hundred developers to worry about. They all want to code their own way, and they absolutely do not want to be hampered or slowed down. Yet, for an effective version control system, you must require certain steps at certain times, and people have to follow the procedure in order for the process to work. All in all, it was a highly educational experience and I’m confident those skills will serve me well for the rest of my career.

The company, for various reasons, ran into financial trouble. Though every quarterly meeting we were told the company “didn’t make budget,” the blow was softened by the numbers. It looked like cash flow was decent, that the company was turning a profit, even if it wasn’t as big as the owners (a private investment firm) wanted. But things got worse and worse. A fair number of the Vice Presidents and Directors were trimmed, and there were several small layoffs–no more than 20 or so at a time, so none of them seemed dire.

It was determined that what the company lacked was strong leadership. Not that Wil was a poor leader, but that in dividing his time between duties as President and CEO, he more often neglected the CEO part and delegated the day-to-day operations of the company to others. However you’d like to explain it, the point was simple: insufficient executive leadership let the company get pulled into too many directions, and led to declining profits and eventually, losses.

A new CEO was brought in, a man who had a reputation for coming into trouble companies and making them profitable again. I had kind of a weird impression of him, at first. He had a larger-than-life personality, a definite presence that was felt when he walked into a room. He wasn’t the same kind of guy as Wil, that much was certain, but I didn’t know if that was good or bad. You need a different skill set to run a company than you need to hobnob with customers and investors. So, I was willing to give him a chance.

He said he would “transform” the company, and in fact laid out a 90-day timeline for doing just that. Those 90 days would be spent identifying the company’s problems, working out a plan for solving them, and then beginning to enact that plan. Nothing that would take longer than a year would be on the table. The company needed results now, not in 5 years.

Teams were formed to carry out the information gathering. There was some shuffling done at the executive level again. I wasn’t really involved with the transformation, but I kept my ears open to hear what was going on, and it sounded like a lot of issues had been spotted and some new sources of revenue were proposed–many of which were lines of income we had at our disposal, but simply hadn’t exploited yet.

On December 4th, 2008, when the transformation was close to completion, there was a large reduction in force. I was unaware it was even happening, since I was too busy doing my work. Around 11AM, my boss came by and asked if I had a moment. He led me to one of the computer labs near the front of the building–secluded, I realized–and sitting in that room was the VP of the Quality department. I knew this was bad, considering I rarely saw her. I figured out what was happening before she got too far into her explanation. I went numb. I’d been at this company for seven years, and this was how it would end? A little talk, an envelope with a severance agreement in it, and then out the door?

I’d never been let go from a job. The decision to leave had always been mine, and I thought I was valuable enough to this company that they wouldn’t shuffle me out the door. But when it came time to cut costs, how valuable you were to the company didn’t factor into it that much. It was all about how much you cost the company, in terms of salary and benefits. No matter how good your work was, no matter how much time you put in, if they felt you were too heavy on the “expense” side of things, you were gone. They cut people they needed, but they had little other choice. One hundred and twenty-six people lost their jobs that day, out of a company that had around 450 employees at that time.

About a week later, my wife found out she was pregnant. That news didn’t go over so well with me, since I was unemployed and panicked about how we’d survive, much less take care of a new kid. But I buckled down and did what I had to. The company hired an outplacement service, which sounds like they help you find a new job, but it’s more indirect than that. What they actually did was help us build our resumes, polish our interviewing skills, and get lists of potential employers and recruiting agencies. They were a big help, but it was only the first step.

After getting a new resume put together, I signed up with several job sites, hooked up with recruiters, and started applying and interviewing. Several jobs fell through. Some of them, I thought I was perfect for, and even the interviewers seemed impressed, but it was not to be. This was late 2008, early 2009, and employers quite simply could afford to be as picky as they wanted. With so many workers coming back into the market, having lost their jobs, there was a multitude to choose from. There was no sense in picking someone who didn’t have the exact skill set you wanted, and then some!

Nevertheless, I tried to carry on with my job search, knowing that even when I did my absolute best in an interview, factors outside that could cost me the position. I did decide I would be willing to relocate, but that my family would remain in Indiana. I could live very cheaply on my own and still be able to support my family without uprooting them. Hardly an ideal situation, but then those are the choices you’re left with, sometimes.

In late January, I interviewed with a software company in New Jersey. They reminded me in many ways of the company I worked at before, as it might have been ten or fifteen years earlier. Small and agile, with a lot of bright people putting their expertise together. My wife and I flew out so I could interview, and it went very well. Once we got back, though, I didn’t get my hopes up–anything was possible and I didn’t want to get my heart set on any particular job, knowing it could fall through.

The week after we got back, however, I got a phone call from the recruiter that first got me involved with this company. They made an offer, I went over it, and then I accepted. I made arrangements for a place to live, and a couple weeks later I was living in New Jersey. I started work, sunk myself into the company’s atmosphere, and have since made the best of the situation.

I enjoy my new job, though I don’t like being away from my family. I make it back to visit when I can. Given how soft the market remains, I don’t have any plans to return to Indiana in the foreseeable future. This is a good job and I intend to keep it for a while. It does amaze me, though, how different my life is from a year ago. Looking back on it, I’m glad I was let go from my last employer. I’ve had so many new experiences since that happened, I wouldn’t trade them for anything. While my present circumstances are less than ideal, they are a fair sight better than being jobless, or working for a company where the entire culture and philosophy has changed, in my opinion, for the worse.

Having gone through a layoff, RIF, whatever you want to call it, though, I can honestly say I’d never want to experience one again. One per lifetime is enough for me.


I’ve been very remiss about updating this. Mostly, I’ve been working on my book. It has been edited, typeset, has supplemental material, and now only lacks a cover–which I am working on.

I am going on vacation next week, too, so updates will be sporadic for a while. Once I have the book in the can and I’m not on vacation, however, things should pick up once more.

I’ll try to throw in a few more bits from the archive this week, though, if I can manage it.

WordPress vs. Drupal vs. Joomla

As someone who runs several websites, I’ve become pretty familiar with some of the common content management systems out there. Although you will find people who advocate for a particular CMS over another, I’m more the kind of person who wants the right tool for the job. No system is right for every situation. So, this article is meant to help you choose which one is right for you!

I’ll be touching mostly on WordPress, Drupal, and Joomla, though I will throw in a few thoughts about PHP-Nuke, as well.


WordPress is the de facto standard for blogging these days, and for good reason. It’s easy to install, easy to set up, easy to use–all around, it’s easy, easy, easy. If you’re a non-technical user, WordPress is a great system to use. It is also reasonably extensible.


The interface is very clean and easy to navigate. The ability to update plugins directly from the browser is a nice touch. It also supports a multi-user environment right out of the box, in case you want to run a blogging site with multiple authors. The wealth of available plugins provide a lot of options and additional features. The template system is also highly versatile: templates such as Atahualpa provide a vast array of options for customizing the look and feel of your WordPress site.

I’ve found the plugin system very easy to work with, having written a plugin of my own for a niche where the available plugins were inadequate. With no prior experience writing WordPress plugins, I had mine up and running within a couple hours.

All WordPress requires to get started is a working PHP installation and a MySQL database. You can also get a hosted blog on the WordPress site if you don’t want to spring for a capable hosting account.


WordPress had a recent, dangerous security flaw that impacted a few people I know. Fortunately for them, they only lost their settings and not their entire WordPress database, though they had to call on someone with more technical expertise to help them sort it out.

Additionally, WordPress has no mode for a safe failover if a plugin update introduces a fatal bug. You just end up with the PHP “white screen of death.” The way to address this is to remove all plugins, restoring them one by one until you find the culprit. However, less technically-inclined users won’t know to do this, and may be unclear how to proceed.

I’ve also found that quite a few WordPress plugins are no longer maintained, and compatibility between major versions is not guaranteed. So, a lot of older plugins just plain won’t work. This isn’t a fault of WordPress, per se, but the community building plugins for it doesn’t seem to be quite as large and active as those developing plugins for, say, Drupal.


WordPress is a great system if all you need is a straightforward blogging platform, are not a technical expert, and require a clean, simple interface. You can have total control over the presentation of your blog, however, the available plugins may be inadequate if you have unusual requirements.


Joomla is an appropriate system for those who run larger sites or who need to deal with large numbers of pages. It’s suitable for things like corporate intranets, group sites, and the like.


Joomla is fast. Very fast. Its caching system whips the pants off of pretty much all competitors. If you run a large site and you just need it to be fast, fast, fast, Joomla is a good choice.

It also has quite a few plugins, and I’ve found it tends to have a greater variety than WordPress. On the downside, however, since Joomla is more popular with companies, many plugins cost money. There are also a lot of free ones, though, so don’t let that be a deterrent.

Joomla is also pretty easy to set up. Installing plugins is about as straightforward as it is with WordPress.

I’ve also never experienced a “white screen of death” with Joomla, even with some plugins installed incorrectly or with fatal errors in them. It’s a very robust, powerful system.

Many older Joomla plugins are also compatible with later versions, thanks to a built-in legacy mode. It can cause some problems, but I have rarely experienced issues with it.


With Joomla’s focus on speed and survivability, you knew there were going to be downsides.

First off, the template system isn’t nearly as powerful as the WordPress system. While WordPress themes can add an entirely new maintenance area to your admin panel, Joomla themes do not. If you want to adjust the colors or layout, you’ll have to manually modify HTML and CSS files. If you have a good grasp of those, however, you’ll be just fine. It’s just not quite as point-and-click as WordPress users may be accustomed to.

While there are quite a few plugins available, a lot of the free ones are of lower quality than you might find for WordPress or Drupal. Integrating with third-party applications (such as forums) doesn’t work very well. Community-oriented plugins are not very mature for Joomla. It is definitely more of a content-driven, rather than user-driven, system.


If you need to manage a large site comprised mostly of your own content and that of other members, rather than building a hugely-interactive community, Joomla is a great choice. It’s fast, it’s powerful, it’s extensible. You may have to do more of the heavy lifting to get it fine-tuned to do what you want, but it will be rock-solid and stand up to high traffic.


Drupal is quite possibly the most powerful CMS out there. It’s also the slowest. For this article, I will refer exclusively to Drupal 6, which is the current production version and the one with which I am most familiar.


The default installation of Drupal gives you a simple site with news, blog, content page, and forum functionality. If you have more specific needs and don’t want to dig through the plugin directory, you can try one of the installation profiles, too. It’s easy to get up and running.

However, the real power of Drupal is in its vast array of plugins, called modules. There are thousands of modules available, for almost any purpose you could imagine, and many you never would have considered.

Essentially, while WordPress and Joomla are primarily blogging/news engines, Drupal can be turned into just about anything you want. Its social networking features are the most developed. I built a creative writing community out of off-the-shelf Drupal modules. If you don’t like the content types that come with Drupal, you can build your own with the Content Construction Kit. You can add modules to control user access based on social networking user relationships, page-specific access rules, or even use a point system. You can also use a combination of them, as I have done.

Modules are updated regularly with new features, and new ones are coming out all the time. If there isn’t a module to do what you want, it is often possible to request it, or get it added to a module that’s close to what you want.

It also has a very nice theming system, and you can allow your users to choose from the themes you have installed, if you so choose. User permissions can also be controlled on a very fine-grained basis.


Such power and versatility doesn’t come cheap. Drupal is easily the slowest of the major content management systems. While it has a powerful page caching system, it is essentially useless if you use any kind of dynamic page generation. This means anything that controls page access or generates dynamic content is going to bypass your cache system and not give you a performance advantage.

Modules (and Drupal itself) are updated constantly, and it can be a somewhat arduous process to update your Drupal installation. While it is straightforward, there are many steps involved and things can go wrong. It’s crucial to always do a backup just before any upgrades. You never know how two modules might interact and hose your database. This is a rare occurrence, but I’ve seen it happen.

Security flaws are found on a regular basis, too. While I have never seen one exploited in the wild, Drupal’s rapid pace of development means you need to stay on top of your updates.


If you need power with no regard for speed, Drupal is your best bet. You can build virtually any kind of site you want with it, no matter how special-purpose it is. Maintenance is more of a hassle than with other systems, and there are significant performance tradeoffs, but if you absolutely must have that level of power and extensibility, you can’t beat Drupal.


Just a few words about PHP-Nuke. It is more similar to Joomla than the other systems. Like Joomla, there are pre-customized versions out there, my favorite of which is Nuke Evolution Extreme. If you want a stable, robust system that isn’t exactly bleeding edge, something like this will suit you just fine. Nuke Evolution Extreme, in particular, has phpBB built into it–in fact, the entire user system just piggybacks on top of phpBB, so there’s only one database to maintain. I’ve found it very suitable for environments such as “clan” sites, which just need to be able to communicate easily and have a simple interface for adding pages and so forth.

It’s not nearly as bleeding-edge as the other systems, but it is very capable and featureful on its own.

Finally, I would stress that you carefully evaluate your needs before choosing a content management system–and whether you actually need one at all. Depending on what you want to do, static pages might serve you better. Or, none of the above will suit your needs and you might require something more purpose-specific. Wikipedia has a handy list of CMS software, which is worth digging through if you want to find something for a particular niche.

As always, it’s best to choose the right tool for the job. I use all the above systems in one way or another, depending on my needs. Some are heavily customized, some aren’t. No system is perfect for every environment and situation! That is the key point I’d like you to take away from this article.

So, good luck!

CentOS, yum, and ImageMagick suck!

I admit I am still something of a Linux novice. Nevertheless, I have always preferred my web servers run on the LAMP stack. My solitary experience running a Windows web server was a nightmare I’d not wish to repeat.

However, today was one of those days where I would have liked that same ease-of-use. For a program I wanted to use, I needed to install ImageMagick. No big deal, right?

I ran “yum install ImageMagick”, and what do you know, I got 404 errors on every last repository. Nice! It didn’t take me long to figure out that the packages for my operating system (CentOS 5.2) had been moved, but it did take some time to determine just what I would have to change in order to make it work.

Basically, I had to alter my yum repository definition to use “$releasever” instead of a hard-coded “5.2”, which is how it was originally set up. At that point, though, everything was fine. I got ImageMagick installed.

I screwed something else up along the way, though, and I just wanted all my processes restarted correctly, so I rebooted. Tried to SSH into it after that, and got the lovely message, “Server refused to allocate pty”. Very helpful, right? I’m not exactly someone who knows squat about SSH beyond how to login and mess with the shell, so it took some looking to find the problem. Evidently, when I installed ImageMagick (which brought with it a ton of dependencies), it killed some file system entries that were required by SHH. Yay!

To fix, I had to run:

/sbin/MAKEDEV tty
/sbin/MAKEDEV pty

Then, I could get back into SSH. Fortunately, lxadmin was working, and I finally found a use for its primitive and otherwise worthless “Command Center” tool, which lets you execute arbitrary shell commands.

I also wanted to add a few options to my system startup. Just some plain ol’ shell commands, nothing fancy. No services or anything of that sort. This is not as obvious a thing as you might suspect. I knew it had to go in one of the rc.d scripts, but I had no clue which one.

The answer: rc.local. Specifically, /etc/rc.d/rc.local. You can add whatever commands you want to execute there. Be sure to add an ampersand (&) to the end of any command that might take a while, so it’s run in the background.

So, I am learning. It’s a frustrating and often annoying process, but now I have everything working the way I want it to. It does expose one of my lingering gripes with Linux, though: nothing is obvious. Who would think installing a program would break something completely unrelated, like SSH? It doesn’t make any sense. SSH worked fine from day one, until I installed ImageMagick. For that matter, I don’t see why ImageMagick requires 38MB of dependencies, including most of Gnome and X11. I realize it’s just using them as libraries, but still, I do find it a tad aggravating to see space getting used up by chunks a windowing system I won’t even be using. Windows has “DLL hell,” and Linux has “dependency hell.” Six of one, half a dozen of the other, I guess.

There Is No Cabal

This is an unfinished book I worked on back in early 2005. I actually found it very promising, but as I got into it I wondered who would want to read such a relentlessly grim book, especially when I wasn’t planning on any kind of happy ending. In fact, the very process of writing it and planning it was depressing me, and I considered it an altogether unhealthy experience. I have thought about going back to it from time to time, but then I look at my notes and what I had written down, and it makes me sick to my stomach. It came from a very dark place that I don’t know if I want to tap again. If I do approach this material in the future, I’ll need a better plan that provides some kind of relief, so the entire work isn’t just a tortuous journey through human misery.

You can read the first four chapters below the fold.

Continue reading There Is No Cabal