# Techy blog of Kalle

I rant, I devlog, I guide. Don't expect anything serious, although sometimes there are golden nuggets.

## Quay.io vulnerability notification to Microsoft Teams

Quay supports custom notifications based on different criteria. With the webhook notifications, you can tailor the notifications to integrate with almost any service.

Here I'll show you how to set up Quay –> Microsoft Teams notifications, such as when vulnerabilities are detected.

## Unwanted features in YouTube and software

YouTube has some annoying features. Some of which I am thankful for because they annoy me so much that I leave the platform and go do something else as I don't want to waste too much time on there anyway. But is there some kinks with its software that you as an UX designer or software developer could take use of?

First off, let me just rant a little about what I dislike, in descending order of how much I hate them.

## Embed link.xml in UPM package (Unity3D)

In Unity (the game engine) you can tell the compiler not to strip away certain parts of your code, or to “preserve” it to use the correct term. You do this either with a [Preserve] attribute, or with a link.xml file.

Up until recently, it was unknown how to include such a link.xml file inside your UPM packages, as it had not been documented. Big thanks to maksimbu over at the Unity forums who did the most RnD here.

You have two main options:

1. Add a section to your README.md telling your users to create a link.xml file themselves in their Assets/ directory and add given content you specify.

2. Embed your link.xml inside a precompiled assembly (DLL) inside your package.

We will be going through option 2.

## Podman v3 + docker-compose on Ubuntu (Xubuntu) 20.10

This was done on a Xubuntu machine. Not in WSL. May or may not work in WSL. Please message me on @kalle@javisst.space if you get it to work on WSL.

I'm just documenting how I got it to work, with the various sources in each section in case something gets outdated.

## Be thankful for two hands

One of those “you better appreciate it until it's gone” kind of a deal here. I two weeks ago cut open my right hand knuckle down to the bone and had to sew it. During this healing period I've been single handed, and it sucks. Unless you're already single handed, consider the luxury you have right now of not lacking a hand.

## Hiding my blog?

It's an interesting concept. The more I hide it, the less restrictions I have on when writing for it. Even when I think I don't have any restrictions.

I'd like to just post from my heart, but when all you (me) who's reading this could be anyme, then is there a chance I will get hurt?

## Choosing lang for new project: flog

I see you hating on the name already, but stop that. I'm already in love with it.

Filter-logs: flog. A command-line utility to filter logs depending on if it's an error, infromation, trace, debug, or wheatever kind of severity. And yes, especially for multiline logs!

Sample use case:

# Only give me the <1 day old logs from fileOutput.log
$flog -t 1d fileOutput.log # ...or what about only error logs$ flog -s error fileOutput.log

# Only show me error logs from dotnet run
\$ dotnet run -v m | flog -s error


Would be so useful, and not that complicated to make, right?

I've not found any such tool online, so let's just make one of my own. But what language?

## When to use quotes in bash

Short version: basically all the time, except when using keywords or operators.

But let's dig into the whens and wonts, as it is difficult to guess as a newcomer to bash.

Läs mer...

## Setting up WriteFreely with Nginx & Let's Encrypt on Ubuntu 20.10 (Groovy Gorilla)

Please dedicate 1-2h of your time for this guide. (Given you follow it from top to bottom.)

WriteFreely, the software that's hosting this blog, is a marvelous peice of software.

My personal quick list of best features:

• Write in Markdown (even has support for MathJax, though I do not use it)
• Simple auth
• Supports both single user blog, and multi user blog.
• Suuuper clean frontend design.
• Open Source, written in Go, so I'm already feeling inclined in submitting some PRs.
• Low memory & CPU footprint (Currently using 175 MiB RAM and 0% CPU while idle.)
• Simple setup (for the most part, as we'll discuss in this post)
• Support for ActivityPub (Fediverse)

The last bullet there about ActivityPub; you better lookup what it is if you're not aware. Google/DuckDuckGo/Yacy/search for it to get a grasp what it is. Spoiler: It's very cool. Let's dig into how to setup an instance of your own!

Läs mer...

## Rewriting a compiler, for work, as an intern

When searching for internship via school I found this small startup with this cute project of building a teaching tool for programming. There were back then 2 programmers: the founder and the co-founder.

Then like 1 week before the internship started, the co-founder had a burnout and had to get off the project, while the company was so low on budget the founder, aka my new b0ss, had to work separate jobs to keep the company alive. (quite metal tbh)

It's funny because I'm a junior developer, 100%. I've been coding as a hobby for around 8 years now but I've never worked in a big company before. (No exception to this workplace either)

First project I get: rewrite the compiler. The Python compiler. “But wait, why not just embed a real compiler from the first case?” -nanananana it's never simple, as you probably know from your own projects.