This is a “recycled” post: I intended to publish this at the beginning of the year. However, on the personal side, this 2024 has been a little bit rough, and after a loved one passed away in April, I struggled to make any efforts beyond what was required to perform my work.

Luckily, on the professional side I had a great support from everybody at KrakenD that helped me navigate those personal issues.

Trying to pick up some habits

At some point I found that even not being in the right mood many days, I would need to make some moves to bring back some habits.

On June I decided to try to be more regular at exercising, and decided to hire someone to plan my trainings for running (something that I enjoyed a lot when I was in the right mood). That was great! The obvious benefit is to not need to think about what exercises to do each day. But the best part was becoming accountable: I reported every day to my coach with the output of my heart monitor. If a day I was not in the righ mood, I worked out: not because I was paying to have the planning, but because I respect the work the coach was doing for me (it would not have worked this very same way if I was actually paying for an App to do the plans). On September I was able to finish a half marathon trail for the first time. I want to keep training, and I consider this an acquired habit.

Now I feel like I am ready to pick up some new habit: it might be a side project, or it might be learning something new. The point is if I will be able to find someone that performs the same role than my running coach.

For now, the initial intention is to document whatever I do in this blog. It might not be as effective as having a coach, but is worth giving it a try while I search for a way to be accountable on these other topics.

Side Projects

In the past I thought that having side projects could be a symptom of not being happy or satisfied at work: a side project might be the way to work on “more interesting things”.

Now, I see that is not the case. I really enjoy my job: working on KrakenD I enjoy my work environment, my very supportive mates, and I really like working on features and improvements on the API Gateway, because I also keep learning new things.

However I still would like to bring some of my own ideas to life (or perhaps learn things that I will not apply to my day to day job).

One thing that has been on pause for a long time is my sendrules.com project: a system to send localized and personalized notifications.

I also have the idea to have a separate small project that makes use of that service: this way I can find pain points to solve, and any usability issues it can have (but that is a topic for another post).

Learning

I’ve been playing from time to time with some Rust, and some embedding programming with it, so I might want to pick it up.

However, initially I will try to focus on the side projects, and depending on how things evolve I will see if I can embrace more stuff.

I have also have some very old half-written posts, that I need to clean up and made them public (or I should delete them from this repo).

No more meta

Up to this point, the post has been more a declaration of intentions (I should be ashamed if I do not deliver .. but that was the point, right? to become “accountable” to the blog).

Some from this point, all that I will write to this blog will be about acomplished things and learnings rather than things I want to do.

So, for a minimal intruduction, here it goes “from pelican to hugo”:

From Pelican to Hugo

This blog will be powered by Hugo and the PaperMod theme.

In the past I had it working with Pelican, that is python based, but having the virtualenv not working on some python updates made me switch to Hugo. A part from that, no had no complains about it.

I do not plan to spend a lot of time making improvements here: I just want to be able to write some “reports”, post some code, and some images. That’s all !

testing the blog feats

Like some piece of code that is good:


pub fn run(input: Vec<String>) -> i32 {
    let mut total_fully_contained: i32 = 0;
    for ln in input {
        let mut sp = ln.split(",");
        let first = sp.next().unwrap();
        let second = sp.next().unwrap();

        let mut fsp = first.split("-");
        let f_a = fsp.next().unwrap();
        let f_b = fsp.next().unwrap();

        let mut ssp = second.split("-");
        let s_a = ssp.next().unwrap();
        let s_b = ssp.next().unwrap();

        let v: Vec<i32> = vec![
            f_a.parse::<i32>().unwrap(),
            f_b.parse::<i32>().unwrap(),
            s_a.parse::<i32>().unwrap(),
            s_b.parse::<i32>().unwrap(),
        ];

        if (v[0] <= v[2] && v[1] >= v[3]) || (v[2] <= v[0] && v[3] >= v[1]) {
            // println!("{} {}     {} {}", v[0], v[1], v[2], v[3]);
            total_fully_contained += 1;
        }
    }
    return total_fully_contained;
}

to check the syntax hightlighting ;)