How did I ever talk myself into getting involved in NanoWriMo? Well, I’d been thinking about it for a while, to be honest. I’ve really been enjoying writing lately. It’s been theraputic. But then a conversation happened on Twitter, and a handful of friends all said they were going to give it a shot and, well, in some fit of craziness, I said “yeah, count me in!”.

This isn’t your traditional run-of-the-mill NanoWriMo. I’ve no real intention of writing a novel. I don’t really have a novel-length idea in my head right now, and I certainly don’t have the experience of writing fiction to sustain it to the length of a novel. The last time I wrote any fiction (other than the odd software specification) was in high school.

Four years ago (I know this because it’s when I first created my account on the NanoWriMo web site), I attempted to take part in PragProgWriMo. The idea there was to use the same format to write a technical book. The subject of my technical book was basically “stuff that programmers ought to know about”. It was basically I primer on “how the Internet works”, at least according to me, covering the basic building blocks like TCP, IP, DNS, Ethernet, Email (SMTP/POP/IMAP), HTTP, the RFC process, routing, that kind of thing.

I managed to write about 5,000 words on DNS, then skipped a day due to family constraints and never got back on the horse.

This time round, I’m trying a different tack. I’m going to attempt to write 50,000 words in 30 days, but they’re going to be discrete essays. Some will be fiction. Some will be technical. Some may even be autobiographical. To be honest, I don’t know yet (and I’m leaving it a bit late to figure that out, since I need to write the first one tomorrow!). Maybe there will be 30 different essays – one each day – or maybe some topics will have enough content to keep me going for a couple of days.

Chances are most of the essays can be discarded immediately. But hopefully this is the kind of deliberate practice (writing kata?) I need to start improving, redeveloping my style, trying out different formats.

And hopefully by the end of it, I’ll have enough fodder for the next few months’ worth of blog posts, at least!

Technology

I’m a computer geek, so it’s all about the technology, right? Actually, no. I did swither about hand writing them all, but my hand writing is slow – about 15 wpm. If I were to hand write it, I could expect to spend ~2 hours each day for the next month continuously writing. Typing the first draft straight into the computer should short cut that, and it’ll allow me to more easily monitor the word count, too.

I’ve cargo culted the build environment for my shiny new blog. So it’s a basic Jekyll web site, published on GitHub with GitHub Pages. The text is all plain Markdown and I’m currently writing in vim; writing a paragraph, then hitting gqap to format it reasonably.

Goal

This morning, I was reading, in Pragmatic Thinking and Learning, about setting SMART goals. I think this counts. It’s:

  • Specific I’m going to write 50,000 words worth of essays in a mixture of fiction and non-fiction, attempting to cover different styles and topics.

  • Measurable That’s 50,000 words as a goal, or an average of 1,667 words each day. I’ll know if I’m ahead or behind my goal by tracking the number of words I’ve written.

  • Achievable Well, that’s an interesting question. Considering the global context (work, family, travelling and holidays already planned in November), is it achievable? I’m guessing on spending about 2 hours/day on this. I ought to be able to carve that into my day somewhere, particularly if I steer clearer of beers in the evening (though it is often said, “write drunk, revised sober” and I don’t need to do any revision in November!).

  • Relevant Is this something I want to be doing right now? Yes. I want to improve my writing, my general communication, and my confidence in being able to communicate. I think it’s very relevant.

  • Time-boxed That’s nice and easy. 30th November isn’t going anywhere. :)

So yes, I think this counts quite nicely as a SMART goal to work on for the next month.

Topics

So all that remains is to think of some topics. What would I like to talk about? What you you like me to talk about? Here are a few things I have had on my todo list for a while:

  • The next segment on Gremlins: strategies for defeating them.

  • An introduction to Mind Mapping and, in particular, one of the novel (to me, at least) ways I’ve been playing around with them lately.

  • Mindfulness, and living in the present. (Which is the general point that a whole bunch of self help books, therapy and ‘religions’ are trying to hint at, as far as I can tell.)

  • Some short stories inspired by Rory’s Story Cubes. I bought these for my son before we went on holiday a couple of weeks back, and I’m now obsessed with the idea of using them, but I haven’t had a chance to do so yet!

  • Mashing up Story Cubes and Mind Maps to explore ideas for a story.

  • This quote:

    A few years ago, a babysitter we had hired gazed in wonder at our kitchen phone. “Mr Hunt, what a wonderful idea,” she said, “to tie up your phone so people won’t walk away with it! Just like the pens at the bank.”

    got me to wondering about a system for efficiently supplying pens with ink from a central source. I’d like to write that up in the style of a patent application, just for fun.

  • Documenting the various bits of metadata that one may feel obliged to stick on a responsible article on the Interwebs these days, to maximise the likelihood that it will integrate well with other services (Open Graph Protocol, Twitter Cards, HTML5 Microdata, etc).

  • My workflow for Getting Things Done (in theory, at least), with a mixture of OmniFocus, Evernote and good ol’ paper with coloured pens. Including my Kanban-ish spin on using OmniFocus, organising projects and limiting work in progress.

  • A short introduction to TCP/IP. It’s not like it’ll be new and exciting material – in fact, you’ll find dozens of them on the Internet anyway – but hopefully it’ll serve as a useful way to remind myself of the bits I’ve forgotten.

  • Similarly, a rehash of the four year old introduction to DNS I started out the last challenge with. I promise I won’t just copy and paste it to cheat one day. :)

  • My answer to my favourite interview question so far: “When you type ‘www.bbc.co.uk’ into the URL bar on your browser and press return, what happens between then and the BBC home page showing up on your screen?” So much scope for fun there. :)

  • An introduction to (indoor) rock climbing for the completely uninitiated.

  • What I’m looking for in my next programing language. I keep looking at this the wrong way round. I look at a shiny new programming language, see its list of features and think, “Ooh, that’s awesome, I need to learn it!” But maybe turning it on its head, thinking of the features I genuinely value in a programming language, then evaluating several languages to see where they fit would be fun. (Short version: I want something that provides high level constructs to make efficient use of all the cores on my system; I value developer happiness; and I want something that’s simple to deploy.)

  • I have this title in my head, “Test Driven Development is bad for our mental health” that I’d like to explore. The rough idea is that people with certain cognitive biases will focus on negative events and dismiss positive events. For these people, test-driven development is an exercise in constant failure. Tests passing locally but being flaky on a CI server could feel like things are out of their control. It’s a bit contrived, but I thought it would be fun to explore.

  • Back on the subject of mental health, a review of “thinking traps”/”cognitive biases”, how to spot them and why they’re a problem.

  • Coffee: what processes happen to turn the seed of a shrub into a delicious beverage? Again, nothing new and exciting to most people, but this will be an excuse for me to learn the missing details.

  • Micro Service Architectures and the functional composition of distributed services. I’ve never tried this stuff in anger, but I’ve heard a couple of other people talking about it, so that makes me enough of an expert, right? I love the idea of micro service architectures, and it lends itself perfectly to thinking about pure functional systems at the service level rather than just the module/function level. Something fun to explore.

  • Learning a programming language through refactoring existing code. The idea of taking a very simple bit of code in a familiar programming language, transliterating it into the programming language you’d like to learn, then refactoring it to use the idioms, standard libraries and style of the target programming language.

  • Introduction to hardware hacking with Arduinos.

  • What do priests do when they retire? One option is the same as John Rebus’ eventual return from retirement: they join The Complaints. The branch of the church that deals with internal affairs (hmmm, perhaps that could be literal?) of other priests. But what could a Priest ‘Complaint’ investigate that doesn’t touch on the sorts of risky subjects I wouldn’t touch with a bargepole? Embezzling the collection plate? A sideline selling the communion wine to underage kids for a massive profit?

It’s more difficult to think of fiction ideas, which is why there’s only two in there (centrally filled pens, and rolling with Rory’s Story Cubes). In reality, I’d like to alternate between fact and fiction, I think, just to keep things new and exciting.

(Coincidentally, this is now approaching 1,700 words, which is what I’ve commited to writing every day. Here’s hoping I don’t do it when I’m supposed to be doing billable work in future, or November is going to be a very poor month!)

Topic Suggestions

Here are the topics that other people have suggested so far:

  • Hardboiled detective fiction (via @relativesanity). I had to double check with Wikipedia to make sure I remembered what Hardboiled fiction was. A cynical detective providing a first person narrative to the story? Confronting violence on a regular basis, leading to burnout and a cynical attitude towards one’s own emotions? Hmm, I think I can draw parallels between that and more familiar ground. Hardboiled Geek Fiction…?

  • What else?

So. What would you like me to write about? Please email me and tell me!

A Sneak Peek at
The Internet

If you enjoyed this article, you might be interested in my new project, A Sneak Peek at The Internet. What happens when you enter www.facebook.com into your web browser and hit return? A Sneak Peek at The Internet will take you on a deep dive through the network stack, from HTTP, SSL, TCP and IP, all the way down through the data link layer, back up to Facebook's data centres, and then on the return journey back to the browser.

There's more fun, excitement and peril than a Disneyland rollercoaster!