Greetings, Programs! During my Christmas break, I took some time to reflect on my previous year of writing. It was in December 2016 that I first decided to rework my writing setup and, one year later, I was considering whether I’d achieved my goals.
Actually, there were only two goals: write more, and write better. The problem is that I’m a classic yak shaver. On my way to achieving those goals I determined that I needed new writing software, new website software, the ability to easily publish to multiple formats, a dedicated writing computer, a new computer keyboard, a writing bag, a marketing strategy, a better choice of fonts for both writing and publishing…
Surprisingly, I managed to get a working version of this vision setup in the first month. And then I spent the next year tweaking it, starting from scratch, tweaking it, and starting from scratch again.
I’m not sure if this will be useful, interesting, or inspirational to any of you, but here is a review of my first year using ‘the nex writing setup.’ I’ve split it into two sections: The first deals with the tools I used; and the second deals with the writing I did with those tools.
The less technically minded may wish to skip ahead to the much shorter section on actual writing.
A Quick Side-note
A more seasoned visitor to my site may realise that some things I mention below are being discussed for the first time. Before now, I have only documented the parts of my writing setup that I was sure I would continue to use. There are quite a few things I have dropped and a few more that I’m still not sure about keeping. However, this post will give an overview of everything.
The Nex Writing Setup
In December 2016, I was disheartened at another year of being very unproductive with my writing. After completing the first draft of a novel in late 2013, I had done nothing publicly except a short blog post in 2015. I’d been tinkering here and there with a second draft of the novel, but it just wasn’t happening.
After thinking on this a lot, I decided that I might be more inclined to write if I had a better ‘portable’ writing setup. My mind filled with rose-tinted visions of sitting in cafes, writing master-works, and drinking tea. I also thought, since I travel around a fair bit, it would make it easier to write on the move.
When I say ‘portable’ I mean that in two ways: portable in the sense of a small computer I can easily take with me for writing; and portable in the sense of having a system that allows me to easily change computer and pick up right where I left off.
I called my solution to this predicament ‘The Nex Writing Setup.’
The Beginnings
Having decided that Emacs was the keystone of this solution, which I’ve written about previously, I set about determining how to use it for my intended purpose. The original solution involved learning three programming languages and writing several programs for each new story. It also relied heavily on Linux command line utilities. This solution was overly complex and cumbersome and required a lot of effort each time I started a new story. Amazingly, I lived with this for the first five months or so.
Why was I doing this if it was so much effort? The main reason was that once a story was set up, I could do all my writing and editing in one place and then automatically generate a website version, e-book version, and print version. This level of flexibility was a major improvement over my previous writing solutions. It also meant that I could write from more devices and that my solution would probably continue working long into the future.
Additionally, it had all the benefits of my previous setup. I’ve said in a previous article that Scrivener was my preferred writing solution prior to Emacs and that it is particularly good for outlining and planning. However, Emacs is capable of these features as well, it’s just non-obvious when you’re getting started (since Emacs is not specifically designed for this purpose). It’s also slightly more effort than in Scrivener because you have to set up some stuff yourself. I’m still in the process of deciding whether I want to automate these features or continue doing them manually each time.
The process involves using Emacs Org mode (the ability to make Emacs behave like a Wiki where you can connect documents together with hyperlinks). I’ve seen other people use Emacs to achieve a similar system to mine with just one file. However, assuming that I may like to occasionally use a different text editor, I favour having well-organised, smaller files over a single, monolithic one.
Below is a visual representation of the files in an average story and how they link to one another. It should be noted that all these files live in the same directory and were created manually.
‘main.org’ is the entry file to the project. It is the gateway link to everything else and contains general notes for the story.
The characters, places, and research files contain more specific and organised notes. My character profiles all use the same template, but so far I have not automated this process. The same is true for the places files. This feels like an obvious area for automation, but I just haven’t got around to it yet.
The preface, dedication, and chapter files all contain text that will make its way to readers. These files are precisely formatted and have meta-data headers at the beginning. This is necessary for processing by the programs I’ve written in the Nex Writing Setup. Each of these files also links to a separate notes document for things that I don’t want to be published, but which are useful for me while writing.
This layout, naming, and formatting of files is all necessary for the Nex Writing Setup to work. The programs I have written are not especially robust, so a story that is not laid out this way will not work. I don’t have much interest in making the system more robust though. The way it is now forces me to keep all my files tidy and organised.
Having said that, it would make sense to automate the process of starting a new story. This is on my to-do list.
It took me the better part of a week to come up with this system of laying out, naming, and formatting my story files. I studied my past projects in Scrivener to replicate all the features I used. I was pretty happy with it and now needed to figure out ways to output the story content to other formats.
I had already come up with a solution for a writing computer. I managed to install Linux onto a second-hand Nexus 7 tablet inside a keyboard clamshell case using a tutorial from NODE. It wasn’t amazing, but it worked as a proof of concept to get me going. The only pertinent point about this is that I could only use programs that worked on Linux. Windows now includes a compatibility layer with Linux, so that meant these things could still work on my other computers as well.
If this is starting to sound a little technical for you, I’ll understand if you want to skip to the next section. It’s about to get a lot worse…
I spent another couple of weeks learning systems that I thought would be useful: sed, awk, bash, and grep. I then wrote some scripts that utilised these programs to go through my story files and output different formats. These programs were a little slow and kludgey, but they got the job done.
Other parts of my writing setup are less specific to writing, but I already knew them and felt they would be useful. These included the LaTeX typesetting system and the Git version control system.
An important part of the setup was the ability to publish directly to my website. Of course, being the yak shaver that I am, this meant making an entirely new website. I won’t get into that too much here, but it took another week to get that going.
I now had a working version of my system. A tiny computer (that was pretty janky), a single program to work from (Emacs), the ability to publish to a website (and multiple other formats), and the general feeling that maybe it was time to do some actual writing.
I decided it was time to finally finish a short story I’d been stuck on for years and used my system to complete Soulstice.
The Rewrite
After completing Soulstice and seeing that the system worked, I decided to completely re-code everything I’d already done.
This might sound stupid, but it’s not that uncommon in Computing Science (the discipline I’m actually trained in). It’s called refactoring and it’s usually used to retain existing functionality while making the system easier to maintain and extend, and possibly to make it run more efficiently. I could go into exactly what I did, but that would be boring… even for the technical people.
It might also be surprising to discover that this took me about three months (when the initial version only took one). I can’t really account for this, especially since the second version wasn’t all that much better than the first. I suspect most of the time was spent in trying to improve fundamentally bad designs.
The Reboot
It was also around this time that I got a new writing computer (a GPD Pocket). A tiny little laptop that runs Windows 10 and fits in my pocket. Her name is Parker and I love her. In switching back to Windows, however, I was finding the reliance on Linux utilities a little tiresome. Although I wanted to keep the ‘future proof’ nature of my setup, having to do so much work through an emulation layer in Windows was proving inefficient.
Through all this, I’d been getting more and more familiar with Emacs and was starting to become increasingly impressed with the extent to which other people had managed to modify its abilities. Most of these went far beyond what I was doing and relied on Emacs’ built in programming language, Lisp. After investigating this in more depth, it appeared possible for me to do everything I’d been doing in the command line directly inside Emacs by writing my own Emacs Lisp programs. I immediately set out to do so.
As a consequence of this sequence of events, I didn’t really get a chance to work on anything with the second version of the Nex Writing Setup. But when the third version was finished (the Emacs Lisp version), I was delighted. It ran much faster, was much more convenient to use, and was even more future proof as it reduced the number of programs I was relying on.
My first uses of the third version were for blog posts (something that I had decided I would do more of rather than stress about getting stories done quickly). However, I soon decided to refactor the whole thing once more to make sure the code was going to be easy to maintain in the future.
At this point, everything was running very well and was a delight to use. I was doing a lot more writing and starting to feel like things had really paid off. I’d also spent some money on a nice computer keyboard (a Happy Hacking Keyboard Professional 2). Her name is Fisher and I love her. I’d also investigated the possible uses for bullet journals and other notebooks and pens.
The only other small improvements I made to the writing setup at this stage was to introduce another output format (manuscript format for submitting stories to publishers) and to change the default font in Emacs. I splashed out on a typeface called Triplicate (I use the T3c variant in Emacs). This might seem like an unimportant thing to mention, but the typeface you use when writing has a large impact on how much you’ll enjoy the experience. There are other fonts which are probably just as good as Triplicate if you don’t want to spend any money though (I’d recommend the slab-serif variant of Iosevka).
And that pretty much brings us up to date.
The Future
The writing setup hasn’t changed much in the last few months and I suspect there are unlikely to be any major changes for a while.
It would probably make my life easier to include some more automation when setting up stories. The same would be true for creating new characters and locations.
If I was going to get really enthusiastic, I could probably include some automated linking in Emacs Org mode as well. That way, every time a character name or location appeared in the story, I could quickly link back to its notes file for reference.
I suppose I could try to make the system more robust as well and package it up for others to use. I will probably write a detailed tutorial on how to use my system as it stands, but making it easier for other people to use is perhaps not something I will have time for (maintaining these sorts of projects for the public takes up a lot of time).
These are all luxuries though. The system is working well within my needs already, so it will all depend on my enthusiasm for such niceties rather than a true need of them.
Writing Progress
Now that the technical stuff is out of the way, let’s talk a little about the writing I actually got done this year.
A year ago, my specific goal had been to finish redrafting a novel. In terms of this goal, my year has been an abject failure. However, my general goal of writing more and writing better has been somewhat successful. I have written quite a few blog posts, some stories, many letters and emails, and a few other things that have not appeared on this site.
The achievement I’m most proud of was completing Soulstice. I had been struggling to finish that story for a long time. It was inspired by the death of a childhood friend and I think I was finding it hard to let go. It was while programming the writing setup that I had an idea for how to end the narrative. It was still hard to finish it, but I think it worked out.
The blog posts I’ve been making have proved to be quite popular. Slightly more popular than the stories in fact (which is vaguely disappointing). It’s all been good experience for me though.
Whether my writing is better than it was a year ago… I’m not sure. I do this because I enjoy it rather than because I’m good at it. It’s one of life’s ironies that what we do best may not be what we enjoy most.
I’ve certainly been reading more about how to be a better writer. There are some things I agree with and some things I don’t. I do find myself paying more attention to things I read and analysing other authors. I am like a leech trying to feed off their talent rather than break through the barriers of invention myself. And I’m good with that. Best to get up to their level quickly and hopefully add something to the conversation myself, right? I’m nothing if not an optimistic realist.
My novel redraft hasn’t been forgotten either. I have made more progress on it in the last year than in the three years previous. It’s just not as much progress as I’d hoped.
I also spent a lot of time this year working on a rather complex writing project that I’m not at liberty to talk about. I can say that I was hired by someone else to do this and that there is a good chance it will never see the light of day. The biggest problem with that particular project is the sheer scale of it. It’s a lot of fun though.
And that’s what it all comes down to really. Looking back on the last year of this little venture and the things I did, I remember enjoying them all. The writing itself and creating the Nex Writing Setup. It’s pleasing to see that my enthusiasm is still strong one year on and, I think, getting stronger all the time. The Nex Writing Setup has made me very happy and I feel very comfortable with it now. When I sit down with it now and settle in to visit my characters, locations and stories, it feels like home.
Thanks for sticking with me through this year and hopefully 2018 will be even better.