Compare commits
1 Commits
main
...
448058631e
Author | SHA1 | Date | |
---|---|---|---|
448058631e |
@ -1,41 +0,0 @@
|
|||||||
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
|
|
||||||
// README at: https://github.com/devcontainers/templates/tree/main/src/docker-existing-docker-compose
|
|
||||||
{
|
|
||||||
"name": "Existing Docker Compose (Extend)",
|
|
||||||
|
|
||||||
// Update the 'dockerComposeFile' list if you have more compose files or use different names.
|
|
||||||
// The .devcontainer/docker-compose.yml file contains any overrides you need/want to make.
|
|
||||||
"dockerComposeFile": [
|
|
||||||
"../docker-compose.yml",
|
|
||||||
"docker-compose.yml"
|
|
||||||
],
|
|
||||||
|
|
||||||
// The 'service' property is the name of the service for the container that VS Code should
|
|
||||||
// use. Update this value and .devcontainer/docker-compose.yml to the real service name.
|
|
||||||
"service": "server",
|
|
||||||
|
|
||||||
// The optional 'workspaceFolder' property is the path VS Code should open by default when
|
|
||||||
// connected. This is typically a file mount in .devcontainer/docker-compose.yml
|
|
||||||
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}"
|
|
||||||
|
|
||||||
// Features to add to the dev container. More info: https://containers.dev/features.
|
|
||||||
// "features": {},
|
|
||||||
|
|
||||||
// Use 'forwardPorts' to make a list of ports inside the container available locally.>
|
|
||||||
// "forwardPorts": [],
|
|
||||||
|
|
||||||
// Uncomment the next line if you want start specific services in your Docker Compose config.
|
|
||||||
// "runServices": [],
|
|
||||||
|
|
||||||
// Uncomment the next line if you want to keep your containers running after VS Code shuts down.
|
|
||||||
// "shutdownAction": "none",
|
|
||||||
|
|
||||||
// Uncomment the next line to run commands after the container is created.
|
|
||||||
// "postCreateCommand": "cat /etc/os-release",
|
|
||||||
|
|
||||||
// Configure tool-specific properties.
|
|
||||||
// "customizations": {},
|
|
||||||
|
|
||||||
// Uncomment to connect as an existing user other than the container default. More info: https://aka.ms/dev-containers-non-root.
|
|
||||||
// "remoteUser": "devcontainer"
|
|
||||||
}
|
|
@ -1,26 +0,0 @@
|
|||||||
version: '3.8'
|
|
||||||
services:
|
|
||||||
# Update this to the name of the service you want to work with in your docker-compose.yml file
|
|
||||||
server:
|
|
||||||
# Uncomment if you want to override the service's Dockerfile to one in the .devcontainer
|
|
||||||
# folder. Note that the path of the Dockerfile and context is relative to the *primary*
|
|
||||||
# docker-compose.yml file (the first in the devcontainer.json "dockerComposeFile"
|
|
||||||
# array). The sample below assumes your primary file is in the root of your project.
|
|
||||||
#
|
|
||||||
# build:
|
|
||||||
# context: .
|
|
||||||
# dockerfile: .devcontainer/Dockerfile
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
# Update this to wherever you want VS Code to mount the folder of your project
|
|
||||||
- ..:/workspaces:cached
|
|
||||||
|
|
||||||
# Uncomment the next four lines if you will use a ptrace-based debugger like C++, Go, and Rust.
|
|
||||||
# cap_add:
|
|
||||||
# - SYS_PTRACE
|
|
||||||
# security_opt:
|
|
||||||
# - seccomp:unconfined
|
|
||||||
|
|
||||||
# Overrides default command so things don't shut down after the process ends.
|
|
||||||
# command: sleep infinity
|
|
||||||
|
|
12
.github/dependabot.yml
vendored
@ -1,12 +0,0 @@
|
|||||||
# To get started with Dependabot version updates, you'll need to specify which
|
|
||||||
# package ecosystems to update and where the package manifests are located.
|
|
||||||
# Please see the documentation for more information:
|
|
||||||
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
|
||||||
# https://containers.dev/guide/dependabot
|
|
||||||
|
|
||||||
version: 2
|
|
||||||
updates:
|
|
||||||
- package-ecosystem: "devcontainers"
|
|
||||||
directory: "/"
|
|
||||||
schedule:
|
|
||||||
interval: weekly
|
|
12
config.toml
@ -13,7 +13,7 @@ pygmentsUseClasses = true
|
|||||||
|
|
||||||
rssLimit = 10
|
rssLimit = 10
|
||||||
|
|
||||||
copyright = "2024-2025 Daniel Kraus"
|
copyright = "2024 Daniel Kraus"
|
||||||
enableEmoji = true
|
enableEmoji = true
|
||||||
|
|
||||||
[permalinks]
|
[permalinks]
|
||||||
@ -98,17 +98,13 @@ expiryDate = ["expiryDate"]
|
|||||||
initialPublish = "Initally Posted on: "
|
initialPublish = "Initally Posted on: "
|
||||||
human = ["single","posts"]
|
human = ["single","posts"]
|
||||||
|
|
||||||
[[params.socialLinks]]
|
|
||||||
name = "bluesky"
|
|
||||||
url = "https://bsky.app/profile/bovender.bsky.social"
|
|
||||||
|
|
||||||
[[params.socialLinks]]
|
[[params.socialLinks]]
|
||||||
name = "mastodon"
|
name = "mastodon"
|
||||||
url = "https://neph.social/@daniel_kraus"
|
url = "https://neph.social/@daniel_kraus"
|
||||||
|
|
||||||
# [[params.socialLinks]]
|
[[params.socialLinks]]
|
||||||
# name = "x"
|
name = "x"
|
||||||
# url = "https://twitter.com/bovender_de"
|
url = "https://twitter.com/bovender_de"
|
||||||
|
|
||||||
[[params.socialLinks]]
|
[[params.socialLinks]]
|
||||||
name = "github"
|
name = "github"
|
||||||
|
@ -22,31 +22,18 @@ calculator back in the 1980's.
|
|||||||
|
|
||||||
### [ggap-ev.org](https://ggap-ev.org)
|
### [ggap-ev.org](https://ggap-ev.org)
|
||||||
|
|
||||||
GGAP is a registered charity in Germany. This NGO uses donated money to fund the
|
|
||||||
vocational training of young adults on the Philippines who would otherwise have
|
|
||||||
to "earn" their living in an unlawful way.
|
|
||||||
|
|
||||||
{{< figure src="ggap-ev.png">}}
|
{{< figure src="ggap-ev.png">}}
|
||||||
|
|
||||||
### [nephrowiki.de](https://nephrowiki.de)
|
### [nephrowiki.de](https://nephrowiki.de)
|
||||||
|
|
||||||
NephroWiki is a closed wiki system that has been up and running since 2011.
|
|
||||||
|
|
||||||
{{< figure src="nephrowiki.png">}}
|
{{< figure src="nephrowiki.png">}}
|
||||||
|
|
||||||
## Portfolio -- software
|
## Portfolio -- software
|
||||||
|
|
||||||
### [Daniel's XL Toolbox](https://xltoolbox.net)
|
### [Daniel's XL Toolbox](https://xltoolbox.net)
|
||||||
|
|
||||||
Daniel's XL Toolbox is an add-in for Excel that assists with data analysis
|
|
||||||
and visualization.
|
|
||||||
|
|
||||||
{{< figure src="xltoolbox.png">}}
|
{{< figure src="xltoolbox.png">}}
|
||||||
|
|
||||||
Even though I haven't been able to work on this project for quite some time,
|
|
||||||
I am very happy to see that the latest release has been downloaded more than
|
|
||||||
100,000 times. :-)
|
|
||||||
|
|
||||||
### [LinkTitles](https://github.com/bovender/linktitles)
|
### [LinkTitles](https://github.com/bovender/linktitles)
|
||||||
|
|
||||||
LinkTitles is a [MediaWiki](https://mediawiki.org) extension that automatically
|
LinkTitles is a [MediaWiki](https://mediawiki.org) extension that automatically
|
||||||
@ -57,10 +44,6 @@ links terms to existing pages in a Wiki.
|
|||||||
PubmedParser is a [MediaWiki](https://mediawiki.org) extension to include and
|
PubmedParser is a [MediaWiki](https://mediawiki.org) extension to include and
|
||||||
reference articles from [Pubmed](https://pubmed.gov) by PMID.
|
reference articles from [Pubmed](https://pubmed.gov) by PMID.
|
||||||
|
|
||||||
### Github Star History
|
|
||||||
|
|
||||||
[![Star History Chart][sh-img]][sh-link]
|
|
||||||
|
|
||||||
## Server administration
|
## Server administration
|
||||||
|
|
||||||
I have 10+ years experience with running and administrating my own server.
|
I have 10+ years experience with running and administrating my own server.
|
||||||
@ -68,7 +51,3 @@ This includes running a mail and an IMAP server, hosting my own
|
|||||||
[Nextcloud](https://nextcloud.com) and [Gitea](https://gitea.io) instances,
|
[Nextcloud](https://nextcloud.com) and [Gitea](https://gitea.io) instances,
|
||||||
[Mastodon for Nephrology](https://neph.social)
|
[Mastodon for Nephrology](https://neph.social)
|
||||||
and more. Almost all of my services are dockerized.
|
and more. Almost all of my services are dockerized.
|
||||||
|
|
||||||
|
|
||||||
[sh-img]: https://api.star-history.com/svg?repos=bovender/linktitles,bovender/pubmedparser,bovender/imapcli,bovender/xltoolbox&type=Date
|
|
||||||
[sh-link]: https://www.star-history.com/#bovender/linktitles&bovender/pubmedparser&bovender/imapcli&bovender/xltoolbox&Date
|
|
@ -3,16 +3,15 @@ title: "Impressum und Datenschutz"
|
|||||||
date: 2024-07-31T12:42:53Z
|
date: 2024-07-31T12:42:53Z
|
||||||
draft: false
|
draft: false
|
||||||
---
|
---
|
||||||
Dr. Daniel Kraus
|
|
||||||
Tel. (0 61 07‌) 7 5‌6 88 4‌0
|
|
||||||
Mail: <bovender@bovender.de>
|
|
||||||
|
|
||||||
Ladungsfähige Anschrift bei meinem Arbeitgeber: Unimedizin Mainz, Langenbeckstr.
|
Dr. Daniel Kraus
|
||||||
1, 55131 Mainz. Dies ist eine rein private Homepage und in keiner Weise von
|
H‌ö‌hen‌str‌aße 1‌5
|
||||||
meinem Arbeitgeber beworben oder unterstützt. Meine Privatanschrift ist zu
|
65451 K‌e‌l‌s‌t‌e‌r‌b‌a‌c‌h
|
||||||
meinem persönlichen Schutz und dem Schutz meiner Familie hier nicht
|
Tel. (0 61 07‌) 7 5‌6 88 4‌0
|
||||||
veröffentlicht. **Ich bitte, von Anrufen abzusehen.** Über Mail oder die
|
<bovender@bovender.de>
|
||||||
verlinkten sozialen Netzwerke (siehe Icons) bin ich i.d.R. kurzfristig
|
|
||||||
|
Ich bitte, von Anrufen abzusehen. Über Mail oder die verlinkten
|
||||||
|
sozialen Netzwerke (siehe Icons) bin ich i.d.R. kurzfristig
|
||||||
erreichbar.
|
erreichbar.
|
||||||
|
|
||||||
## Mailserver bovender.de
|
## Mailserver bovender.de
|
||||||
|
@ -248,27 +248,6 @@ replace `ffmpeg-free` with the non-free `ffmpeg` on F40:
|
|||||||
After doing that and restarting Kdenlive, I was able to render my project using
|
After doing that and restarting Kdenlive, I was able to render my project using
|
||||||
the H.264 and H.265 codecs as I used to be able to do with Ubuntu-based systems.
|
the H.264 and H.265 codecs as I used to be able to do with Ubuntu-based systems.
|
||||||
|
|
||||||
## Update 2024-11-10
|
|
||||||
|
|
||||||
In the last couple of months, battery life has improved significantly. As
|
|
||||||
described above, in summer, battery drained almost completely (from ~90% to
|
|
||||||
~15%) within 3.5 hours even without heavy workload.
|
|
||||||
|
|
||||||
Today I spent about the same amount of time on a train, working constantly on my
|
|
||||||
laptop (browsing, downloading articles), and the battery level only dropped from
|
|
||||||
~90% to ~40% within 3 hours. Some system update, be it a kernel update or some
|
|
||||||
other software running in the background, must have reduced energy consumption
|
|
||||||
considerably :-)
|
|
||||||
|
|
||||||
{{< figure src="p14s-battery-drain-2.png">}}
|
|
||||||
|
|
||||||
(I am well aware that there are laptops whose battery run time is in an entirely
|
|
||||||
different ball park, and even some of my own Thinkpads used to do better, but
|
|
||||||
I'm overall quite happy with battery life on this machine with bright 3k display
|
|
||||||
and dedicated GPU. I _could_ have bought a machine which can run on battery like
|
|
||||||
forever, but that's not my use case and plus, I'd never buy anything else but a
|
|
||||||
Thinkpad...)
|
|
||||||
|
|
||||||
[Darktable]: https://darktable.org
|
[Darktable]: https://darktable.org
|
||||||
[fancontrol]: https://ounapuu.ee/posts/2022/09/26/minimum-viable-fan-control-script/
|
[fancontrol]: https://ounapuu.ee/posts/2022/09/26/minimum-viable-fan-control-script/
|
||||||
[Fedora]: https://fedoraproject.org/
|
[Fedora]: https://fedoraproject.org/
|
||||||
|
Before Width: | Height: | Size: 188 KiB |
@ -29,12 +29,3 @@ Link: <https://kde.org/announcements/plasma/5/5.27.0/>
|
|||||||
|
|
||||||
I wish there were keyboard shortcuts to move windows into one of the custom tile
|
I wish there were keyboard shortcuts to move windows into one of the custom tile
|
||||||
layouts as well: <https://discuss.kde.org/t/keyboard-shortcuts-for-new-tiling-feature/1843>
|
layouts as well: <https://discuss.kde.org/t/keyboard-shortcuts-for-new-tiling-feature/1843>
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Added 2025-03-02
|
|
||||||
|
|
||||||
With Plasma 5.3, you can now define keyboard shortcuts to move a window to
|
|
||||||
a custom tile. On my system, there were now shortcuts defined by default, but
|
|
||||||
it is very easy to do so in `System Settings > Shortcuts > KWin`. I have now
|
|
||||||
mapped `META`+`SHIFT` and the arrow keys to move windows to custom tiles.
|
|
||||||
|
Before Width: | Height: | Size: 213 KiB |
@ -1,58 +0,0 @@
|
|||||||
---
|
|
||||||
title: Install pynitrokey on Fedora 41
|
|
||||||
description: Here's how I installed pynitrokey on my Fedora 41 KDE laptop, resolving missing dependencies.
|
|
||||||
date: 2025-03-30T10:53:35+0100
|
|
||||||
draft: false
|
|
||||||
# ShowLastmod: true
|
|
||||||
toc: false
|
|
||||||
scrolltotop: true
|
|
||||||
images: []
|
|
||||||
tags:
|
|
||||||
- security
|
|
||||||
- Linux
|
|
||||||
- Fedora
|
|
||||||
---
|
|
||||||
|
|
||||||
{{< figure src="IMGP0069.jpg"
|
|
||||||
alt="My Nitrokey 3A mini"
|
|
||||||
title="My Nitrokey 3A mini on the right side of the picture" >}}
|
|
||||||
|
|
||||||
I use [Yubikey][]s and [Nitrokey][]s as a second factor during 2FA
|
|
||||||
authentication.
|
|
||||||
|
|
||||||
My experiences with Nitrokey devices have been mixed. Currently my 3A mini
|
|
||||||
stopped working. I wanted to investigate what's going on, only to find out that
|
|
||||||
the commandline tool `nitropy` no longer worked on my machine either! :-(
|
|
||||||
|
|
||||||
Here's how I got it to work again. I'm a Python noob, so maybe there's a better
|
|
||||||
way to install the dependencies. The operating system is Fedora 41.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo dnf install systemd-devel python3-devel
|
|
||||||
pipx install pynitrokey
|
|
||||||
```
|
|
||||||
|
|
||||||
Afterwards I was greeted with this:
|
|
||||||
|
|
||||||
```text
|
|
||||||
$ nitropy nk3 test
|
|
||||||
Command line tool to interact with Nitrokey devices 0.8.1
|
|
||||||
Critical error:
|
|
||||||
No connected NK3 devices found
|
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
Critical error occurred, exiting now
|
|
||||||
Unexpected? Is this a bug? Would you like to get support/help?
|
|
||||||
- You can report issues at: https://support.nitrokey.com/
|
|
||||||
- Writing an e-mail to support@nitrokey.com is also possible
|
|
||||||
- Please attach the log: '/tmp/nitropy.log._p6mpa3e' with any support/help request!
|
|
||||||
- Please check if you have udev rules installed: https://docs.nitrokey.com/nitrokeys/nitrokey3/firmware-update#troubleshooting-linux
|
|
||||||
```
|
|
||||||
|
|
||||||
I made sure that I had the abovementioned `udev` rules in place. The key is not
|
|
||||||
detected by any system, be it my personal Linux laptop or any Windows machine
|
|
||||||
that I could access. [D'oh][]!
|
|
||||||
|
|
||||||
[Nitrokey]: https://www.nitrokey.com
|
|
||||||
[Yubikey]: https://www.yubico.com
|
|
||||||
[d'oh]: https://en.wikipedia.org/wiki/D'oh!
|
|
Before Width: | Height: | Size: 48 KiB |
@ -1,40 +0,0 @@
|
|||||||
---
|
|
||||||
title: Leaving X
|
|
||||||
description: German academic institutions are leaving Twitter/X. I'm not an academic institution, but still I'm following suit.
|
|
||||||
date: 2025-01-14T21:30:00+0100
|
|
||||||
draft: false
|
|
||||||
# ShowLastmod: true
|
|
||||||
toc: false
|
|
||||||
scrolltotop: true
|
|
||||||
images: []
|
|
||||||
tags:
|
|
||||||
- academia
|
|
||||||
- social media
|
|
||||||
---
|
|
||||||
Several academic institutions in Germany have decided to terminate their
|
|
||||||
presence on X, formerly known as Twitter.
|
|
||||||
|
|
||||||
Press release of the "Informationsdienst Wissenschaft" (scientific news service,
|
|
||||||
in German): <https://idw-online.de/de/news845520>
|
|
||||||
|
|
||||||
Ironically, the press release page has several buttons to share this information
|
|
||||||
on social media, right now still including a sharing button for X :smile:
|
|
||||||
Surely just a matter of time.
|
|
||||||
|
|
||||||
{{< figure src="press-release-with-x-sharing-button.png"
|
|
||||||
title="Press release (in German) informing about German academic institutions leaving X, with X sharing button." >}}
|
|
||||||
|
|
||||||
I got aware of this by reading my former university's newsletter:
|
|
||||||
<https://www.uni-wuerzburg.de/aktuelles/einblick/single/news/universitaet-wuerzburg-kehrt-plattform-x-den-ruecken-1>
|
|
||||||
|
|
||||||
I'm following suit. I've just now deleted my account on X.
|
|
||||||
|
|
||||||
{{< figure src="account-deactivated.png"
|
|
||||||
title="I did it! My account on X has been deactivated. (Screenshot in German.)" >}}
|
|
||||||
|
|
||||||
If you would like to connect with me on social media, please head over to my profiles on [Mastodon][] or [Bluesky][].
|
|
||||||
|
|
||||||
See you!
|
|
||||||
|
|
||||||
[Mastodon]: https://neph.social/@daniel_kraus
|
|
||||||
[Bluesky]: https://bsky.app/profile/bovender.bsky.social
|
|
Before Width: | Height: | Size: 105 KiB |
@ -1,80 +0,0 @@
|
|||||||
---
|
|
||||||
title: "[In German] USB-Sticks in den Fotostationen von dm"
|
|
||||||
description:
|
|
||||||
date: 2025-03-22T22:20:07+0100
|
|
||||||
draft: false
|
|
||||||
# ShowLastmod: true
|
|
||||||
toc: false
|
|
||||||
scrolltotop: true
|
|
||||||
images: []
|
|
||||||
tags:
|
|
||||||
- German
|
|
||||||
---
|
|
||||||
|
|
||||||
(This post is in German.)
|
|
||||||
|
|
||||||
In den letzten Wochen habe ich ein paar Mal Fotoabzüge benötigt und bin mit
|
|
||||||
einem USB-Stick zur örtlichen Drogerie. Zu meiner Überraschung konnten keinerlei
|
|
||||||
Bilder auf dem Stick gefunden werden. Inzwischen habe ich das mit mehreren
|
|
||||||
Sticks und an verschiedenen Foto-Stationen (aber immer in demselben Laden)
|
|
||||||
probiert, Fehlanzeige. Interessanterweise hat es mit einer SD-Karte problemlos
|
|
||||||
geklappt.
|
|
||||||
|
|
||||||
Offenbar bin ich weder der erste noch der einzige, der dieses Problem schon
|
|
||||||
einmal hatte, es gibt zu einem ähnlichen Problem mit einer CEWE-Fotostation
|
|
||||||
einen [Forumsthread][].
|
|
||||||
|
|
||||||
In diesem Blog-Beitrag sammele ich einfach mal meine Beobachtungen, vielleicht
|
|
||||||
hilft es ja einmal jemandem. Von Mal zu Mal werde ich dies updaten.
|
|
||||||
|
|
||||||
## Beispiele für "geht" und "geht nicht"
|
|
||||||
|
|
||||||
Ich hatte zuletzt zwei Speichermedien dabei, einen USB-Stick und eine SD-Karte:
|
|
||||||
|
|
||||||
```plain
|
|
||||||
$ lsblk -f
|
|
||||||
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
|
|
||||||
sda
|
|
||||||
└─sda1 exfat 1.0 [REDACTED] E7F3-FDF9 114,5G 0% /run/media/daniel/[REDACTED]
|
|
||||||
sdb
|
|
||||||
└─sdb1 exfat 1.0 7FDE-A701 119G 0% /run/media/daniel/7FDE-A701
|
|
||||||
```
|
|
||||||
|
|
||||||
`sda` ist ein USB-Stick, den ich häufig in anderen Zusammenhängen im Einsatz
|
|
||||||
habe. `sdb` ist eine ältere SD-Karte. Beide haben nominell 128 GB Kapazität, und
|
|
||||||
beide haben eine Partitionstabelle im herkömmlichen MSDOS-Format und eine
|
|
||||||
Primärpartition, die mit dem Dateisystem EXFAT formatiert ist. Das Dateisystem
|
|
||||||
auf dem USB-Stick hat ein Label, welches aus wenigen Buchstaben ohne
|
|
||||||
Sonderzeichen besteht.
|
|
||||||
|
|
||||||
Auf beiden Speichermedien hatte ich denselben Foto-Ordner kopiert, mit etwa
|
|
||||||
einer Handvoll Fotos. Die Bilder lagen also auf beiden Medien in einem
|
|
||||||
Unterorder.
|
|
||||||
|
|
||||||
**Interessanterweise wurden die Bilder auf der SD-Karte gefunden, die Bilder auf
|
|
||||||
dem USB-Stick jedoch nicht.**
|
|
||||||
|
|
||||||
Hier meine Beobachtungen im einzelnen, denn entsprechende Überlegungen findet
|
|
||||||
man auch im Netz:
|
|
||||||
|
|
||||||
### Dateisystem
|
|
||||||
|
|
||||||
Bevor ich es sowohl mit dem Stick als auch mit der SD-Karte probierte, habe ich
|
|
||||||
folgende Dateisysteme auf dem USB-Stick ausprobiert:
|
|
||||||
|
|
||||||
- EXFAT
|
|
||||||
- FAT32
|
|
||||||
|
|
||||||
Mit beiden Dateisystemen wurden keine Bilder gefunden.
|
|
||||||
|
|
||||||
### Root-Verzeichnis vs. Unterverzeichnis
|
|
||||||
|
|
||||||
Es hat keinen Unterschied gemacht, ob ich die Bilder (JPG-Dateien) im
|
|
||||||
Wurzelverzeichnis oder in einem Unterordner auf dem Stick hatte.
|
|
||||||
|
|
||||||
### Verschiedene Terminals
|
|
||||||
|
|
||||||
Ich habe meinen USB-Stick an verschiedenen Foto-Terminals ausprobiert, an keinem
|
|
||||||
von ihnen wurden die Bilder gefunden.
|
|
||||||
|
|
||||||
[Forumsthread]: https://www.cewe-community.com/forum/fb/viewtopic.php?t=13036&p=135162
|
|
Before Width: | Height: | Size: 130 KiB |
@ -1,127 +0,0 @@
|
|||||||
---
|
|
||||||
title: "Nvidia Drivers on Fedora"
|
|
||||||
description: >
|
|
||||||
My own up-to-date instructions for installing Nvidia drivers on a Fedora Linux system.
|
|
||||||
date: 2025-03-02T08:28:26Z
|
|
||||||
draft: false
|
|
||||||
# ShowLastmod: true
|
|
||||||
toc: false
|
|
||||||
scrolltotop: true
|
|
||||||
images: []
|
|
||||||
tags:
|
|
||||||
- nvidia
|
|
||||||
- fedora
|
|
||||||
- linux
|
|
||||||
---
|
|
||||||
|
|
||||||
My [Thinkpad P14s]({{< relref "p14s" >}}) has a dedicated Nvidia GPU, which
|
|
||||||
requires proprietary drivers. There is a gazillion of instructions on the web
|
|
||||||
for installing theses drivers on a Fedora system. Every now and then (with
|
|
||||||
kernel updates, I guess), my drivers stop working and I have to research _again_
|
|
||||||
how to (re-)install these drivers. Usually I notice this when developing raw
|
|
||||||
images with [Darktable][]. It gets dead slow and then I find out that OpenCL is
|
|
||||||
not working.
|
|
||||||
|
|
||||||
This post mainly serves as a reminder for myself how to re-install the NVidia
|
|
||||||
drivers on a Fedora laptop. It should be fairly up to date, because as I wrote,
|
|
||||||
I keep running into this problem over and over again.
|
|
||||||
|
|
||||||
The prerequisite is to have the [RPM Fusion][] repositories enabled.
|
|
||||||
|
|
||||||
{{< figure src="discover-settings-rpm-fusion.png" >}}
|
|
||||||
|
|
||||||
## Installing the NVidia drivers
|
|
||||||
|
|
||||||
I found out that I basically only need two packages:
|
|
||||||
|
|
||||||
- `nvidia-settings` and
|
|
||||||
- `xorg-x11-drv-nvidia-cuda`
|
|
||||||
|
|
||||||
The first one suffices to pull in the actual drivers and other packages as
|
|
||||||
dependencies. The latter is required in order for Darktable to make use of OpenCL.
|
|
||||||
|
|
||||||
```fish
|
|
||||||
sudo dnf install nvidia-settings xorg-x11-drv-nvidia-cuda
|
|
||||||
```
|
|
||||||
|
|
||||||
```plain
|
|
||||||
Updating and loading repositories:
|
|
||||||
Repositories loaded.
|
|
||||||
Package Arch Version Repository Size
|
|
||||||
Installing:
|
|
||||||
nvidia-settings x86_64 3:570.86.16-1.fc41 rpmfusion-nonfree-updates 4.4 MiB
|
|
||||||
Installing dependencies:
|
|
||||||
akmod-nvidia x86_64 3:570.86.16-3.fc41 rpmfusion-nonfree-updates 92.4 KiB
|
|
||||||
egl-gbm x86_64 2:1.1.2^20240919gitb24587d-3.fc41 fedora 29.3 KiB
|
|
||||||
egl-wayland x86_64 1.1.18~20250114git26ba0e3-2.fc41 updates 80.9 KiB
|
|
||||||
egl-x11 x86_64 1.0.1~20241213git61e70b0-1.fc41 updates 161.1 KiB
|
|
||||||
nvidia-modprobe x86_64 3:570.86.16-1.fc41 rpmfusion-nonfree-updates 51.0 KiB
|
|
||||||
xorg-x11-drv-nvidia x86_64 3:570.86.16-5.fc41 rpmfusion-nonfree-updates 190.2 MiB
|
|
||||||
xorg-x11-drv-nvidia-kmodsrc x86_64 3:570.86.16-5.fc41 rpmfusion-nonfree-updates 75.4 MiB
|
|
||||||
xorg-x11-drv-nvidia-libs x86_64 3:570.86.16-5.fc41 rpmfusion-nonfree-updates 361.9 MiB
|
|
||||||
Installing weak dependencies:
|
|
||||||
xorg-x11-drv-nvidia-cuda-libs x86_64 3:570.86.16-5.fc41 rpmfusion-nonfree-updates 273.2 MiB
|
|
||||||
xorg-x11-drv-nvidia-power x86_64 3:570.86.16-5.fc41 rpmfusion-nonfree-updates 233.7 KiB
|
|
||||||
|
|
||||||
Transaction Summary:
|
|
||||||
Installing: 11 packages
|
|
||||||
|
|
||||||
Total size of inbound packages is 351 MiB. Need to download 114 KiB.
|
|
||||||
After this operation, 906 MiB extra will be used (install 906 MiB, remove 0 B).
|
|
||||||
Is this ok [y/N]:
|
|
||||||
```
|
|
||||||
|
|
||||||
## Testing the installation
|
|
||||||
|
|
||||||
```fish
|
|
||||||
inxi -G
|
|
||||||
```
|
|
||||||
|
|
||||||
This will output the following if everything is configured correctly.
|
|
||||||
|
|
||||||
```plain
|
|
||||||
Graphics:
|
|
||||||
Device-1: Intel Meteor Lake-P [Intel Arc Graphics] driver: i915 v: kernel
|
|
||||||
Device-2: NVIDIA AD107GLM [RTX 500 Ada Generation Laptop GPU]
|
|
||||||
driver: nvidia v: 570.86.16
|
|
||||||
Device-3: Syntek Integrated Camera driver: uvcvideo type: USB
|
|
||||||
Display: wayland server: Xwayland v: 24.1.6 compositor: kwin_wayland
|
|
||||||
driver: gpu: i915 resolution: 1: 3840x2160~60Hz 2: 3072x1920
|
|
||||||
API: EGL v: 1.5 drivers: iris,nvidia
|
|
||||||
platforms: gbm,wayland,x11,surfaceless,device
|
|
||||||
API: OpenGL v: 4.6.0 compat-v: 4.6 vendor: intel mesa v: 25.0.0
|
|
||||||
renderer: Mesa Intel Arc Graphics (MTL)
|
|
||||||
API: Vulkan v: 1.4.304 drivers: N/A surfaces: xcb,xlib,wayland
|
|
||||||
Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
|
|
||||||
de: kscreen-console,kscreen-doctor gpu: nvidia-settings,nvidia-smi
|
|
||||||
wl: wayland-info x11: xdriinfo, xdpyinfo, xprop, xrandr```
|
|
||||||
```
|
|
||||||
|
|
||||||
If the drivers aren't installed and loaded properly, the graphics card's name
|
|
||||||
will be some generic term, not the exact name of the model.
|
|
||||||
|
|
||||||
To test if Darktable can use the CUDA driver, start if from the commandline
|
|
||||||
like so:
|
|
||||||
|
|
||||||
```fish
|
|
||||||
darktable -d opencl
|
|
||||||
```
|
|
||||||
|
|
||||||
This should output a lot of technical information about the graphics card.
|
|
||||||
|
|
||||||
If it doesn't, but instead complains along the lines of
|
|
||||||
|
|
||||||
> FINALLY: opencl is NOT AVAILABLE on this system
|
|
||||||
|
|
||||||
then there is something wrong.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Addendum 2025-04-17
|
|
||||||
|
|
||||||
Yesterday I upgraded from Fedora 41 to Fedora 42 (KDE), and of course the NVIDIA
|
|
||||||
drivers were removed. Using the instructions above effortlessly installed the
|
|
||||||
driver (currently version 570). :-)
|
|
||||||
|
|
||||||
[Darktable]: https://www.darktable.org
|
|
||||||
[RPM fusion]: https://rpmfusion.org
|
|
Before Width: | Height: | Size: 3.4 MiB |
Before Width: | Height: | Size: 4.8 MiB |
@ -1,36 +0,0 @@
|
|||||||
---
|
|
||||||
title: "Schwanheimer Wiese"
|
|
||||||
description: Two images from Schwanheimer Wiese, Frankfurt, Germany
|
|
||||||
date: 2025-03-04T06:21:18Z
|
|
||||||
draft: false
|
|
||||||
# ShowLastmod: true
|
|
||||||
toc: false
|
|
||||||
scrolltotop: true
|
|
||||||
images: []
|
|
||||||
tags:
|
|
||||||
- photos
|
|
||||||
- landscape
|
|
||||||
- pentax
|
|
||||||
---
|
|
||||||
|
|
||||||
I have decided to publish some of my photos on my blog.
|
|
||||||
|
|
||||||
Here are the first two of them, both taken on
|
|
||||||
["Schwanheimer Wiese"][wiese] a meadow in the forests
|
|
||||||
of [Frankfurt-Schwanheim][Schwanheim].
|
|
||||||
|
|
||||||
{{< figure src="20250223_152944 IMGP9786.jpg" >}}
|
|
||||||
|
|
||||||
The "Struwwelpeter" is a tree named after a figure from
|
|
||||||
a famous [children's book][struwwelpeter]:
|
|
||||||
|
|
||||||
{{< figure src="20250223_153306 IMGP9790.jpg" >}}
|
|
||||||
|
|
||||||
Camera: Pentax K-3 APS-C, 18-55 mm kit lens (crop factor 1.5),
|
|
||||||
image developed in [Darktable][]. Raw image file available
|
|
||||||
upon reasonable request. All rights reserved.
|
|
||||||
|
|
||||||
[darktable]: https://darktable.org
|
|
||||||
[Schwanheim]: https://en.wikipedia.org/wiki/Schwanheim_(Frankfurt_am_Main)
|
|
||||||
[struwwelpeter]: https://en.wikipedia.org/wiki/Struwwelpeter
|
|
||||||
[wiese]: https://de.wikipedia.org/wiki/Frankfurt-Schwanheim#Schwanheimer_Wiese
|
|
Before Width: | Height: | Size: 584 KiB |
Before Width: | Height: | Size: 289 KiB |
@ -1,116 +0,0 @@
|
|||||||
---
|
|
||||||
title: "Soleier: Pickled eggs for Easter"
|
|
||||||
description: >
|
|
||||||
Pickled eggs – "Soleier" – are a favorite Easter tradition in my
|
|
||||||
family. Here's my personal recipe.
|
|
||||||
date: 2025-04-17T17:55:07+02:00
|
|
||||||
draft: false
|
|
||||||
# ShowLastmod: true
|
|
||||||
toc: false
|
|
||||||
scrolltotop: true
|
|
||||||
images: []
|
|
||||||
tags:
|
|
||||||
- recipes
|
|
||||||
---
|
|
||||||
|
|
||||||
My family has a long-running tradition of producing pickled eggs for Easter
|
|
||||||
breakfast. We call these "Soleier" which is a composite of "Sole" (brine) and
|
|
||||||
"Eier" (eggs). Varous theories exist how pickled eggs came into existence, and
|
|
||||||
there are various ways to relish these eggs. As for the theories, the reader is
|
|
||||||
kindly referred to the [Wikipedia article][pickled eggs]
|
|
||||||
(also [in German][Soleier]).
|
|
||||||
|
|
||||||
As for the recipe and the way we eat pickled eggs in my family: read on.
|
|
||||||
|
|
||||||
{{< figure src="20250414_203010.jpg"
|
|
||||||
alt="My 2025 Soleier preparation."
|
|
||||||
caption="My 2025 Soleier preparation. Smartphone raw image file edited with darktable."
|
|
||||||
>}}
|
|
||||||
|
|
||||||
## How many eggs?
|
|
||||||
|
|
||||||
How many eggs you want to prepare depends on the number of people who want to
|
|
||||||
eat the pickled eggs, the number of days you want to have them for breakfast (or
|
|
||||||
any other meal to your liking) and last, but not least, what size of jar you
|
|
||||||
have to prepare them in.
|
|
||||||
|
|
||||||
My 1.5 L [Weck jar][] holds 13 medium-sized eggs.
|
|
||||||
|
|
||||||
Typically an adult will have 2 of those eggs for breakfast. With 13 eggs, this
|
|
||||||
leaves one spare egg (and toast), but there's usually a kid or two who doesn't
|
|
||||||
eat these eggs in pairs (if at all).
|
|
||||||
|
|
||||||
{{< figure src="20250414_203911.jpg"
|
|
||||||
alt="Pickled eggs with cracks."
|
|
||||||
caption="I love my pickled eggs to have cracks so that they let some of the brine in."
|
|
||||||
>}}
|
|
||||||
|
|
||||||
## Recipe
|
|
||||||
|
|
||||||
### Ingredients and materials
|
|
||||||
|
|
||||||
This recipe is for 13 eggs and a 1.5 L jar.
|
|
||||||
|
|
||||||
- 13 eggs
|
|
||||||
- 0.75 L water
|
|
||||||
- 50 g salt
|
|
||||||
- 1-2 tablespoons of caraway seeds (if you like)
|
|
||||||
- 1.5 L [Weck jar][] (doesn't need to be original Weck brand, of course, but must be sealed tight)
|
|
||||||
- 13 slices of toast
|
|
||||||
- butter
|
|
||||||
- oil, e.g. rapeseed oil, to your liking
|
|
||||||
- vinegar, e.g. any herb-flavored variant, to your liking
|
|
||||||
|
|
||||||
### Directions
|
|
||||||
|
|
||||||
You should prepare the pickled eggs a few days before you want to eat them. In
|
|
||||||
my family we typically do this 7 days before Easter, i.e. on Palm Sunday.
|
|
||||||
|
|
||||||
1. Boil the eggs so they get hard. I usually place the eggs in a pot, cover them
|
|
||||||
with water, and then slowly heat the water until it boils. Let it boil until
|
|
||||||
10 minutes have passed since the eggs were placed on the stove. Your mileage
|
|
||||||
may vary depending on your stove.
|
|
||||||
2. Pour out the hot water and shock the eggs with cold tap water.
|
|
||||||
3. Place the eggs into the jar using a clean spoon (not your hands!). I usually
|
|
||||||
let them drop into the jar so they get nice little cracks, this makes for
|
|
||||||
beautiful texture inside the eggs (see image).
|
|
||||||
4. Add the salt and caraway seeds to the jar.
|
|
||||||
5. Bring the water to boiling and pour it over the eggs in the jar.
|
|
||||||
6. Close the jar.
|
|
||||||
7. Invert the jar a couple of times (you may want to wear gloves while doing
|
|
||||||
this, the jar is hot!).
|
|
||||||
8. Store the jar in a cool place -- in our house, this is usually the basement.
|
|
||||||
|
|
||||||
## How to eat Soleier
|
|
||||||
|
|
||||||
There seem to be two fundamentally different ways to eat a _Solei_.
|
|
||||||
|
|
||||||
### Our way of eating Soleier
|
|
||||||
|
|
||||||
My family's tradition is to peel two eggs, place them on a dish, cut them into
|
|
||||||
pieces, then pour some oil and vinegar over the pieces and mash the eggs with a
|
|
||||||
fork. This leaves an ugly mess on the plate and I will update this post with a
|
|
||||||
picture of this year's appearance.
|
|
||||||
|
|
||||||
Brown two slices of toast, spread butter on them, and eat the _Solei_ mash/mess
|
|
||||||
using a fork while intermittently taking a bite from the bread.
|
|
||||||
|
|
||||||
### The more sophisticated way to eat Soleier
|
|
||||||
|
|
||||||
There is an alternative way to have your pickled eggs that supposedly is less
|
|
||||||
messy. The [German Wikipedia article][Soleier] claims it's the 'proper' or let's
|
|
||||||
say usual way to eat these eggs. I tried it once and I was totally unhappy with
|
|
||||||
the experience, so I stick with our traditional way.
|
|
||||||
|
|
||||||
Peel two eggs, cut the eggs into halves, remove the egg yolk and mash the egg
|
|
||||||
yolk with oil and vinegar. Transfer the mashed egg yolk back into the eggs. I
|
|
||||||
will look slightly less ugly, but I promise you will have a hard time getting
|
|
||||||
all the egg yolk--oil--vinegar mixture back into the eggs, the plate will look
|
|
||||||
like someone's been having _Soleier_ the traditional way, and when trying to put
|
|
||||||
the egg halves into your mouth, be prepared for everyone else who sits at the
|
|
||||||
table with you bursting into spontaneous laughter. At least that's what happened
|
|
||||||
to me one time... ;-)
|
|
||||||
|
|
||||||
[pickled eggs]: https://en.wikipedia.org/wiki/Pickled_egg
|
|
||||||
[Soleier]: https://de.wikipedia.org/wiki/Solei
|
|
||||||
[Weck jar]: https://en.wikipedia.org/wiki/Weck_jar
|
|
@ -1,17 +1,15 @@
|
|||||||
services:
|
services:
|
||||||
build:
|
build:
|
||||||
image: hugomods/hugo:ci
|
image: hugomods/hugo:latest
|
||||||
command: hugo
|
command: hugo
|
||||||
volumes:
|
volumes:
|
||||||
- ".:/src"
|
- ".:/src"
|
||||||
user: 1000:1000
|
user: 1000:1000
|
||||||
server:
|
server:
|
||||||
image: hugomods/hugo:ci
|
image: hugomods/hugo:latest
|
||||||
command: server --buildDrafts --buildFuture
|
command: server --buildDrafts --buildFuture
|
||||||
volumes:
|
volumes:
|
||||||
- ".:/src"
|
- ".:/src"
|
||||||
ports:
|
ports:
|
||||||
- "127.0.0.1:1313:1313"
|
- "127.0.0.1:1313:1313"
|
||||||
user: 1000:1000
|
user: 1000:1000
|
||||||
environment:
|
|
||||||
- TZ=Europe/Berlin
|
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
<p>
|
|
||||||
{{ partial "svg.html" (dict "context" . "name" "posts_single_date") }} {{ dateFormat .Site.Params.dateformNumTime .Page.Date.Local }}
|
|
||||||
{{ if and (not (eq .Page.Params.ShowLastmod nil)) (.Page.Params.ShowLastmod) }}
|
|
||||||
{{ if and .GitInfo .Site.Params.gitUrl }}
|
|
||||||
[{{ partial "svg.html" (dict "context" . "name" "posts_single_git_commit") }}<a href="{{ .Site.Params.gitUrl -}}{{ .Page.GitInfo.Hash }}" target="_blank" rel="noopener">{{ .Page.GitInfo.AbbreviatedHash -}}</a> @ {{ dateFormat .Site.Params.dateformNum .Page.GitInfo.AuthorDate.Local }}]
|
|
||||||
{{ else if not (eq .Page.Lastmod .Page.Date ) }}
|
|
||||||
[{{.Site.Params.initialPublish | default "Initial Published on : "}} {{ dateFormat .Site.Params.dateformNumTime .Page.Lastmod.Local }}]
|
|
||||||
{{ else }}
|
|
||||||
{{ errorf "Lastmod is not found in Page Frontmatter or Lastmod is same as Date" }}
|
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
|
||||||
</p>
|
|