Using Liquibase with Kubernetes

Using Liquibase with Kubernetes

If you’re using Liquibase for database versioning with Kubernetes to deploy your app, you might have faced an issue when a migration gets stuck because Liquibase can’t acquire lock. It might look somewhat like this:

liquibase.exception.LockException: Could not acquire change log lock. Currently locked by LockOwner ... at liquibase.lockservice.StandardLockService.waitForLock(StandardLockService.java:236) at liquibase.Liquibase.update(Liquibase.java:184) at liquibase.Liquibase.update(Liquibase.java:179)
Code language: Properties (properties)
Continue reading
How to unblock yourself

How to unblock yourself

It’s not uncommon for a software engineer to find themself blocked. The reasons might vary: it could be a high uncertainty, when it’s unclear how exactly to implement the feature; or it could be a tech decision to take having multiple options with their own pros and cons. With this article I want to share the way I take decisions in such cases and how it might help you to unblock yourself.

Continue reading
How to control ThinkPad P14s fan speed in Linux

How to control ThinkPad P14s’ fan speed in Linux

Recently I got a new laptop for work – Lenovo ThinkPad P14s (Gen 2). I prefer running Linux on my working machines, and this one is not an exclusion. While using it I noticed that the fan speed is sometimes too high for no reason creating undesirable noise. Here’s how to control ThinkPad P14s’ fan speed in Linux using a nice tool – thinkfan.

Continue reading
Ubuntu 21.10 Impish Indri

Ubuntu 21.10 and acpi-call-dkms bug

If you’re using a ThinkPad laptop with Ubuntu Linux, you might be probably also using a package called acpi-call-dkms. This package installs a kernel module that provides a way for software to do ACPI calls. One of the most popular program to use it – is TLP.

Unfortunately with the latest release of Ubuntu – 21.10 Impish Indri this package is partially broken, as it doesn’t seem to work with Linux kernel 5.13 because of a bug.

Continue reading