So, [[nid:124 NaNoWriMo 2011]] is far, far over.
Before the NaNo kicked in, I recommended people to check out org-mode and look at my [[nid:126 ramblings on my endless struggles with other writing software packages]].

That ramble was a little bit premature because I hadn’t actually completed a major writing project with Emacs. I’ve written a lot of short stories over the last year or so, but due to my increasing self-critique I’ve not actually gotten anything out. And, of course, the fact that I kept switching software probably didn’t help much either. =)

But NaNoWriMo is now done, and bashing out 51,757 words probably counts as some sort of an achievement that gives a little bit of an indicator of how Emacs works as a prose writing tool.

I told people it would work, and dammit, it did. Except for a few small snags. There were some major oddnesses that I had to learn about.

Darkroom isn’t light-proof

In the previous blog post on Emacs features, I made a big deal about darkroom-mode. I really shouldn’t have babbled about it at all, because the kit is kind of broken and needs some manual tinkering and gluing before it works satisfactorily. It doesn’t work the same on all platforms. There are other hacks that achieve the same effect, but which also may require some tinkering and expert customisation (read: you need to change hardcoded values, and you can’t do customisation through M-x customize or adding settings to ~/.emacs - hardly user-friendly).

It’s a shame that I didn’t ever really have the mental capability to handle elisp coding so I could make this thing actually work like charm. Features like this would be awesome if they were part of standard emacs install, or were at least some sort of an easily installable package that would be both cross-platform and easily tuneable.

Emacs’s convenience depends entirely on what I have installed

Which brings me to another point: I got an Eee PC laptop halfway through the NaNoWriMo. It came with Windows 7 “Starter”, a version of Windows that didn’t come wi(sorry, I made that joke too many times already). Of course, I had to install all software I needed to do NaNoWriMo on the thing. All I really needed was Emacs (an awesome Windows port, of course, exists) and my version control/syncronisation software package (i.e. MSYSGit).

But it didn’t come with all of the stuff I had grown used to on Linux. All of the little packages that don’t ship with Emacs. If you want to extend Emacs, the instructions usually go “drop the files somewhere and add stuff like (require 'whatever) to ~/.emacs.”

The thing about this is that the files literally come from all over the world, in various forms. I have no idea where some of these packages came from, but I sometimes can take a few good google searches to refresh my memory.

Fortunately, Emacs 24 will bring some light to this, because it will ship with a real package repository and a package manager along the lines of dpkg or rubygems. (If you say “App Store”, I’ll frown. Nobody will have fun when I frown.)

Perfect WordPerfect 5.1 emulation! Oh no wait…

I mentioned WordPerfect 5.1 in the previous article, because it genuinely was one of the best authoring environments I had seen - blue background, white text, no bullshit. Too bad WP doesn’t support most of the modern niceties.

One of the cool features I discovered during my NaNo rush was Emacs’ colour theme support. And by grace of gods, it does support WordPerfect 5.1 colours right out of box.

Not without a hitch, though:

  • It’s a contrib package so it’s not working out of box on all Emacs instances. It doesn’t ship with Windows Emacs, for example. Does with Aquamacs and Debian Linux packages.</li>
  • On Debian Linux, colours don’t work all the way. The buffer background stays white if it’s out of the actual text area.</li>
  • Once you set a colour theme, you’re committed to it until you close and restart Emacs. It completely messes up the colours. You can’t get to the default. Even the “default” colour themes aren’t exactly the same.</li>

Just like darkroom, you can file this feature under “nice idea, can’t wait to see it when it will finally actually work”.

NaNoWriMo is all about the word count! Ummmmm…

Word counts are a weird beast. There’s bazillion different ways to count the words. NaNoWriMo doesn’t disclose their wordcounting methodology, but they appear to somewhat agree with the common definition of splitting the stuff into word-like bits.

f course, in Org files, there’s a lot of stuff that you don’t want to count. You want to keep your notes out of the final word count. You basically want to put your story in a single section of a file, and then count the words in that section only.

And Org-Mode doesn’t do this out of the box.

Fear not, though - the people in the Org-Mode mailing lists are writing code that will stick per-section word counts into the property folders.

notice how you can’t actually download the raw message from the mailing list so you have to do some copy-paste trickery to save this into the file.

notice how this code is being developed by just sending updated versions to the mailing list. Not, for example, in a public git repository or something.

notice how I couldn’t find a single instance of the code that would have actually worked on the versions of org that I have at hand.

Yes, this was going on in 2011. In open source world.

I had a deadline. I had to write my own bloody awful word counter that’s run as a script. Not very elegant, but at least it works nicely. I could always run this thing in a shell buffer. It even worked on the first try on Windows port of Ruby. Not much of a problem.

(This is a tradition, you know, except with Ruby instead of Perl this time.)

I hope the upcoming Emacs package repositories will make life a little bit easier for this kind of situations so people could just upload a bunch of separate elisp packages that extend org mode. Modularity is the watchword, and so on and so forth.

But on the good side…

the bloody piece of software just made it possible for me to finish NaNoWriMo in the first place.

I can’t understate this.

I can be critical about these little inconsequential flaws of Org-Mode, but as you can see, a few small repairs can fix a lot of flaws. No wordcount? Toss in a script. Fancy full-screen stuff not working in Linux/Mac/Win? Just live without it, or use whatever the hell you have. Stuff not working all across the board? Suck it up or just do some handwork.

Sure, things could be a lot worse, but I got to my goal.

Despite of the hurdles of the other software.

What hurdles? What?

In NaNoWriMo 2010, I used TextRoom and StoryBook.

I found StoryBook pretty amazing. Before I even began writing I started fleshing out the story outline in StoryBook and it worked wonderfully for the purpose.

This year around, I was less well prepared. I started making the outline later on, and dammit, that was a mistake.

Storybook had suddenly gone payware. You need to pay to do anything really useful with it. This is what is killing a lot of open source projects these days. It almost killed Movable Type, but the developers came to their senses. It murdered MySQL. It’s making me move away from Celtx, because I just know that the open source version isn’t going to get any interesting features any more — and in all likelihood neither will Storybook get any new interesting features.

Anyway: Late planning + no Storybook = disaster.

So how do I do story planning? In the org-mode land, it seems the expression goes something like this: “dude, just throw some org-mode at it.”

And it worked. I made a ginormous table with plot summaries and I was able to chart the story pretty well and design a plot that actually makes some sense and is even more complex than the plot in the last year’s novel.

Frigging amazing.

NaNo 2011 was a resounding success thanks to Org-Mode. And I expect NaNo 2012 to be even more resounding success if there will be some minor improvements.

Thank you, org-mode.

I’d launch into an epic fanfic here, but hell, I need coffee and Halo: Reach. Bye.