https://www.gravatar.com/avatar/306d401b2a8c0efe0996fec60e0c90aa?s=240&d=mp

My coding journey

Disclaimer: it's just for fun

Lox interpreter in Rust

One day when listening to one of Jon Gjengset videos I felt inspired to build something in Rust using https://app.codecrafters.io/catalog page. As a Rust beginner and self-diagnosed ADD thought my inspiration would not last long.

Interestingly, I continued with tasks day by day, slowly making progress till the end (of the beta version available for free). At the moment my interpreter is comfortably sitting in the GitHub repo and you can see the mess I did there.

My new toys - configuration weekend

New tools

I thought I will give a try and install two applications:

  • alacritty - terminal emulator - almost 55k (!) stars on GH (I need to find out why)
  • zellij - which is a “terminal workspace with batteries included” (hm, why it is so popular?)

In the meantime, I also try out:

  • broot - file finder/browser (just checking if I need it, I’m rather happy with fzf defaults.
  • yazi - which is ranger alternative written in Rust (“Blazing fast terminal file manager written in Rust, based on async I/O.”)

My playground

  • I’m trying out alacritty. Installs without issues on ubuntu with snap. Works just fine. I don’t know why people love alacritty so much.
  • I remember I needed to download zellij, but now I found it on snap;
  • broot is strange and confusing, I played a little with it, it has its potential, I probably need to learn about it more
  • yazi looks nice and promising; it is sooo much faster than ranger (which is witten in Python)
    • however, I need to find out how to change the default configuration of alacritty or yazi so that .png files can be rendered somehow inside the terminal without launching feh or eog
    • (3 mins later) I found this note saying I need to install Uberzug (sounds German and scary, how can people use German unwelcoming names for thei software, I don’t get it.)
  • I also enabled Caret Browsing in firefox to improve working with keyboard only.
  • I watched “How to useand configure Alacritty” by Eric Murphy
  • then The Algorithm just took me over and I started watching, in order:

Dopamine levels: through the roof… …wait and calm down! No, you’re not jumping into Obsidian plugins right now! Hold your horses!

I'm average

I am certainly not a 10x programmer. Am I T-shaped? PI-shaped? Or perhaps I'm just quite average, nothing special, doing my job type of developer. Who and on what basis is doing the evaluation? What's being mesured? What can be measured?

Rust and software security

Rust - again

I have no idea what is causing that: I am starting to learn Rust for - I think - a third time. Perhaps it is the Youtube bubble in which I’m flowing that is suggesting Rust-related videos; perhaps it is my ADHD brain trying to find something “new” after it got bored with Kubernetes training which took me too long. Whatever the reason, here I am, read to dive in.

The stoic developer

The Stoic Developer: Delivering Value with Focus and Serenity

As software developer and contractor, I see the how fast the world changes:

  • we’ve barely migrated our codebase from java 8 to java 17 whereas java 23 is going GA in two months time
  • we’re constantly prioritizing the releases required to fix vulnerability issues
  • other functionalities suffer from tight deadlines
  • requirements are evolving “by default” in the “agile process”
  • libraries are upgraded, new frameworks are created, software conference videos and podcasts are uploaded
  • daily.dev, reddit and hackernews are dangerously pumping up my fomo levels In this whirlwind, it’s easy to feel overwhelmed - it is true for me and for my colleagues in the team: our work can suffer.

Here’s where ancient Stoic philosophy offers a surprisingly potent toolkit.

Is it burnout, or I'm just sick?

I have an issue

Staying focused on my job became so hard that I started exploring what is happening with me. What are the signs of my strange condition? Every few minutes I feel an inresistible urge to get up my chair ang go somewhere. Unfortunately, since I’m working from home, the “somewhere” means “to the fridge” so I’m constantly eating. Not good.

It looks like my level of stress or boredom is so high that all my mental systems nead a break and have to engage in something different. So I get up. Eat or drink. Clean the toilet. Set up the washing machine. And finally, chased by my conscience (whispering: “what the hell are you doing?”) I come back and sit at my desk, defeated, unmotivated, guilty. Not good.

How to explore a new codebase

How to start exploring a new codebase

Have you ever thought about a situation when you are dropped into the middle of a huge codebase and you need to somehow make your way through it? For example:

  • you were assigned to a new project
  • you switched teams
  • you were hired as a contractor or maybe
  • you want to start working on a free software project hosted in a public repo.

The question

How should you even start? What to look for? Sometimes the amount of related projects, the vast tooling or huge amount of documentation may seem just overwhelming.

Java, Go, Rust - comparison

How do Java, Go and Rust compare? Let’s dive (but not too deep) into Java, Go and Rust. Let’s compare common aspects of those languages, their popularity (Java wins), check how typesafe they are (Rust wins) and which is preredred (betwee Go and Rust, Go wins).

2023 and 2024

World

A lot has been happening in the world when you look at 2023

  • Ukraine - Russia war, Hamas - Israel war
  • Finland joins NATO
  • India exceeds China in population size
  • India lands on the moon’s south pole (Chandrayaan-3)
  • Banking crisis (buyout of Credit Suisse by UBS in Switzerland)
  • First AI Safety Summit

Just go and look at 2023 in Wikipedia, it is a really fascinating summary.

Predictions

Near the begining of 2024, a lot of people and organizations on the web published its predictions related to most promising/important technologies or trends.

Docker exercise

No amount of Udemy courses is satisfactory unless you start to solve your problems. So yesterday I created myself a problem:

Write a commandline application, dockerize it, use it, push it to dockerhub.

It seems like a very humble endeavour, and I had a lot of fun anyway.

Golang app

I’ve learned that in order to write to a file I can use os.Open call which takes flags and (hex) permissions: