← blog.mackieburgess

NaBloPoMo finale 2023

The end of a month-long era.

Mackie Burgess · 2023-11-30

Today is the last day of National Blog Posting Month. Since starting on the 4th of November, I have written a blog post every single day.

Overall, this was an immense personal undertaking. I am not an experienced writer, this was my first time writing a blog, and I spent most of it having very little idea what I was doing. The pressure of finishing a post every single day – combined with working full-time – was certainly a challenge, but I’m really glad I dedicated myself to it.

Technical posts

I wrote quite a few technical posts, which is unsurprising as I’m a software developer.

My post about Sequences in OCaml was interesting to write. OCaml is a very rare programming language, so I feel like this post struggles from a lack of syntactic explanation: if you have never written OCaml before, this will be a serious challenge to read and understand.

To that extent I probably over-corrected in my Advent of Code post. The ways Rust stands out are very explicit – rather than OCaml where there are a lot of implicit features – so almost every uniqueness of rust is labelled. Notably however, I seem to have missed explaining the ‘turbofish’ operator.


Rust can infer types pretty well, but sometimes it needs a little help. One instance where this is the case is .collect().

fn foo(x: String) {
    let bar = x.chars().collect();

    todo!();
}

Rust will error out because it can’t tell what type bar should be. It might be a Vec (list), but it could also be a HashSet, or a VecDeque (double–ended list).

One way to fix this issue is to give bar a type:

    let bar: Vec<char> = x.chars().collect();

This works, but an alternative – which in some cases will fit your code better – is the turbofish operator ::<>. The turbofish annotates a generic function with a type in order to help the compiler.

    let bar = x.chars().collect::<Vec<char>>();

It’s one of those things you get used to as you write more Rust. I read the above line as “I take the chars from x and collect them into a Vec<char>”.

Ok, Rust tangent over.


On a day where I really wanted to just write code, I decided to try out a programming language I had never tried before: Gleam. This was fun, as it combined a review with a challenge. If I find anything tricky it might be the language, or it might be my own incompetency. It helped that Gleam is a language which really gets out of your way. It also helps that it has taken major cues from Rust, which I know a lot about.

Stupid posts

I wrote a handful of stupid posts. These mostly served as relief from writing so much. Some posts also straddle the line between stupid and feelings-y, such as fake stickers on books. Since writing that post I bought three books. None of them have stickers – neither real nor fake – on them.

Writing stupid posts is surprisingly difficult. Your writing must be slick and amusing, alongside containing some degree of insight. There were a few days where I started writing a comedic post, then wrote something more serious just because it’d be easier. I took two separate attempts at writing a post called “Notes on Undergrounds”, where I’d talk about different forms of public transport: in particular the unique subway system of Glasgow which operates in a single loop – clockwise and counter-clockwise.

Yes: I wanted to write it just for the Dostoyevsky reference.

Soft Skills posts

Oh wow I’m a soft skills blogger now. I actually found this category of writing very enjoyable. I’ve had points in my life where it has been really hard to do the things I need to do, so I’ve ended up picking up a few insights worth sharing in this topic. Tell it to the river was nice, encapsulating my journey towards becoming a better public speaker.

My two ‘sibling’ posts, type faster and type better, were a particular joy to write. They ended up leading into several conversations with friends, which felt like a great side effect to receive from writing. This is one of the main takeaways from this month: write things which lead to good conversations with good people.

I want to write more about soft skills going forwards, and I want to learn more about soft skills. Time to read some books I guess.

Meta posts

Love a meta post.

Meta posts are – to me – the epitome of giving myself an easy day. Can’t figure out how to start? Write about writers block. Struggling to write? Write about how it feels to write. Finding it hard to write a full, complete thing in one day? You guessed it.

I actually did that meta post twice. Sue me.

What now?

In all likelihood, there will not be a blog post on December 1st.

What I will be doing, however, is writing lots and lots of code. December is Advent of Code month! I am pretty excited, I really enjoyed AoC 2022 and have learned so much since. It’s a tall order, but I’d quite like to get 50 stars this year. I’ll be pushing code to this repository if you want to check my progress. The goal this year is clean, idiomatic Rust code. Well commented, plenty of room for expansion.

In 2024 I want to keep writing, I want to keep making things, I want to publish more and more. By the time I get to next November the writing process will hopefully be a lot simpler for me. I won’t be too surprised if this isn’t the case: writing is really hard, even for professional writers, but I sincerely hope next NaBloPoMo is as fun and interesting as this one was.


And if you’re reading this: write a blog! Write short posts, write long posts, write literary wonders which give your truest essences of wisdom, write complete nonsense which nobody should bother looking at. Write posts which remind you of posts you’ve read before. Write posts which are unlike any blog post ever written. Write yourself in circles: accidentally write the same thing twice.

Write for the sake of it.

Write because writing is self expression, and self expression is one of the most important aspects of being a person.

And please, please stop putting fake stickers on book cover designs.