Tag: UI Design

Ze Germans

Not sure if I'll stick with OpenSUSE for the long haul or not.

I quite like YAST but it doesn't have the level of package support that any given apt-based distro does.

And it's slow. I heard OpenSUSE was faster than other KDE-based desktops, but that hasn't been my experience, even switching from HDD to SSD. Firefox routinely pegs the CPU. So does Xorg (which I think is down to my keeping LibreOffice open most of the time). RSSOwl -- which does not have an OpenSUSE package and was a straight-up bitch to set up -- is frequently slow and unresponsive (good ol' Java).

So why RSSOwl, anyway? Well, I like to keep my RSS feeds synced across my desktop, my laptop, my phone -- wherever. At the moment I'm using Google Reader for that.

I used to use Akregator, but it doesn't sync with Google Reader.

I tried Liferea, but...well, it's coded by a guy like me. A power-user who wanted specific network functionality and isn't very good at UI design. It's missing such basic functionality as being able to rename a feed (a necessity when it chokes on as simple a thing as an apostrophe -- my feed list contains "Kurt Busiek's Formspring answers" followed by "Neil Gaiman's Journal"), and its syncing with Google Reader is spotty as well.

Also its name resembles "diarrhea".

So I tried RSSOwl.

Under Ubuntu, it was simple enough to set up RSSOwl -- had to add an external repo, but that was it.

There's no repo for OpenSUSE. There's a binary download, but here's the rub: it doesn't work out of the box. It requires xulrunner 1.x -- 2.x does not work. And OpenSUSE 12.2 doesn't have a package for xulrunner 1.x.

It took me ages to find, but I found a good RPM package of xulrunner 1.9. It's for Scientific Linux, but it installed fine under OpenSUSE, and worked once I symlinked libhunspell-1.3.so.0 to libhunspell-1.2.so.0 . It throws the occasional warning when I run updates, but I've been able to navigate those just fine.

And that's another thing about OpenSUSE: YAST's options, when it runs across a version conflict on a dependency, are pretty opaque and incomprehensible (and it frequently lists the same option multiple times), but at least it gives you options. Ubuntu's package management, in my experience, just throws an error and quits when it runs across that kind of conflict. So score one for OpenSUSE there. Sort of.

Still and all, for all I like about its configuration center/package management system, I'm having a hard time seeing OpenSUSE as Worth It. Maybe when I've got some time to do yet another damn reinstall, I'll give Mint a shot, or something.


Playing: Got in some good Arkham City and Mass Effect 2 time today -- after my job interview. Working my way down that list...

Routine

If there's one thing unemployment does, it's fuck with your routine.

When I was working it was pretty well set -- get up at 6 AM, shower, pour coffee and water, grab a frozen lunch and a breakfast bar, go to work for eight hours, come home, work out.

In theory, my current schedule should be something like get up at 8 AM, pour coffee, look for work, eat breakfast, shower, look for work some more, work out. But as you might expect, the order of these things tends to vary a bit.

Slept until 10 this morning, then looked for work until about noon. Then, as I was cooking breakfast, I got a call from my agency; they told me I didn't get the last job but there's a new one open -- a new one that requires a whole lot of paperwork.

So then I spent maybe 3 hours putting together my college transcript and letters of recommendation and filling out a buggy-ass PDF form that doesn't show text in half the fields after it's entered.

Then I worked out.

And only then -- around 4 PM -- did I finally get to shower.

I don't want to make a habit of that. Thing is, I'm not likely to make a habit of much of anything -- every day is different, and it's impossible to maintain a consistent schedule the way I did when I had a set place to be for 8 hours a day, 5 days a week.

Tomorrow? Who knows.

Why KDE?

I just switched from Kubuntu to OpenSUSE. I plan on writing a bit about my experience, but it occurs to me -- people may wonder why I went with OpenSUSE.

Well, the answer is because I've seen various reviews saying OpenSUSE is the best KDE-based distro -- so the question then becomes Why KDE?

I've preferred KDE over GNOME since about the KDE 2.x/GNOME 1.x era. And I think the bottom line is customizability.

I never much liked the look-and-feel of GNOME, not even in 2.x. The Apple-style system bar across the top of the screen without the Apple-style integrated menubar -- that's just wasted space.

But it could be worse. It could be GNOME 3.

Image: Wasted Space in GNOME 3

I liked KDE3 better than 4, but 4 got to the point of being passable. Even if it's still missing basic functionality like being able to right-click on a launcher to change its shortcut settings. In fact the whole "Show a Launcher When Not Running" feature (an overly-verbose version of MacOS's "Keep in Dock" and Windows 7's "Pin to Taskbar") is pretty damn broken -- I can't get it to work at all with LibreOffice. (Well, I mean, I can get it to show a launcher. Just not one that works.)

So okay. It's pretty far from ideal. But XFCE and LXDE aren't exactly rolling in GUI-based configuration options, and the simpler WM's are worse still. So KDE it is, for now.

Setting Up MikG on an Evo 4G

As recently noted, I finally joined the twenty-first century and got me a smartphone. It's an HTC Evo 4G, purchased from friend and Brontoforumgoer TA, and I'm rather enjoying it. But it was a bit of a pain to set up, and, as I am wont to do when I find myself banging my head against the wall over a technical problem, I'm inclined to write up a little howto. (My #2 most popular post is the one about filesyncing with Unison. And because I know you'll ask, the #1 post is the one about FF7 mods.)

The first hurdle was that the phone was running Cyanogenmod. (So, first of all, it was already rooted. This is not a rooting guide; my phone was already rooted when I got it.) Now, from all appearances Cyanogenmod is great -- but what TA and I didn't know is that you can't activate your phone with Cyanogenmod on it.

The guy at the Sprint store suggested I unroot the phone and restore it to factory default. As I found out from a helpful thread on XDA Developers, you do not have to unroot your phone to activate it. You do have to flash it with a Sense-based ROM. (Sense, BTW, is HTC's UI.)

I found several recommendations for Sense ROMs, many outdated (and many of those unavailable for download since MegaUpload's been taken down). One that is recent and still available, and which I saw recommendations for all over the place: MikG.

Now, guides to flashing your Android ROM are legion (here's one from Android Authority), and recovery software varies, so the exact menu options may be different from one to the next. But here are the basics:

Download the MikG ROM.

Copy it to your phone's SD card.
I actually found that I couldn't mount my phone as an external drive on any of my computers when it was booted to Cyanogenmod for some reason; fortunately I was able to mount it when I booted to recovery mode -- see next step. Copying the zipfile straight to the sdcard root is probably the easiest way to go -- at any rate, don't unzip it.

Boot to Recovery Mode.
If your phone is already rooted and already has a custom ROM, like mine did, then you've most likely already got a recovery boot enabled. Shut your phone down, then power it back on, holding the Power and Vol- buttons. From here the touchscreen won't work; you'll only have access to the Power button and the Volume rocker. The rocker moves the cursor up and down, and the power button operates like the Enter key.

Back up your shit.
There should be an option to back up your system. Do this, because you're about to wipe everything out and you're going to want to be able to restore if anything goes wrong.

Wipe userdata, cache, and dalvik cache.
Seriously, this is a necessary step; do not skip it or it will fuck everything else up. Just don't do anything stupid like wipe your SD card in the bargain; you need that.

Flash the ROM from zip. That'd be the zipfile you copied to the card earlier.

Troubleshooting: Kubuntu lies. I just couldn't get the thing to flash; I kept getting errors. I found that the zip's checksum on the SD card didn't match the one on my computer, I copied and tried over and over again and even reformatted the card -- long story short, don't trust Kubuntu when it says the file has finished copying or when it says it's safe to remove the device. I don't think it's a KDE problem per se since I had the same problem using Nautilus, but at any rate -- start the filecopy and then go do something else for a little bit; give it more than ample time to copy. Just in case. I did the same thing with the unmount -- after I'd let enough time pass that I was sure the file had copied, I clicked Unmount and then waited awhile just to make sure that had happened cleanly. Patient waiting and the file finally copied correctly; MikG installed and was running.

But I still had to actually activate the thing.

Rather than take another trip to the local Sprint store (which would likely have been easier and taken less time, in hindsight), I did it through the Sprint website.

The first bit's easy enough: assuming you've already got a Sprint phone, you just deactivate that and tell them to move your number over to the new phone. You'll need to enter a serial (which you have to remove the battery from your Evo to get at), and they'll send you an E-Mail.

Follow the instructions in the E-Mail, not the ones on the website. They are not the same and the ones on the website are incomplete.

The E-Mail looks something like this (I've redacted my personal information):

You may need to enter the following information in your new phone to complete the activation process:
6-digit programming code: [...]
MDN (Phone number): [...]
MSID (IMSI): [...]

If you are programming a used phone, look in the manual programming instructions for your steps. If you don't find the instructions to program a used phone, follow the steps below to clear or reset your phone to its factory settings. Important note: This will remove all personal information, including texts, pictures, contacts, applications, etc.

To program a used phone:

  1. On the dial pad, press ##786 followed by an additional # symbol
  2. Follow any on-screen prompts to Reset your phone
  3. Enter the 6-digit code
  4. Select Reset
  5. Confirm any on-screen Reset to default messages
  6. After the reset, press ## followed by the 6-digit code, followed by an additional # symbol (Example: ##123456#) Note: The last # entered will not show on the display

It's easy enough when you do it like that; my problem was that I followed the guide on the website. Which didn't quite work right.

Anyhow, hopefully I've saved somebody somewhere some trouble -- maybe it'll be my new #2 most popular post.


So far I've stuck with MikG, for a couple reasons. One is that Sprint's data plan is ridiculously overpriced and I'm tempted to jump ship to Virgin Mobile or some other Sprint reseller -- and it'd be nice to still have a Sense ROM on there so I can activate.

But another is that I'm really kinda digging the design of Sense. It's fast, it's straightforward, most of the built-in widgets are actually useful and the ones that aren't are easy to remove, and if you had asked me if someone would be able to convincingly pull off a smooth, intuitive seven-workspace layout on a damn phone screen I would have told you you were out of your mind -- but damned if they didn't do exactly that.

I'm a tinkerer by nature, so I may not stick with it. Maybe I'll switch back to Cyanogenmod. Maybe I'll fuck around and install Ice Cream Sandwich or Jelly Bean -- I'm not really that concerned about watching Netflix on my phone or using the front-facing camera, and Sprint doesn't even have 4G in my state.

Food for thought, anyhow.

TV Computers are Stupid

Last night I watched the first episode of Alphas. It's a decent enough setup; there's potential there despite its heavy reliance on an Idiot Plot.

But there was this one scene -- okay, they're watching a video. And then it cuts out. And the autistic computer expert kid goes and fiddles with some stuff behind the TV and fixes it, and then explains "It was the VGA display port."

Okay, first of all: nobody computer-savvy, least of all somebody with autism, would use the phrase "VGA display port". Because while VGA is technically a port for a display, DisplayPort is the name of a completely different interface.

Second: How the fuck could it be a problem with the VGA port if the video was working fine and then cut out? Did somebody step on the cable and accidentally yank it out of the TV? If so, how the hell come we don't see that happen and nobody makes any reference to it?

Third: VGA is only video. If the VGA cable got unhooked, why did it cut off the audio, too?

(The one thing that is perfectly plausible: a room full of people who are so dumb that they need a computer genius to check whether a cable is unplugged. That, sadly, is perfectly true to life.)

It's a little thing, and not really important to the story. But it's just so damn weird. Why is it in there? And why is it nonsense? Why couldn't it have been something that actually made sense? "You changed the channel instead of turning up the volume; you have to switch it back to VGA In." Something like that. Easy.

Here's the thing: fact checker is an actual profession. There are dudes whose whole job is to make sure that the physics on Big Bang Theory or the biology on Bones is more-or-less plausible.

And yet Bones clearly straight-up does not give a fuck whether its computers behave plausibly.

Last year had an episode where the new Moriarty character booby-trapped a skeleton so that when Angela scanned it into her computer it would load a virus onto it and make it catch on fire. (In last week's episode, Angela could not even pronounce "parameterized" correctly.)

Now, I get that, for a variety of reasons, TV shows and movies may not want to actually show Mac or Windows interfaces, and instead do some kind of MofOS mockup. That's fine and understandable. My complaint isn't "That's a fictional computer interface", it's "That computer interface does not seem to operate on any kind of rules or logic." Indeed, it's entirely possible to design a fictional computer interface that looks and behaves more or less like a real computer should; my recollection of last season of Dexter is that they did a pretty solid job of this, with only a couple weird moments.

Another thing I don't get is how they still get away with this nonsense in an age where everyone has a computer.

It was one thing in the '80's and '90's when you could pretty much bullshit computers doing absolutely anything and most of your audience would be none the wiser. But in this day and age even your most out-of-touch viewer most likely owns a computer and has used Facebook.

And knows that when you look for a person, your computer does not say "SEARCHING ..." in a giant stupid angular font that takes up half the screen, then start cycling through black-and-white photos at a rate of several per second while making stupid deet-deet-deet noises until it finally finds the person you're looking for, then make more stupid beeps in time to the giant red flashing "MATCH FOUND" text across the screen, then pull up a page with white all-caps text in the Spider-Man font against a black background.

People own computers. They know what computers do and how they behave, at least on a basic, cursory level. So how come TV shows still depict computers as these flashy magic boxes?

I'd kinda like to write an episode of some TV show where a guy comes into one of these offices and then starts turning around with a quizzical look on his face every time a computer makes a stupid noise. And eventually starts asking people what the hell is wrong with their computers. "Why does it keep making that noise? Ugh, how can you stand being in a room with that all day? Jesus Christ, how can you read that all-caps, weirdly-spaced font?"

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 news.com.com 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

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.

Interface

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!

Music

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 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, but...you 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 finalfantasy7pc.com'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 worstforumsever.com 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 gtk.org 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 id_rsa.pub.
  7. Copy the contents of the public key (id_rsa.pub) 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.