Author: thad

Web Design Got Complicated

It's probably not surprising that rebuilding my website has gotten me thinking about web development.

The first six years I ran this site, I did it all by hand -- my own HTML, my own CSS, no scripting languages. I thought that CMS software was for pussies.

But ultimately, plain old HTML just doesn't scale. I conceded that when I started using b2evolution for my blog back in '06, and it's truer now than it was then.

You can poke around some of the old sections of the site a bit, the ones that haven't been updated significantly since the turn of the century -- KateStory's a good one, or the Features page (though I'd like to get at least the Features page up to date sooner than later, and maybe the KateStory one too, so maybe there'll be people reading this post well after those pages shed their 1990's style) -- and they get the job done. Breadcrumb navigation at the bottom of every section, leading you back to either the parent page or the main index.

But Jesus, you can only manually copy and paste "Back to Features / Back to Index" so many times.

And maintaining a years-long blog archive without a CMS to automate it for you? It gets old.

So, you want some automation? You're going to need a scripting language. That usually means PHP for server-side, and JavaScript for client-side.

I got to thinking the other day -- man, it's weird that you need extra toolsets to perform such common tasks as, say, reusing a navigation bar. It's weird that there's not some way just to write up a navigation bar and then write code, in HTML, no scripting required, to embed that common HTML block on the current page.

I thought this was a pretty smart observation.

For about three seconds.

At which point I realized I had just described fucking frames.

Course, the biggest problem with frames is that they weren't exactly what I'm describing. I'm talking about just an HTML snippet in some secondary file that you call from a primary file -- like an include in PHP.

That's not what frames were. Frames were complete fucking HTML pages -- <html>, <head>, <body> (or, more likely, <HTML>, <HEAD>, <BODY>, because in the old days we wrote HTML tags in all-caps) -- which is, most times, downright stupid and wasteful, and was much moreso in the days of 14.4 dialup. Even worse than the load time was the logistics -- if you used frames to build a website with a header, a footer, and a sidebar, you'd have a total of five separate web pages -- a content area, the three other sections, and some kind of main page that all of them were embedded into. This was a fucking nightmare for linking, both for the developer (who had to remember to set the target attribute on every single link, lest the page load in the navigation bar instead of the content area) and the end user (because the URL in the location bar would be the container page that called all the other pages, not the content page the user was currently looking at).

In a way, it's kinda weird that nobody's gone back to that well and tried to do it again, but do it right this time. Update the HTML spec to allow an HTML file to call a reusable snippet of HTML from another file, one that isn't a complete page.

Given all the concessions HTML5 has made to the modern Web, it's surprising that hasn't happened, even given how slowly it takes for a spec to be approved. We've got a <nav> tag, which is nice and all, but who the hell uses a <nav> tag without calling some kind of scripting language that automates code reuse? There really aren't that damn many reasons to use the <nav> tag for code that isn't going to be reused on multiple pages throughout a site.

And I dunno, I'm sure somebody's brought this up, maybe it's on the itinerary as a consideration for HTML6.

Which is another thing, really: the people making the decisions on the specs do not want the same things I want.

I liked XHTML. (In fact, lest this whole thing come off as a curmudgeonly damn-kids-get-off-my-lawn diatribe against new technologies and standards, I'd like to note that I was using XHTML Strict back when you pretty much had to be using a beta version of Phoenix -- before it was Firebird, before it was Firefox -- for it to render correctly.) I thought it was the future. I wish XHTML2 had taken off. HTML5 feels ugly and inconsistent by comparison, and, as legitimately goddamn useful as it is to be able to put something like data-reveal aria-hidden="true" in the middle of a tag's attributes, it always feels dirty somehow.

But I digress.

Point is, in 2006, I switched the blog from just plain old HTML and CSS, and added two more elements: a MySQL database to actually store all the shit, and a PHP CMS (originally b2evolution, later switched to WordPress).

And then came smartphones.

We live in a world now where every website has to be designed for multiple layouts at multiple resolutions. You wanna try doing that without using an existing library as a base? Try it for a few days. I guarantee you will no longer want that.

I think my resistance to picking up new libraries is that every time you do it, you cede a measure of control for the sake of convenience. I don't like ceding control. I like my website to do what the fuck I tell it to, not what some piece of software thinks I want it to.

I've spent the last decade arguing with blogging software to get it to quit doing stupid shit like turn my straight quotes into "smart" quotes and my double-hyphens into dashes. Just the other day, I built a page in WordPress and discovered that it replaced all my HTML comments with fucking empty paragraphs. Why would I want that? Why would anyone want that?! And that's after I put all the remove_filter code in my functions.php.

And that's the thing: WordPress isn't built for guys like me. Guys like me use it, extensively (it is the world's most popular CMS), because it automates a bunch of shit that we'd rather not have to deal with ourselves and because when we're done we can hand it off to end users so they can update their own site.

But I still write these posts in HTML. I want to define my own paragraph breaks, my own code tags, the difference between an <em> and a <cite> even though they look the same to an end user.

(And okay, I still use <em> and <strong> over <i> and <b>; there's really no explaining that except as a ridiculous affectation. I recently learned Markdown and used it to write a short story -- I'll come back to that at a later date -- and I could see switching to that. HTML really is too damn verbose.)

...and that was another lengthy digression.

So. Mobile design.

Bootstrap is the most commonly used toolkit for responsive websites. I've used it, it works well, but it's not my favorite idiom, and I've decided I prefer Zurb Foundation. So that's what I used to build the new site layout.

Except, of course, then you've got to get two dueling design kits to play nice to each other. Square the circle between WordPress and Foundation.

I started to build the new theme from scratch, and I'm glad I was only a few hours into that project when I discovered JointsWP, because that would have been one hell of a project.

JointsWP is poorly documented but has proven pretty easy to pick up anyway.

So. I've gone from HTML and CSS to HTML, CSS, and WordPress (HTML/CSS/PHP/MySQL), to HTML, CSS, WordPress, Foundation (HTML/SCSS/JavaScript, importing libraries including jQuery), and JointsWP (ditto plus PHP). And on top of that I'm using Git for version tracking, Gulp to process the SCSS, and Bower to download all the other scripts and toolkits I need and keep them updated.

So, going with Foundation (or Bootstrap, or whatever) as a standard toolkit, you get somebody else's codebase to start from. That comes with some elements that are a necessary evil (I hate fucking CSS resets, and think writing p { margin: 0; } is an abomination in the sight of God and Nature -- but if it means I can assume my site will look more or less correct in Mobile Safari without having to go out and buy an iPhone, then I guess I'll take it), and others that are actually pretty great -- I find SCSS to be really exciting, a huge saver of time and tedium, and it's hard to go back to vanilla CSS now that I've used it.

Course, with increasing complexity, you still hit those things that don't quite work right. One example I've found is that Foundation sets your placeholder text (the gray letters that appear in an "empty" input field) too light to be legible, and does not have a simple definition in _settings.scss to let you adjust it to darker. I've found a mixin that allows you to create such a definition pretty simply, but for some reason JointsWP doesn't like it (or maybe Gulp doesn't). So until I get around to finding a fix, the text stays light, and I'll just have to trust that you the user will be able to determine that the input field under the phrase "Search for:" and to the left of the big blue button that says "Search" is a search box.

I've also got loads of optimization still to do; part of that's going to mean figuring out what parts of Foundation's CSS and JS I'm not actually using and cutting them out of the calls, and part of it's probably going to mean minification.

Minification is one of those things I resisted for awhile but have come around on. It can be a real hassle for debugging, not being able to view a stylesheet or script in full, and it may not be practical just to save a few kilobytes (or a few dozen, rarely a few hundred) -- but on the other hand, well, it's not so different from compiling source code to binary; the end result is still that you take something human-readable and turn it into something much less human-readable.

And of course now that I'm using a preprocessor, my CSS file isn't my real source code anyway; it's already the result of taking my code, feeding it through an interpreter, and outputting something that is not my code. If you want to look at the stylesheet for this site, you want to look at the SCSS file anyway (it's on Github), not the CSS file. And if I'm already telling people "Look at the SCSS file, not the CSS file," then what's the harm in minifying the CSS file and making it harder for people to read?

For now -- prior to removing unnecessary code calls and minifying everything -- I feel like the site design's a lot more bloated than it needs to be. And even once I slim it down, there are going to be some compromises that go against my sensibilities -- for example, when you loaded this page, you loaded two separate navigation systems, the desktop version (top navigation and sidebar) and the mobile version (just a sidebar, which contains many of the same elements as the topnav and sidebar from the desktop version but is not exactly the same), even though you can only see one of them. That redundancy makes me wince a little bit, but ultimately I think it's the best and simplest way of doing it. Sometimes, good design does require some redundancy.

All that to say -- man, there have been a lot of changes to web design in the last twenty years. And while there are trends I really don't like (if I never have to build another slideshow it'll be too soon; gradients are usually dumb and pointless; and the trend of making visited links the same color as unvisited ones feels like a step backward into 1995), there are also a lot that I've eventually warmed up to, or at least accepted as something I've gotta deal with.

Anyway. Welcome to the new corporate-sellout.com.

And one more thing about the site before I go: it's probably worth noting that this site is different from the other sites I build, because it's mine. Its primary audience is me. I like having an audience, but frankly I'm always a little (pleasantly) surprised whenever anyone actually tells me they enjoyed something I put on this site.

Because this site isn't one of my professional sites. I didn't build it for a client. It's not my portfolio site, which I built to attract clients. This one? It's for me. As should be clear from this rambling, 2200-word stream-of-consciousness post about the technical ins and outs of web design, as it applies specifically to me and to this site.

Frankly I'm always surprised when anyone actually reads anything like this.

I'll Call It a Good Start

Well, that's the update done, and you should be looking at the new theme now.

It needs work (the current "Archives" list in the sidebar is 67 lines long and I need to remember how to limit it to just the last few months like in the old version), but it's a start.

I'll be puttering around behind the scenes for a little while yet. Course, the point of all this is that I'd like to start blogging regularly again; there's not much point to going to all this trouble to pretty it up if I don't start using it.

As you might expect, just the update itself gives me plenty of things to talk about -- what I like about modern Web design and what I don't.

More to come, I should think.

Hang On to Your Butts

Gearing up for a major site update -- first I'm disabling all my plugins, then I'm updating WordPress, then I'm installing a brand new theme, and then I'll be beating the theme into working shape. Things may break at any and all points of this process.

Ubuntu on an Old Mac Pro

So I spent the past few days trying to get Ubuntu Studio installed on my 2006-era Mac Pro 1,1. I can't speak for other Macs specifically, but here are some details you're going to want to know if you engage in that undertaking:

  • The Mac Pro 1,1 won't boot Linux from a USB stick.
  • It also won't boot it from a dual-layer DVD. Double-check and make sure you're not using dual-layer.
  • The LTS releases of Ubuntu (such as 14.04) have images that are specifically labeled "amd64+mac". Use those. Otherwise you might wind up stuck on an unresponsive "Select CD-ROM Boot Type" prompt.
  • You may or may not need to install rEFInd to help you boot from a Linux disc. If your disc isn't showing up when you hold the Option key at boot, give rEFInd a shot.
  • There's a useful guide at Ubuntu Community Help called Installing on a Mac Pro - Cylinder (Late 2013). As the title implies, it's not written for the older-model Mac Pros, but most of what it says is still applicable. (But it tells you not to use the Mac-specific ISO files. Don't listen to that part; you should use those on the 1,1 model.)

On Advertisements

Dear DC,

Here is a list of DC Comics I would have purchased today if they had not contained obnoxious half-page Twix ads:

  • Batman Beyond #1
  • Bat-Mite #1
  • Bizarro #1

Here is a list of DC comics I purchased today:

DC, I do not have a fancy marketing degree. However, I can offer you a marketing suggestion for free: if one team of marketers suggests making money by releasing new comics that appeal to a different audience from the core DC line (albeit, granted, still pretty much just made up of spinoffs of Batman and Superman comics), and another team of marketers suggests making money through finding a really irritating and distracting way of putting advertisements in your comics, perhaps you might consider rolling out those two ideas separately instead of simultaneously. This is what is known as "isolating the variables".

I would also suggest that, if I were one of the writers, artists, editors, or marketers who had gone to considerable effort to create and market a new and different comic book to a nontraditional audience, I would be pretty unhappy right now with the people in management who had made a decision that actively sabotaged the appeal of that comic book.

I do not wish to be negative or ungrateful here. I greatly appreciate your decision to convince me to keep the nine dollars I would have spent on those three comic books. I went nextdoor and spent that money on beer instead. I had a Four Peaks Kiltlifter and a New Belgium Slow Ride. They were very good beers, and at no point in my drinking experience did they interrupt me and try to convince me to buy Twix.

Kisses,

Thad

Job Spammers are the Worst

I'm looking for work right now.

So I've got a current resume posted publicly up on CareerBuilder.

And oh God, the spam that brings.

It's kind of amazing how many hiring agencies seem to have taken a look at the scammers who sell penis pills and decided, "Yeah, that looks like a pretty good business strategy."

I'm inundated, every day, with postings for jobs that aren't even in my state. I've gotten ten of them this week alone (and one phone call), and it's only Wednesday morning.

Most of them seem to be coming through one single distributor, or at least one single software kit -- because they follow the same format, and if you click Unsubscribe, all the Unsubscribe pages look exactly the same except for the logo.

Needless to say, they do not actually honor the unsubscribe requests. These are spammers we're talking about.

Of course, the big problem here is that unlike the spambots selling Cialis, I can't just mark these as spam and rely on Bayesian filters to sort the wheat from the chaff -- because aside from the location, these postings are indistinguishable from real job posting E-Mails, of the sort I want and need, because I am trying to find a job. Job spammers have an in that other spammers don't: they're advertising something I actually want, they're just advertising it in a place I don't want it. So I can't filter out an entire class of E-Mails, because the risk of false positives is far too high.

Which leaves me relying on filtering by domain name. Which, as anybody knows, is unreliable Stone Age Whac-a-Mole shit, because spammers use all the domain names they can get their mitts on.

Still, it's better than nothing, and I'll be putting a list of the spam domains I've filtered so far at the end of this post -- maybe it'll be of some help to some other folks out there looking for work. And maybe it'll give these agencies a little bad publicity.

But first, here's a story about the absolute worst, slimiest job spam I've gotten to date.

It's from an organization called Strategic Staffing Solutions, which started out by straight-up brazenly lying to me. Here's a portion of the E-Mail I got, with the rep's last name and E-Mail redacted -- I don't want to rain down Internet mob justice on anybody, even if they are engaging in sleazy tactics; I just want to name and shame the company that encourages this type of behavior.

From: Adam [redacted] <[redacted]@strategicstaff.com>
Subject: data scientist - MO
01/26/2015 02:17 PM

Hello Thad Boyd,

Please contact me as I have many job opportunities to discuss.

We have 24 locations within the USA.

I have called your phone number about your resume. The phone number has been disconnected.

Would you be interested in this job position? Please send me your resume.

Here are two job orders:

What followed were two job listings that have absolutely nothing to do with my education, training, or job experience.

So, straight into the circular file it went.

And then I thought, you know what? No. That line about trying to call me and my phone being disconnected was low. That's just a gross way to start any kind of relationship.

So I replied to the guy, and decided to press him on the "Your phone has been disconnected" lie.

From: Thad Boyd <[redacted]>
Subject: Re: data scientist - MO
01/27/2015 08:45 AM

Hi Adam,

I've had the same phone number for ten years, and haven't had any trouble receiving calls that I'm aware of. What number were you trying to call, and where did you get it?

He, of course, completely ignored my question, and responded with this boilerplate:

From: Adam [redacted] <[redacted]@strategicstaff.com>
Subject: Re: data scientist - MO
01/27/2015 09:55 AM

Hello Thad,

Please send me your resume.
Are you actively seeking work?

Please make use of Central Sourcing@STRATEGIC, as they can accelerate your recruiting.

I decided to press the issue one more time:

From: Thad Boyd <[redacted]>
Subject: Re: data scientist - MO
01/29/2015 09:52 AM

Hi Adam,

Yes, I'm actively seeking work.

Where did you say you got my contact details, and what phone number were you trying to call? I'd like to know if there's something wrong with my phone service. My grandfather is in the hospital right now and I need to know that people can reach me.

(And since he pretended not to notice my question about the phone, I pretended not to notice he'd asked for my resume.)

That last part is true, by the way -- Grandpa's going to be okay but he is currently in the hospital. I brought this up to make a point: lying to somebody about his phone being disconnected has consequences. If I had been gullible enough to believe his lie, I could have wound up wasting a good chunk of my day on the phone with Sprint, trying to figure out what was wrong with my phone service, and worrying all the time that I was missing important calls about a family member's health.

Lying to somebody like that -- what the hell is even the point? You think you're going to build a rapport with me by starting our relationship off by lying to me? Specifically, lying about something that could cause me a considerable amount of stress if I believed you? And how long do you think you can keep somebody believing the lie when you clearly have never even looked at his resume?

Does this actually work often enough to keep Strategic Staffing Solutions in business?

I sent that E-Mail out on the 29th. It's been four business days and I think it's a pretty safe bet that Adam's not going to be getting back to me. Not so much as a "Look, I'm sorry, they make us say that, there's no problem with your phone and I hope your grandpa gets better; is there any way I can still help you?" When faced with the potential consequences of his lie, he didn't take the thirty seconds it would have taken to come clean and apologize to me. He just chalked me up as a loss and moved on to the next sucker.

So I'm pretty comfortable in saying fuck Strategic Staffing Solutions, fuck their sleazy, dishonest recruitment tactics, and fuck the horse they rode in on. If you do business with Strategic Staffing Solutions, know that you are doing business with spammers and liars -- and that if they were so cavalier about lying to me, they're probably going to be more than happy to lie to you too.

Finally, here's a list of domains that have sent me job spam, and I'll probably add to it as time goes on. Please feel free to add them to your own spam filters. And hey, if this creates some negative word association for these domains on Google, I'd be pretty okay with that.

  • strategicstaff.com
  • enterprisesolutioninc.com
  • net2source.com
  • colcon.com
  • pyramidci.com
  • ittblazers.com
  • artechinfo.com
  • usgrpinc.com
  • diverselynx.com
  • axelon.com
  • h3-technologies.com
  • mondo.com
  • simplion.com
  • genuent.net
  • abacusservice.com
  • compnova.com
  • spectraforce.com
  • syscomtechinc.com
  • iit-inc.com
  • eteaminc.com
  • project1.com
  • globalsyst.com
  • ustsmail.com
  • ustechsolutionsinc.com
  • rconnectllc.com
  • lorventech.com
  • talentburst.com
  • softpath.net
  • waddellcareers.com
  • first-tek.com
  • quantitativesystems.com
  • advantageresourcing.com
  • gtt-it.com
  • mamsys.com
  • enterprise-logic.com
  • diversant.com
  • fortek.com
  • stemxpert.com
  • panzersolutions.com
  • opensystemstech.com
  • itstaffinc.com
  • princetoninformation.com
  • rjtcompuquest.com
  • greenlightstaff.com
  • judge.com
  • techdigitalcorp.com
  • ttiofusa.com

More from Busiek on that Final Fantasy Comic

For those of you just joining us by way of a link from Kurt Busiek or CBR, welcome. I guess I should probably figure out something interesting to say so you'll feel like sticking around for a bit. For what it's worth, I've written quite a bit about Final Fantasy over the years, and three posts I wrote about FF7 back in 2011 (the first on mods for the PC version, the second on iconic images, and the third a general look back on the game) are pretty consistently the most popular thing on the site.

In lieu of me saying anything interesting, I'm going to quote a little bit more from Kurt Busiek on the unfinished Final Fantasy comic, in the comments section of the Robot 6 article on the subject.

I will also add that if the book came out, I don’t think that Final Fantasy fans would be particularly happy with it. It was 1991, and I was a workmanlike-but-not-particularly-noted writer. Dell Barras was a workmanlike artist, and, well, the covers were gorgeous.

But I don’t think I really started to make strides creatively as a writer until VAMPIRELLA: MORNING IN AMERICA (late that year) and the industry didn’t notice ’til MARVELS in 1993.

So, while I barely remember the details, I expect it was a workmanlike story that made sense but wasn’t particularly memorable, with workmanlike art and great covers.

And heresy upon heresies, I changed things (with Squaresoft’s permission). I thought it was so odd that the manly heroic lead was named Cecil and his loyal buddy was named Cain (really? You name the loyal guy Cain?) that I suggested maybe they needed Americanized names, and Squarest agreed. I don’t remember what I changed them to, but Squarest liked them enough that they asked if I’d be interested in a staff position making the games more American-appropriate. We never talked much about it, because I wanted to freelance. But I bet fans devoted to the game wouldn’t have liked the changes, especially not from a current POV, looking back.

What can I say? I wasn’t particularly a Final Fantasy fan — I’d played their first US game a little, and the second wasn’t even done yet.

He adds, in a later comment, that the bible he'd been given didn't even mention that Kain spends half the game betraying Cecil, and talks a little bit more about the original (FF1-based) outline he wrote.

(If he had been involved in localizing the game, I'm willing to bet it would have been better than what we initially got. But he'd have still been contending with cartridge space limitations and weird Nintendo censorship.)

Mignola Final Fantasy Covers

Well now. It appears that Kurt Busiek just reblogged a Tumblr post by Alex Chung, which, in turn, links back to a post I wrote back in '012 about Busiek, Barras, and Mignola's unfinished Final Fantasy comic (based on Final Fantasy 4).

So since that old post is probably getting a little bit of new traffic, I should follow it up, now that I have a couple of Mignola's covers for the series.

This one is via Chung's post, and would have been the cover to issue #2:
Final Fantasy #2 cover

And this was sent to me just over a year ago by Dale Jackson, who owns the original art; it would have been the cover of #4:
Final Fantasy #4 cover

Alex, thanks for linking to my post and for including the #2 cover; Dale, thanks for the heads-up on the #4 cover and I'm sorry it took so long to post it.

A More Detailed Valiant Comics Chronology

Back in October, following my purchase of the Humble Valiant Bundle, I posted A Brief Valiant Comics Chronology making note of the order the comics were originally published in, on the assumption that that's the correct order to read them in.

As I said then:

the short answer is: X-O Manowar, Harbinger, Bloodshot, Archer & Armstrong, Shadowman, Quantum and Woody, Eternal Warrior, Unity, Rai, with Harbinger Wars concurrent with the third volumes of Harbinger and Bloodshot (as their title implies).

Now I can refine that recommendation.

The short version this time is that most of the series are standalone and you can read them in any order you want; the exceptions are Harbinger, Bloodshot, Harbinger Wars, Unity, and arguably Rai.

What follows is a bit more specificity on which books tie into which, plus why the chronology of Harbinger Wars is a bit of a clusterfuck and how the Humble Bundle left out a book that's a crucial lead-in to Unity.

Once again, this list focuses on the books that were included in the Humble Valiant Bundle, and doesn't include more recently-published Valiant comics.


Standalone Books

X-O Manowar vol 1-3

X-O Manowar is Valiant's first and flagship book, but it doesn't tie in with the others until later on down the line. It introduces the Vine, who get a few mentions in the other books, and it leads into Unity, but these first three volumes stand alone.

Harbinger vol 1-2

These first two volumes introduce the lead characters, including Toyo Harada, as well as the Harbinger Foundation and Project Rising Spirit, both of which crop up throughout other series.

Bloodshot vol 1

Bloodshot provides another view on Project Rising Spirit, but it doesn't really matter whether you read this first volume before or after the first couple of volumes of Harbinger.

Archer & Armstrong vol 1-3

The Archer & Armstrong books included in the bundle are completely self-contained and don't require any knowledge of the rest of the Valiant universe. Project Rising Spirit does make a brief appearance, but it's more of a namedrop than anything; it could be any shadowy organization, and doesn't really tie into its use in other Valiant comics.

Archer & Armstrong does introduce the Eternal Warrior, so it's best to read it before Unity. Also, Archer and Armstrong later team up with Quantum and Woody in The Delinquents, but that's not included in the bundle.

Shadowman vol 1-3

Shadowman doesn't cross over with any other Valiant books in the bundle except for a brief reference in Unity.

Vol 3 can almost be considered a standalone book in and of itself as it presents several done-in-one stories that don't really continue from vols 1 and 2, but since it includes the origin of Mister Darque, I think it still makes the most sense to read it last.

Shadowman also introduces Doctor Mirage, who gets a solo series later on; that series is not included in the bundle, but it does have a preview in Rai #3.

Quantum and Woody vol 1-3

The Q&W books in the bundle are standalone and don't cross over with anything else in the Valiant universe. Quantum and Woody later team up with Archer and Armstrong in The Delinquents, but that's not included in the bundle.

Eternal Warrior vol 1

Okay, so this book contradicts all the other appearances of the Eternal Warrior in all the other Valiant books so badly that it is the reason I tried to work out a chronology in the first place. It depicts Gilad as a reluctant warrior who turned his back on the Geomancers in the nineteenth century and has lived in seclusion since; this flatly contradicts both Archer & Armstrong, where he is tenaciously loyal to the Geomancers, and Unity, which shows him as part of a superhero team during WWII.

This is a fine book, but if you're worried about Valiant canon, I think the only reasonable conclusion is that this book isn't part of it.

Eternal Warrior vol 2

In fact, Eternal Warrior vol 1 is so separate from all the other Valiant books that you don't even need to read it before you read vol 2. Vol 2 is set 2000 years in the future and you don't need to read any other books about the Eternal Warrior first, including vol 1 of the same series.

This book occurs in the same future as Rai, but Eternal Warrior takes place on Earth and Rai takes place in an orbital space station, so there's not really any crossover to speak of. I'd recommend reading Eternal Warrior before Rai, but it's not that important.


Harbinger Wars

Bloodshot vol 2

This one almost falls under the standalone category, but its last page leads directly into Harbinger Wars. You'll want to read at least the first volume of Harbinger before you read Bloodshot vol 2; otherwise the last page isn't going to make a whole lot of sense.

The Crossover

Here's where things get dicey.

Harbinger Wars is one of those crossover events that takes place across its own self-titled miniseries, Harbinger, and Bloodshot. As in most crossovers of its type, that means a whole lot of rereading the same events from different perspectives -- Harbinger Wars focuses on Project Rising Spirit and HARD Corps, Harbinger switches between Toyo Harada and the Harbinger Foundation and Peter Stanchek and the Renegades, and Bloodshot follows Bloodshot and his team.

Harbinger and Harbinger Wars manage to line up pretty well with one another, but Bloodshot is paced significantly behind the other two. In both Harbinger and Harbinger Wars, Bloodshot makes it to Vegas and meets up with the Renegades in the third issue of the arc, while in Bloodshot, the third issue is a detour and he doesn't make it to Vegas until the fourth part. If you read the individual issues in the order they were published, it's jarring; they're out of sync.

So, you can either read each trade beginning-to-end, in order:

  1. Harbinger Wars
  2. Harbinger vol 3
  3. Bloodshot vol 3

or you can read the individual issues in the order they take place:

  1. Harbinger #0
  2. Harbinger Wars #1
  3. Harbinger #11
  4. Bloodshot #10
  5. Harbinger Wars #2
  6. Bloodshot #11
  7. Harbinger #12
  8. Bloodshot #12
  9. Harbinger Wars #3
  10. Harbinger #13
  11. Harbinger Wars #4
  12. Harbinger #14
  13. Bloodshot #13

Either way, you'll want to read the first two volumes each of Harbinger and Bloodshot before you read Harbinger Wars.


Unity

Not Included

The Humble Valiant Bundle doesn't include X-O Manowar vol 4, which is something of a problem as that book leads into Unity. At least, at the beginning of Unity, Aric has set up in Romania and has already crossed paths with Gilad; this doesn't happen in any of the books in the bundle and I assume it's in X-O vol 4.

Unity vol 1-2

Before you read this, you'll want to have read the first three volumes of X-O Manowar, the first three volumes of Harbinger (including the Harbinger Wars crossover), the first two volumes of Archer & Armstrong (since vol 2 introduces the Eternal Warrior, who appears in Unity), and, if you've got it, the fourth volume of X-O Manowar (which, as noted, is not included in the Humble Valiant Bundle).


And Finally...

Rai #1-#4

I would almost call Rai standalone, but it does pick up a thread from Unity vol 2, so I'd recommend reading that first. And maybe Eternal Warrior vol 2, since it takes place in the same future as Rai; there's not much overlap between them, but I think the story of Japan-as-space-station gains something if you already know what's going on down on the surface before you start.

And We're Back

Up and running on the new server, and if you're reading this, that's what you're seeing.