-
Using systemctl to control remote systems
Today I learned that the systemctl-CLI can be used to manage remote machines using the -H parameter without any special setup. systemctl will just utilise SSH to connect to the remote machine’s systemd services.
-
Why is it UTC?
Today I learned that UTC is called UTC, because people in an international committee tried to prefer no language.
-
Teetotalism
Today I learned about Teetotalism, a practice of personal abstinence from alcoholic drinks. Basically veganism, but about alcoholic drinks. The reasons for people practising this, are diverse and range from religious believes to simple preference.
-
Spocking money
Today I learned that “spocking money” is a thing in Canada. Apparently people keep drawing on $5 bills to make the former Prime Minister depicted on the bill to look like Mr. Spock from Star Trek. While not considered illegal, its frowned upon by the nation bank and might cause...
-
The iceberg shot
Today I learned that the famous iceberg shot, that is so famous on the internet and in marketing, is a composite of 4 images with none of them taken underwater.
-
Knot Theory
Today I learned about knot theory. Knot theory is a branch of maths that studies mathematical knots. The mathematicians that invented knot theory started to map out the space of possible knots and study their properties. The basic definition for a knot is, that it’s a closed loop in a...
-
Why ice is slippery
Today I learned that ice isn’t slippery due to pressure or friction but rather due to molecule structures on an atomic level. I also learned that ice colder than -100°C isn’t really slippery and the warmer ice gets the more slippery it becomes as part of a pre-melting phase up...
-
popd and pushd
Today I learned about popd and pushd, which are command-line tools to switch directories while having your shell remember in a stack construct the order of the directory changes. Very similar to how cd - works to switch between the current and previous directory back and forth, pushd and popd...
-
Purdue diagrams and optimising traffic flow
Today I learned about the way the City of Enid does traffic flow optimisation, what a Purdue diagram is and how these are utilised to optimise traffic flow.
-
FluxCD SOPS and ignored MAC
Today I learned why FluxCD doesn’t validate the MAC provided by SOPS during secret decryption. In general SOPS not only provides secrecy for encrypted files but also integrity. This is done by hashing the content and signing this hash with a secret used for decryption. However, it became obvious to...
-
Nginx Connection Limits
Today I learned that nginx connection limits for HTTP/2 and HTTP/3 are not actually counting TCP connections, but concurrent requests, as described in the documentation. While for HTTP/1.0 and HTTP/1.1 browsers usually open up to 8 connections, in HTTP/2 a browser usually opens just 1 connection and uses streams to...
-
StatefulSet Revisions
Today I learned that the revisions from StatefulSets and DaemonSets in Kubernetes are stored in ControllerRevision objects. These revisions allow to rollback StatefulSets using the kubectl rollout undo subcommand. This is drastically different from Deployments, which store their revisions in ReplicaSets. This is not necessarily obvious since Pods of a...
-
Static build perl
Today I learned how exactly one builds a “static” perl binary from a regular perl script using pp. While I have some experience writing perl scripts, it was semi fun to dive into it again after so many years, just to proof a point and build cowsay as a “distroless”...
-
Let's Encrypt CAA parameters
Today I learned that Let’s Encrypt (LE) offers the ability to limit the validation methods used to generate a TLS certificate. This helps to reduce the effectiveness of MITM attacks. In order to do that, LE offers to add a flag to a CAA record that selects the allowed method...
-
systemd-creds
Today I learned about the existence of systemd-creds a system-level keystore that automatically utilises a TPM if present. This allows to store and load credentials for systemd and other system services using dbus or the systemd-creds CLI.
-
Linux kernel CFS metrics
Today I learned how to properly interpret the CFS metrics the linux kernel provides. CFS is the “Completely Fair Scheduler” in the linux kernel, that is taking care of assigning processes to CPU cores. It’s an important element of containers and therefore Kubernetes, by allowing to limit CPU time spend...
-
Reflow paragraph in vim
Today I learned how to let vim reflow a paragraph according to the currently set text width. This makes plain text files much better readable. The vim command to use is gwip or gwap. The gw at the beginning, tells vim to reformat the lines the cursor is going over....
-
systemd-resolved cache busting
Today I learned that one can simply cache-bust a specific record in systemd-resolved by using resolvectl query --cache=false example.com.
-
Unifi Smart Queues
Today I learned that “Smart Queues”, the Quality of Service integration for Unifi devices, on a “Unifi Dream Machine” can drastically impact your connection performance. To put this into perspective, that expected speed on this connection were 100Mbit/s down, 40 Mbit/s up. Before disabling the “Smart Queues”-feature any speed test...
-
Calico interface confusion
Today I learned that calico can easily get confused about its primary interface when adding a VPN interface to the host. Calico automatically detects the primary interface of a host and uses this interface to build its overlay network using IPIP, VXLAN or wireguard. This can result in unexpected behaviour...
-
Wiretrustee - fun for wan parties
Today I learned about Wiretrustee, a “simple” management interface for mesh wireguard session management. Wiretrustee is a (self-hostable) service to build mesh VPN network with a simple setup. They provide clients for Windows, MacOS and Linux making it ideal if you want to play an old game with friends that...
-
DNS CNAME shenanigans
Today I learned that using CNAMES in combination with /etc/hosts can be a really powerful tool and a cheap way to build a split-DNS setup. The way it works, is by using a CNAME for the target domain(e.g. example.com) and adding the reference (e.g. cdn.example.com) with a local IP into...
-
The French flag
Today I learned that the French flag, the tricolour, has changed on 13th of July 2020. No substantial change, just a switch from the version introduced in 1976 that had a slightly lighter blue and red, to match the colours of the flag of the European Union, to the original,...
-
Expensive beards
Today I learned that “Emperor Peter I of Russia” wanted to bring his citizens closer to European culture and considered their beards a problem. Therefore he introduced a beard tax that depended on their income and provided them with a “beard token”, which would authorise them to wear a beard,...
-
Git - includeIf
Today I learned about the includeIf instruction in git configuration, which can be used to add conditional includes based on paths and alike. This makes it perfect to be used in your global git configuration to adjust your identity for work and private contributions or internal and external contributions.
-
Skipping the first line
Today I learned how to skip the first line in a shell output using tail. It’s as simple as tail -n '+<line to start>'. For example tail -n '+2' for skipping the first line.
-
Ranking your container registries
Today I learned how to rank container registries used in a Kubernetes cluster using Prometheus. Using the query below, Prometheus can provide you with a list of all container registries your Kubernetes cluster currently depends on, based on all existing containers running on your cluster. This can help to assess...
-
A first impression on Endless OS
Today I learned about the defaults in Endless OS. The Endless Foundation, the organisation behind Endless OS, states that their mission is to “help all people and communities connect with technology” and their OS is targeted at schools and children. When starting the OS, Endless OS provides children with Facebook,...
-
Hetzner Fedora Cloud image with bad SELinux defaults
Today I learned that Hetzner’s Fedora cloud image, which allows to deploy a machine with Fedora on Hetzner cloud out of the box, is starting with SELinux in permissive mode, instead of enforcing. As a result SELinux doesn’t protect the system, just writes logs about this. From a provider perspective...
-
Firefox WebRTC pop-up
Today I learned that one can disable the rather annoying WebRTC pop-up. In Firefox in about:config using the privacy.webrtc.legacyGlobalIndicator and setting it to false.
-
openshift-installer is not openshift-installer
Today I learned that there is a significant difference between the openshift-installer binary that is provided by Red Hat for their OCP version of OpenShift and the openshift-installer from OKD, that provides the free software version of OpenShift. The most noticeable difference is, that the OCP version of openshift-installer is...
-
Installing system f-droid manually
Today I learned how to how get the f-droid privileged extension working on my LineageOS 17.1. The steps are quite simple and I will shamelessly copy them from the upstream article to preserve them outside of the forum:
-
Self-documenting Makefiles
Today I learned how to write self-documenting Makefiles which allow to write an own CLI tool using make as part of a repository. This is done, by keeping a small selection of make targets around, which get a special annotation that describes the targets purpose and will be exported as...
-
Autostash
Today I learned that I can permanently enable the autostash feature in git. Autostash a parameter for git rebase, git merge or git pull, where git will automatically stash your local changes und unstash them after it finished the action. Usually you would use an option like git pull --autostash...
-
Completeness, Consistency, Decidability
Today I learned quite a lot about the people who invented and broke our, these days, commonly used mathematical system. From Hilbert and Conway, Turning and Gödel, and many more. The basic idea behind today’s mathematical system was that based on the right set of axioms, one could proof every...
-
AppStream in YAML
Today I learned that it’s possible to specify the AppStream meta information in YAML instead of XML. AppStream is part of the Freedesktop standard and provides metadata about installed and installable application. Starting from simple information like a name and description, to issue trackers, websites, screenshots and more. But also...
-
GitLab console mass feature disabling
Today I learned how to mass-disable unused/unwanted project features instance wide using the gitlab-rails console command. In my specific case, I wanted to disable the useless “Security & Compliance” section, that is nothing more than an up-selling page in every project. Using the command below, I was able to disable...
-
The Oroville Dam
Today I learned about the existence of the Oroville Dam, which is the tallest dam of the US. The dam is located in California and is used to produce or store energy, while also protecting the areas down the stream of the Feather River. The dam experienced a spillway failure...
-
City planning and the tree patriarchy
Today I learned that in cities around the world male trees are preferred as city trees, because they produce less “litter” for the city’s personnel to pick up. As many life forms on earth, trees also reproduce by exchanging gen pools. Some trees are monoecious, means they have both “male”...
-
Timeshift and its limits
Today I learned that the backup tool Timeshift, which basically allows you to automatically take and manage snapshots of your filesystem, given you run BTRFS or LVM underneath, and provide an easy-to-use backup solution, is rather limited in its usefulness. It currently only supports the Ubuntu layout on BTRFS, which...
-
A/B-Upgrades are not enough
Today I learned that A/B-Upgrades are not enough to make sure your setup is resilient from upgrade errors. What you actually need are A/B/C-Upgrades. A/B-Upgrades leave one possible error-case in the box, that is hard to counter: A broken Updater. While there are potential mitigations, such as checking the you...
-
FRITZ!Box link local fallback
Today I learned that FRITZ!Boxes have an IPv4 link-local fallback address, in case a device doesn’t catch any DHCP configuration. According to the documentation a FRITZ!Box is also always reachable through 169.254.1.1. So if you device is ever configured using auto-IP and assigns itself an IP address from the IP...
-
Systemd and OOM
Today I learned that Systemd will execute the equivalent of systemctl stop <service> when a process of your service runs OOM by default. This will mean that you might experience a downtime, when a OOM situation occurs even though your service might can handle it, when one of the processes...
-
git blame ignore refs
Today I learned that since git version 2.23 you can add a file to your repository to exclude large commits for e.g. format changes from your git blame. With the --ignore-rev as additional parameter, you can hide single commits for this specific blame call. More useful is the use of...
-
Kubernetes default scheduler vs HPC
Today I learned that the default Kubernetes scheduler is unsuitable for High-Performance-Computing (HPC) applications. HPC schedulers provide a variety of features, that easily become a rather complex constructs, including the ability to reclaim resources, reserve and backfill jobs, etc., compared to the simple scheduling algorithm that the Kubernetes scheduler provides....
-
Mirroring to help license enforcement
Today I learned that mirroring git repositories can help license enforcement. In legal cases a mirrored repository that the original authors have no access to, can help to proof that their git history is unchanged and can be used as evidence in the case, since the mirrored repository attests the...
-
Yarn and merge conflicts
Today I learned that yarn can resolve merge-conflicts on its own. If your yarn.lock has a conflict during a local merge, just run yarn and the package manager will resolve the conflict in the lock-file for you.
-
Schroedinger's publish
Today I learned that GitLab silently drops published NPM packages due to a wrong package prefix, while yarn publish thinks it successfully published a package to GitLab’s integrated NPM package repository. The key to solve it, is to prefix your package with the exact value of $CI_PROJECT_ROOT_NAMESPACE. For example, when...
-
Nail violin
Today I learned one can build a violin with nails instead of strings. The idea is as simple as genius. You take a block of wood, your violin bow, a few nails and a hammer. You take the nails and depending on how deep you drive it in, it’ll make...
-
Sudoku without numbers
Today I learned that it’s possible to have a uniquely solvable Sudoku without numbers. Technically speaking one could argue whether it’s still a Sudoku or just a number puzzle, but the puzzle has the general form of a sudoku and just needs 3 additional rules to make it difficult but...
-
Making oxygen with candles
Today I learned, that one can burn candles to produce oxygen. Of course not your every day candles but so-called chlorate candles, which are made of sodium chlorate and iron powder. The iron powder is then enlightened to burn at around 600°C producing sodium chloride, iron oxide and oxygen. The...
-
Squirrel buddies
Today I learned that squirrels can have “friends” among each other that often stay together within a territory for an extended period of time. Squirrels are often territorial, but since those territories often overlap and provide enough food for more than one squirrel, it’s possible that some of their kind...
-
Oh my goodness, it's called packet
Today I learned that I’ve been using the wrong term for network packets, since eh… ever. For my entire life I’ve been talking about “network packages”. I have no idea how that slipped through, but somehow it did in all conversations with network engineers, sysadmins, network professors, and more. I...
-
Starlink resource waste
Today I learned about the expected TTL of Starlink satellites, which is roughly five to seven years, according to Wikipedia. In order to operate properly the network is expected to be made of more than 40 000 satellites, which, once their TTL is up, are supposed to be pushed down...
-
Package-loss in China
Today I learned about the factors of packet-loss around the Chinese internet. Internet within China is not slow. Especially in larger cities your speed-test (app) will probably show very respectable number. However when it comes to talking to “the real internet” outside of China, you’ll notice packet-loss. This originates in...
-
Words matter
Today I learned that the knowledge about a word for something has a noticeable impact on the ability to remember this thing. In a study by Jules Davidoff he showed that children and adults had noticeable higher error rates to notice and remember differences in simple colour pallets when they...
-
Cat's table
Today I learned about the “Katzentisch”, a German word which literally translates to “cat’s table”. In modern language in English as well as in German (at least in my experience), it would be called “Children’s table”. However, since the term originates in medieval times when cats were symbols for bad...
-
OpenFoodFacts
Today I learned about another food-related Android app on F-Droid called “OpenFoodFacts”, which helps to identify food and set up expectations about its healthiness. The app works simply by scanning the barcode of the product you bought or want to buy and the app will look it up online in...
-
Private calorie tracker
Today I learned that F-droid has a privacy aware calorie tracker called “Food Tracker” developed by a group at the Karlsruhe Institute of Technology (KIT). The trackers are privacy-aware in the sense that they are transparent by being open source, not including any cloud service and also being free of...
-
Nginx proxy_cache directive
Today I learned that nginx requires to setting the proxy_cache directive to use the configured cache for reverse proxy setups. Without this directive, even with configured caches nginx will simply ignore the cache and proxy things directly. Along with this, I also learned about the usefulness of setting a caching...
-
The Paris Syndrome
Today I learned about the Paris Syndrome, which is a severe form of culture shock and can cause hallucination as well as an delusional state of mind along with symptoms such as sweating or dizziness. Probably it originates from over-romanticised expectations by a misrepresentation in the traveller’s origin country, resulting...
-
We don't know why bicycles ride
Today I learned that it’s still not figured out, why bicycles remain stable while riding them. Various theories have been established over the years but were disproved as well. Resulting in own study programs being founded to figure it out. And various prototypes of bikes being built, that cancel the...
-
The form of MissingNo
Today I learned that the picture of MissingNo, the glitch Pokémon from editions Blue and Red, is coming from a buffer overflow in the picture rending code. It basically originates in the fact that the original picture buffer only expects a certain size of image, and its buffer size is...
-
stty sane
Today I learned how to bring back a terminal or console that decided to forget how to properly understand special characters, like a return and instead of considering the command sent, instead it just prints a ^M into the prompt line. The solution is as simple as exiting the prompt...
-
Secret Service: All about the money
Today I learned that the US Secret Service was originally founded and up until 2003 in charge of fighting counterfeiting of US Dollar bills and coins. They only came into charge of protecting the president and other leading organs of the US after the assassination of President William McKinley.
-
A Highway is not a motorway
Today I learned that highways and motorways are not the same. Every motorway is a highway, but not every highway is a motorway. According to Wikipedia a motorway is a “controlled-access highway”. The signs for those motorways as well was their basic setup were standardized by the “Vienna Convention on...
-
How a map defeated cholera
Today I learned that a map by John Snow defeated a cholera outbreak in the middle of London by tracking down cases and carefully mapping them out to proof his theory that cholera was transmitted by water. In the 19th century there was a world-wide spreading cholera pandemic. The around...
-
The standard of the Federal President
Today I learned that the standard of the (German) Federal President is only hoisted while the president is at the place. While there are certain exceptions the rule says: “The standard of the Federal President is hoisted at the official residence when the Federal President is in residence.” This rule...
-
You have to listen to the president
Today I learned that Android provides settings to manage what emergency alerts you want to receive, but not for all categories. Those alerts work by requiring the mobile telephone service providers to announce certain events as so called Cell broadcasts, SMS messages that are received by all phones in a...
-
SeedVault Android Backup with Nextcloud
Today I learned that LineageOS provides SeedVault, an Android Backup app, that lets you backup your phone to a local storage device or cloud provider of your choice, given it implements the right Android API. The Nextcloud app does so and allows the “regular” Android backups, you might know form...
-
Free Software Workouts
Today I learned about a free software app for Android that provides you with instructions for sports workouts. It’s called openWorkout, it’s available on F-droid and generally speaking a simple, but nice app. It provides you with written instructions along with basic animations on how the exercise go. They provide...
-
iPhone 12 and the right to repair
Today I learned that apple decided to completely lock down the iPhone 12 to prevent hardware manipulation. A nice or horrible side-effect, depending on what you are into, this also means you can no longer swap parts of a phone to repair it. If you still do, the device will...
-
USB-A and B
Today I learned that the original USB-A and USB-B connectors had this fundamentally different design to prevent people from using them to plug computer together and causing short circuits, as the ports back then weren’t able to detect whether there as a peripheral device or another host on the other...
-
The form of deadly crossroads
Today I learned that the shape of crossings might cause deadly incidents even when the landscape is flat, easy to overview and the doesn’t appear to be any traffic. An angled cross-road, means less than a 90 degree angle, can result in biker on the main road becoming invisible to...
-
wtf - please explain
Today I learned that Fedora contains a package called bsd-games, which provides a binary called wtf. wtf is a tool to “lookup the meaning of one or more term[s]”. It can help to decipher acronyms that you encounter in your daily (online) life. Some examples would be: wtf wtf, wtf...
-
Zapfensteiger are needed
Today I learned that the job of “Zapfensteiger” is silently dying while the need for it increases. A “Zapfensteiger” is a person that climbs up coniferous trees to harvest cones to dry them and get all the seeds out of them. Given that our forests are either dying by themselves...
-
Wildcards in DNS are evil
Today I learned that by using wildcard DNS entries you’ll most likely shoot yourself into the foot. The reason for that is, that there is at least one upcoming RFC out there, that tells you explicitly that “Sites which do not use the advanced method but employ wildcard DNS for...
-
Arnold Palmer
Today I learned that drinks made of a mixture of lemonade and iced tea is sometimes referred to as “Arnold Palmer”. According to Wikipedia the name refers to the golfer “Arnold Palmer” who was known to order such combinations more regular. Later on it was obviously made into a brand...
-
In TypeScript "Numbers" don't add up
Today I learned that “Numbers” in TypeScript don’t allow the usage of the + operator to add them to each other. Instead it shows the wonderful compiler error TS2365: Operator '+' cannot be applied to types 'Number' and 'Number'.. This is explained to be intended behaviour to prevent object overrides...
-
Sunscreen kills coral reefs
Today I learned that sunscreen might kills coral reefs due to chemicals contained in it. A study by Samantha L. Schneider and Henry W. Lim talks about how chemicals that are part various sunscreens1 might contribute to coral reef bleaching. Making tourists that travel into those regions unaware of it,...
-
Renovatebot and the regex manager
Today I learned about the Renovatebot provides a “regex manager”. Managers are a concept in Renovatebot that figure out which files the bot can read, what version schema should be applied and how to find the right line to modify in order to update a dependency. As the name indicates,...
-
Hand crafted memory on Saturn V
Today I learned that hand-crafted memory for computers exist and were a thing during the US space program. This early form of RAM, also known as “magnetic core memory” is made an incredible amount of thin wires that are woven together and using super tiny magnetic “cores” or rings, that...
-
Domain shorter archive
Today I learned that Archive.org, also known as “The Internet Archive”, has a link-shorter archive, just keeping all the references that link-shorters provide, alive in a project called 301works.
-
No one wants to fly above Tibet
Today I learned that air planes avoid the Tibetan plateau. This is due to the Aviation history and regulations, as well as general safety. The Tibetan plateau is on average more than 4,500 meters high or 14,700 feet. While international flights usually travel above 30,000 feet, it’s an emergency procedure...
-
Machine-ID and journald
Today I learned that journald will no longer start when /etc/machine-id is removed. journald takes care of the logging in a modern Linux system following the freedesktop standards. The machine-id is a unique ID for each system that the freedesktop standard considers important to differentiate the machine. It’s usually created...
-
Calculate MXID colours
Today I learned that the colour for names in the Matrix client “Element” is calculated using an array of 8 pre-defined colour codes and a simple hash algorithm that distributes the colours a bit, based on the MXID.
-
Reasons behind double forking
Today I learned that the reason for double forking of a process, when trying to create a deamonized process is due to the fact that creating processes of the processes that starts a new session can re-attach a terminal to that process. This is unwanted behaviour for a daemon, which...
-
To the court by video
Today I learned that it’s legal in Germany to attend court by video conferencing software since 2002, given that the judge invited the participants to do so. This is legitimised by the §128a “Zivilprozessordnung” (short ZPO, English: code of civil procedure) and allows lawyers as well as their principal to...
-
Alarms don't reach me
Today I learned that alarms for a catastrophic event wouldn’t reach me. Today was a test day for the alarm system for catastrophic alarms. Other than intended, the system didn’t work for me. I was aware that the test alarm would take place at 11 AM today. But I noticed...
-
How the altitude influences the taste of coffee
Today I learned that the taste of coffee is influenced by heigh elevation it was grown at. The higher coffee beans are grown, the slower they grow. This causes them to produce more lactate and the coffee beans to become denser. Which is said to improve the taste of a...
-
JAB code
Today I learned about JAB code, a two-dimensional multi-colour bar code. JAB code works similar to a QR code but due to the use of different colours it achieves a higher data density. It aims to be used on analogue document to sign those digitally and provide a small JAB...
-
Why light switches click
Today I learned that light switches click because they are usually spring loaded to keep the switch time as minimal as possible. As switches are made of 2 conductors set up in a way to connect or not connect, the time between being connected and getting enough air between the...
-
OLED is subject to screen burn-in
Today I learned that OLED displays are subject to burn-ins. Not as in catching fire, but in burning the picture it displays into the monitor. This is nothing new, it was already a thing with cathode-ray tube (CRT) monitors and the sole reason that screensavers exist in first place. Burn-in...
-
UNIX and the names
Today I learned that the Debian project has a quite extensive list about binary names and their origin. For example the name bc, while being nowadays being completely rewritten by the GNU project, still stands for basic calculator, Perl standing for Practical Extraction and Report Language, which, if you ever...
-
Water hammer
Today I learned about “water hammers” also known as hydraulic shocks. This is a phenomenon one can witness every day when opening and closing a tab in any water pipe system. It’s a shock wave that travels through a liquid backwards, when the liquid’s flow was stopped. Most liquids, like...
-
Tally marks around the world
Today I learned that people around the world use very different tally marks but the majority of them represents 5. While in Europe it’s quite common to use the 4 straight lines (||||) and put the firths across, in Brazil, France and Spain it also happens that people instead of...
-
Pocket watches
Today I learned that pocket watches exist since ~1430, meaning the late dark ages, and had the form of a small can. The “modern”, flat form of pocket watches was developed in the 17th century, when they got traction and became a status symbol. Shortly after, in the mid of...
-
Friends of dorothy
Today I learned that American gay men were referring to themselves as “friends of Dorothy” starting from the times of the second world war. Back then homosexuality was illegal and therefore this phrase was used to cover it. While this sounds harmless, according to Wikipedia1 in the 1980s it actually...
-
Half-mast is not for the Queen of England
Today I learned that the flag of the British monarchy, the royal standard, is never put on half-mast because it’s considered the fall of the monarchy itself. Following the famous statement “The king is dead, long live the king!” the king or queen can’t die as long as there is...
-
Earwax around the world
Today I learned that earwax differs depending where on the world you are from. There are multiple types of earwax, and the basics of how your earwax looks is determined by your genetics. Around European people yellowish to slightly brownish earwax is quite common, while in eastern Asian areas whiter...
-
Operation Paperclip
Today I learned about “Operation Paperclip”, which was a US operation at the end of the second world war that took successful engineers and scientist from Germany and brought them to the US in order to develop (mainly) in the rocket and weapon industry over there. All of them were...
-
lost+found
Today I learned that one can’t recreate a functional lost+found directory using mkdir but has to use mklost+found1. The lost+found directory is a special purpose directory that is used as part of file recoveries by fsck. Everything that looks like a file but has no inode will be created as...
-
Juice vs Smoothie
Today I learned that the essential difference between a Juice and a Smoothie is the way it’s produced. While juice is produced by extracting the liquid from the fruit, leaving behind dried pulp. A smoothie intentionally leaves the entire fruit together but cuts it small enough to so it no...
-
Adaptive DNS discovery
Today I learned about Adaptive DNS Discovery, short ADD, which is an upcoming DNS standard to discover and configure DoH and DoT clients. The idea is that the client learns about a local DoH or DoT server either by Router Advertisement (PvD), well-known entry, an HTTPSSVC or SVCB DNS entry,...
-
About zip files and floppy disks
Today I learned that zip files keep their metadata at the end of the file for historical reasons. This originates from the times of floppy disks. The disk space on floppy disks was rather limited and there was a lot of variation, resulting in the inability of a program to...
-
A hand full of sugar
Today I learned that there is the rule of thumb that one should only eat a hand full1 of candies/sweets per day. For your average sweet that’s enough to satisfy your daily sugar needs (which range from 45-60 gram of sugar in all your food for a grown up person)....
-
Event-based Sudoku
Today I learned that one can write an event-based Sudoku solver. Means a solver that selectively re-evaluates the state of the Sudoku based on changed fields rather than iterating over the whole Sudoku over an over again to solve it.
-
Root DNS garbage
Today I learned that roughly 50% of the all DNS queries to the root DNS servers are garbage produced by a single function in chromium and (all) browsers based on it.1 This function tries to detect NXDOMAIN hijacking by internet providers by generating 3 random, non-existing top-level domains (TLD) and...
-
CSS Variables
Today I learned that CSS variables exist. CSS variables are basically CSS properties that can be applied generically like every other CSS definition to elements. But they start with two dashes -- and a case-sensitive variable name, like --my-variable: 10px;. To read them as value for another property, you use...
-
Domestication syndrome
Today I learned about the domestication syndrome, which describes the visual changes one can observe when comparing wild animals with domesticated animals from the same species. Like wolfs compared to dogs. It describes that as part of the domestication process usually certain attributes, like the shape of the nose, the...
-
Foxes have a compass
Today I learned that foxes probably use the earth’s magnetic field to judge the distance to their prey. A scientist of the University Duisburg-Essen in Germany noticed, while watching foxes in the Czech Republic, that foxes hunting for hidden prey (such as mice underneath the snow cover) facing the north-east...
-
Servus - the young tradition
Today I learned that the cultural phenomenon of saying “Servus” as a greeting in Bavaria and the rest of Germany is rather young. While many people associate it with “old Bavarian traditions” the greeting wasn’t used for most of history. It’s originating in the Latin language and is short for...
-
Breaking bad habits
Today I learned that habits are made of 4 key phases, according to the book “Atomic habits” by James Clear: cue, craving, response and reward. Taking one of them away or making it much more difficult, breaks the habit. From my personal experience the easiest thing is to take the...
-
"The Eighth Wonder Of the World"
Today I learned that in 1910 at the International Exposition in Brussels a mechanical instrument was presented called the “Phonoliszt Violina”. It’s a mechanical machine that plays music by itself, like a barrel organ, but instead of using pipes or plates to make sounds, this machine was playing an actual...
-
Microplastics in your garden
Today I learned that mowing your lawn with a string trimmer or “wheat eater” as some people seem to call them, causes microplastics to be spread around your garden. Obviously one might says as the line those trimmers use are made of plastic but it took me to watch a...
-
Claqueurs
Today I learned that in France there was a profession for clapping and cheering around theatres. Someone executing this profession was called “claqueur”. While the job is named after clapping their actual duties/offerings were much more diverse. From “chauffeurs” who were praising the event at announcements, over “connaisseurs” who provided...
-
Calibrating hygrometers
Today I learned that one has to calibrate hygrometers. Hygrometers are used to measure the humidity of the air surrounding them. The measurements are not always completely accurate and differ over time.1 Therefore they need to be calibrated on a semi-regular basis of roughly 6-12 months. In the case of...
-
Tulips continue to grow
Today I learned that Tulips continue to grow even after being cut and when put in a vase with water as part of a floral bouquet. This is due to their cell size growth, which happens as part of the plant absorbing water. Tulips are able to massively grow their...
-
Geodesic dome
Today I learned that the name for a dome made of triangles is called Geodesic dome. Besides the fact that this way of building a dome some very nice structural advantages due to the even distribution of stress through our the structure, I also learned that it’s alluding to geodesy,...
-
No ESNI in China
Today I learned that China is blocking TLS 1.3 connections that use the new ESNI standard. ESNI stands for “Encrypted Server Name Indication” and is part of experimental TLS 1.3 features. Other TLS version such as 1.2 use SNI to identify what certificate a client requests. What this means is,...
-
Jekyll, RSS and absolute URLs
Today I learned that I did absolute URLs overly complicated. In this blog I use absolute URLs for almost all links in order to make things RSS standard compliant. In Jekyll this can be achieved in various way, and so far, I used a very explicit way looking like this:...
-
Colour balancing
Today I learned about the maths behind colour balancing. Colour balancing is the act of correcting all colours in the picture to represent their real colour based on a selected pixel within the picture which colour code is known. Usually this pixel is white, which is it’s also called white...
-
Hugo provides an own web server
Today I learned that the hugo server-command can run be used in production. According to the Hugo documentation it’s considered a valid use-case but you might want to disable the live reload feature. It sounds contra intuitive as Hugo itself is a static page generator and one would usually use...
-
The UX of LEGO
Today I learned that one can categorize and describe the usability of LEGO “computers” and use this for educational purposes. In the article I read today I organized all those LEGO “computer interfaces” into categories from all screen to no screen and from organized to chaos. Basically pointing out that...
-
Spam in Hawaii
Today I learned that Spam plays a huge role in Hawaiian culture. Food culture. I was aware of the fact that Spam is actually a brand name for canned meat from the US, but I wasn’t aware that it was playing such an important role in Hawaiian food that they...
-
Snyk disclosure handling
Today I learned that one can report found vulnerabilities to the company “Snyk” which will take care of the responsible disclosure procedure. Means they will take the report, validate it, assign it a CVE, contact the maintainers and disclosing it to the public after 90 days.
-
Subtile sexism in marketing
Today I learned about a very subtitle but very present form of sexism that is hiding in plain sight and where I truly believe that no one does it intentional. Sports ads. It was a child that pointed it out and her mother posted about it on Twitter. The child...
-
Wendepailletten
Today I learned that so called “Wendepailletten” (turn-around-sequins) exist. Sequins themselves are nothing new obviously little metal or plastic plates that are put on cloth to decorate it or become cloth. But those “Wendepailletten” go one step further. While being popular amount kids, the concept itself is rather interesting. The...
-
Rabbits, grass and eating habits
Today I learned that rabbits, as well as cows, don’t digest grass directly. While cows use their stomachs to get the grass eaten up by bacteria that is afterwards digested by the cow itself, rabbits don’t have the luxury of many stomachs. Instead they produce a special kind of faeces...
-
Mugscrewer
Today I learned that when two things are stuck together by pure force, heating things up or cooling things down do not always end up successful. While the usage of a “mugscrewer” (as in “corkscrew” but for mugs), at least in this particular situation solved the problem. By slowing using...
-
Light guns
Today I learned how light guns work. Or better: Worked, because these days it’s no more a thing. Light guns were controllers for computers or game consoles. The special thing about them: They looked like a gun and you could just point a the position on the display where you...
-
Mediaeval armour
Today I learned that Armour in mediaeval times had some quite strange accents from today’s perspective. They tended to have an extra small waist because hat was considered a male attribute as well as having extra off-showing areas on the lower front-side of those armours.
-
Hurricanes and the pacific ocean
Today I learned that the word Hurricane does not only describe storms in the Atlantic ocean, but also storms on the east side of the Pacific ocean (the area between the International Date Line and the North American continent).
-
Aluminium foil in the dishwasher
Today I learned that aluminium foil in the dishwasher can help against flash rust. The idea is that the small ball of aluminium foil hangs around in the cutlery section of your dishwasher. When small amounts of rust appear during the washing process (due to being washed from something within...
-
GitLab initial default branch
Today I learned how to adjust the initial default branch in GitLab. It requires version 13.2.0 or higher to have this feature available and it’s available in the Admin section under Settings > Repository > Default initial branch name. There you can rename your branch from master to hans-günther or...
-
Spider milk
Today I learned that there are spiders that produce “milk”. While “milking spiders” is usually talking about collecting poison to create anti-dotes, this milk from spiders is used to raise their children, “spiderlings”, from offspring to a “mature” age. The little spiders lap up those little “milk” droplets from the...
-
Lichen
Today I learned that the little crusty elements that you can see on trees and stones, aren’t a form of mosses or fungi as I thought, but lichen. Lichen are a symbiotic life form of algae and fungi. The algae takes care of producing carbohydrates using photosynthesis, while the fungi...
-
Linux memory management
Today I learned that memory over-commitment in Linux is a rather complicated topic. The first thing is that there are 3 modes for memory over-commitment (/proc/sys/vm/overcommit_memory) in the kernel which range from 0 which tries to determine how much of the allocated memory an application actually uses and allow over-commitment...
-
Dyke building
Today I learned that a dyke requires a gravel or sand layer on the land side of the dyke to prevent it from breaking due to water that gets through underneath. According to the explanation by the “Sendung mit der Maus” during a flood the water pressure on a dyke...
-
Automated GitLab releases
Today I learned how to automate GitLab releases properly. To create GitLab releases automatically, GitLab provides a CLI, the releases-cli, which can be used to automate releases with just a few parameters using the .gitlab-ci.yml of your project. With some good rules you can make sure that your releases are...
-
Second person perspective
Today I learned that while while mainly talk about first-person and third-person, when it comes to camera angles in video games, there is actually something that could be described as “second person” perspective. The concept itself resides around the idea, that you are controlling another person than you are viewing...
-
Firefox: Check alt-svc usage
Today I learned how to verify if Firefox, or in my case the Tor Browser, is using an advised alt-svc properly. The alt-svc-HTTP-header is used to provide an “alternative service”-address and to transparently upgrade connections to use those. In order to do that you open the about:networking#logging1 page in Firefox...
-
Hetzner and Cloudflare
Today I learned that Hetzner relies on Cloudflare to work. The Hetzner API suddenly stops responding and sends you an HTTP 503, all three of their nameserver 213.133.99.99, 213.133.100.100 and 213.133.98.98, go down, because they are no proper recursive nameservers but just forwarder for Cloudflare’s 1.1.1.1 as it seems. And...
-
Hive: An exhibition about scoring systems and surveillance
Today I learned about a project called “Hive”. It’s an upcoming exhibition in various museums around Europe that talks about social scoring systems and their influence on democratic systems. It tries to provide a first hand experience what it means to be subject of surveillance in all areas of public...
-
Electron-builder offline
Today I learned how hard it is to package electron-based applications in an offline environment. It’s not just electron itself that causes issues, but various build steps/packages in the node ecosystem simply assume that an internet connection is accessible and will fail if they can’t call the network. Today I...
-
OKD without Red Hat is dead
Today I learned that OKD, the free software version of Red Hat OpenShift, is basically a dead Kubernetes distribution for everyone who doesn’t have a Red Hat subscription. When looking at it, there is the “stable” version 3.11.0 and the “preview” version 4.x. So while you are not supposed to...
-
In Ansible "omit" doesn't omit sometimes
Today I learned that in Ansible the | default(omit) filter doesn’t omit the value within a string. Instead it replaces the statement with a random string looking like this: __omit_place_holder__17ce35dc24337a3145aee27cda2d6baefa37ddea. This is rather unintuitive as one would expect that omit would result in an empty string or alike, but it...
-
smtps is dead, long live submissions
Today I learned that in 2018 with RFC8314 a new mail submission service was standardized by the IETF and the IANA. It’s called submissons and re-allocates the original well-known port of smtps which was introduced in 1997 and revoked again in 1998 after the standardization of STARTTLS for SMTP and...
-
'Today I learned…' is hard
Today I learned that this series is harder to make that I thought in first place. I thought you happen to do so many things every day, that there is for sure something new, worth writing about. Turns out, not necessarily. It seems like one might learns something every day,...
-
Steueridentifikationsnummer
Today I learned that the German “Steueridentifikationsnummer”, in English “tax identification number”, was introduced with the warning about, but also the explicit promise that it would not become a universal identifying number for citizens. And that the German constitution or “basic law” also was already used to protect German citizens...
-
Coconut milk vs Coconut water
Today I learned that coconut milk is not the same as coconut water. While coconut water is found in young coconuts, coconut milk extracted from “mature coconuts”. Coconut water, also known as coconut juice, is rather clear and nice to drink in summer. Coconut milk on the other hand is...
-
Font Hinting
Today I learned that font hinting is a thing. Font hinting is used to optimize fonts to display properly on low resolution screens. In web fonts they can increase the size of the font-file drastically but are almost never used since screen sizes are rarely that small these days.
-
SELinux kernel flags
Today I learned that SELinux can be disabled in two ways during boot. Besides enforcing=0 there is also selinux=0. The former will obviously set SELinux in permissive mode but still label all new files properly. While the latter will disable SELinux entirely and therefore break your system by labelling all...
-
30€ Infrastructure
Today I learned that I spend roughly 30€ per month on my private IT infrastructure. I collected all server, storage and backup storage cost as well as calculating the domain costs down to a monthly basis. I think those 30€ are well invested and provide me a lot better web...
-
Gitlab uses Cloudflare
Today I learned that Gitlab.com uses Cloudflare. Generally speaking I’m not a big fan of Cloudflare but also not neglecting the value they provide as a WAFaaS provider. My main issue with Gitlab.com using it, is that it does this browser check, which takes roughly 5 seconds and since I...
-
Recover LineageOS on OnePlus 7 Pro
Today I learned that to recover LineageOS after a broken update bringing you stuck in the boot animation, the first step is to press the Volume Up + Power button and hold it for more 10 seconds, before you can boot into recovery and continue your regular flashing process with...