Back to Work
Contents
It’s been a bit longer than what I thought. My last post ended up with the ‘see you soon’ phrase… Well, that’s not the ‘soon’ I usually mean when saying that. Thus here’s my apology for whoever could have waited for the new content.
Let’s see if I could get back for a bit longer this time ;)
What has happened?
Why I did stop? Well, no surprise - “usual” life stuff, not enough time spent with family, new job, focusing on other things…
Why I’m getting back? Not yet sure. We’re in the middle of covid-19 pandemic and it’s somehow connected. Not that I have plenty of free time now, rather the opposite - due to its nature, my current job requires even more attention than before. It’s rather caused by some hard times I recently went through, loss of someone close, amplified with all those changes required by the isolation. What I’m able to realize now is that I need to focus my thoughts on something like Cinode just to keep some healthy internal balance.
Let the “therapy” begin then…
Incoming changes
There are few small things I wanted to change before moving forward. Let me briefly describe those here.
New blog style and conversion to hugo
I’ve changed the visual style of this blog, the old one was a bit rusty. Also I tried to work with something different than jekyll which I previously used. Right now all is done with hugo. I could’ve been biased by the fact that it’s written in go, but overall this generator turned out to be pretty powerful and lightweight. And it’s doing the job really well so far.
New automatic pipeline
Source of this blog is hosted on my own private gitlab instance. It works as expected, builds the content of this blog and few other things (more below). The clue is that updating the content is pretty automated now - hope this will help me iterating much quicker.
Some new rules
I was already working on a new content back in 2016 after my previous post was published. I tried to implement another logical step in the design/implementation of Cinode. However the implementation turned out to be rather complex. I faced multiple corner cases which forced me to rethink the solution each time, I believe to have succeeded on my third attempt if not fourth (don’t remember now, that was loooong time ago).
When I finally created a working solution I was very satisfied with it (of course). Those algorithms seemed “perfect”, all small tribes working correctly. But it was lacking one essential property - I didn’t feel that all that complexity was necessary. Especially at the current stage of the project.
Now when I’m able to take a step back and see the big picture I’m 100% sure that I should start with a smaller step. No fancy algorithms as long as those are not needed. I should always try to find the smallest feature and implement it. That way I’ll be able to control the overall complexity in much controlled way. That way I’ll be able to avoid unnecessary robustness.
I’ve thrown away the complex machinery that was created few years later (and believe me, it was hard to figure out what was going on in this code after just 4 years while I tried to read it) and started looking for the next smallest thing I could make. That’s what I hope to be doing moving forward.
Always usable proof-of-concept
Every small step I’m doing should be practically checked. That’s why I’m going to have some working software after each solved theoretical puzzle.
My first move will be to serve this blog through Cinode. Everything that makes this page compiles down to a static set of files after all. The generated website is not that trivial - a bit of css, js, html here and there. Each page view will fetch multiple resources from the server. Thus it’s easy to figure out whether the Cinode-hosted blog works fine by just looking if it renders correctly.
Author BYO
LastMod 2020-05-20