Posts about Misc
-
Running 32-bit Images in GitLab CI
A thing that was not obvious to me and relatively hard to google was a way to run a 32-bit docker image in the GitLab CI. Docker itself has
--platform
param but it is not exposed to the.gitlab-ci.yml
file.Luckily it's easy for the official Docker registry. Apart from auto-selection images, it also contains per-architecture image repos with distinct package names. You only need to specify a desired architecture prefix: like
amd64/php
ori386/php
.Example:
.test: script: - composer update - vendor/bin/phpunit test-64bit: extends: .test stage: test image: amd64/php:8 test-32bit: extends: .test stage: test image: i386/php:8
or using the matrix:
-
Resizing small EFI partition
It started with the firmware failing to update because the EFI partition was low on free space. (Dell, why do you need 70 MB on the EFI while also making it as small as 150 MB at the same time?) Well, resizing the partition is the obvious solution except it ended in a wonderful error message:
(spoiler: they're not)
In my case the GPT partition was resized, just the filesystem was not grown, I only needed to reformat it.
-
GPL Incompatibility
"GPL incompatibility" of a FOSS license is not a problem of the incompatible license, it's the problem of the GPL. Most permissive licenses and file-based copyleft licenses can be used together in a project without any conflict and that's great. It's GPL that doesn't like any neighbors.
-
LGPL is a bad practice
TL;DR: Don't use LGPL, avoid library-based copyleft in general.
The closest acceptable no-brainer replacement should be GNU GPL with Classpath Exception, but the concept of library-based copyleft itself is flawed. It's better to consider MPL (less copyleft) or full GPL (more copyleft).
-
Python Type Hints
Python type hints are garbage.
-
No Discrimination
In these uneasy times I just want to remind to all these passionate activists around that there are other ethical points beyond any given "today thing" even when the today thing is truly horrible.
The Open Source Definition states that open-source software must comply with the following criteria:
5. No Discrimination Against Persons or Groups The license must not discriminate against any person or group of persons.
6. No Discrimination Against Fields of Endeavor The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.
So whether you are breaking these rules for fun or showing your political position, you should remember:
It is not as fun as it seems.
You are not hurting the people you hate, you are hurting the open-source community.
-
sass-hsv
I haven't found a nice small helper for HSV/HSB color format like the one LESS has so I published my first npm package.
-
TOML vs YAML
So... Let's compare.
-
Open Letter in Support of Richard Stallman
https://rms-support-letter.github.io
Please even if you do not agree with him politically but still don't like that raging mobs decide for others, sign the letter here: https://github.com/rms-support-letter/rms-support-letter.github.io/pulls
-
OTP Links
Have you ever seen an one time password link in a regular
<a>
tag?Here is an example TOTP link from Google Authenticator repo:
otpauth://totp/Example:[email protected]?secret=JBSWY3DPEHPK3PXP&issuer=Example
The most familiar form for them is QR codes:
Which is a problem if you're alterady on your mobile device and you can't scan it. For this case there is usually a text like "Please manually add the key
JBSW Y3DP EHPK 3PXP
to your Authenticator app". But what about the link itself? Well, just try it on your phone: click me.I'm really shocked that it works perfectly and that I have never seen this simple and very web style solution in action.