Maksym Prokopov personal blog
Idea is a something worth sharing

Emacs, apple keyboard, and RSI

07.06.2022
Recently I’ve started investigation on the most effective shortcuts for Emacs. Already for a long time I’ve been using Caps Lock remapped to Esc when pressed alone, and Ctrl-Key when pressed with any other key. I didn’t use Emacs with native bindings for a long time, because of wrist related issues, which immediately appeared after using pinky for pressing long chords which normally included Ctrl-C combination. This is why I used Spacemacs and later Doom Emacs as the configuration of choice.
Read More…

SRE concepts

13.12.2021

Update: I added several key things recently after started implementing SRE concepts in Billie.

Site Reliability Engineering makes sense only if you bothered with Reliability. It doesn’t bring you much value if the most significant thing at current stage is delivering new features, say in recently founded startup this is probably not a good time to start with SRE.

SRE is a way to balance between the product Stability (Reliability) and Changes you’re going to make to the product, as changes are the most frequent root cause of the bad events. The core concept is when your changes breaking your product too much, you probably need to stop delivering these to the production and focus on stability. In order to switch the focus timely, you need to establish and track stability metrics. Also you need to define steps you going to take when stability promise to users about to be broken.

Let me share my thought after completing this superuseful SRE Course.

You need to make several steps to consider SRE path.

  1. Think what makes user unhappy using your services.
  2. Decide on metrics that reflects user happiness and start gathering it.
  3. Create plans on how to maintain the service level target and policies describing what you going to do when situation become dangerous to achieving your availability targets.
  4. Create plans for improve these metrics.
  5. Act, measure, reflect, improve.

Little bit clarity on abbreviations those used by google guys.

SLA - service level agreement. This is the service perception boundary you shouldn’t cross. When user considers your service as bad, you didn’t match his expectations, so either you didn’t set proper expectations or you breached your promise on the service quality.

SLO - service level objectives. Same as SLA, but this is only internal promise and compass to meet user expectations, and this is a bit more tight because we don’t want to dissapoint user by breaching SLA.

SLI - service level indicator shows how you meet user expectation in some point in time. Normally this is ratio of good events to all valid events in some period of time.

How these relate to each other? Let me describe this in this little mantra.

We measure SLIs, which shouldn’t breach SLOs not to disappoint users by breaking SLAs.

How much does it cost to change driving license in Germany?

02.11.2021
I moved to Germany from Ukraine in March 2020, so I was able to use my driving license only for half a year. So I applied to driving courses in Emmendingen instead of ones in Freiburg as they have russian speaking teachers and it was a bit less tricky to get an appointment there. Anyway, it took me more than a year (probably w/o Corona it would be a bit faster) to get my new shiny German driver license.
Read More…

2021 week 29

17.07.2021

Oxid API coding days - settings management solution

23.04.2021

Recently Oxid has presented the GraphQL API support and announced a hackathon-like event.

This experience was really refreshing and interesting. Having tight timeframe and some task in hand it was challenging to distribute efforts and get in sync with participants.

Our team had to deliver unified settings management solution like Google Chrome or Firefox has for numerous different things.

Read More…

Late binding

13.04.2021

Late binding is a very precious idea.

Example:

Say, you have a docker image someone decided to use for the development. One created a huge bundle with all tools, bells, and whistles.

As time passes and you try to use it and then you miserably fail. Dependencies don’t met requirements anymore, most of the tools are outdated and should be bumped to newer version, initial SQL data has been changed and etc.

Configs are hidden and manipulated in docker image, composer.json is outside and you end up starring at this pile of crap.

Read More…

Linkedin, what are you doing? Stop it!

09.04.2021

Recently I’ve checked this website and styling became really aweful. After my digging it turned out one little busty thing was doing the crap.

Official Linkedin badge! Overrides default link styling!

<script type='text/javascript' src='https://platform.linkedin.com/badges/js/profile.js' async defer ></script>

The easiest way to turn it off is to change type=‘text/javascript’ to just ’text’.

You have also been decreasing my lighthouse score. Bye-bye little nasty thing.

On Datomic dark sides

07.04.2021

I love datomic. Datalog is a definitely something noteworthy and even if you never going to use it in your projects, still it is worth getting your hands dirty. Despite all Datomic bright sides, there are some thoughts bothering me since I started using it more extensively in my pet project.

Read More…

Smalltalk and its descedants

27.03.2021

The Smalltalk is an extraordinary language. Firstly, this is a mother of all OOP family languages. Secondly, Java was invented as alternative for payed (sic!) programming language Smalltalk, and if IBM won the race with Microsoft a that time, things might end up very differently and Smalltalk could still be a hype.

Initially I’ve been exposed to Ruby, but only with Smalltalk I finally grasp lot’s of ideas in Ruby, so as the roots of the syntax.

Read More…

org-roam ideas

04.03.2021
I love talking about ideas. org-roam has quite simple idea for organizing your knowledge. I didn’t believe it works when I gave it a try. The essense of the Zettelkasten method is following: Keep your notes split apart in one single folder. Insert tags and backlinks to group notes together. That’s it! What is so special about this? Let’s say I started moving all things from my backlog pile into separate small notes and I started to breath again!
Read More…