Skip to: Navigation | Content | Sidebar | Footer


Full Archives

I Do Not Use Accesskeys

December 29

A standard is a standard is a standard. But what if those standards don't work as directed?

Over time, I've come to the conclusion that Accesskeys are more harmful than good. Until browsers allow a user to override a document's Accesskeys, I won't use them.

The idea is a simple one: by using the accesskey="n" attribute on specific links in your HTML, you define n as a hot key that allows keyboard access to that particular link. Mark Pilgrim has more on the syntax and usage of Accesskeys.

WATS.ca has written a series of in-depth articles (Is it Worth it?, More Reasons…, Accesskey Alternatives) that go into the problems with this seemingly simple idea. Executive summary: key conflicts with existing browsers/operating systems/user macros prevent Accesskeys from doing the job as described.

The problem has been stewing in the back of my mind for a while. But it really hit home last week: I received an e-mail from someone complaining about a specific conflict that has been bothering me personally.

Go to the Zen Garden in any browser that allows the ALT+D key combination to select the address bar (IE and most Gecko browsers will do the trick, Safari will not). Try selecting the address bar from the keyboard. Instead of doing so, some browsers will select the fourth design from the list on the right, since that list has been assigned sequential keys from 'a' to 'h'.

The annoyance factor is high, and in some cases it may be downright harmful. Accesskeys are a good idea; too bad they're not practical.

Permalink › | 42 comments

Merry Christmas

December 23

Off to enjoy family and friends for the holidays. I leave you the gift of links! Merry Christmas, Happy Hannukah, Festive Kwanzaa, and so on. Whatever you celebrate, and even if you don't, enjoy the rest of 2003.

8 Comic Books
Andrea Piernock's festive Zen Garden entry.
7 Packs of Smokes
Excellent Flash-based snowflake creator.
6 packs of Two-four
12 year old Alex Miller's playground. The next generation is already getting started!
5 Golden Toques
I worked with Rafael Ebron on the mozilla.org redesign a few months back. He's competing in Ironman Canada 2004, and looking to raise $7,500 for Leukemia and Lymphoma Society. A festive round of layoffs at AOL leaves him in a poor spot to meet the goal; consider giving a few bucks and spreading the word.
4 Pounds of Backbacon
Mini iPods? Could it be? What makes me suspicious is the proposed 'body colours'. Call me a skeptic...
3 French Toast
Flash paper airplanes. Arrow keys and space to control, 1-4 for special actions.
2 Turtlenecks
Derek Powazek on learning to love the Tree
And a Beer... in a tree
Bob & Doug MacKenzie's original 12 Days. A Canadian Classic.

Permalink › | 13 comments

CSS: Copyrightable?

December 18

Yesterday’s post began with a soliloquy on the relative ease of theft that comes along with standards-based design. This is an issue I’m deeply concerned about, for obvious reasons. I’ve had to tackle some hard questions head on when it comes to CSS theft. I still don’t have any answers, only opinions.

Some excellent discussion ensued on both topics yesterday, but there was some confusion between them. Let’s free this topic from the specific case, and move along to the more general issue at hand.

CSS is a design language. It’s the foundation of a site layout, just as much as PostScript is the foundation of a poster or brochure. Can the code itself be copyrighted?

Views expressed yesterday covered the whole spectrum. Here are some of the more interesting thoughts:

“I’d bet there haven’t been many lawsuits about this yet, and once they start happening at least we’ll have the precedents set by music sampling and remixing to go off. It’ll be tricky to define exactly in what sense one owns a design and its code. After all, there are lots of 2-column, main content + sidebar pages out there, but each designer should be able to say that they own their particular implementation.” §


“A layout has no visible parts. It’s just how you use the space in the window. If I build a layout with a two-column header, a three-column content area and a two-column footer then there’s no way for me to tell someone else that they can’t do the same thing.” §


“It’s an analogy that’s been used before, but CSS is nothing more than the ‘grammar’ of web design.” §


“Of course you can’t copyright one <h1> selector, or one <p> selector… in music, I can’t really copyright a G or an A, or even a C Major chord… (though John Cage’s estate insists that all silence is under his copyright)

“It is the combinatory effect of notes that make music, words that make poetry, selectors that make CSS.” §


“…to raise CSS implementations from tech grammar to a copywritable collection of language will require a test in court to recognize it as such.” §


And I’m just going to quote this next one in its entirety, since I find it brilliantly well-reasoned. Thanks Raena!


I took a photo of a sculpture in the city once. I didn’t make my camera, the sculpture I photographed, the film in the camera, or the paper it was printed on. I didn’t come up with the theories behind use of light or composition. Other photographers use all those same tools all the time. There have to be thousands if not millions of photographs of sculptures, and undoubtedly there are plenty of other photographs of that very same sculpture.

Yet I have every right to copyright that photograph.

You say that a CSS file lacks originality in the sense that CSS and XHTML are the ‘grammar’ for a Web design and everyone else can use the same tools. What you’re ignoring is that it is the whole, the end product, that is original work. Thought has been put into the composition of the CSS file, even though the designer doesn’t happen to be the inventor of the CSS spec.

“You can copyright a slogan, but not the sentence structure or the words that go to make it up.”

Actually, you can’t generally copyright a slogan, just as you cannot copyright a title, name, or short phrase: it’s too small. You can protect your slogan with a trademark if it’s connected to a product or a service, but there is a minimum amount of authorship.

In most cases, copyright cannot be placed on something without sufficient originality. What cannot be copyrighted:

  • anything that isn’t fixed (ie written, saved to disk, recorded)
  • an idea, procedure, process, system, method of operation, concept, principle, or discovery (that’s what patents are for)
  • “useful articles” (objects with a utilitarian purpose and, interestingly, clothing)
  • small works, like a really short phrase or a few words
  • a compilation of works, unless some original thought was put into the arrangement (no to the phone book, yes to World’s Greatest Beer-Drinking Songs)
  • it cannot simply be a mechanical reproduction of something (I can’t copyright that Chemical Brothers CD I just burned).

All else is deemed to have sufficient originality to be considered copyrightable. I’m not convinced that a CSS file with the complexity of the Fleshbot spec doesn’t count. It is an expression, done in a particular way to create a particular result, even if that result is similar to other works.

“Let’s face it — a CSS file is an hour or two and a text-editor.”

Bzzt, wrong answer. That photo I mentioned earlier was a thirty second snap-decision to go stand someplace, squint through a little window and press a button. How much effort is required for original work to deserve protection? Three hours? Twelve? Ten minutes, but only if it’s really really really hard?

In US caselaw, the ‘sweat of the brow’ argument was rejected several years ago in Feist Publications v Rural Telephone Co. As well as pointing out that a phone book isn’t creative or original enough to constitute a copyrightable work, the 6th Circuit ruled that the amount of effort one puts into creating something has no bearing on the originality of the end result.

“Well, in that case i think it might apply to cases in which CSS is used in unusual, innovative, original ways…”

So it’s only the unusual, innovative, original, oh-my-god type stuff that deserves protection by copyright? Oh-oh, there goes the protection for about half of today’s pop music.

A work doesn’t have to be any good to be protected by copyright. It just needs to have an element of original authorship.


But what about you, Dave Shea? What do you think?

The community surrounding web standards and CSS particularily thrives on sharing. I can easily pick apart the latest Jon Hicks or Dan Rubin masterpiece, figure out how they produced those amazingly tight layouts, and learn from their trial, error, and experience. Would I ever try to duplicate one? Hell no.

A layout is an element of the overall design. Obviously two people can arrive at two very similar layouts independently. A couple of 18px #FFCC00 headers aren’t going to cause anyone’s eyes to blink. But there are cues that a layout has borrowed more than it should — recognize any of these, for example? You can run through a laundry list of reasons why you do, even though they have been changed dramatically. (I’ll give you a hint: 1, 2, 3, 4)

There really is no legal precedent at this point to say what’s right and what’s wrong when it comes to web design. CSS files are low-hanging fruit; they are out there for public consumption, they’re easy to use. Does that make it right to use them? You know the answer to that.

I’m all for the spirit of sharing, within limits. One who chooses to use another’s work should always grant the original creator the respect they deserve, be it monetary, or just simply ensuring they have authorization to use the work in the way they wish. If you ask me nicely, you might just be amazed at how kind I can be.

That’s the way I believe the world should work. Pity that it doesn’t.

Permalink › | 51 comments

The Case of Jackson vs. Gawker

December 17

Not that I don't have enough of my own rip-off problems to contend with, given the handful of new sites based on Garden designs each day...

The downside that hasn't yet been explored, with regards to standards-based design, is that separation of content and presentation makes it entirely too easy to steal one and not the other.

When it comes down to it, structural elements don't change a whole heck of a lot from site to site. A few headers, some paragraphs, and extraneous container divs. The design is neatly packaged up and ready to go in another file that doesn't bring along pesky things like, you know, identifying text (which is easily discovered on Google) or links back to the original content creator, or the like. Sure, a few images and ids need to be changed, but that's a trifle.

Now, why would someone rip off another? That is a question to ask each individual offender, but the common reason nets to lack of knowledge and/or talent. There are very few deviations from this general rule.

Which is why it's so damn confusing when you see something like what Nick Denton's publishing empire has allegedly done. A well respected company doing great things in the on-line publishing space, run by a dot-com millionaire, appears to have ripped off a college kid.

Prude alert: some links on the referenced pages point toward sites featuring adult-themed material. Proceed with discretion.

Others have covered it in far more detail than I will, but the basic summary appears to be that Noel Jackson and Joe Clark approached Gawker Media shortly after the launch of its latest offering, Fleshbot. They had built a nicely-compliant XHTML/CSS version of the site, and were offering Jackson's services in compensation. Gawker politely told them no, then used it anyway. And then took the code base and applied it to their other holdings as well—Gawker itself and Gizmodo.

Yes, Jackson provided free work without a contract in place, in hopes of landing more. This is called spec work, and regardless of my own personal views on the practice, it happens frequently in the design/advertising world. And Gawker had every right to say no thanks, and not pay for the work. But that wouldn't allow them to turn around and use it free of charge. It's still Jackson's work. It would appear in this case Jackson did offer the code free for use on Fleshbot. But that's only one site, of the three it ended up on.

It's just a collection of code, right? You can't copyright CSS? Photographs are just a collection of pixels. Novels are just a collection of letters. Music is just a collection of sound waves. The work is what matters here, and the work is unquestionably Jackson's.

Denton has posted transcripts of IM conversations with Jackson on Jackson's site. It appears that he has trouble differentiating between one site and three, and in the process shows that Jackson had tried to resolve the issue before taking it to the public space.

It's a shame that an otherwise savvy company has seemingly made such a public blunder. Let's hope this can be quickly resolved in a manner satisfactory to both parties.

Permalink › | 41 comments

How to Conceive a Layout

December 16

I don't normally respond to CSS help requests, instead referring the asker to the css-discuss mailing list. It's mainly a time issue, but I'm also of the opinion that you can't learn if you have someone else doing it for you. I've never been one to ask for help if I could figure it out for myself. With Google and a few good books, I believe everyone can figure out CSS. It's not easy, it takes time, but it is do-able.

But the other afternoon I got involved in a dialogue and decided to answer a few questions anyway. Here's a patched-together result, which is very basic and easy to take for granted once you've learned it (and of limited use to most who read this site), but incredibly difficult to figure out if you haven't.


How do you build a dual-column layout?

There's no mechanism to do this specifically today. CSS-2 tables would be great, if you could use them. Unfortunately, you can't thanks to current browser support.

So the method is to hack. And hacks are just that: they work, but they're not the best solution. The following explanation will [hopefully] make sense, but it will sound ridiculous and over-wrought. Rightfully so, but we still have to compromise to make things work.

Your XHTML would, logically, look like this:

<div id="topBar">
  logo and whatever
</div>
<div id="sideBar">
  navigation
</div>
<div id="contentArea">
  content
</div>

The first thing to do is address the top bar.

#topBar {
}

That piece of CSS corresponds directly with <div id="topBar">, since '#' is the symbol for an id. Similarily, if I'd used class="topBar" then I could use .topBar in the CSS, as classes are symbolized by periods.

Next, to assign a height:

#topBar {
  height: 100px;
}

Inches and centimetres aren't very useful on-screen. Pixels, symbolized by px, are better for this sort of thing. To give it a background color:

#topBar {
  height: 100px;
  background-color: #991122;
}

The sidebar is pretty easy too. Instead of giving it a height, you'd assign a width:

#sideBar {
  width: 200px;
  background-color: #996600;
}

The tricky part now is the content. Since the sidebar is on the left, the best way to bring the content area up beside it is to pull the sidebar out of the document flow.

What does this mean? An HTML document is structured linearly, and by default all elements will display in the same order as they are listed in the markup. It's very rare that you'd want to leave the elements displaying this way, so there are tricks involving absolute positioning and float that allow you to do something about it.

The trick is to remember that when you remove an item from the flow, any influence it had on the position of other elements disappears. Which means that in this case, we need to rig a layout where #sideBar won't influence #contentArea's position.

#sideBar {
  width: 200px;
  background-color: #996600;
  float: left;
}

You'll see at this point that #contentArea will overlap #sideBar. This is expected, since #sideBar no longer affects #contentArea's position. So how do we stop that? A pretty simple fix: push #contentArea over to the right by the exact width of #sideBar:

#contentArea {
  margin-left: 200px;
  background-color: #FFDDAA;
}

And there you have it, a two-column layout with a header. See how it comes together on this sample page. There are issues with this layout, particularily a) if you want to add a footer, and b) if you want to assign a background colour to either column that extends the length of the page, instead of the length of the column's content. There are ways to do both. Perhaps a follow-up will come later that explores these methods; I have a working layout that does both at once, and isn't dependent on the content size of either column. I'll try to pare that down to the basics and explore it sooner or later.

Permalink › | 33 comments

Accessible Image Replacement

December 12

Image replacement is back in the news—Levin Alexanders' 'Graphical Headings' is going around again. (note that Tom Gilder also brought it to our attention around the same time)

Classic FIR has three problems, which I summarized this summer:

  1. Screenreaders don't read content hidden with display: none;
  2. A superfluous <span> element is introduced
  3. People browsing with CSS on, but images turned off don't see anything.

Levin's method solves two of these problems, namely 1 and 3, but introduces a new one: transparent GIFs are unusable, due to text beneath showing through the transparent gaps. There are a few ways around this, by setting text colour and size to be all but invisible, but it's still a problem. The code is also far more complicated than it should be.

Gilder/Levin Method
<h2>
	<span></span>Image Replacement
</h2>

/* css */
h2 {
	width: 329px;
	height: 25px;
	position: relative;
	}
h2 span {
	background: url(sample.gif) no-repeat;
	position: absolute;
	width: 100%;
	height: 100%;
	}

Alternatively, there are two other techniques available now that solve problems 1 and 2 but leave 3 dangling. Specifically, Phark Revised (due to a Safari bug) and Radu Darvas' new variation announced in a Web-Graphics post. Both use relatively simple code, and test well across browsers:

Phark:
<h2>
	Image Replacement
</h2>

/* css */
#header {
	text-indent: -5000px;
	background: url(sample.gif) no-repeat;
	height: 25px;
	}
Radu:
<h2>
	Revised Image Replacement
</h2>

/* css */
#header {
	background: url(sample.gif) no-repeat top right;
	width: 2329px;
	height: 25px;
	margin: 0 0 0 -2000px;
	}

So here's where we're at. We haven't managed to knock off all three problems with one unifying method yet. There's a choice, and which pill you choose says a lot about your priorities.

You take the red pill, and you contend with a tangle of code, but you guarantee equal access to everyone. You take the blue pill, and your code remains simple and elegant, but you cut off a tiny percentage of your users who might just, might just be surfing with CSS enabled but no images. It's said to happen more commonly in European countries where dial-up access is metered, but that's all we have for statistics.

Either way, we all know by now that using display: none; is out. We haven't got this problem totally licked yet, but we're two thirds of the way there. Not bad for a technique that has been in the public eye for only 9 months now.

Permalink › | 41 comments

News and Links

December 11

It's that time of year again. The holiday season must mean that WestCiv is offering its online CSS course for free, and what do you know, they sure are. The introduction is available for another few days, so if you're looking to learn or brush up on your CSS, this is the place to be for the next few months. §

Speaking of Christmas, you may have noticed the festive touch on this site as well. Thanks to Keith Robinson for the inspiration . § In no particular order: Andy Budd has a few new CSS-based sites you may not have caught yet. Paul Scrivens of the great CSS Vault throws the weblog format for a loop . TBWA Vancouver . View source. You know, this CSS stuff might just be catching on. (TBWA Vancouver is the local chapter of the global ad agency) A somewhat different take on navigation, found by Adrian Holovaty. Enhanced Structural Markup with Javascript . This is what Javascript should be used for: progressive enhancement, instead of creating dependencies. Excellent article by Simon Willison. Keith Robinson also tackles the concept of redesign in a thoughtful way . Even a small change like, oh, adding a font-adjust button is not without its share of headaches. IE vulnerability — spoofing the domain name in the address bar . Grab Firebird now if you haven't, it's really quite good. And, you know, secure. Photoshop Tennis . Er, Lightboxing . Well, Coudal's in on the latter, so we'll call it 'inspiration'. Whatever, Veer still has the best catalogues ever. And of course, how could I forget Shaun Inman's own Designologue . You know Shaun Inman . Yeah, that guy . (thanks ste ) Rolling Stone's Steve Jobs Interview . I've yet to read it, bookmarking for my own linking pleasure. It's to the point where the history of type is a strange and mysterious beast to those who have known nothing but the digital age. Frederic Goudy type catalogue from 1914. Beautifully anachronistic. § Incredibly heartfelt thanks to all who have contacted me in the past week and a half after the announcement . I will shed a little more light soon. I've turned down the various Nigerian opportunities , but I appreciate the thought, boys. § ]]>

Permalink › | 10 comments

Browser Stats

December 10

Where do you go for accurate, up to date numbers for current browser share?

There aren't many centralized resources aggregating this sort of thing on a wide scale anymore. Thanks to lazy developers who have written bad detection scripts over the past five years, plenty of browsers identify themselves as IE anyway, which makes tracking more of an art than a science.

One of my old monthly visits was thecounter.com's browser stats, which stopped being updated in May. Due to the distributed nature of their code, I always considered this a fairly accurate cross-section of the web.

Chuck Upsdell is still going strong after just about 300 weekly editions. However, as always, his stats are culled from 4 different sources with completely different target audiences, and while may be enough to spot trends, aren't as representational as they need to be for generalizing.

There are a handful of others that pop up after a quick Google, the most notable being an older page of Christina Wodtke's. But nothing screams definitive to me.

Aside from sifting through logs on servers under your control, are there any other resources out there worth a bookmark?

Permalink › | 32 comments

CSS is Visual

December 4

Quite a high-threshold discussion happening on fellow Canadian Jeremy Shield's weblog.

Nothing really too new here, except for the observation that, with everyone's help of course, we've more or less made it impossible to argue that CSS design is inherently ugly.

…tableless design transforms the web into a library and less of a visual spectacle…

This is an interesting point, since, yeah actually—that's exactly what's happening. And it's good, remarkably good, for this to happen. Not only are table-less sites not boring, they're accessible. Keep in mind that all CSS Zen Garden examples validate to WAI AAA-level accessibility, although the individual designs can be more and less accessible depending on techniques used. Not only are they accessible, search engines love them. The Zen Garden is insanely high in Google thanks in part to well marked-up content. Not only are they search engine optimized, but they are, contrary to what you say, far less bandwidth hungry than tables. The average conversion of a site from tables to CSS-based chops the HTML file size roughly in half, reduces the number of server requests necessary, and generally reduces the number of images needed. All for the same design.

Anyway, the rest is worth a look. §


update: Okay, so I guess we're not talking about that. Looks like the comments got hijacked into a thread on triple-A accessibility instead. Not that there's anything wrong with that. Discuss. §

Permalink › | 26 comments

New Finds

December 3

My top five new reads that I think everyone else should be reading too:

  • random($foo) — frequently updated with links and commentary, always interesting. Tech and culture.
  • paranoidfish — great commentary (if, sometimes, beyond my level) and great links. Tech.
  • die puny humans — Uh, yet more frequent links and commentary. Culture. (Twisted, Good.)
  • 1976 Design — Fellow WaSP Dunstan Orchard's quirky design weblog. Dunstan is a character, good times are guaranteed to all.
  • DW: What's New — not technically a new find, but a great news source that probably doesn't get enough credit. Run by Nick Finck and other DW authors (myself included, occasionally, when I remember)

I'm relying on blo.gs these days. News aggregators just aren't my bag, baby. All I need is a list of who has updated recently, I have no need to take content outside of the original site's context. One day I'll look into publishing my complete list—it's well over a hundred by now.

I've noticed some people I read out of obligation; I try to keep updated on peripheral things like Atom and social software and the general tech business. Others I'm thrilled to see fresh content from, and relish reading every single time.

Who are your favourites? Who do you keep coming back to?

Permalink › | 42 comments

ASP to PHP, with MT to Boot!

December 2

Step right up, step this way. Ladies and gentlemen, I give to you the amazing journey from one server-side technology to another. You'll be amazed, you'll be awed, you'll laugh, you'll cry. You'll... okay, so my writing style needs to calm down a touch.

I've been working on this on and off for months now, and I meant to have it up far earlier than this. Some of the final details are fuzzy at this point, but the bulk of it is on target.

This is the process I went through when upgrading my Movable-Type powered site from IIS (and ASP) to Apache (and PHP), from start to finish. For the benefit of Google, and you the reader, I'll try to spare no detail. Much the same as I ended up blessing the kind souls who have written up their own experiences, one day I hope someone will find the exact answer they need somewhere in this.

Why I Switched

I originally set up mezzoblue on an IIS host because ASP is what I knew. I am not a programmer, but the odd time I needed to fool around with code it had to be something that I could easily use.

When I created BlueSpark (a free, light-weight ASP-based content management system: think server-side Notepad) I realized even my knowledge of that was only rudimentary at best. So reasons to stay on IIS quickly eroded, and I found myself wanting to get into PHP about two or three months ago. Why PHP over ASP? Momentum, baby. All the cool toys are written in PHP, and more importantly, a large chunk of them are open.

I'm no anti-Microsoft zealot, but I see huge advantages to working with open source software. Now that I'm actually on an Apache server I can say that custom .htaccess files are a hugely important thing to have, and IIS's handling of the same is positively archaic in comparison. I'm sure there will be plenty of other little gems I'll discover as I play more.

How I Learned

So cut to about a month ago. In my copious, vast amounts of spare time I started thumbing through a Peachpit press book by Larry Ullman: "PHP and MySQL For Dynamic Web Sites." If you're familiar with C/C++/Javascript syntax, you'll easily breeze through the first 50 or 60 pages. In fact, I skipped to Appendix A which covers installation, and with a little help from the manuals I managed to get Apache, PHP, and MySQL up and running on my spare Windows laptop one evening.

By the time I was a hundred pages into the book, I'd already started working on converting mezzoblue. There aren't many scripts, and a lot of the work involved rebuilding my main three server-side includes. I hadn't really dealt much with the content pages within, I had only laid the foundation.

What to Do When Things Go South, or: Motivation

And it was about this point my IIS server began acting up. Reliability decreased over a good week, and then one day things just stopped working about 80% of the time. It was down, then up, then down again. My host's site suffered the same problems, so I couldn't even file a claim to see what was going on. Needless to say, when I finally got an answer it was less than satisfactory.

So I started investigating hosts. I need generous bandwidth and storage space, but I don't use a lot of server processor time. Unfortunately, the amount of bandwidth I use gets lumped into higher-end accounts. But Matt Mullenweg made me an offer I literally couldn't refuse, so I jumped.

Static Conversion

But that's only the beginning, of course. I had a host. Now to port Movable Type, and rebuild my site on Apache. Well, let's just say this wasn't as easy as I had hoped it would be, but it didn't turn into the disaster I had feared it might.

I had backed up all my files from my IIS server earlier in the week, and I was irritable enough with the downtime that I decided to jump in head first and initiate the domain transfer. I put up my pre-built PHP page with an apology message for the next day or two of downtime, and went to work. I started with the static content, that was easy enough. I plugged in my new iBook and grabbed a copy of BBEdit Lite, and started re-linking.

The nice thing about server-side includes, of course, is that all your standard site-wide bits like headers and footers and sidebars and the like can be stored externally in their own individual files. The upshot in this case is that a lot of my static content looked like so:

inlude files, content, include files

Not a lick of content had to be changed, all I had to do was re-link the new include files, which, if you've been paying attention, I had already built last month. Copy, paste, upload, test. Copy, paste, upload, test. That was a fun evening, at least in comparison to what happened next.

Movable Type, or, How to Make a Bad Thing Worse

Now here's where I hit the big snag. Equal parts assumption and hope had led me to try uploading the entire Movable Type install to my new server. After all, MT is Perl-based and should work without a hitch. I made sure server-detection in my FTP program was automatic (since it's very important you're not uploading .cgi files as binaries), dropped the works onto the server, re-linked Perl and the appropriate user directories, set my permissions, and loaded the MT interface.

Nothing.

Well, not nothing, but not a lot more: Error 500, internal server error. Not helpful. I double-checked my paths and my permissions, then tried again. Still nothing. In a fit of desparation I dropped one of the .db files into a text editor and noticed that there were paths in those consistent with my old IIS install—not a comforting thing at this point.

Remember how about I stated I'm no programmer? I was stuck at this point. Luckily, I have what we commonly refer to as 'problem-solving skills' so I came up with a few more plans. You may laugh, you may cringe, but at this point they seemed worth a shot.

Next up on the list: re-installing MT, then dropping the old data directory, db, on top of the new install in hopes that the interface would just recognize the old data and think everything was okay. But I couldn't login to Movable Type after doing it. I reverted back to the freshly installed db directory, and was able to login fine. I tried selectively dumping a couple of the larger .db files into the new directory, but had no luck doing that either.

DNS Trickery

So I still had the archives, but no way of getting at them. Hmm. I was smart enough not to cancel my prior hosting account, so I grit my teeth and moved my DNS back to the old server.

A day or two of waiting for propogation, then I was able to log in to my old MT interface, manually export my entries and comments thanks to Six Apart's clear thinking about not locking users in, save my customized templates, then switch DNS back to the new server.

At this point the cards started stacking back in my favour again. My new server gives me a static IP, so I was able to point my copies of Firebird and Safari toward it without waiting for the propogation. I set to work getting the old entries imported into my fresh install, and added my templates through the interface.

Which is not to say this process wasn't without its share of trouble—even though I temporarily pointed Movable Type toward the IP instead of the domain, I wasn't able to access everything. When saving entries or comments, for example, the refresh would go to a non-existent page on mezzoblue.com. This was only a minor inconvenience though, since the data was saved regardless. While waiting for the rest of the world to catch up, I was hard at work plugging the holes and making sure things would be up and running by the time the DNS change went through.

At this point I made a valiant attempt to switch from Movable Type's default Berkely DB system to MySQL, since that was the other half of the equation. However, since I needed a quick fix, my inexperience with the latter got in the way and I eventually conceded that to a later date. Bigger fish to fry, after all.

Summary

So while I showed some foresight, the process was hardly as smooth as it could have been. For a few days, I wasn't able to do much in the way of posting new content, and a static page greeted visitors to the site. Effectively, I was knocked offline as I waited for the jump to and from and then to my new host, although during that time most were still able to access one server or another.

I've been on Apache for two months now, and I couldn't see myself going back. I haven't even begun to scratch the surface of the things I can do, but it's comforting to know that if I need to, they're there. At least I'm in the happy spot of being able to blame shortcomings on lack of brainpower, rather than lack of horsepower. That, in my books, is the easiest of the two to fix.

Permalink › | 22 comments

Dispatch the Flying Monkeys

December 1

And here's the extra special edition wherein it's announced that for a limited time only, I am on the job market! Yes, that's right, the holidays are fast approaching, and what better way to cope with a killer Visa bill than a shiny new spot at a great company?

I'm looking for a full time design gig in Vancouver, B.C. I want to work with a forward-thinking firm in virtually any industry that's relevant. Be it custom design, online media, software development, or any other, I'm open to suggestion. You know my work, but much more is available upon request. Serious inquiries can be sent via this site's contact form.

If you, or anyone you know are in need of a designer up on the latest web standards, let's chat.

Permalink › | no comments