For better or worse, all 30 chapters of my NaNoWriMo entry have been outlined, and starting tomorrow I’ll be pounding them out. I still haven’t quite settled on a title — I have a few ideas, and one of them is just so daring and/or horrible I might actually go through with it. I’ve still got a few hours to decide, though.

The plan is to post the chapters here, one per day, all through November. I hope to go all Howard Tayler and build up a buffer right away, just in case forces conspire against me to prevent me from writing, or at least having readily available Internet access, through the month. I figure I should be able to write two or three chapters on a Saturday or Sunday, right?

I’ll eventually put up an index page with links to each chapter, but for now they’ll just be posted here like anything else I write. I’m not as cool as Renee or Peace, each of whom have set up separate blogs for their stories. But then again, it’s been said that the three great virtues of a programmer are laziness, impatience, and hubris. I’ve got at least one of those working for me right now.

In any event, over on the right you should see a NaNoWriMo word count meter. At least, you will when their server isn’t overloaded and the image actually downloads. That will report my actual total word count, which (unless buffer-fu fails me) may be greater than the number of words posted.


NaNoWriMo is all about writing a 50,000-word novel, or at least a (very) rough draft of one, entirely in the month of November. Assuming that workload is spread evenly across all 30 days, that works out to be 1,666 and 2/3 words per day, every day. Call it 1,667 words, unless you’re planning on having a character die at the end of each day’s allotment, each time with his last word being cut off 2/3 of the way through.

OK, there might be some humor value in doing that, but I’m guessing it would wear a little thin by Week 2, to say nothing of having to teach your word count tool of choice how to interpret fractional words.

Last time I did NaNoWriMo, way back in 2002, I was just making things up as I went along, with little thought to how each day’s work would fit in with the overall structure of the story. As a result, I’d throw in chapter breaks wherever the plot seemed to call for them, and besides that just wrote in 1,667 word chunks. (In practice, more like 2,000 to 2,200, since I had to make up the day lost trying to come up with a story, and after that I didn’t want to ease up on myself until the blasted thing was finished.)

This time around, I’m going to take the approach that most others seem to take, and have each day’s writing be a chapter unto itself, with the goal being 30 chapters that total 50,000 words. This will undoubtedly work better for me this time around, since I do have a general idea of the storyline already figured out more or less, modulo an inconsistency here or deus ex machina there, but I’ve still got about 10 days to work those things out. I can go ahead and outline what basic events happen in each chapter, helping to keep things more or less on track, and avoiding the possibility of having the big epic showdown happen on Day 15.

Unless I wanted to come up with a sequel real quick, of course.

So now, during the planning stages, the trick is to get an idea of how much story can be reasonably fit into each chapter, again to keep things balanced and flowing smoothly. It’s hard to visualize how much text there is in 1,667 words, thanks to the human brain’s inability to have a good intuition of numbers larger than you can count on your hands.

Thus, this post is intended to serve as a calibration device. This post shall be precisely 1,667 words long, according to the word count that WordPress periodically displays off to the side while I type this. When all is said and done, I’ll at least have a visual reference for how much writing I’m getting myself into each day next month.

Of course, if I wanted to be really ambitious, I ought to leave open the possibility of writing more than one chapter per day, queuing up the extras so that you the reader still get them in daily installments. This isn’t entirely unreasonable, especially since November 1 is a Saturday, which in principle leaves more time available for typing furiously than does your average day.

Discipline is the key to winning NaNoWriMo. Blind stubbornness and a willingness to follow through with something that no longer seems like such a good idea also help, but mostly it’s discipline. To enforce that discipline upon myself to ensure that I don’t fall behind the minimum 1,667 words per day goal, I shall hereby set upon myself this constraint:

No web surfing until the day’s writing has been achieved.

No checking the online copy of the newspaper. (And seriously, does Firefox’s spell checker recognize neither “online” nor “Firefox” as properly spelled words?) No reading any of the blogs getting pulled into my RSS feed reader. (“Blog” isn’t in there either?) No following webcomics. And absolutely no, under any conditions, visiting TV Tropes. That server runs entirely on wasted time.

Distractions are the enemy. All distractions must be eliminated to assure that this year’s NaNoWriMo effort is a success. Or at least, not a failure. Victory is decided by the word count, but true success is in the eyes of the reader.

In other words, in case this wasn’t clear already, each chapter is going to be posted here, one per day, all throughout November.

But to really kill off any possible distractions, I ought to also forbid any video games until the day’s writing is in the can. That one could be rough, though. I’m almost through Super Paper Mario, and I’m pretty sure I can finish it before the end of the month, but NaNoWriMo’s going to be taking away time that could’ve been spent playing Mother 3. It’s going to be sitting there, the sequel to one of my favorite video games, taunting me while I type and/or bang my head against the keyboard repeatedly. And from what I’ve heard about the game so far, it’s right about up there with EarthBound.

And how the heck am I still nowhere close to 1,667 words on this post? I’m still mired in the triple digits. The high triple digits, to be sure, but triple digits nonetheless. This is taking longer than I thought, and I’m doing little more than spewing stream of consciousness at this point.

This could be a bad sign for the story. I really don’t want to wind up with a bunch of 900-word chapters padded out to nearly twice that just to hit my daily quota. I guess I won’t know for sure until I actually draw up an outline of the story and see what will be happening in each chapter, but I’m starting to wonder whether I truly have 50,000 words worth of material right now.

And just think, in the original concept of the story, the finale was going to be what I’m guessing will take place somewhere between chapters 10 and 15. A lot more stuff has accreted onto the core story since then, and much for the better, but I would’ve been doomed had I been going with the original concept. Well, I guess I would’ve had to start making up the better/extended version as I went along, without the benefit of having been able to set some things up before the big reveal that would’ve been at the climax.

It’s kind of annoying talking about the story in vague generalities like this, but there’s not really any getting around it without dropping spoilers about key plot points, or committing myself to things that may well change over the course of the coming month. Given that most of the changes I’ve thrown in to the mix so far have improved things overall, I don’t want to cut that off just yet.

Which leaves me wondering just how exactly I’m going to squeeze another 500 words or so out of this post. And here just four paragraphs prior I was complaining about how low the word count was. I’m clearly running out of ideas, so I think I’m going to resort to a complete change of topic to pad things out some more.

In fact, since I mentioned Mother 3 up there not too long ago, I’m going to ramble on about EarthBound until I can finally kill this experiment and weep at how much work this sort of thing is going to be come November.

EarthBound is, at some level, a deconstruction of the Japanese Role Playing Game (JRPG) genre. A lot of the humor in it is playing the standard tropes to the point of absurdity.

For example, in JRPGs the silent main character‘s only “dialog”, per se, is answering a “yes or no” prompt, and usually re-answering it until you answer the correct way. EarthBound also has you answer yes or no to questions like “Pop quiz: a Beatles song, ___terday”. Another area has an NPC rattle off pages and pages of types of nuts, asking “Which one do you like?”, with a yes/no prompt for your answer.

EarthBound also likes to make the reasons you can’t go to the next area until doing something else as absurd as possible. For example, the Onett police close roads whenever anything happens. Later, an inexplicable statue of a pencil blocks your path, requiring you to fund the development of the Pencil Eraser. Much later still, an inexplicable statue of an eraser blocks your path, requiring the development of, yes, the Eraser Eraser.

Then, of course, there is Dungeon Man, the ultimate fusion of man and dungeon. Besides doubling as both dungeon and NPC party member, he is full of signs pointing out the standard tropes in JRPG dungeon design, noting how monsters inevitably move in once you build a dungeon, and how he forgot to put a treasure at the end of a particularly long dead end path.

Speaking of treasure, most “treasures” aren’t found in standard treasure chests. Gift boxes are commonly found lying around dungeons, and let’s face it, those are just as explicable as treasure chests would be. But you can also find items in trash cans, such as finding a hamburger in the trash can outside the Onett fast food place. (Yum!) And when you first get control of Jeff, you have the option of loading your inventory up with cookies, if you don’t mind unwrapping all the presents Jeff’s friend stayed up all night wrapping for a birthday party. (And yes, the friend gets upset if you take any.)

Other things you’ll find in EarthBound: A cave full of five giant moles who each boast that they are the third strongest. A monkey that comes free with a pack of bubble gum. Beating up New Age Retro Hippies. Fighting the kid who lives next door as the part of the final boss.

Bonus tip before I hit 1,667: you can damage Giygas’s first form by Brainshocking him, which oddly doesn’t get reflected back at you like everything else does. If he attacks himself, his attack will bounce off him and hit… him.

And that’s 1,667.

Mother! Mother! Mother!

For all you Brawl players out there wondering where Lucas came from, you may be interested to know that the unofficial English translation of Mother 3 (i.e., the GBA sequel to EarthBound) is now out.

I’d be playing it right now, but I’m currently working through Super Paper Mario, and I don’t like playing more than one game at once. (Though I am willing to make an exception if the game is sufficiently awesome.)

This has been a public service announcement.

Comments Off

Documentation always lies: GNOME Panel Applet edition

The GNOME Panel Applet Library Reference Manual mentions the following about the panel_applet_set_size_hints function:

Set a list of desired size ranges for an applet with the PANEL_APPLET_EXPAND_MAJOR flags set.

This is a lie. The applet must also have the PANEL_APPLET_HAS_HANDLE flag set; otherwise, the applet will not display after you call the function.

Why? panel_applet_set_size_hints packages its arguments up in a Bonobo (i.e., CORBA) message and sends them to the PanelAppletFrame object that manages the space allocated to the applet in the panel. They eventually find their way to the following internal function, which is supposed to do the actual setting of the size hints:

static void
panel_applet_frame_set_size_hints_from_any (PanelAppletFrame *frame,
                                            const CORBA_any  *any)
        CORBA_sequence_CORBA_long *seq;
        int                       *size_hints;
        int                        extra_size;
        int                        i;
        seq = any->_value;
        size_hints = g_new0 (int, seq->_length);
        if (frame->priv->has_handle) {
                extra_size = HANDLE_SIZE + 1;
                for (i = 0; i < seq->_length; i++)
                        size_hints [i] = seq->_buffer [i] + extra_size;
        panel_widget_set_applet_size_hints (frame->priv->panel,
                                            GTK_WIDGET (frame),

This function is supposed to set up the size_hints array with the list of hints that you originally passed to panel_applet_set_size_hints. However, it only populates the array if the applet has a handle — i.e., if it has the PANEL_APPLET_HAS_HANDLE flag set. If it doesn’t, the array stays initialized to all zeros, which the panel is for some reason perfectly OK with. Now your applet is guaranteed to be exactly 0 pixels in size, and thus invisible.

This is really a bug in the GNOME Panel, since it should handle the case where there isn’t a handle. (No pun intended.) Since the two applets shipped with GNOME that set size hints both use handles, apparently nobody noticed until now. I’ll file a bug tomorrow about this.

Remember kids, the moral is: trust the source code, not the documentation.

throw gauntlet(“nanowrimo”);

For some reason back in April, Renee challenged me to do NaNoWriMo this year.

Well, it’s on like Donkey Kong.

After all, someone around here has to show show all of you how it’s done. Again.

I’ve got a sort of weird mish-mash of ideas that I think I may be able to work together into something halfway passable. I’ll need to sit down and do some outlining to make sure all the major plot points will fit together and that the story can be sustained for thirty chapters.

Naming the major characters would also help, I guess.

So, who else is going to be foolish enough to try to pound out 50 kilowords next month?

Database FAIL

You know what’s not fun? Having MySQL report that one of the database tables your blog relies on crashed, making WordPress think it wasn’t yet installed, since the “am I installed yet” check relies on that crashed table.

Things should be working again, but if you see any weirdness, let me know.