I’m alive! You might not believe me, but I totally am.
Yes, it’s been a year since I posted anything here. Yes, the last thing I posted was the previous year’s ‘Year in Review.’ Yes, I can list agreements… but I did lots of stuff this year… LOTS of stuff!
It is disappointing that I didn’t post more. You would be correct in thinking that this is representative of my writing output for the year. I do have reasons, but they’re not artistic.
In last year’s ‘Year in Review’ I spoke about the writing setup that I had created. It took up a lot of my time in 2017, but I used the system to finish a short story, work on a novel, write some blog posts, and compose lots of emails and letters. In 2018, I worked even harder on that writing setup… and did almost no writing.
Rather than justify my decision to work on something that would help me write more (instead of just writing), I will press upon your sympathy to forgive me for it.
Since I can’t speak about anything I wrote this year, this post will have a section on the ‘Nex Writing Setup,’ and another on ‘other stuff.’
The Nex Writing Setup
Just to be clear, the ‘Nex Writing Setup’ (NWS) is a moving target. I thought it was more or less done last year, but it’s changed a lot since then and I have plans to change it more in the future. The reason I never got around to writing a tutorial on how to replicate my setup is because it’s evolving too fast. I’d like to say it’s slowing down now, but it’s hard to tell. Either way, this post will talk about things that may disappear in the future.
The main additions I made to the NWS concerned the creation of working documents. My previous efforts concerned exporting my writing to other formats. While there was a specific way to lay out my writing to enable this, getting that layout correct was a manual task for the writer. I decided that it should be automatic. In theory this would save a great deal of time. The NWS will now create the skeleton files whenever you start a new story. It will then allow you to add new chapters and note files as required (for characters, locations, and props) while creating the appropriate skeleton files and linking them up with the rest of the story. You can even change chapter numbers, delete chapters, delete note files and the NWS will correctly update the other story files that link to them. This automation makes the whole system much more robust, meaning the original export functions are far more likely to succeed without errors. It also means that I don’t have to remember all the rules for laying out the files.
Making these additions also afforded me the opportunity to improve my earlier code and discover some bugs (which I corrected). For example, my system didn’t correctly deal with single chapter stories. Also, the export stuff was hard coded in, making changes difficult. I’ve now introduced the early stages of a template system so that it will be easier to change the layout of exported documents.
This was a lot more work than the version from last year. Perhaps five times as much.
There’s still a lot more planned. I’d like the ability to change the story title and chapter titles after they are first created. Additionally, I would prefer that the NWS used global variables for things like ‘author’ and ‘default eBook template’ which can then be overridden by each individual story. The NWS is growing. It’s no longer just a few functions to help export stories: it’s becoming a complete setup for writing stories from within Emacs.
Other Emacs Improvements That I Didn’t Code
Spending so much time in Emacs seems to encourage me to tinker. As such, my Emacs configuration (unrelated to the NWS) changed a fair bit this year too.
The biggest change was a complete rewrite of my configuration file to use literate programming style and the ‘use package’ system. The more I work with Emacs, the more it feels like an operating system. And I like that. I’ve also got more of the configuration files set up in syncing locations so that I can easily shift between computers and operating systems (only Windows and GNU/Linux so far). I can now move between any of my computers and Emacs appears just the same with all my files just where I left them. Adding a new computer into the mix is trivial. I’m pretty pleased with the setup.
I added in some additional writing tools as well. For instance, ‘WriteGood’ highlights some common instances of ‘bad’ writing in real-time, and ‘LanguageTool’ is a deeply comprehensive spelling and grammar checker that you can run when you finish a draft.
Improvements to the Setup Outside of Emacs
Emacs itself got a major upgrade this year (version 26.1). It’s been fantastic, but one minor issue is that the spell checker I had been using with Emacs no longer worked in the new version on Windows. Emacs 26.1 and above now requires Aspell 0.60 or higher, however, the official Windows release of Aspell is only at 0.50.3 (which is from 2002!).
I tried replacing it with Hunspell, which is the spell checker that LibreOffice uses. I had a minor issue with it though. Hunspell was giving false positives for ‘misspelled’ words when they used apostrophes. For example, “
John's” would appear misspelled but “
John’s” would be fine. This appears to be due to an oddity with Unicode that Aspell was too old to care about but which Hunspell observed. Sadly, my keyboard always makes the first one. The easiest way for me to fix this was to edit one of Hunspell’s language files for English. So I did that and it works fine now.
Then, just for fun, I got hold of a newer (technically unofficial) version of Aspell on Windows. So now I can use either.
The versions of Hunspell and Aspell that I’m using on Windows are from http://repo.msys2.org/mingw/x86_64/ and were built using recipes from https://github.com/Alexpux/MINGW-packages . These may not work with the windows version of Emacs, however, unless you have installed it using the GNU supplied dependency files and have the Emacs bin folder added to your system path. To fix the issue I had with Hunspell, edit the “.aff” file of the language you are using. On my system, I edited “…/hunspell/share/hunspell/en_GB.aff” so that the line which says “WORDCHARS 0123456789” now reads “WORDCHARS 0123456789’” which seems to fix things.
I also upgraded the website to use the most current version of Hugo. That version had previously caused my website to break, so I had to update some things and now it’s working better than ever. I’m considering another refresh on the website too. The current one was a bit of a ‘proof of concept’ to show that I could get a website working with the NWS, but I think I could probably do a better job now.
After completing the current version of the NWS, I remade all my existing stories in the new system to test it out. This also provided me the opportunity to clean up my files a little and reorganise some stuff. One change I made was to tell Emacs not to store temporary files alongside the story files any more. Instead, all temporary files are now banished to their own folder where I never have to look at them unless something awful happens.
Porting the old stories over also highlighted some minor bugs in the NWS (which I fixed).
Part of this clean-up process was moving my stories from GitHub to Keybase. Keybase provides all the functions I was using in GitHub except that it’s fully encrypted, which seems important to me. Conversely, I moved the website to GitHub. The main reason for this was that GitHub can serve web pages it hosts using a secure connection. My previous web host would only do that if I paid them a lot of money. It’s worked out well though because I can now serve pages securely (which is better for my website visitors), it costs me less money, people can see how I made the website and learn from it (because it’s all right there on GitHub), and I can now deploy the website directly from within Emacs using Magit.
Since my writing and most of my configuration files are now stored in Git, I have less reliance on Dropbox. I’m pretty much just using it for syncing session management quickly between computers. While Git requires a little more manual involvement for syncing, I’m much more comfortable being in control of how it operates and knowing that it is secure and encrypted.
I spent some time in 2018 getting pretty deep into two writing hobbies that I was just beginning to get interested in last year: computer keyboards and fountain pens.
I don’t want to get too much into that here as I will most likely give them their own detailed posts. However, in order to create anticipation, here is a short summary: I spent way more money than is reasonable, I became kind of an expert in both areas, I now have the best possible keyboards and pens that I’m ever likely to need, and I even built my own keyboard with a soldering iron.
I also had a go trying to get back into Bullet Journals, but I don’t think they really help me. Organisation and logging was never a problem for me and I’m comfortable with my own systems for that. I may try to incorporate the self-reflection stuff though. If nothing else, it could be an interesting writing exercise.
The Year Ahead
The first couple of months of 2019 have been impossibly busy for me. This has all been from my day job. As such, I have neither written anything nor programmed anything related to writing thus far. Sadly, it looks like the next three to six months will be much the same. This is also the reason that 2018’s ‘Year in Review’ is coming out in March.
As for the NWS, I’ve already mentioned some features that I would like to improve or add. There are additional ones written down in a ‘possible improvements’ file, but I’m not sure I’ll ever get round to them. They would probably be useful, but extremely time-consuming to implement. I’m not sure they are worth the effort. For example: I could probably include some automated linking such that every time a character name or location appeared in the story, a link would be created back to its notes file for reference.
I desperately want to get back to some writing. Hopefully I’ll figure it out. I feel this post has been rushed and is likely boring. I apologise for that. But hey, at least you know I’m not dead.