Skip to main content


Welcome to the Yodeller: my ongoing project to try and write something every day. You can read more about the background from here. If you are a new reader you might want to start from the beginning.

Cold starts

Serverless architecture has many advantages compared to a more traditional hosting solution. It however isn't perfect either. One of the best things of it is the pricing model. Instead of paying constant fee for fixed amount of resourses, even if there is no usage at all serverless functions are billed on usage basis. Every execution is counted and if there are no executions there is no cost either.

Sounds great, but companies offering serverless hosting aren't in it for charity. They aspire to optimize the lifetime of your function environments to be as short and efficient as possible. This means if there are no other calls to your function within certain amount of time your functions execution environment will be shut down. Later, when the next call comes in, if there are no running excecution environments one needs to be started. While these environments are extremely lightweight containers it still takes some time to start them up. Even the lightest functions with practically no dependencies take a few seconds to load.

When there is constant traffic to the site, and hence constant calls to the functions this is not an issue. But when there is less traffic and users the cold start will occur more often. On former case putting every function on it's own environment is a good choice. On the quieter sites it's a bit trickier. You could put everything in one environment, ensuring that an individual user only gets a single cold start. All calls during their session would be handled by that same environment. On the other hand, it could be better to split the functions on their own, ensuring that the cold starts are always as short as possible even if the user might experience a few more of those.

Just when you thought it's over

Warning: contains spoilers for the Etherfields boargame!

Couple of days ago I wrote we are at the endgame of our Etherfields core box campaign and would be soon out of things to play (in this game) until the second wave shipment would bring us the additional campaigns included in the extension packs.

We finally have all the keys. We face the final dreamgate, the gate to home. We place the keys into the locks, turning them one by one. Slowly, the door opens, revealing a familiar path - the road home.

This is it, the end. We are home. Everything is just as we remembered, jus the way it should be. Tired, we head to bed.

In the morning we wake up. Everything still looks normal... until we look through the window, out into a twisted landscape.

We have just waken into another dream.

I have to admit this got me. I was anticipating the ending. The last scenario felt a bit of a let down: no epic boss fight, not even challenging puzzles. Just an ordinary walk back home. Until we read the scenario ending: this was just the end of part one. Still perplexed we thought the story would continue on the extension campaigns. Almost starting to put the game away I decided to check the remaining content we didn't uncover during our play. Wait! The next scenario is here. Seems like most of the remaining content is after that. Is the next part still here, in the box?

So it's not over yet. We have still plenty to play until the core box is done. I was already happy the game provided entertainment well worth the money, and then there is even more!

Virtual events

I participated yet another virtual event yesterday/today the LeadDev Live. It used to be a great conference, kinda still is as the content and quality is really top notch.

While I enjoyed the content I still don't get the event aspect of these virtual substitutions. I could as well be watching a recording from real event. Doesn't feel any different than that. It just doesn't convey the atmosphere of actually being there, meeting people and having that together feeling. I miss that. I hope there will still be on-site conferences after the pandemic is over and we return back to normal. And I say this as an introvert.

Maybe it's the introverted side of me that makes these virtual meetings feel so distant. People at the normal gatherings are already distant to me so trying to be present virtually is just too much to feel the connection

It's almost time to wake up

Our campaign through the weird and twisted dreamworld that is Etherfields is closing it's end. Today we were able to acquire the last key needed to unlock the final dream gate and (hopefully) our way back home.

It was only two months ago this huge box arrived to our doorsteps. Promising 50+ hours of gameplay I wasn't expecting us to stride all that content anytime soon. But here we are almost through it all. And it's not like we would have been rushing through the game either. There is a lot of optional content, sidequests to explore and secrets to unravel and we have tries to uncover it all. Despite, looking at the box for the remaining stuff it seems we have still missed quite a lot.

It has been a nice experience overall and it's a shame it is now coming to an end. Luckily there is already the next campaign game waiting on the shelf: Tainted Grail. I hope it will give us equally interesting couple of months (there is actually even more content on that one). If not, the second wave of Etherfields should ship sometime this year with three additional campaigns to dream through.

The other writing streak

It has now been two months since I got Writestreak in stable enough state that I was able to start using it as my primary platform. It wasn't that many days earlier when I started another writing streak: writing code for the Writestreak.

Unfortunately I can't say that it has lasted. As of today I have committed code for this project on 58 different days. There has been a couple of breaks, mostly during Christmas time. The best one I had was in the early days. After getting the working MVP out I had a small break, but after that there was 33 days straight when I wrote code every day. The current streak has been holding for 18 days now. Not long anymore to break the record for this one.

While there might be plenty of things to write for now I doubt this streak will last indefinitely. At some point there wont be that much of any meaningful work to be done on the site, or it just gets too boring maintenance stuff that I'll need a break. But hey, I can always start another rewrite if nothing else 😆... or maybe I could come up with another product idea to focus on. After all, it could be rather productive streak.