I've been thinking about start a blog about coding and I was kinda obsessed with the idea of making good content. That was always blocking me on starting this. I've lost count of how many blog posts I draft on Medium. How many stuff I could have wrote but the anxiety of being perfect drove me out of it.

Recently discussing with some friends we talked how good ideas, good solutions get lost in companies private repositories and when we leave the company we lose all this good stuff that we built forever. I just kept thinking how many times I wrote code that I thought "hmmm… that's a clever solution." and now I can't even touch it or remember it because we know our memory is terrible.

Now I'm revisting this idea of a programming blog not with the obsession to write good content for someone else but just as a way to document this ideas when I need them in the future. Without worrying about length, or references to the ideas contained here. I just want to be able to go back to them in the future and understand them. If it's useful for someone else good, if not, it's serving the purpouse for me.

As an idea for a starting point on this I thought to document all my decisions and the reasons of the choices I made for this.

Hugo

Due to my past with Ruby my initial idea was to use Jekyll. So I've searched for a template, started building it, configuring it to have content in english and portuguese and I don't remember where or why, but I got stucked. Everytime I went back to work on it, something got on my way and I never finished it. Some months had passed, I've moved to a new laptop and I had to start fresh.

I started looking for templates again, but now I've looked into some other static site generator templates too. That's when I get in touch with this beautiful thing that is hello-friend-ng. I had to stick to it. Another couple of months past, the hugo themes tab with hello-friend-ng open started collecting dust.

Org-Mode

That's when I discover that Hugo supports Org-Mode and my life changes. I created the blog, tested some features locally, like Babel and Front Matter that supports org format. And that's when it clicked for me. It would be awesome to put that idea of some sort of coding notes blog with the idea of Literate Programming guiding it using org files to document it. It's so cool to have the ability to write a code snippet and have the result down there with no big effort or worrying about formatting, or encapsulating it properly.

Here is an example:

fatorial = fn
  n, _f when n <= 0 -> :error
  1, _f -> 1
  n, f -> n * f.(n - 1, f)
end

fatorial.(5, fatorial)
120

It feels like having a jupiternotebook together with your blog. And this idea of coding notes becomes way more useful for me. I can test the code from my own notes. The result is interesting for someone that gonna read it.

Of course, not everything is beautiful in this world. I found some issues with the Org-Mode integration in Hugo. I think there might be other issues too, but I'm grabbing more information on this to report the issue.

English

English is not my native language. I'm brazilian, I could have started this in portuguese. Most probably it would increase the amount of blogposts I could write. But in the other hand, I use english at work daily. I can handle myself quite good but sometimes I got stuck trying to explain some idea. I have to argue about code and decisions related to that everyday. So I think writing this in english is a way to make me practice and improve my expressivity in english.

Conclusion

So that's it. Now this shit is moving foward. While I write this the only things that are missing is buying a domain and host this code.