Category: Stream of Consciousness

Adventures in Home Audio

I'm not what you'd call an audiophile, but I know what I like.

I've got an HTPC I use as my primary media box. And for the past two and a half years, my surround sound speakers have been a set of Creative Inspire 5300's connected to it. They're perfectly good PC speakers (and were $80 when they were new), but as far as home theater, they're a bit lacking.

So, after months of research and scanning for deals, I got me a receiver and a new set of 5.1 speakers.

The receiver is the Onkyo HT-RC360, which Fry's had marked down from $550 to $300 for Presidents' Day. Now, three things:

  1. I have been keeping an eye on Dealzmodo, TechDealDigger, and TechBargains for months looking for a deal like this -- and none of them had this deal listed. This discovery was entirely the result of my deciding, on a whim, to check the Fry's site. Which is even more notable because
  2. I had been at Fry's, looking for a good deal on a receiver, the previous day, and not seen this. I know they had it in stock, because I picked it up in-store, but it hadn't been on display, nor had I seen it listed in the newspaper clippings upfront listing their weekend deals.
  3. Oh, and of course three days later the Sony equivalent got marked down to $215 on Amazon. But that's okay; this is the sort of thing you come to accept as inevitable in any kind of major hardware purchase, and anyway from the reviews the Onkyo sounds like the better device.

Talking of reviews, I couldn't find any professional ones of the RC360, which made me nervous. But I gathered from Cnet that it's roughly equivalent to the TX-NR609. I'd been looking at the 509, but its lack of OSD and HDMI upscaling gave me pause. Those features aren't make-or-break, but with the RC360 marked down to $300, it was only $75 more than the 509 -- plus it's got 7.1 support. For that price, I may as well buy something a little better and more future-proof.

I had also noted that most of the demo rooms at Fry's used NR509 mixers. While I don't always credit Fry's employees as the best judges of what makes a good product demo (the first thing you see when you walk in the front door is an expensive bigscreen plasma TV inexplicably playing a movie at an eye-searing 240Hz), I thought this was probably significant.

And while I was nervous about buying a speaker set I hadn't actually tested in the store, ultimately Cnet's review of the Monoprice 8247 won me over. The short version: you can get better speakers, but only if you pay four times as much. (An aside: I stopped reading some time ago after their reporting became indistinguishable from the trolls in the comments section -- I was going to say "except with better spelling", but nevermind -- but their reviews section continues to be pretty great.)

Anyhow, the speakers came in and I wired them up. It's not pretty just yet -- for now the rear speakers are just sitting on end tables, with their cables blue-taped to the wall, but in the next few weeks I plan to get somebody over to run cable through the attic and mount them properly on the wall. (I'd run the cable myself, but asthma tends to limit one's desire for attic-related adventures.)

One minor gripe: the Monoprice page for the speakers recommends pin-type speaker plugs, but the wire-in-back type I ordered from them is too long; it won't fit in a speaker that's lying flat. It should work fine in one that's wall-mounted, and maybe the wire-in-side type will fit. I might try ordering a couple of those the next time I get something from them, though $2 speaker plugs aren't really worth ordering by themselves. So, bare wire for now -- not like I can hear the difference.

Once I got everything hooked up and configured, I fired up Back in the USSR to verify that the speakers were working, and then straight to the Bridge of Khazad-Dûm scene in Fellowship of the Ring. (This was the point at which my fiancée came out of the bedroom to complain that I was making the house shake. I like to think this was her way of saying "Great job on purchasing and setting up an awesome sound system, Honey!")

Image: The remote, with its many and oddly-labeled input buttons From there I hooked up the rest of my various devices. The Onkyo remote has the now-typical problem of a shitload of different inputs with sometimes arbitrary names -- "GAME" works fine for the component switch connected to my Wii and PS2 (another aside: I wish the thing had more component inputs so I wouldn't need a component switch at all -- but obviously analog is on its way out and I'm sure in a few years I'll have enough HDMI devices that I will be grateful for the emphasis on the new input over the old), but, absent anything resembling "HTPC", I have my HTPC connected under "BD/DVD". My seldom-used DVD/VCR combo is under "VCR/DVR", and my TV audio is connected to "TV/CD", which inexplicably is not the same button as "TV"; the "TV" button can't actually be assigned to any audio input. (I guess people connecting the audio output of their TV into an input on the receiver are probably a rarity; most people have cable boxes which they can connect to the receiver and then output to the TV. But I don't have cable TV, and we sometimes watch broadcast TV. Such people do exist!)

Also: this receiver is the only appliance I have ever bought that came with a GPL compliance notice in the box. This is one more piece of good news on future-proofing: my old TV is no longer supported, its firmware is no longer updated, and it has some annoying bugs (namely, every time it can't tune a channel in it drops it, meaning you effectively have to rerun the channel search every time you move the damn antenna -- again, developers just do not even consider people who watch over-the-air TV at this point). The Onkyo receiver not only supports more features and inputs than I need, its use of open-source software means it can continue to be updated even after its official end-of-life (unless, of course, there are some kind of TiVoization shenanigans at work).

Speaking of my 2005-vintage TV, it's probably the next major piece of equipment I'd like to replace, but it does have one feature I like: an "Automatic" zoom that will upsize the picture beyond the standard 4:3/16:9/"super zoom" presets and zoom the picture until there is no black border anywhere. This is especially useful for the PSP, which outputs games at a weird little 480x272 format that appears as a tiny little windowboxed picture even under most zoom presets. Unfortunately, the receiver's upscaling messes with the TV's "Automatic" zoom; it'll resize the PSP picture vertically, but that still leaves it pillarboxed and vertically stretched. That left me back at wiring the component output of the PSP directly to the TV and leaving the audio hooked into the receiver -- this largely defeats the purpose of upscaling since I'm back to switching TV inputs for different devices, but that is, of course, a minor inconvenience.

And that, incidentally, is the draw of upscaling for me -- I don't really expect the filters to increase my picture quality, but it does mean I don't have to switch from HDMI to Component 1 to Component 2 to whatever on my TV. (Actually, talking of quality, there were visible vertical lines on the PS2 picture -- but I couldn't see them from the couch, and I'm not sure if that's the fault of the receiver or the connection. I've had the PS2 and the cable for some time and I think the connection must be worn, as when I first turned the PS2 on I got audio but no picture; I wiggled the connector in the back and that's when I got a picture with faint lines on it.)

Now I've gotta figure out what to do with those Creative speakers. I'd like to hook them up to my desktop, but Apple is allergic to standards, and you can't actually get analog surround to work on a Mac without some kind of adapter.

Playing: Tactics Ogre: Let Us Cling Together. You know what else the receiver has? A shitload of presets for audio levels. It doesn't just have a preset for games, it has different presets for different genres -- RPG, Action, etc.

Reading: The Light Fantastic

Tempin' Ain't Easy

I try not to think about the fact that it's been seven years since I got my CS degree and I haven't put it to use professionally.

I entered the field at the wrong time and in the wrong place. It's rough all over, and the housing bubble hit Arizona disproportionately hard. I've spent the past few years working as a temp and building the odd website on the side.

The first temp gig lasted two years -- ironically, longer than any other job I've had. But I got laid off about a year ago.

There's this kind of paranoia you get. It could happen again any time. And it has absolutely nothing to do with how hard you work or how good a job you do. You could be out on your ass tomorrow, on the whim of some guy you've never met.

I've heard some of the "get a job" rhetoric lately and it's just baffling. A hell of a lot of people would like very much to get a job. I've been either unemployed or underemployed my whole adult life, and that's with a degree that, fifteen years ago, could have gotten me six figures.

Not that I intend this as a pity party. I've got work now, and it pays well enough to live comfortably while still squirreling away enough each week that I'll be okay for a few months if I find myself unemployed again. There are a lot of guys who have it a lot worse than I do.

And if you take anything away from this comedy of errors, let it be that: this is the story of a guy who's doing okay in this economy.

Job 1: Fortune 500 Company, Real Estate Business

Job: Imaging laptops, working in a warehouse, inventory duty
Distance from Home: 3.5 miles
Best Thing: Laid-back atmosphere most of the time
Worst Thing: Lung fungus
Length of Service: 2 years

This wasn't a bad gig, really. Not intellectually challenging, but I worked with some good people, I got some good exercise in, and most times things were pretty laid-back.

But it wasn't worth giving up my health for, and ultimately that's what I did.

I did a lot of work out in a dusty warehouse, and I managed to contract valley fever. For those of you not from around here, valley fever is a lung fungus, and it lives in dust. The Valley and valley fever are like the Internet and Hitler comparisons -- you stay there long enough, it's something you're eventually going to have to deal with.

So I contracted a lung fungus working there, and I've still got asthma. It's manageable now, but I'm not what I was. Before I took that job I was healthy.

The next-worst thing about the job, after the lung fungus, was the meddling from up the chain. People with little-to-no grasp of our actual day-to-day operations had very strong opinions of what those operations should be, and precisely which boxes we should check on which forms each and every single time we did them. Precisely what those opinions were tended to change from week-to-week, producing an ever-changing, increasingly complex system for dealing with very simple tasks.

And as this went on, the environment became less and less laid-back, and more and more stressful.

There was a real disconnect between the building I was in and management out on the west coast. Within my office I was regarded as an essential member of the team, and indeed my bosses not only recognized my value, they realized that I could probably be doing more for the company than just counting how many sticks of RAM were left in inventory, and fought hard to get me not only hired on but promoted.

It's no small comfort to me that every single person who actually worked with me was pulling for me. To the point that when Corporate decreed that all the temps would be let go, my boss's boss's boss got reassigned for telling his boss's boss's boss exactly how he felt about that.

It was nothing personal. And it was nothing to do with my performance. I was just caught up in a bloodbath. I was part of the first wave, but it kept going. Last I heard, they'd laid off another third of my department, every help desk tech in Arizona, nearly everyone in the front office, and most of the people up the chain to VP. And demoted my boss back down to tech.

But before all that, I got a layoff for Christmas. I lost my job two years, to the week, after I'd gotten it.

There's a fatalism that kicks in after awhile. A knowledge that no matter how hard you work and how much you're appreciated, there's some clown in a corner office somewhere who's never met you but has the power to decide whether you're drawing a paycheck next week.

But ultimately there's something liberating about that, too. After awhile you stop trying to impress the clowns in the corner offices who have never met you. You realize the only people worth giving two shits about are the ones you deal with every day -- and that trying to impress them isn't about whether you'll have a job next week, it's about doing a good job for its own sake and for the sake of your team.

Those guys had my back. And that means more to me than a paycheck ever did.


Unemployment sucks. But it could be worse.

It's a pretty damn smooth process in this day and age -- all online, no driving across town and waiting in line. You fill out an online form, they take a week or two to make sure your story checks out, and then they open up a bank account for you, send you a card, and put money in every week.

Once a week you'll have to resubmit your claim. You tell them you're still looking for work (and keep evidence on file in case they ask for it -- I kept rather a long Excel spreadsheet with a list of everybody I'd contacted) and declare any money you've earned.

The whole thing's demoralizing and more than a little Kafkaesque -- Ursula K Le Guin recently described it quite wonderfully in a short story called Ninety-Nine Weeks: A Fairy Tale, and it's barely an exaggeration. That spreadsheet I mentioned where I kept track of all the dozens jobs I applied for? Only one of them ever actually got me an offer, and it was out-of-state -- more on that below. By the time I did finally get work again, it wasn't from the job search, it was from the same temp agency I'd been working for since '08.

Job 2: Local Non-Profit, Medical Industry

Job: Imaging laptops
Distance from Home: 13 miles
Best Thing: A job!
Worst Thing: Poor pay, sporadic availability
Length of Service: 3 months, off and on

This one wasn't too bad either. Neat office, nice people, and a certain degree of autonomy. The cramped little room I worked in got pretty crowded and hot as time went on, and there was a whole lot of downtime as I waited for laptops to finish imaging, but hey, I got time to catch up on my reading.

I also learned some interesting things about security policy. I've never had to lock things down so tightly from the BIOS -- a unique strong boot password on every machine, USB boot disabled, Bluetooth disabled, and on and on.

The toughest thing was that this wasn't a 40-hour-a-week job. It was "We just got these laptops in; image them and when you're done we'll send you home and call you back in when we get more."

And, without getting into the specifics of my pay, here's where that got frustrating: often I didn't make significantly more money than if I'd just stayed at home and collected unemployment.

Unemployment in Arizona works like this: you get a weekly stipend of up to $240. I was eligible for that maximum amount.

Every week, you report how much you've earned. You can earn up to $30 before they start subtracting your earnings from your unemployment check.

So there's this sort of dead zone between $30 and $270 where you are making the same amount of money whether you work or not.

And at this job, I frequently worked a weird part-time schedule and fell into that zone. Once I got past that first $30, I wasn't actually making any money; I was just getting a paycheck from the temp agency instead of the state.

Obviously there are still reasons to work. For its own sake, first of all. And second, to stay eligible for my healthcare, which was set to expire after three months without work. (I got back into the market just in time, but not fast enough to keep someone from fucking up my paperwork and taking me off their books even though I was still paying in every week. I had to call three different departments to get it corrected and my last prescription covered.) But there's still a definite sense of frustration in knowing that you're effectively working for free.

More than one other tech actually told me I should slow down and deliberately take longer to do the work so that I wouldn't get sent home in the middle of the week to await the next shipment. What a position to be in -- effectively being punished for being efficient, and incentivized to slow down and waste time.

This, as you will see, was to become a recurring theme.

Job 3: Company You've Probably Heard Of If You Live in North America, Retail Business

Job: Phone support
Distance from Current Home: 30 miles
Distance from Apartment Where I Lived 4 Years Ago: Directly across the street
Best Thing: Coworkers seem like all right guys
Worst Thing: The single worst job I have ever had. Fuck these people.
Length of Service: About a month

On some level, this fucking fiasco was my own doing.

I'd been poking through listings on some job site or other (probably not CareerBuilder; I quit using it after I discovered it was the thing that kept locking up my browser and hanging my entire system) and I noticed an IT job being offered through my temp agency which my rep hadn't brought to my attention. So I E-Mailed him and asked about it. In hindsight, I should have assumed there was a good reason he hadn't approached me about it.

It was phone support. Not phone support like I'd done before, but in a phone bank -- I had a few feet of shelf that I wouldn't really refer to as a desk, partitioned off from the guys next to me by small dividers that I wouldn't really refer to as a cubicle. Every morning at 6 AM I pulled up whatever broken chair nobody was sitting in, put on a headset if it was still where I'd left it the day before, and started working my way through a list of branches to call to walk their managers through installing new kiosks that didn't work very well in buildings that, half the time, weren't cabled correctly. (Ever walk a retail manager through recabling a patch panel? I've done it six times before breakfast.) It was dimly lit and it was dehumanizing -- I'd compare it to an assembly line, but the assembly lines I've seen are a whole lot livelier and more fun.

(I will grant one thing to the "cog in a corporate machine" setup: this is a company with hundreds of stores, all organized exactly the same. Each store has the same patch panel with the same numbered ports that go to the same rooms and assign IP's based on the same scheme. There was this in-house .NET program we had that would let you plug in a store number, automatically populate the IP address for every port in the place, and give you a one-click ping for each one. That's the advantage of a company that treats its stores as unifom, cookie-cutter widgets. The disadvantage is that it treats people exactly the same way.)

I spent most of each day on hold listening to the same fucking 16 bars of piano music over and over again. Periodically interrupted by a recorded voice telling me I was on hold, of course -- and if I ever meet the son of a bitch who decided to stick voice recordings in the middle of hold music, I am going to gouge his eyes out with my thumbs. I know I'm on hold, asshole; that's why there is music playing. About the only thing that could trick me into thinking that I wasn't on hold would be if the music abruptly stopped and I heard a human voice instead.

There were a couple of guys there who I'd gone to high school with. One of them I recognized but hadn't really known very well; the other used to pick on me but claimed not to remember me (he blamed it on the drugs he'd been doing back then and I am inclined to believe him). Now, remember how earlier I expressed frustration that my career hasn't really gone anywhere? Well, if you want a symbol that will hammer that little insecurity home, suddenly finding yourself sitting next to a couple of guys from high school is a pretty good one. But probably not as good as being directly across the street from the apartment where you lived back when you worked a previous dead-end job. Man, that would have been a sweet commute in 2007!

So no, let's say that this job wasn't the best fit for me. But dammit, I got up every morning at 4:30, put on a smile, went in, did my job and did it well. I blew through every task they gave me and asked for more.

This, as it turned out, was a problem. But nobody ever actually bothered to tell me that.

One morning I walked in and found that my login wasn't working. I asked the guy who'd been training me; he hemmed and hawed and wandered off for awhile, then came back and told me to turn in my badge.

It bears repeating, at this point, that I had just driven 30 miles to show up to work at 6 AM.

My rep told me that they'd called his office the previous evening to tell him to call me and tell me not to come in to work in the morning -- after he'd already gone home for the day.

He added that I'd been sacked because they thought I didn't schmooze enough with the end users over the phone -- something that nobody had ever actually complained to me about. I wasn't rude, or even brusque; I was just, in my rep's words, "too focused on getting the job done". I'm used to support jobs emphasizing getting the task done quickly, because the user doesn't want to be on the phone and wants to get back to what she was doing. But apparently that's not how it worked at this company; they wanted me to slow down and shoot the breeze -- except nobody ever bothered to tell me that. Come on, guys, if you want me to talk about the weather, just say so -- I have quite a lot to say about the weather in Phoenix in June, even when half the state isn't on fire.

Anyhow, it's the only job I've ever been fired from. And nobody even bothered to tell me there was a problem, let alone that I'd been fired.

The guy who walked me to the door was apologetic and told me not to worry about it, that people get fired from that place all the time through no fault of their own; maybe just for looking at somebody the wrong way. And it occurred to me that I'd passed my boss early one morning in the hall and, when she asked how I was doing, cracked a grin and responded "Hanging in there" -- and she apparently took offense that I hadn't said something more enthusiastic.

On the whole, pretty demoralizing and upsetting, and far and away the worst professional experience I have ever had.

Of course, I use the term "professional" in its loosest possible sense.

Job Interviews

Through it all, of course, I was interviewing wherever I could.

There are lots of stories I could tell. The temp agency I spent half an hour trying to find. The interview where I referred to a former coworker as "A temp like me, but kind of a slacker" but the interviewer just caught the "like me, kind of a slacker" part and that pretty well torpedoed me. The interviewer who asked me about a comment I'd posted about Spore's DRM on the FTC website back in '09 and then followed up by asking my opinion about SB1070. But the best story is the hosting company I saw advertised on a billboard.

"Do you know Linux? We're hiring!" said the billboard, with a colorful mascot next to the words. I would see it on the freeway on my way to work. Or maybe it was on my way home from work. Maybe it was both; I think they had more than one billboard.

Well, hell yeah I know Linux. I pulled up the website and submitted a resume. Turned out it was a hosting company -- even better. I spent most of '07 running the backend of a local ISP singlehandedly; I know my way around Apache httpd and MS IIS pretty well.

So they called me back, and the most immediately odd thing was that they told me the job was in Austin. Why would a company in Austin advertise in Phoenix?

Well, of course the answer is that they couldn't find anybody in Austin willing to accept the shitty salary they want to pay for Linux administration, so they're advertising in depressed markets that are full of desperate, unemployed Linux admins. But as you might expect, they didn't come right out and say that.

No, they gave me some talk about how they're expanding into new markets, and how they'd pay for my relocation, and they didn't balk when I gave them a deliberately high figure for my expected salary. They made the whole process seem very exclusive, putting me through three different interviews -- a general one, a second one with a series of technical questions, and a third where they had me SSH into one of their servers and demonstrate that I know my way around bash.

And then they offered me an hourly rate that was maybe fifty cents better than what I was currently getting in the phone bank. And a relocation fee that might have covered a U-Haul rental, deposit, and first month's rent on an apartment.

I hear Austin is a neat place, but no thank you.

It was about this point that I decided to read some employee testimonials on the place, and it sounded suspiciously like the terrible job I was already working at.

The billboards are down now. I wonder if they ever found anybody desperate or gullible enough to take their offer.

Job 4: Contractor for a Contractor for a Contractor, Insurance Industry

Job: Imaging laptops
Distance from Home: 32 miles
Best Thing: Getting work immediately after the previous fiasco; autonomy and people who were happy to see me
Worst Thing: Night crew fired after their first day
Length of Service: 6 weeks

Actually, before this job my rep sprang into action and got me a half-day gig fixing a company's QuickBooks setup, a mere 5 days after the debacle at my previous job. But I'm not counting that as its own section. My rep's cool, though.

Anyhow, shortly after the half-day QB fixer-upper, he found me something else and, at last, I got to be part of a Windows 7 refresh -- the precise thing that my boss, the previous December, had assured me would ensure my job security for another year, the week before announcing that the Windows 7 rollout had been canceled and so had my employment.

Anyhow, this one was interesting. The idea was to provide a minimum of disruption for the employees, while upgrading most of the office to Win7 in a matter of weeks.

So we had a night crew. They came in, ran a script to back up the user's files, either reimaged the user's existing computer or grabbed a new, freshly-imaged one that I'd already put together, restored from backup, and left it to me to walk the user through initial configuration the next morning.

At least, that's how we eventually got it working. The first night, things failed rather spectacularly.

I got in the next morning to find the night crew still there, a small handful of computers actually in working condition, and the rest in various states of completion.

The way I heard the story went something like this: one tech on the crew had asked the guy in charge what the plan was -- how they were going to split up the workload, what the schedule was, etc. He had made some vague "Just get started" noises. She asked him a few more times; he responded similarly. Finally she just went to work; she was responsible for the handful of machines that had actually been finished, while the other techs hadn't really worked out a plan for how to get their work done.

So the company fired everyone else and put her in charge of the new team.

After that it went really smoothly most nights. There were a couple exceptions -- one weekend when the generator had to be turned off for maintenance and so they couldn't come in to get computers ready for Monday, and one night when the AC was out and it was too hot to work. But no more problems from the techs themselves; the second crew did a really great job and made my life much easier.

Job 5: Company You've Probably Heard Of If You Live in the Southwestern US, Real Estate Business

Job: Imaging laptops
Distance from Home: 22.5 miles
Best Thing: Autonomy
Worst Thing: Still a bit of a drive.
Length of Service: 4 months so far, out of a one-year contract.

And from there I moved on to my fifth job of the year, not including freelance Web design or that one-day gig fixing QuickBooks.

This one comes with a one-year contract, so hopefully that'll hold and I'll still be there through next August. But I'm not going to take that for granted; one of the many lessons I learned in the Dank Pit of Phone Support last summer is that a six-month contract can turn into a one-month contract with absolutely no warning. Course, I've been working this one long enough that I am confident in saying that this time I am working for decent human beings, but again, it's not the people I've actually met I'm worried about. And every time I hear the Windows 7 rollout's been delayed, I get a little nervous.

I guess it's worth asking, what motivates me to come to work every day and do a good job? Here's what I can come up with:

  • Need for money
  • Need for health insurance
  • Pride
  • Loyalty to my coworkers

It's instructive to note the things that aren't on the list. "Hope for promotion" and "fear of losing my job" are conspicuously absent -- yes, I do feel both of those things, but as I've mentioned several times, I have absolutely no sense that my employment or advancement is tied to my performance in any way. They're motivating factors just as much as the potential for finding a $100 bill on the ground or tripping and cracking my skull -- they're both things that have some potential for happening, and my job performance has about as much to do with the likelihood of either one.

Also missing: "company loyalty". And unlike those other two things, this isn't something I have in the slightest. I am, as I said, loyal to my coworkers, and I appreciate my rep at the temp agency, but that's not the same thing as being loyal to either the company I'm working for or the company that placed me there. If I get a better offer I'll take it -- and those last two bullet points are the only reasons I'll give two weeks' notice.

On the whole I'm not entirely sure this is a bad thing from my perspective -- hell, the ideal list would probably have two bullet points instead of four. Company loyalty, the stick of firing and the carrot of advancement -- I don't need those things to do a good job. But from the company's perspective, it's probably a bad thing.

And if I may be so bold, I think I'm probably representative of a good solid chunk of my generation. Educated, underemployed, unable to hold down a job for more than two years through no fault of my own -- what happens when that's your workforce? In the coming decades we're going to find out.


Someday I want to make a webcomic out of last year's trip to the ER.

Phoenix Metro is a lousy place to live if you enjoy breathing. Sooner or later, you're going to get a lung fungus. The irony is that my family moved here because my great-uncle had asthma, and I'd dearly love to move away from here because now I do too.

I've never seen a summer like this past one before. It stormed but it didn't rain. Instead we had these monstrous dust storms called haboobs. They are, unlike most boobs, not fun.

Somewhere along the line, my girlfriend lost the ability to breathe comfortably. Finally she went to urgent care; they diagnosed her with pneumonia, gave her some steroids and antibiotics, and sent her home.

Well, the steroids made her hyperventilate, so we spent the next day in the ER. They told us it wasn't pneumonia and prescribed less harsh steroids.

Well, those steroids were still too harsh, and within a couple of days she was hyperventilating again and we had to call the paramedics. We managed to avoid another trip to the ER and she went off her prescriptions.

Since then, she's seen a couple specialists who appear to know what the fuck they're talking about. They told her it was a bad allergy to dust and we'd have to tear our carpets out.

So we spent this past weekend taking all the furniture out of all the bedrooms. It's kinda like moving, except instead of begging to borrow your friend's pickup you just move all your shit to your back porch.

Well, the floor guys were about 5 hours late today. So that's, you know, one whole day's worth of moving shit back into the house lost. Which gave us time for the power to go out in half our house. Second time in about 36 hours.

It was about this point that I decided I needed a beer.

The electrician told us that our transformer must be going out and the electric company would have to come out. In the meantime he hooked the other half of the house up to the same circuit as the functioning half of the house, so that the floor guys would be able to see things.

It was about this point that I decided fuck it, Halloween, you know I love you, but I am not dressing up this year; my house is mostly-disassembled and I was just going to reuse last year's Axe Cop costume anyway. Which is like a regular cop costume, but with an axe.

It was not much later that I decided I needed another beer.

The second beer exploded on me.

So I am currently sitting in my kitchen with a laptop; the flood of Trick-or-Treaters has dwindled to the point that I can finally bang out this post. My house is full of choking, eye-searing dust --

At this point in the story the dust got so bad I went outside. I gave candy to trick-or-treaters until people from the power company told me they were taking the power out. So, guess I'll wrap this and unplug my router.

Happy Halloween!

...was going to be the end of my post, but before I could get to the Post button the power went out. The floor guys, obviously, will not be finishing tonight.

I am currently at my grandparents' house. First thing I did was get a glass of water. Continuing the evening's theme, the dispenser did not turn off when I was done with it, and for the second time tonight I found myself toweling up a spilled beverage.

Well, happy Halloween.

To be continued? God, I sure hope not.

Oh, and also I've got company coming on Friday. Good times.

Final Fantasy 7, Fourteen Years Later

The thing that surprised me most, on a replay of FF7 after lo these many years was, you know, it's actually pretty good. Not the best game ever, not even the best Final Fantasy -- hell, not even the best Final Fantasy released in a six-month period --, but pretty good.

It's easy to scoff at it in hindsight, probably because it's not nearly as good as some people claim it is. And frankly I'm embarrassed by my own youthful enthusiasm for it. But, truth be told, it's a good game. And it's not really logically consistent to love 6 and hate 7, because 7 is so clearly a refinement of 6. Amnesiac hero reluctantly joins underground organization fighting an evil, technocratic Empire that is extracting the spirits of a dead, magical race into glowing stones to use for its own nefarious purposes? Yeah, that sounds pretty familiar. The leader of the Empire is killed by a psychopath who is the product of one of its magical infusion experiments gone wrong, and who then becomes the Big Bad? Check. The key to saving the world is a mysterious girl who escaped from the empire's lab and turns out to be the daughter of a human and one of the aforementioned magical race? Mhm. Even the environments and the music are awfully familiar.

Which I suppose in itself could be taken as a knock against FF7 -- it hits a lot of the same beats as its predecessor. But this is Final Fantasy we're talking about. It's not like FF6 was fresh and new -- if you squint, the above plot summary isn't too far off from FF4's, either. And truth be told, 7 does some things better than 6.

It's easy to lose sight of in a flashy, forty-hour game, but, at least in places, FF7 shows a remarkable economy of storytelling. Take President Shinra -- for the first act of the game, he's the presumptive villain, and he makes a hell of an impression. But in truth he only appears in two scenes, I can count his lines of dialogue on my hands, and then he's promptly killed, offscreen, by a character you've never seen and have only heard of in rumors.

That's a pretty far cry from Kefka and Gestahl, really. Kefka is clearly the game's villain from the get-go, and you know sooner or later he's going to take out the Emperor. As for Gestahl, he doesn't get a lot of development but he's in a few scenes and you get a decent sense of who he is.

With Shinra, by contrast, you get a sense of who he is with very minimal information. It's quite well done. And then he's killed just a few hours in, by somebody who hasn't even been introduced yet. That's a shock -- and the presentation, the darkened halls filled with blood, is pretty unexpected too.

The key difference between Shinra and Gestahl -- and the key difference between their respective empires, and arguably between the settings of the two games -- is that Gestahl is an actual head of state, while Shinra is a CEO. The Mayor of Midgar only briefly appears in the game, and makes it very clear that he's a powerless figurehead. The man who runs the reactors rules the world. Forget the motorcycles, that's the most modern thing about FF7.

Shinra's also utterly ruthless and calculating. He wipes out an entire slum and blames it on the terrorists who have been sabotaging his reactors.

(It does fall apart a bit in the Corel flashback. Barrett convinces the people of his town to sell out to Shinra -- and then Shinra burns down the town anyway? I really have no idea how that serves the plot at all. It's not even there to fill the "hero's hometown gets burned down" box on JRPG Bingo, because by that point in the game Sephiroth's already burned Nibelheim, in a different flashback.)

Rufus makes an interesting contrast to his father. For all his initial talk about ruling by fear, his death is a contrast to his father's: the elder Shinra dies after destroying Sector 7; the younger dies saving Midgar. He doesn't have to be there; he could have evacuated, and he chose not to. His deeds redeem him, even if he's still not a very nice person -- and even if Midgar ends up destroyed anyway.

But probably the best example of FF7's skill in economical storytelling is the destruction of Sector 7 and the deaths of Biggs, Wedge, and Jessie. Sure, they're the requisite Star Wars-named fodder characters (Romanized correctly here for the first time!), and no, they don't have that much screentime, but you grow to like them in that short time. You learn just enough about their hopes and their doubts -- Wedge's guilt over the civilian casualties, Jessie's nervousness about her forged ID cards -- to feel for them. And Wedge is a legitimately fantastic example of a character whose personality is communicated visually, through his model and his body language. Which of course starts to bleed into my previous post and the observation that simple, iconic images can convey a whole lot to an audience.

There's a point where the uniqueness of gaming comes into the Sector 7 collapse, too. Sure, killing a bunch of poor people and blaming it on the hero is stock Bond Villain stuff, but this is different: the first opportunity you get to do a little bit of free exploration is Sector 7. You wander around, you meet people, you slowly get introduced to the world of the game there. It's not that the villagers have gotten too much more complicated since welcoming you to Coneria and warning you that the Fire Fiend will burn everything up, but they have little stories and personalities -- hell, the building designs have more character than the people, but the bottom line is that you get a feel for Sector 7 that you don't get for most fodder locations. (Contrast with FF6: Kefka's murder of the population of Doma establishes him as a very bad man, but you're not emotionally invested in Doma or in anyone there except Cyan and his family.) In short, a couple of lines of dialogue, some atmospheric design, and the proper placement in a game's narrative and presentation can really make a minor location stand out.

Oh, and the steel beam through the playground is as subtle as a chainsaw to the face, but it's definitely a memorable image.

And while the game can get awfully overbearing in places, it has some deep themes that are presented without being harped on. Of course the whole thing revolves around Japan's complex relationship with nuclear power -- something thrown into stark relief as I replayed it a few months ago when the Fukushima meltdown was in the news -- and it makes Barrett's team the ostensible heroes, but there are shades of gray there. Barrett is well-meaning, and perhaps the character with the purest motives in the game (leave a better world for the little girl he's adopted) -- but he's also a revenge-obsessed terrorist who gets a lot of people killed, most of them innocent and some of them his own team. And he's easily the most sanctimonious character in the game -- he rants constantly about saving the planet from the monsters who are sucking its lifeblood to generate power, and the game respects our intelligence enough not to point out the irony that he's a former coal miner.


It's not just the story that feels like an update of FF6; the actual gameplay is really quite similar too. Materia's not so far off from Espers -- the main difference is that it makes the characters even more interchangeable -- and the game is similarly unbalanced. It's still trivial to produce a party that will take the last boss out in a round or two; the game ups his stats a bit if you're at level 98 or 99, but it doesn't really make for a challenge.

There are challenges, of course, for advanced characters -- Huge Materia and the Weapons -- and in this sense, the game is better-rounded than FF6. The biggest problem is that, for the most part, they suck. On my latest play-through, I probably spent about ten hours grinding on Magic Pots and Movers, and for what? Spammy, unsatisfying battles with the Weapons, and a bunch of Master Materia I didn't need.

Seriously, if I ever try to beat Ruby and Emerald on a future playthrough, or get any Master Materia (with the possible exception of yellow), just give me a quick smack in the back of the head. It's stupid and it's a waste of time. And the Arena's not much better.

...but back to the interface. If you don't bother with all the side crap, it's pretty neat! And while weapons and armor have been simplified way down from 6, they complement the Materia system nicely. Do you optimize for equipment stats, for number of Materia slots, for number of linked Materia slots, or Materia growth?

And the Blue Materia are pretty neat too. Added Effect/Hades was always a favorite, and Phoenix/Final Attack is clever if overkill.

Where FF7 runs into its biggest gameplay problems is in simply interacting with the world. It's an early 3D game, and it's obvious that the team was still trying to figure out how to realize the Final Fantasy rules in that context.

This is most apparent in the field. There is a stunning variety of detailed backgrounds in the game. The trouble is that they're low-resolution, low-color prerenders, and much of the time it's difficult to figure out simple things like where you can walk and where you can't.

Image: Train yard
Can anybody tell me where the fuck I'm supposed to go on this screen?

There's a toggle you can use to show points of interest, but it's not very useful.

And battle's not much better. In classic Final Fantasy style, it consists of your party in one line and the enemy party in another line, but, for the first time, the characters actually move across the screen when they attack each other -- and the devs thought it would be a good idea to compensate for that by adding movement tracking to the battle interface.

They were wrong.

Say I'm trying to attack a monster, and it moves across the screen while I'm trying to point at it. Well, suddenly it's not where it was a second ago, and I have to move the pointer around to get to it. And probably wind up pointing at my own party somewhere in the process. Or, the reverse -- I'm trying to heal or buff one of my party members, and she jumps across the screen. (Actually it's a pain in the ass to target your own party members even when they're standing still, because the game can't seem to decide whether they're arranged left-right or up-down.)

All of which is just needlessly complicated, seemed-like-a-good-idea naivete. Changing the graphical presentation should not have actually changed the controls! FF7's battle interface is functionally identical to the previous six games'; it should play exactly the same even though it looks different. So that monster's not actually standing in his spot when I point at it? It doesn't matter; if I point at where he was standing a half-second ago it should still target him!


The music in this one is just superb; it's legitimately one of the best original soundtracks in gaming history. Can you remember the first time you heard the boss theme? I can.

If I have one complaint, it's that you can pretty clearly hear Uematsu recycling the same themes at this point in the series -- Aeris's theme sounds a lot like Celes's theme, and they both bear a more-than-passing resemblance to Fanfare for the Common Man.

On the other hand, it's hard to fault Uematsu for retreading musical themes when the game retreads so many story themes -- you can't really blame him for making the Mako Plant sound like Vector when it looks so damn much like Vector too.

Ultimately, I can't take too many points off Uematsu for experimenting with the same riffs throughout the years. Charting his career through the series, it's the story of a guy learning his craft and learning new tools as they develop -- in his chiptune days, he was a programmer as much as a composer. The very first thing you hear in the very first 16-bit Final Fantasy is an extended version of the Prelude theme from the preceding three games. The first thing you hear in 7 is that theme again, this time with harp and vocals.

The move to the PS1 hardware had almost as profound an effect on the audio of the Final Fantasy series as the video. It allowed Uematsu a wide-open world to compose in MIDI, and, in a couple of cases, to use Redbook audio as well. FF6 had already involved some long, complex pieces that went on quite awhile before looping back to the start (Terra's overworld theme being the best example), but 7 had many more. And with instrument samples, the MIDI sounded less artificial than the chiptunes of yore.

The Love Triangle

The biggest problem with the Cloud/Aeris/Tifa triangle is that it's a case of two Bettys and no Veronica. (For you kids out there, you can substitute "Betty and Veronica" with "Edward and Jacob". Probably. I don't know; I couldn't even make it all the way through Steve's summary of Twilight. And it was hilarious.)

Tifa and Aeris are too much alike. At a glance, you expect the obvious trope: the scantily-clad, well-endowed one is the sassy, liberated one, while the conservatively-dressed one is a shy girl-nextdoor type. And at first, the game seems set to go down that path -- after all, you meet Aeris in a church and Tifa in a bar. Then, it takes an interesting turn suggesting that maybe they're about to subvert the trope and reverse the roles, as Tifa turns out to be literally the girl nextdoor and Aeris fearlessly guides you through the slums where she's grown up. But that potential twist never really pays off, and ultimately Tifa and Aeris are both the shy girl nextdoor. There's not a whole lot that distinguishes them from one another, and ultimately the competition between them never really feels like there's anything at stake in it.

Of course, once Aeris gets shish kebabed the triangle is resolved while simultaneously finally achieving a real dichotomy -- Cloud never makes a choice between the two women, the choice is made for him, and the rivalry for the audience's affection is no longer between two sweet girl-nextdoor types but, instead, between the angelic figure who died tragically and the girl who survives, stands by Cloud through his breakdown, and literally follows him to the ends of the earth. That is an interesting contrast, and it's most likely why people still care about Tifa and Aeris all these years later.

And of course there's also the rudimentary romance subquest that served to define them throughout RPG's to come. You can't seriously tell me that any of BioWare's romances are substantially more complex or nuanced than choosing your date for the Gold Saucer. Hell, it's even got a same-sex option!

The Translation

My God.

I played the PC version on my recent playthrough, and the most infamous errors ("This guy are sick", "Off course!/No, way!") were fixed, but there was still a "creek in the floor", and I'm pretty sure I saw "shit" spelled with an apostrophe. And the first boss fight still begins with Cloud instructing you to "Attack while it's tail's up!" -- less notable for the misplaced apostrophe than the omission of the rather nontrivial word "Don't", pretty much guaranteeing everyone playing the game for the first time would die twenty minutes in.

There's an absolutely fantastic peek behind the curtain in The Rise of Squaresoft Localization, an article by Wesley Fenlon at 1up. To wit: the massive script of FF7 was translated by one guy, who had little or no access to the original team, had no "series bible" of common Final Fantasy names and words, and had to hack the whole thing into a foreign character set. Considering that, he did a pretty good job -- I mean, we're still talking about the damn thing, aren't we?

But on the whole it was a big step down from Ted Woolsey's FF6 translation. Sure, that one has its detractors, but I can't for the life of me figure out why. It's got mistakes ("Vicks and Wedge"), truncations ("Fenix Down", "Carbunkl"), and plenty of 1990's-era-Nintendo censorship, but not only does it exceed 7 in its adherence to the basic rules of English spelling and grammar, it's also a lot more fun.

I suspect that FF7 is more like the American FF2 writ large in that people enjoyed it because the deeper themes of its story shone through the lousy script that conveyed them.

Right Time

I think the defining characteristic of FF7 is that it is spectacularly adolescent.

That's not entirely a bad thing -- in fact, it was adolescent in a time when its medium and its audience were adolescent too. It was big, it was operatic, it was bombastic; it was obsessed with its own appearance; it treated its shallow, superficial philosophy as if it were really deep and thought-provoking; it featured awkward cursing and a busty girl nextdoor and in the end it wasn't nearly as damn important as it seemed at the time. In other words, it's pretty damn obvious where its appeal to its target audience came from.

Final Fantasy 7 and Iconic Images

I closed Part One of my Final Fantasy 7 retrospective by saying that the Phoenix Rejuvenation Project, a mod designed to replace all the super-deformed field character models in the game with more detailed and realistically-proportioned ones, was the product of a lot of hard work by a lot of talented people...but just a bad idea on principle. The reason I believe this comes down to one essential point:

Final Fantasy 7 is ridiculous.

Now, the game has a huge fanbase, most of which was captivated by its epic story, cinematic atmosphere, and shocking moments. And I think that, given those elements, people tend to forget exactly how damn silly it is.

Here's an example. You're following Sephiroth -- the man who left a trail of blood and bodies ending in a dead President, a man who burned the heroes' village to the ground -- and his trail leads amusement park. After you get your fortune told by a talking stuffed cat, and optionally ride the roller coaster and play an arcade game about the mating habits of Moogles, you find another trail of blood and bodies, these cut down by machine-gun fire. It's briefly implied that your colleague Barrett is the killer, but it turns out it's actually his best friend Dyne. Dyne's gone off the deep end and just wants to burn everything down; when he hears his daughter is still alive and Barrett's adopted her, he threatens to kill her and Barrett has to kill him first.

And then you go race a Chocobo.

Seriously. That is not an exaggeration. At all. The delay between Barrett having to gun down his best friend in order to protect his daughter and Cloud becoming a jockey in a race between giant pastel-colored birds is approximately thirty seconds.

The tone of FF7 shifts so often and so wildly that if you think too hard about it your brain will get whiplash. Do I even need to get into Wall Market and Don Corneo's Mansion? Do I ever want to see a realistically-proportioned Don Corneo thrusting his hips at me? (Actually, I looked for one from the Rejuvenation Project to inflict upon you, my audience, and couldn't find one. Maybe they don't want to see it any more than we do.)

And I can't stress this enough: one of your party members is a talking stuffed cat.

Final Fantasy games, at least since the 16-bit era, are a delicate balancing act of the serious and the silly, and 7 is probably the one that shows that contrast most clearly. And key to its balancing act is its use of exaggerated, iconic character models.

In the essential Understanding Comics, Scott McCloud explores the power of simple, iconic images:

Image: Understanding Comics
Image: Understanding Comics

It doesn't just apply to comics, of course; it works for any form of cartooning. Similarly, a few years back some dumbass critic wrote a review of Monster House where he loudly proclaimed that it was the most important animated film of all time, and summarily dismissed the entire history of animation on the grounds that, prior to performance capture, cartoons couldn't truly convey emotion. I'm convinced he was just trolling, but Amid Amidi at Cartoon Brew tore him a new one across multiple blog posts, including one with this side-by-side comparison:

Image: Monster House vs. Bugs Bunny

One's got a dead-eyed Uncanny Valley face, and the other one is Bugs goddamn Bunny. Bugs is an enduring icon who is recognized the world over and has remained popular for over 70 years, whereas Monster House...well, did you even remember what Monster House was when I mentioned it?

The point is, in cartooning, you take essential elements and exaggerate them. FF7's chibis do that: little bodies, big heads, and exaggerated movements in a story that is itself bigger-than-life. The Phoenix Rejuvenation Project injects more realistically-proportioned figures into those same exaggerated movements and bigger-than-life story, and the result is a pretty clear clash:

Image: Comparison of Barrett waving his arms, original vs. Rejuvenation
Image: Comparison of Barrett shaking his fist, original vs. Rejuvenation

FF7's field models lack even the basic facial emotions of FF6; each character has only one unchanging facial expression, and emotions are conveyed through exaggerated movement. In the Phoenix Rejuvenation Project, that doesn't change -- and it's a lot easier to accept a static facial expression when it's just a couple of lines and dots than when it's more fully formed, easier to accept ridiculous arm-waving from a squat little Playmobil man than one who's more reasonably proportioned.

And even if they could somehow take all that out, give the characters emote animations that fit their new models, you'd still have the Honeybee Inn, Sephiroth tossing people around like ragdolls in Nibelheim, Yuffie leaping across the screen, and, oh yeah, a talking stuffed cat. There are large swaths of the game that simply cannot be made to fit this art style.

I'm not opposed to overhauling FF7's field graphics by any means -- but Team Avalanche has the right idea: keep them chibi, just make them smoother and more detailed chibis.

Of course, even that approach is fraught with peril; FF9 tried it and we got a leading lady who doesn't look like a detailed chibi so much as, well, a dwarf.

Image: Final Fantasy 9's Princess Garnet

Next time: An attempt at a thorough critical analysis of Final Fantasy 7, what it did right and what it did wrong. Combat! Love triangles! Japanese nuclear anxiety! Recurring themes, both literary and musical! Keep goin'? Off course!

And in the meantime, don't forget to join the discussion currently raging at Brontoforumus!

Final Fantasy 7 PC Mods

I'm not altogether sure when I first stumbled across the Final Fantasy 7 modding community. It's not surprising that it exists -- it is, after all, a popular game with a huge fan following -- but it is perhaps surprising that there are some really high-quality improvements to the game out there. High enough that I got the itch to replay the game for the first time in about a decade.

I'll talk about the experience of replaying it at 28 later. (tl;dr: it's not as good as 15-year-old Thad thought, but it's better than 18-year-old Thad thought.) For now, I'll stick with the technical.

Now, there are advantages to simply emulating the PlayStation version -- the ability to save anywhere is a biggie, and emulator-level texture smoothing is nice too. But I decided to go with the PC version because, again, it's the mods that drew me in. The major hub of mod development is the qhimm forums. And here are a few I've been using, ranked in order of importance.

The Essential

First, you'll need to get the game. Try eBay.

Then, you'll need to patch it to version 1.02.

And there's one mod that is absolutely necessary to get Final Fantasy 7 PC to run at all on a post-Win98 computer: Aali's Custom Graphics Driver. At the time of this writing it's at version 0.7.10b, but it's under active development. Make sure you jump to the end of the thread and grab the latest version; the link in the first post is version 0.1a from March 2009.

Setting it up is a simple process and described in the post that links it. You need to run both ff7config.exe and ff7.exe with full Administrator privileges, and I found that the graphics looked washed-out until I set compress_textures = no in the ff7_opengl.cfg file. It's probably a good idea to go through the troubleshooting thread if you have any other issues with it.

The Pretty Great

FMV Updates -- the PC versions of the FMV cutscenes look, inexplicably, even worse than the PlayStation versions. Modder DLPB has taken the PS1 versions and given them frame-by-frame upscaling and cleanup. The end result is, as he put it, a polished turd -- it's still kind of a mess but it's a damn sight better than what you get out of the box. Keep in mind that, after installing, you'll need to edit the videopath setting in your Windows registry.

Avalanche's Graphical Overhaul: Gorgeous but not quite finished.Team Avalanche's Graphical Overhaul (the thread links the GUI Update as well, but I'll get to that a little lower down). Many of the models in FF7 -- such as the characters, monsters, and treasure chests -- are untextured polygons. That means they upscale without loss of quality, and actually hold up pretty well even though they're not as smooth as what we're used to in this day and age. The polygons with 2D textures on top of them, on the other hand -- like, say, the world map -- look quite a lot the worse for wear upscaled to a modern resolution. The Avalanche World Map Patch adds hi-res textures, in both 720p-and-down and 1080p-and-up flavors, and it looks goddamn gorgeous. It's currently an 0.9, which means it's not quite there yet -- now and again you'll see a low-res stripe on a hi-res mountain, as in the image to your right -- but it's close, and it's well worth installing in its mostly-complete state. (YMMV on which components you want to install -- I don't use the alternate avatars or the replacement Barrett model.)

FF7Music: Okay, so the FF7 soundtrack sounds not-very-good coming out of Windows's default MIDI sequencer. It's bundled with its own Yamaha sequencer, but it's incompatible with modern versions of Windows. It's possible -- and perhaps more elegant -- to tweak your soundfont with Timidity, but FF7Music gives you the flexibility to set whatever tracks you want. The installer I linked includes the PS1 version of the music, and also a resequenced version by a guy going by the handle finalfantim -- it's not a remix as it's the exact same MIDI tracks, but he's resequenced them using high-quality instruments and, while it's a matter of taste, I find that they sound better in nearly all cases. (Except the guitar on his version of the Cosmo Canyon theme; I don't care for that and use the PS1 version.) Of course, there's also the option of customizing it with music of your choice -- I've always hated the FF7 version of the Victory Fanfare, so I've swapped it out for a nice Minibosses version instead. And if you want to edit music files so they loop properly, there's a tutorial for that, too.

(The biggest drawback for me? While the thread says FF7Music works in Wine, I've found it doesn't work very well on my system -- it'll play a track or two, the opening, maybe the overworld theme when I load my game, but it stops after a few track changes. So if I want to enjoy the benefits of FF7Music, I have to reboot to Windows proper. YMMV, though; if you want to try using it under Wine, maybe you'll have better luck than I did.)

(I should add, though, that in my experience every single other mod I list here works great under Wine.)

Haven't Decided What I Think of These Yet

Team Avalanche's GUI Overhaul -- I linked this same thread up above to praise the Graphical Overhaul, but the GUI update is a separate mod. And as the header implies, I'm not sure if I like it or not. It's added a font that looks more like the one in the PS1 version of the game, but I'm not sure it looks as good as the default Windows font; there are some spacing issues I don't care for. And it actually supercedes some of the additions in the Graphical Overhaul -- for example, the GO includes a rather nice set of color item icons by a guy named romeo14, but the custom GUI will ignore them in favor of its own grayscale versions. And while it works fine on one of the two computers I installed it on, it somehow managed to hose my installation on the other, leaving it so that the game crashes as soon as I load a menu -- and it must have overwritten a setting somewhere, because it happens even if I disable the mod.

Project Blackfan -- Okay, so we've covered overworld graphics. This is a huge attempt to replace all the field graphics. Modder yarLson is extracting every single background image and running it through a Photoshop filter. The result -- well, the biggest problem is that they're all PNGs because that's the only format Aali's driver supports; highest-quality JPEGs would have looked just as good and taken up a fraction of the space. As for how they look, that's a matter of personal perspective; all graphics filters inevitably come down to whether you prefer your upscaled lo-res images to be pixellated or blurry. These are blurry. For my money, they work absolutely wonderfully on natural environments that look like photographs (like the rocky areas in the North Crater) but aren't as good on the technological sets (like the Highwind). It's worth checking out to see what you think; since the files sit in the mods\[modpath]\field directory, they're trivial to remove if you don't like them.

Millenia's custom weapons for Cloud -- from what I've seen these look great; however, the new swords appear to have finally shattered my Cloud's fragile psyche and convinced him to join Cobra.

Image: Cloud's messed-up jaw

Keep an Eye on These

Retranslation -- this could go either way. It's sure to be more competent than the game's official translation, but it's too early to tell whether it will be any fun. Fan translations of Final Fantasy 4 and 5 back in the 1990's were fun and vastly superior to Square's initial attempts at English scripts for those games, but the fan translation of 6 met a more lukewarm reception; I'm part of the group that thinks it sucks all the charm out of Woolsey's (admittedly compromised) version. Now, this 7 fan translation could end up like 4 and 5, or it could end up like 6 -- and given that the focus seems to be on debating whether the Turks should be named Reno and Elena or Leno and Yrena, I'm sadly inclined to fear the latter. But hey, at least they know how to spell mithril.

Menu overhaul -- this is actually included in the Retranslation mod, so don't install both. (Actually, at the time of this writing neither one of them has a demo available to install at all, know, keep it in mind once they're updated.) At any rate, it changes the menu font and alignment, apparently to something more closely resembling Final Fantasy 9's version. It was initially designed to accommodate the longer names of items, spells, and summons in the retranslation, but I foresee it improving aesthetics and possibly even gameplay for the existing version of the game as well.

FL's Battle Scene/World Map Enhancement -- I've covered projects to improve the world map and the field maps; this one is for the battle scenes. (And also the 2D bits of the world map, like the skyline with Meteor, though I couldn't get that bit to work -- maybe it's incompatible with Team Avalanche's world map version?) It's still early days, but it's looking good.

Project Bombing Mission -- Team Avalanche's project to replace all graphics -- battle and field, background and character -- in the opening section of the game.

Q-Gears -- an attempt to rewrite the FF7 engine from scratch. It's the equivalent of Exult, the open-source engine for Ultima 7; it would use the FF7 resource files but would provide its own executable. If this project is finished, it has potentially huge ramifications; it would mean multiplatform support for FF7 and, potentially, other PS1-era Square games like 8, 9, and Xenogears. It could make all of them easier to mod, as well as open up opportunities for people to develop their own games based on the engine.

Haven't Tried

Kranmer's Trainer -- I griped earlier about FF7 PC's lack of save-anywhere functionality. Well, nobody's grafted save states onto the thing, but this trainer purports to do the next best thing: enables the "Save" and "PHS" options any time you open the menu. I say "purports" because AVG flags the binary as a Trojan and refuses to run it, so I haven't actually tried it; I believe it's a false positive but fair warning, use it at your own risk.

AnyCD -- purportedly this removes the need to change discs/mounted disc images. It's not a nodisc crack, as you'll still need at least one game disc (or image) to play, but if it works that's two disc images you don't need to store on your hard drive. Three if you include the installation CD.

Zerox's Tifa model -- I haven't tried any replacement character models because it would be distracting to have a detailed character standing in-between two PS1-vintage ones; maybe I'll replay the game when there are high-detail models for every character. But this one looks good from the screenshots!

Not Actually a Mod

Can't really think of a better place to put this. While FF7 PC has joystick support, I couldn't get it to recognize my Rumblepad 2. I rigged up keyboard emulation using Logitech's Gaming Software. I mapped the buttons to the appropriate keys to match the PS1 button config, and additionally set up the left stick for movement and the right stick for camera rotation. (I also set it up so pushing in the left stick works as a second Run button, but it doesn't work very well.) You can import my settings or, if you don't have a Logitech controller or just don't like my settings for some reason, try rolling your own using's game controls page as reference. (If you are using Logitech's Gaming Software, remember to check the inexplicably-named "FPS Style Movement" box or diagonals won't work on the D-pad. Because FPS, apparently, is the only genre where you hit two directional buttons to make a diagonal.)

Not My Cuppa

APZ Cloud -- this one's been pulled from the qhimm forums since the designer swiped the textures from somewhere else; he's working on a new version now. The existing APZ Cloud is a popular mod but I don't really like the look of it -- but YMMV. I preferred his Kingdom Hearts model, but he never released it for download; the qhimm forums have a strict policy against ripping models from other games.

Phoenix Rejuvenation Project -- an incredibly ambitious project to replace every single "chibi" field character with a more detailed, more realistically-proportioned version. I have a great deal of respect for the talent and work that's gone into the project, but I think it's a bad idea from the get-go; I'm all for more detailed models but the field models should stay chibi. In fact, I intend to devote my entire next post to the subject. Be here.

If you would rather be somewhere else, do feel free to discuss this post and general FF7age over at Brontoforumus.

Also, I finally fixed the horribly outdated link at the top of the sidebar. Just in time for my background check!

Unison: File sync from Ubuntu to Windows 7

Hey, been awhile. Have been ignoring the blog (even my traditional New Year's Eve Post) and many of my other Internet habits in favor of various projects I've been hard at work on. I just pulled off a WordPress update; you're reading this so it looks like it went smoothly.

Anyhow. One of the aforementioned projects (and the thing you came here to read, if you found this page by Googling an error message -- and if you did, you may want to skip my meandering explanation and go straight for the numbered steps at the bottom of this post): I recently decided to set up a file sync system across the computers in my house. It's useful for syncing things like savegames, RSS feeds, and the public-domain ebooks I've been grabbing from Project Gutenberg and MobileRead and comics from Digital Comic Museum across multiple devices.

I'd done some command-line RSS before, and also set up backup systems with Toucan, but figured I'd try something different on this one. I gave Ubuntu One a shot and it seemed promising until I realized it isn't open-source and I can't set up my own server. Canonical is swiftly becoming the Apple of the Linux world -- good at taking open-source software and making it pretty and usable, but not so great at giving back to the open-source community.

Ultimately I settled on Unison, which proved to be a bit of a headache -- frankly if anybody has a better solution I'd be happy to hear it, but here's how I got it to work.

First of all, the Unison GUI requires GTK. Hardly a problem on the Linux side, but under Windows, extracting the binaries from and setting the PATH variable didn't work, no matter what I did. Maybe it's a Windows 7 thing, or maybe it's a Unison thing, but either way, Unison threw up "This application has failed to start because libgtk-win32-2.0-0.dll was not found. Re-installing the application may fix this problem." every time I ran it. Sticking it directly in the GTK\bin directory worked but is an ugly solution; multiple sites suggested installing Pidgin, which comes with GTK, but produces the same problem as Unison doesn't find it in the path.

(Actually, let me back up a bit: I couldn't get Unison to work with 64-bit GTK at all. The only Unison binaries I could find were 32-bit; I opted to install a 32-bit version of GTK rather than stick Cygwin on my HTPC and compile Unison from source.)

Ultimately, I found a binary Windows installer for GTK (conveniently the first Google match for gtk windows binary installer); whatever my PATH problem was, this installer fixed it. The Unison GUI was up and running, from its own folder.

Next problem, though: SSH. Unison did not play nice with PuTTy.

Googling the problem, I found a page called Unison-ssh, which includes a wrapper named ssh.exe for download. If you've read this far you've probably already installed PuTTy, but in case you haven't, you'll only need it if you want to use public key authentication -- this ssh.exe will automatically install a copy of PuTTy's command-line SSH utility, plink.exe, if it can't find it. (Well, hypothetically. It tries to stick it in WINDIR and if you're not running it with admin privileges it'll fail.)

Now, I should add that this ssh.exe doesn't work properly under Windows 7; it'll prompt you for a username but only let you type one character and then automatically Enter it. Same problem with the password prompt. The comments thread in the page is filled with people who have the same problem. Maybe a clean compile would fix it, I don't know; again, I didn't want to go to the trouble of setting up compilers on my HTPC.

There's a solution a ways down the comments thread. Unison stores its data in the .unison directory, even under Windows. (That'd be \Users\name\.unison under Win7.) They're simple text files with the .prf extension. And you can add an "sshargs" line to give command-line arguments. If you're comfortable sticking your password in plain text, you can add the line "sshargs = -pw [pass]" and you're done. But if you're not, you can set it up with RSA keys. A later comment links a post on Palin's Technical Blog that runs down how to generate a keypair with puttygen -- the problem is, I couldn't get my Linux server to accept it; I kept getting a "Server refused our key" error.

I found the solution on Andre Molnar's blog: you need to generate the keypair on the Linux server, using ssh-keygen, add the public key to your authorized_keys file, then move the private key over to the Windows machine and use puttygen to import it and then save as a PuTTy .ppk file. From there, add "sshargs = -i [path to private key]" to the appropriate .prf file.

Almost done, but the Unison GUI still has path issues, even if you stick ssh.exe in the same directory as PuTTy and add that to your PATH. I got around it by sticking a shortcut on the desktop with the PuTTy directory as the working directory.

In summary:

  1. Install openssh-server on your Linux server and PuTTy on your Windows client.
  2. Install Unison and its dependencies on your Linux server. (It's offered in the Ubuntu repos; command-line is unison, GUI is unison-gtk.)
  3. Install Unison on the Windows client.
  4. If you want to use Unison's GUI, install GTK on Windows.
  5. Download the ssh.exe wrapper for PuTTy. Stick ssh.exe in the same directory as PuTTy and put that directory in your PATH.
  6. Generate an RSA keypair on your Linux server using ssh-keygen. By default it will put the keys in ~/.ssh/id_rsa and
  7. Copy the contents of the public key ( to ~/.ssh/authorized_keys. Remember to set perms on ~/.ssh to 700 and authorized_keys to 600.
  8. Move the private key (id_rsa) to the Windows machine. That's move, not copy; delete it from the Linux side as you don't want to store the same private key in more than one place.
  9. Run puttygen.exe. Import your existing private key, then save the result as a new .ppk file. Delete the original key file. Again, only the owner should have read perms on this file.
  10. At a minimum, your \Users\name\.unison\foo.prf file should contain the following:

    root = [Windows path]
    root = ssh://[user]@[host]//[Linux path]
    sshargs = -i [path to private key]

  11. To get the Unison GUI to run ssh.exe properly, create a shortcut and set its working directory to the PuTTy directory.
  12. You can schedule regular syncs using Windows Task Scheduler; run the command-line Unison executable, with args "-batch [name of pref file]". Don't include path or extension, just the filename ("foo" in my example above).

So there you go: a cross-platform syncing solution. Good for backups, for keeping files consistent between your desktop and your laptop, or for anything else that requires keeping the same files on multiple machines.

Playing: Just finished playing a fan translation of Act Raiser. Maybe a bit more on that soon.

Reading: Blood of the Elves. As I await The Witcher 2.

Revisiting NIMH

My mom read me Mrs. Frisby and the Rats of NIMH when I was a kid. A few times, as I recall.

I first saw Secret of NIMH on VHS when I was in fourth grade. Mostly I was put off by the divergences from the book.

Now, the movie's got a pretty devoted fanbase, and I do love me some Bluth, so I decided to give it another shot 18 years later and see what the fuss was about. I figured my older self would be more ready to appreciate the movie on its own merits.

On one level, I was right: it was much easier to appreciate the gorgeous animation, the superb voice casting, and the sheer scope and ambition of the project than when I was 10. On the other, my gripes with the movie remain surprisingly similar to what they were back then.

Some spoilers follow, as well as my dim recollections of how things went in a book I haven't revisited in twentyish years.

First, the good: the movie is fucking beautiful. Just amazingly animated. I love the character designs, from the scabby, scaly claws of Nicodemus and the owl to Dragon the cat, who resembles a nightmare version of the Cheshire Cat. Bluth was a visionary who helped drag animation from the dark ages after Disney's death, and he assembled one hell of a crew (I noticed a Bruce W Timm in the credits). And the cast -- well, Derek Jacobi is currently touring internationally in a critically-acclaimed performance of King Lear.

It's also, as best I remember it, a decent if truncated recreation of the major arc of the book: Mrs. Frisby (Brisby in the movie) needs to move her house because her sick child can't travel, she's directed to a group of superintelligent rats living under the rosebush, and they help her because her husband was a compatriot of theirs. It turns out they were subjected to scientific experiments at the National Institute of Mental Health; they've escaped and are currently in hiding, stealing electricity from a farmer's house, but they want to move shop and survive on their own resources. This has to happen a lot faster than anticipated because the scientists from NIMH track them down and seek to destroy their lair.

The movie does a pretty good job of telling that story in under 90 minutes. But it's got its share of flaws, too.

First of all, I can see why the movie had trouble finding an audience on release: because it finds trouble finding its audience in its presentation. It's too scary for young children, but the humor is too dopey for older ones.

As for the changes -- well, I think bringing Jenner in as a present antagonist instead of relegating him to flashbacks, and giving the film a clear villain, is a smart move. However, I have to go with 10-year-old Thad's assessment that all the nuance is drained out of his character from the book. Book Jenner was a tragic figure; not evil per se, just someone who had a fundamental disagreement with Nicodemus's plan. Here he's a conniving, mustache-twirling, murderous cliché. And an irrational one at that -- when Mrs. Brisby warns the rats that the NIMH scientists are coming to destroy their lair, Jenner calls her a liar and attacks her. How does that make sense? He may be a power-mad murderer, but he has no reason to doubt her, and it's hardly in his best interest just to assume she's lying and go back home without investigating whether or not anyone actually is coming to kill him and undo the life's work he's fought so hard to preserve. All in all, the movie trades a complex character for a lame caricature.

And about that "NIMH is coming, you have to escape" bit? No payoff! We never see the rats scrambling to move; we just find out they got out of there, seemingly with no pain or trouble in the process. The climax of the book is completely gone, with the fight with Jenner taking its place.

And the fight with Jenner -- well, I'm not as bothered by Nicodemus's death in the movie as 10-year-old Thad was; it's a tragic, affecting scene, and killing off the wise old mentor character is a classic storytelling component that is probably more satisfying to a general audience than the book's ending, where Nicodemus survives but Justin apparently, but not certainly, dies.

But then there's a swordfight.

Don't get me wrong, swordfights are awesome. And this particular swordfight is awesome. But it doesn't really fit. Those miniature swords look awfully well-made; they're not what you'd expect a group of rats living under a rosebush to make, no matter how highly developed they were. And what do they have them for? Justin's a guard, but we never actually see him turn a sword on anyone outside of this scene. The rats presumably don't want to swordfight the cat because it would risk revealing their existence to the farmer -- so why do they have them in the first place?

And the swordfight leads to the movie's biggest weakness: the fucking amulet.

See, in the movie, Nicodemus has two magic artifacts: a screenie thing that lets him watch the outside world and show flashbacks, and a magic amulet. I'll come back to the amulet in a minute, but let me start by saying the screen contributes absolutely nothing to the story. We see Nicodemus looking through it at the beginning and narrating to the audience that Mrs. Brisby is going to ask him for help, and then later he has her look through it so she can see the origin story.

You don't need a damn magic screen for either of these things.

Nicodemus is sharp enough to know Mrs. Brisby is going to come knocking on his door following her husband's death without a damn magic screen. And Mrs. Brisby doesn't need to see the origin story flashback; only the audience does. The screen as a framing device is used as an excuse for some of the best animation in the film, but again, you don't need a magic screen to set up the use of special effects to frame a flashback; that's a movie trope that the audience already understands.

But the real irony of using the magic screen to show the origin story is that it effectively demonstrates why the magic screen doesn't fit the story. We're looking at a story about rats who become superintelligent as a result of medical experiments. It is fundamentally a science fiction story. The magic artifacts don't match the SF premise, and are never fucking explained; Nicodemus just has them, because wise old people in movies have magical artifacts.

Which brings us to the amulet. The movie doesn't bother explaining where it came from, just that Nicodemus has it for some reason, and that Jenner apparently knows what it is but doesn't know Nicodemus has it. Which really doesn't make a whole lot of sense, because you have to figure that if Jenner knew about a magic artifact but didn't know who had it, Nicodemus would be a really, really obvious guess.

So okay. The rats set up an elaborate pulley system to move Mrs. Brisby's house; Jenner sabotages it and causes the whole thing to collapse and kill Nicodemus. Jenner gets in a swordfight with Justin; Jenner's lackey, who's been reluctant about this whole "let's kill Nicodemus" plan for some time, saves Justin and then he and Jenner both die. Then, when all hope seems lost, Mrs. Brisby moves her house using her magic amulet.

So okay. My biggest problem with the amulet? It's not that it doesn't make sense in the context of the story, it's not that its origin and purpose are never explained, it's not that it's a MacGuffin and a deus ex machina. My biggest problem with the amulet is that fucking amulet is an asshole. Seriously. The fucking thing could have moved Mrs. Brisby's house any time, but it waited until three people were dead. And two of them seemed like pretty nice guys!

Glee takes all the kink out of Rocky Horror

My girlfriend's a big Glee fan. I watch it with her now and again -- it's a little poppy for my tastes, and has gotten too big too fast, but it's not bad; there's some good singin' and dancin' and I've loved me some Jane Lynch since Best in Show.

So last night I did what any self-respecting owner of a Denton High Class of 1963 jacket (if that's not an oxymoron) would do: I watched the Rocky Horror episode. And...I am deeply ambivalent about it.

The singing, dancing, choreography, and costumes were generally great...but to say there were compromises for network TV is an understatement. Yes, I understand that twelve-year-olds watch this show, but not to put too fine a point on it, they just did Rocky Horror with no cross-dressing. Seriously. That happened.

I mean, I'm all for letting a woman play Frank-N-Furter; I've seen some great female Franks in my time (and the best version of Dammit Janet I've ever seen was performed by a female Brad). But Rocky Horror without a single man in fishnets? Basically a contradiction in terms, and rather odd coming from a show that hasn't exactly shied away from drag before.

And then there are the bowdlerized lyrics. Some of them are incoherent -- what the fuck is "heavy sweating"? -- while others change some of the best-known lines in the show. "I'm a sweet transvestite from sensational Transylvania"? What, you can say "transvestite" but not "transexual"? Especially odd given that they used the derogatory version, "tranny", in an earlier scene. (Giving them the benefit of the doubt: as any Rocky cast member can tell you, "Tranny" is also short for "Transylvanian".)

On the other hand, the bowdlerizations made sense in the context of the show's plot, and were fairly clever from a metafictional standpoint. After all, the whole episode revolves around the simple fact that no public high school, anywhere, would ever actually put on Rocky Horror; the show being too kinky for public school works as a metaphor for it being too kinky for this timeslot, and also gives an in-plot explanation for why the lyrics are changed. it really too kinky for the timeslot? I've seen Rocky on broadcast TV, in prime time, nearly uncut. Hell, The Simpsons put Dr. Hibbert in Frank-N-Furter garb in 1995, and The Drew Carey Show did the same with Diedrich Bader two years later. Maybe Glee has a younger audience than those shows, but it doesn't seem like it's that much younger. And hell, didn't the slutty cheerleaders just make a reference to scissoring each other a couple of weeks ago?

And it's frankly a little mind-boggling that Rocky Horror would even be controversial after 35 years. Somewhere, I'm sure Richard O'Brien is counting his money and having a good chuckle at the fact that it still freaks out TV producers after all this time.

All in all...well, it was fun, the songs were nicely done, and if this introduces some 12-year-olds to Rocky for the first time, good on it. But on the other, the spirit of the work is clearly missing, and, most problematically, the core "It's okay to be different" message becomes "It's okay to be different (as long as you don't do anything more scandalous than walking around in boxers)." (Boxers. They didn't even put Brad in briefs, dammit.) Glee's been pretty gutsy in its positive portrayals of the LGB community up to this point, so it's just weird that it would suddenly get squeamish when the "T" rolled around.

If you'll forgive me an annoying, smug movie review-style closer: the message here seems to be "Don't be it, dream it."

An Overrated Classic

Now, I love me some Grant Morrison. He wrote the quintessential Superman story, he made me revise my "I hate the fucking X-Men" policy, and just look at what he's done with Batman.

But in the mid-1990's, I was more of a Marvel guy, so I never read his run on JLA.

Now, I've been told for years that it's a classic run, and so I finally picked up the first trade the other day. And I have to say...what the fuck is this shit?

Image: Constipated Green Lantern

Yeah, it would be a lot easier to appreciate the spectacle of the seven greatest and most iconic DC superheroes if they didn't look like this:

Image: Mullet Superman, Pointy Batman, Bimbo Wonder Woman, Popeye Flash, Surprised Martian Manhunter, Enraged Green Lantern, Angry Aquaman

Hell, let's take a look at that entire Popeye Flash panel; it's a great "goofy faces" picture in and of itself:

Image: Giant Spitcurl Superman, Grimacing Green Lantern, Martian Manhunter picking up his skirts, Very Surprised Wonder Woman, Popeye Flash

And of course the 1990's art aesthetic didn't just apply to the pencils -- let's see some Photoshop Blur!

Image: Photoshop Blur Abuse!

WHUTT! indeed. And the Photoshop problems don't stop there. It's not really easy to tell onscreen, but I can assure you that on the printed page, there are badly-antialiased fonts and jaggy pixels on backgrounds.

Now, I'm picking on the art a lot here, because it is a constant barrage of pure eye-searing awfulness, but what about the story? Can a brilliantly-written Grant Morrison story redeem truly reprehensible art?

Well, as we all know from New X-Men, the answer is "sometimes". Unfortunately, that doesn't happen here. In fact, I'm not entirely convinced this story was written by Morrison, or even a human being; it reads like it was written by the Justice League Cliché-o-Matic 5000.

New superhero team shows up and promises to save the world?
Image: The Hyperclan pledges to save the world.
Check. They're actually bad guys?
Image: The Hyperclan pledges to bring the world to its knees.
Check. They lose because they underestimate Batman?
Image: Protex dismisses Batman as too fragile to be a threat.
Check. Martian Manhunter is set up as a traitor because he's an alien who doesn't fit in...
Image: Protex recruits J'onn.  Sure he does.
...but it turns out he was a double-agent the whole time and he's still on the JLA's side?
Image: J'onn fakes out the bad guys.
Check and check. (An aside: that's the one artistic touch I really like in the book, is the Martians' shape-shifting depicted as clay crumbling off and reshaping. So kudos for that.)

Overcompensating for the fact that everyone makes fun of Aquaman by constantly showing that no really guys, Aquaman is a total badass!?
Check. Kryptonite?
Image: Protex has Kryptonite.
Ha, good one, Grant. Almost had me there. But I'm still pretty sure I had a Bingo two clichés ago. ...okay, one more.

Facile explanation for why the JLA doesn't just fix the world like the bad guys said they should?
Image: If you fall they will catch you, they'll be waiting -- time after time

Check. Also, what the hell are they all looking at?

Soooo yeah, a JLA story that would have sent me to the hospital if I'd made it into a drinking game, complete with Liefeld-lite 1990's art atrocities.

My question is, does it get better after that, or has everybody been having fun at my expense and this "classic" run is actually that terrible all the way through? Should I bother picking up any of the rest of it, or just skip to Earth 2? Please advise, Internet.