Table of contents

Umweltschutz, Tourismus und Korruption auf und um Fehmarn

Einleitung

Aktuell gibt es Planungen durch das Bundesumweltministerium im Bereich der Ostseeküste, von Fehmarn bis hoch nach Eckernfürde einen Nationalpark zu errichten. Dagegen regt sich reichlich Widerstand.

Dieser Widerstand ist rein wirtschaftlich motiviert, weil durch einen Nationalpark die Küsten nicht mehr in der Form genutzt werden dürfen, wie das derzeit der Fall ist. Surfer, Segler, Yachteigner, Badegäste, Angler und Fischer müssen ihren Kram zusammenpacken und verschwinden. Die durchaus lautstarke Kritik an dem Projekt kommt denn auch vom Who is Who der Tourismusbranche aus der Gegend.

Ich kann den Protest durchaus verstehen. Es gibt genug Leute, die zu 100% vom Tourismus abhängig sind, deren ganzes Geschäftsmodell mit den Touristen steht und fällt. Einerseits.

Andererseits haben den Protest keine normalen Werktätigen unterschrieben. Das sind alles Leute in irgendwelchen Führungspositionen, Unternehmer, Eigentümer - die Kapitalisten des Tourismus der Gegend nenne ich die einmal. Die nagen alle nicht am Hungertuch.

Schauen wir uns deren Argumentation einmal genauer an:

Wissenschaftlichkeit

Es gibt keine wissenschaftlichen Konzepte

Bis zum heutigen Tag sind keine wissenschaftlich erarbeiteten Konzepte präsentiert worden, wie die in der Grafik abgebildeten seeseitigen, landseitigen und atmosphärischen Belastungen durch einen Nationalpark Ostsee signifikant eingedämmt werden sollen.

(gemeint ist diese Grafik).

Es fängt damit an, dass es Konzepte gibt und Wissenschaft. Das hat erstmal nicht notwendigerweise etwas miteinander zu tun. Man kann ein Konzept auf wissenschaftlicher Grundlage erstellen, aber die Wissenschaft erarbeitet üblicherweise keine Konzepte, sondern erforscht die Welt um uns herum, bildet Theorien über die beobachteten Phänomene, versucht Beweise dafür zu finden, überprüft dies in Peer Review Prozessen umd kommt schliesslich zu einem Konsens. Dieser muss nicht dauerhaft bleiben, wissenschaftliche Theorien - auch wenn sie allgemein anerkannt sind - müssen falsifizierbar sein.

Man muss aus dem Vorwurf also zwei Fragen ableiten:

  1. Gibt es wissenschaftliche Arbeiten zum Thema Meeresschutzzonen?

  2. Ist ein Konzept für die Errichtung eines Nationalparks zum gegenwärtigen Zeitpunkt erforderlich?

Zur ersten Frage lassen sich viele wissenschatliche Arbeiten finden, hier mal exemplarisch nur eine, die insbesondere auch auf den Konflikt zwischen menschlicher Nutzung eines Meeresschutzgebietes und dem Naturschutz eingeht:

Dominic A. Andradi-Brown1 et.al. 2023 - Diversity in marine protected area regulations: Protection approaches for locally appropriate marine management.

Weitere Publikationen nur von diesem einen Institut.

Leichter verdaulich findet man z.b. beim NABU Informationen dazu.

Es gibt jedenfalls genügend wissenschatliche Nachweise, dass ein Meeresschutzgebiet für die in dem Gebiet lebende Flora und Fauna immer ein Segen ist - die Bestände erholen sich, zum Teil werden vom Aussterben bedrohte Arten gesichert und vor allem bleibt die Biodiversität erhalten, bzw verbessert sich üblicherweise auch.

So traurig das ist und so schwer verdaulich es für die Tourismusbranche auch sein mag: ohne solche Schutzzonen würde sich niemand nachhaltig um den Artenschutz in solchen Gebieten kümmern. Und die, die es trotzdem unermüdlich versuchen, befinden sich im permantenten Konflikt mit der lokalen Politik, der Wirtschaft und der Bevölkerung. Will man einen echten Schutz erreichen, muss das mit Zwang durchgesetzt werden - und zwar explizit gegen die Interessen der Wirtschaft.

Der zweite Punkt nach der Frage nach einem Konzept stellt sich meiner Meinung nach eigentlich gar nicht. Der Minister schreibt ja explizit:

Dialogprozess mit Beteiligten vor Ort

Ob ein Nationalpark eingerichtet wird und wenn ja, auf welchen Flächen wird in einem intensiven Konsultationsprozess mit den Ostsee-Anrainerkreisen und -kommunen sowie gesellschaftlichen Interessensvertretungen an der Ostsee diskutiert.

Dazu wird das Umweltministerium im Laufe des nächsten Jahres Gespräche mit Beteiligten aus Tourismus, Fischerei und Politik vor Ort führen. “Wir wollen im Frühling des nächsten Jahres in Gespräche mit allen Beteiligten in der Region einsteigen“, sagte Umweltminister Tobias Goldschmidt. Am Ende dieses intensiven Prozesses könnte ein weiterer Nationalpark in Schleswig-Holstein Wirklichkeit sein.

An dem Punkt würde ich noch kein fertiges Konzept erwarten. Bei solchen Konsultationen schaut man sich erstmal an, welche Ideen es gibt, was die bringen sollen, was die Forschung sagt, was die Betroffenen sagen und wenn es irgendwann eine Einigung oder Entscheidung gibt, wird erst ein Konzept erarbeitet.

Trotzdem gibt es durchaus Konzepte anderer Meeresschutzgebiete an denen man sich orientieren kann. Hier ein Beispiel: Nachhaltiges Management von Küsten- und Meeresschutzzonen, Indien

Interessant ist diese Forderung nach einem ‘wissenschaftlichen Konzept’ aber auch, weil die Gegner auf der selben Seite weiter unten folgendes formulieren:

WORAN WIR GLAUBEN!

Wir glauben, dass es bessere Hybridlösungen für den Naturschutz und die Nutzungsinteressen gibt. Unser Ziel ist ein zusätzlicher, kreativer und von der Allgemeinheit mitgetragener Umweltschutz auf Grundlage der Natura2000 Gebiete, den die Interessensverbände mit ökologischen Nutzungskonzepten unterstützen. Die Entscheidungsgewalt über Natur und Mensch bliebe in Schleswig-Holstein für heute, morgen und übermorgen.

Wenn man seinem Gegner Unwissenschaftlichkeit vorwerfe, kann man nicht mit Glauben argumentieren.

Bund vs. lokale Interessengruppen

Eine Kritik die man überall zu dem Thema liest ist, dass es nicht angehen kann, dass der Bund einfach über so eine Sache entscheidet und lokale Interessengruppen aussen vor bleiben.

Zum einen stimmt das nicht, siehe Zitat vom Minister weiter oben. Ob bei der Einbeziehung lokaler Gruppen, Verbände, Vereine, Wirtschaftsvertreter etc jedermann eingeladen ist, der eine Meinung dazu hat, steht natürlich auf einem anderen Blatt. So ist das eben in der Bundespolitik. Darüber kann man sich ärgern, was auch nachvollziehbar ist, aber am Ende haben irgendwelche lokalen Interessengruppen in einer Demokratie bei einer solchen Entscheidung nichts zu melden. Sie können sich zu Wort melden, die Politik kann sie annhören - muss sie aber nicht. Demokratisch gewählte Volksvertreter sind in ihrer Entscheidung letztlich frei.

Die Alternative wäre eine Diktatur der Wenigen und die ist weder für die Bevölkerung, noch für die Natur und übrigens auch nicht für die Wirtschaft besser.

Die Konsultationen mit der Tourismusbranche sind indes bereits abgeschlossen, nähere Infos über die dort getroffenen Festellungen und Aussagen, kan man hier finden (auch runterscrollen und die PDFs lesen). Der Tenor ist klar:

  • der Tourismus wird den Bach runtergehen, Wassersport, Camping, Vermietung, Regatten uvm wird es nicht mehr geben.

  • und es wird behauptet, die Tourismusbranche täte schon recht viel für den Umweltschutz.

Letzteres kann ich als Bewohner der Region ganz klar als Märchen ablehnen. Da tut niemand was. Klar, es finden regelmäßig Müllsammelaktionen statt (um mal ein dort mehrfach erwähntes Beispiel rauszunehmen), allerdings sind das ehrenamtliche Bürgerinitiativen, die das machen, keine im Tourismus tätigen Unternehmer! Hier ein Beispiel einer solchen Aktion vom B.U.N.D.. Ich lese da nichts von einer Beteilung irgendwelcher Tourismusbetriebe.

Die anderen bereits stattgefundenen Workshops (Liste) ergeben ein ähnliches ablehnendes Meinungsbild. Gespannt bin ich auf den Workshop Naturschutz, der am 30.8. in Neumünster stattfinden wird.

Aber ich schweife ab. Was ich kritisiere ist dieses Beharren darauf, dass man der Tourismusindustrie ein Mitspracherecht was die Nutzung der Natur anbelangt, einräumen müsste. Warum? Klar, der Tourismus ist Nutznießer aber was leistet er zum Erhalt der natürlichen Resourcen?

Soweit ich das sehe gar nichts. Im Gegenteil! Wenn man auf Fehmarn lebt, so wie wir, dann kann man hier seit vielen Jahren vor allem eins beobachten: einen ungezügelten Rauptierkapitalismus, Gentrifikation, Profitgier und Rücksichtslosigkeit. Überall auf der Insel wird gebaut und auch wenn man von der Politik allenthalben Versprechungen vernimmt, dass dieses mal nun wirklich Wohnungen für die einheimische Bevölkerung gebaut werden sollen - es geschieht nicht.

Hier nur ein Beispiel: Windspeel nennt sich das Bauprojekt in der Theodor-Storm-Strasse 1-3 in Burg. Das war mal eine Arbeitersiedlung, die von Scandlines gegründet worden ist. Die Gebäude standen dann irgendwann jahrelang wegen Schimmel leer und es wurde ein Neubauprojekt geplant. Doch statt Wohnungen für Werktätige wurde das Grundstück von der Stadt an private Investoren verkauft, die dort nun Luxusapartements bauen, die für Preise bis zu 716.000 Euro (in Worten: siebenhundertsechszehntausend!) verkauft werden sollen.

Wie - anders als mit Korruption - ist eine solche Entwicklung erklärbar? In den allermeisten Fällen werden solche Bauprojekte auf Fehmarn einfach genehmigt. Die Nutznießer sind private Investoren, Auswärtige die sich einen Alterswohnsitz leisten, den sie zwischenzeitlich an Feriengäste vermieten (Zweitwohnbesitzer genannt) aber kaum eine Kellnerin oder ein Mechaniker der auf der Insel lebt und arbeitet. Diese Bevölkerungsgruppe wird nach und nach verdrängt. Das ist klassiche Gentrifizierung. Das was wir heute auf Sylt beobachten, wo praktisch alle Berufstätigen täglich mit dem Zug vom Festland nach Sylt pendeln müssen, weil sie sich dort keinen Wohnraum leisten können, wird hier auf Fehmarn auch kommen. Und jeder - auch die Politik - weiss es. Das Problem wurde häufig genug angesprochen und ist nachweislich in der Politik bekannt.

Man muss demnach konstatieren, dass der lokalen Politik auf Fehmarn die Belange der eigenen Bevölkerung gleichgültig sind. Alles was zählt ist der Tourismus. Baugenehmigungen für touristisch (oder wie oben erwähnt nicht einheimisch) genutzte Gebäude werden sang- und klanglos erteilt. Es spielt auch keine Rolle, wo ein Bauherr herkommt (bzw sein Geld).

Wenn diese Leute nicht tatsächlich korrupt sind (was ich natürlich nicht konkret beweisen kann), so sind deren Interessen jedenfalls extrem einseitig. Es geht ums Geld und zwar ausschliesslich ums Geld. Und ich will gar nicht erst damit anfangen, wieviele Bauunternehmer in der Gemeinde mitmischen. Fehmarn könnte - was das betrifft - genauso gut eine Insel vor Griechenland oder Italien sein.

Wieso sollte man solchen Leuten die Entscheidungshoheit oder gar ein Mitspracherecht über Umweltschutzprojekte geben? Aus meiner Sicht ist das nicht einzusehen. Tatsächlich werden Naturschutzprojekte schon seit Ewigkeiten immer über die Köpfe der lokalen Wirtschaft beschlossen. Es geht auch nicht anders. Natürlich hat kein Unternehmer an Umweltschutz. Wenn überhaupt, dann nur als Marketingmaßnahme. Aber wenn es legal ist und man damit mehr Profit machen kann, wird grundsätzlich auf die Natur geschissen.

Und dann wären da ja noch die Touristen

Ich muss ehrlich zugeben, dass ich wirklich nicht gut auf die Touristen auf Fehmarn zu sprechen bin. Gerade in den letzten Jahren nach Corona hat sich die Situation noch einmal deutlich verschlechtert. Die Leute sind aggressiver und unhöflicher geworden. Oder die netten Leute werden immer weniger, das kann ich natürlich nicht beurteilen. Auf jeden Fall nerven die. Ab schlimmsten sind die ebike-fahrenden Touristen. Man erkennt sie daran, dass sie mit Helm und oft sogar Sportkleidung unterwegs sind. Keine Ahnung wieso kaum Einheimische Radfahrer einen Helm benutzen, ich kenne jedenfalls keinen einzigen. Wie dem auch sei, die rasen mit Tempo 30 über den Bahndamm (heute ein Rad- und Fussweg) dahin, verwenden oft keine Klingel und pöbeln Fussgänger auch noch an, wenn sie nicht schnell genug zur Seite springen - was mit Hunden ja auch nicht immer einfach ist.

Diese Rücksichtslosigkeit kann man vielerorts beobachten, insbesondere dort, wo sich oft viele Touristen aufhalten, sieht es aus wie bei Hempels unterm Sofa. Überall wird Müll liegengelassen, auch sehr gerne an den Stränden. Klar, es wird auch Müll angespült, aber wenn man oft am Strand ist (und ich bin statistisch gesehen wesentlich öfter am Strand als irgendwelche Gäste), dann erkennt man den Unterschied zwischen frischem Müll und Angespültem.

Den Leuten ist die Natur auf Fehmarn scheissegal. Das groteske daran ist, dass die oft extra wegen der Natur hierher kommen. Wir stehen dann immer da, wenn uns jemand sowas erzählt und kratzen uns am Kopf: welche Natur denn?!?!?

Ja, es gibt auf Fehmarn schon Naturschutzgebiete: Wallnau, Grüner Brink, Krummsteert, und die nördliche Niederung. Diese Gegenden sind aber nur bedingt touristisch nutzbar. Der Rest der Insel jedoch besteht weitgehend aus Feldern, Strassen und immer weiter wachsenden Ortschaften.

Besser ist auf Fehmarn nur das Wetter und (bislang) die Preise im Vergleich zu manch anderer Gegend an der Ostsee. Aber wegen der Natur kommt man nicht hierher und wenn man es doch tut, ist man ein ahnungsloser Ignorant.

Das sind also die Leute, die gegen den Nationalpark sind: ignorante rücksichtslose Touristen und die Unternehmer, die sich auf dem Rücken der Umwelt und der lokalen Restbevölkerung eine goldene Nase verdienen. Genau die Clientel der ich als Politiker zuhören würde, wenn ich zu entscheiden hätte, Nationalpark ja oder nein. Ja nee is klaar.

Wie gesagt, das ist meine persönliche Sicht der Dinge. Oft wird einem als Kritiker (sofern man nicht eh gleich gelöscht wird) vorgeworfen: “aber Ihr lebt doch von uns!”. Das mag für viele zutreffen, auf mich und meine Familie nicht.

Ich kann Euch sagen, wann wir die aller aller ALLER schönste Zeit auf der Insel hatten: während Corona 2020. Damals war die Brücke gesperrt und nur Einheimische durften auf die Insel. Das war mitten zur Hauptsaison bei bestem Wetter. Die Strände waren wirklich menschenleer. Wir fanden das absolut herrlich, diese Ruhe, das gemächliche Verstreichen der Zeit. Bis ans Ende meiner Tage werden wir uns an diese Momente erinnern. Und ja, mir ist bewusst, dass eine Menge Leute ernstzunehmende Sorgen in der Zeit hatten - wir auch. Aber diese kurze Zeit der Einsamkeit und Ruhe haben wir trotzdem genossen.

fehmarn-leerer-strand-maerz-2020.jpg

Nicht alle Fehmaraner brauchen Touristen. Oder wenigstens nicht so viele. Mancher von uns hätte gerne eine bezahlbare Wohnung oder würde gerne ein kleines Häuschen bauen. Wenn der Nationalpark da für eine gesunde Schrumpfung dieser höllischen Branche sorgt, soll uns das Recht sein.

Wir sind dafür.

↷ 23.08.2023 🠶 #rant

Fixing the obscure EMMS user interface

For years I am using a small shell wrapper script and mplayer to play mp3 songs in a loop, because I can’t sit at the computer and not listening to something. However, that script missed a lot of basic command such as “play the previous song” etc. Of yourse there are lots of terminal audio players, but most of them require a new set of key bindings to be learned. And to be honest, all my key binding related memory banks are full, I can’t just memoize yet another set of key bindings.

Then I discovered EMMS to my surprise. So I gave it a try.

And failed miserably.

The user interface of EMMS is not just bad, it is fucking crab. I needed more than an hour just to get it to play a damn song. Then when it finally did, I was unable to get it to stop playing because the buffer with the playlist went missing. A hidden buffer! What the hell were they thinking! Also it was (or rather IS) hard and complicated to create a new playlist and fill it with songs from a directory. Really this is the simplest task an audio player should be able to do. Not EMMS. I haven’t seen anything more fucked up than this.

From the deepest of my heart I really fucking hate EMMS!

On the other hand I truly love emacs. I love it so much that I am already mourning the day I’m dying because then I won’t be able to use emacs anymore.

Using emacs to me means, I am the sole dictator of what happens in my editor. And if I want it to play music and the code that offers such functionality doesn’t work the way I like it, I can and will just change it so that it does.

So, I went and wrote two functions which makes my live with EMMS much much easier. The first one (and the more complicated one) is audio-create-playlist. Here’s the docstring of the function:

Create a new audio playlist for EMMS player.

It asks interactively for NAME.  The playlistname will be derived
as     this: 'source-file-default-directory + \"playlist-\" + NAME.

If the playlist already exists nothing will be done.

Otherwise the  user will be  asked wether  to add a  directory or
file[s] to  the playlist.  In the  first case  the user  can then
interactively select a directory. In the latter case the user can
add interactively one or more files.

The playlist will be saved when  a directory has been selected or
the user declines to add another file.

So when I want to create a new playlist, I just call this function, enter a name, add a directory or a couple of files using the interactive way for this the function provides and be done with it.

When I want to use this playlist the next day, I just call the other function audio-open-playlist, which asks me for the playlist location, opens it in an EMMS buffer and starts playing. And the buffer will also be properly named so that I can easily find it. Also it is visible and not hidden somehow.

Inside this buffer I can then just use the usual EMMS keys to navigate the songs, like p, n, <space>, <ret> etc. Pretty easy.

If you want to use these functions and also take a look at my EMMS config: init-audio.el can be found on github.

↷ 22.07.2023 🠶 #emacs

tablizer - a tool to manipulate tabular output of shell commands

Last year I switched departments and am working now with k8s, the cloud and all the new fancy stuff. Most of the time I work on the commandline. I cannot say I am not happy with the new assignment, but some things k8s annoy me anyway.

Here’s an example:

kgpw|grep 5fc
connecttest10-pgbenchclient-5fcb6888c9-28csx              0/1     ContainerCreating   0                 8d     <none>       kind-worker2         <none>           <none>
connecttest10-pgbenchclient-5fcb6888c9-4cbh4              0/1     ContainerCreating   0                 8d     <none>       kind-worker3         <none>           <none>
connecttest10-pgbenchclient-5fcb6888c9-bh644              0/1     ContainerCreating   0                 8d     <none>       kind-worker3         <none>           <none>
connecttest10-pgbenchclient-5fcb6888c9-bp9sf              0/1     ContainerCreating   0                 8d     <none>       kind-worker2         <none>           <none>
connecttest10-pgbenchclient-5fcb6888c9-lw8kp              0/1     ContainerCreating   0                 8d     <none>       kind-worker3         <none>           <none>

(kgpw == kubectl get pod -o wide)

The first problem is, that this output is waaaay to wide. Sometimes I get outputs which so wide, that even on a 3440x1440 monitor every line is being broken. The result is unreadable. I even once deleted the wrong database just because of this mess.

The other issue is that if you use something like |grep then the headers go missing as can be seen in the example above.

I hate this fucking behavior.

Of course, it might be possible to circumvent all these (and more) issues using tools like awk etc. And to make it clear: i tried this in the beginning. But the shell function I used for this purpose got more and more unflexible, it grew larger and larger up to the point that it wasn’t maintainable anymore.

Enter tablizer.

Since working in the cloud, learning Go was a must anyway. And I am a practical learner, that is I need some usefull project to learn a new language. This annoyance here came in to the “rescue”.

By using tablizer I can combine tools like egrep, awk, sed, sort and column in one handy and easy to use tool. I don’t use it directly most of the time, but rather put it into handy shell aliases.

Here’s the usage message of it:

Usage:
  tablizer [regex] [file, ...] [flags]

Operational Flags:
  -c, --columns string     Only show the speficied columns (separated by ,)
  -v, --invert-match       select non-matching rows
  -n, --no-numbering       Disable header numbering
  -N, --no-color           Disable pattern highlighting
  -H, --no-headers         Disable headers display
  -s, --separator string   Custom field separator
  -k, --sort-by int        Sort by column (default: 1)

Output Flags (mutually exclusive):
  -X, --extended           Enable extended output
  -M, --markdown           Enable markdown table output
  -O, --orgtbl             Enable org-mode table output
  -S, --shell              Enable shell evaluable ouput
  -Y, --yaml               Enable yaml output
  -C, --csv                Enable CSV output
  -A, --ascii              Default output mode, ascii tabular

Sort Mode Flags (mutually exclusive):
  -a, --sort-age           sort according to age (duration) string
  -D, --sort-desc          Sort in descending order (default: ascending)
  -i, --sort-numeric       sort according to string numerical value
  -t, --sort-time          sort according to time string

Other Flags:
      --completion <shell> Generate the autocompletion script for <shell>
  -d, --debug              Enable debugging
  -h, --help               help for tablizer
  -m, --man                Display manual page
  -v, --version            Print program version

So, let’s work through an example. Say we want to get a list of pods, their status and the node each pod is running on AND only pods matching some pattern shall be printed.

The very first thing you do, is execute the original command again (without any |grep after it!) and put | tablizer behind it. You’ll get something like this (shortened):

kgpw | tablizer
NAME(1)                                                	READY(2)	STATUS(3)        	RESTARTS(4)     	AGE(5)	IP(6)     	NODE(7)           	NOMINATED NODE(8)	READINESS GATES(9) 
connect11test10-benchtest-pgbenchclient-b68d988b8-9vks5	0/1     	ContainerCreating	0               	7d6h  	<none>    	kind-worker3      	<none>           	<none>            	
connect11test10-benchtest-pgbenchclient-b68d988b8-dpq8g	0/1     	ContainerCreating	0               	7d6h  	<none>    	kind-worker2      	<none>           	<none>            	
connect11test10-benchtest-pgbenchclient-b68d988b8-f2dpn	0/1     	ContainerCreating	0               	7d6h  	<none>    	kind-worker3      	<none>           	<none>            	
connect11test10-benchtest-pgbenchclient-b68d988b8-fjhk4	0/1     	ContainerCreating	0               	7d6h  	<none>    	kind-worker2      	<none>           	<none>            	
connect11test10-benchtest-pgbenchclient-b68d988b8-m64z7	0/1     	ContainerCreating	0               	7d6h  	<none>    	kind-worker2      	<none>           	<none>
[..]

This looks pretty unchanged to the original output, but the headers are now numerized. Armed with that knowledge we can now reduce the output to the columns we want to see by using the -c option:

kgpw | tablizer -c 1,3,7
NAME(1)                                                	STATUS(3)        	NODE(7)            
connect11test10-benchtest-pgbenchclient-b68d988b8-9vks5	ContainerCreating	kind-worker3      	
connect11test10-benchtest-pgbenchclient-b68d988b8-dpq8g	ContainerCreating	kind-worker2      	
connect11test10-benchtest-pgbenchclient-b68d988b8-f2dpn	ContainerCreating	kind-worker3      	
connect11test10-benchtest-pgbenchclient-b68d988b8-fjhk4	ContainerCreating	kind-worker2      	
connect11test10-benchtest-pgbenchclient-b68d988b8-m64z7	ContainerCreating	kind-worker2      	
connecttest10-benchtest-pgbenchclient-8bb8ff5d8-52xg5  	ContainerCreating	kind-worker3      

Now we add our search pattern and we also add -n to hide the numberization:

kgpw|tablizer -c 1,3,7 -n 5fc 
NAME                                        	STATUS           	NODE         
connecttest10-pgbenchclient-5fcb6888c9-28csx	ContainerCreating	kind-worker2	
connecttest10-pgbenchclient-5fcb6888c9-4cbh4	ContainerCreating	kind-worker3	
connecttest10-pgbenchclient-5fcb6888c9-bh644	ContainerCreating	kind-worker3	
connecttest10-pgbenchclient-5fcb6888c9-bp9sf	ContainerCreating	kind-worker2	
connecttest10-pgbenchclient-5fcb6888c9-lw8kp	ContainerCreating	kind-worker3

That’s pretty much it. Now put this commandline into some handy alias and you’re good to go. There are many more options: you can let tablizer generate markdown or orgmode tables, you can let it print extended output like \x in psql, yaml mode etc etc. There are usefull sorting options, you can even sort by kubernetes age output.

Also, you’re not limited to shell output, using the -s option you can use the tool to process CSV files (or anything other looking tabular with headers), you can also generate valid CSV for that matter.

If you’re working on the commandline every day in a cloud environment and are annoyed by too large and confusing outputs, then give tablizer a try. It’s easy to install, there are precompiled binaries for the most popular architectures without dependencies. There are also tarballs containing a proper installer with a manual page if you’re into this.

Read the manual page to learn more about tablizer.

↷ 19.07.2023 🠶 #shell

kill privileged sessions on tmux detach

I’ve switched from screen to tmux recently but I got one problem: when I left a session on a remote server, then anyone who is able to gain access to my user account would be able to also gain access to any remote shells or root shells within the tmux session. Since tmux doesn’t provice a way to protect from this, I created my own solution.

A simple script finds all privileged sessions running in the currently attached tmux session and kills it. The script is being executed as a hook when I detach from the session. It also echos a message about the fact to the windows so that I know a couple of days later where my root shell went etc.

So, here’s the script:

#!/bin/sh

termsubsession() {
  local index=$1
  local pid=$2
  local what="$3"
  local sendkeys="$4"

  echo "$what in window#$index under parent $pid, sending $sendkeys"
  tmux send-keys -t $index $sendkeys
  tmux run-shell -t $index "echo $what killed by $0"
}

tmux list-panes -s -F '#{pane_pid} #{window_index}' | while read PID INDEX; do
    pstree -p -a $PID | while read LINE; do
    if echo "$LINE" | egrep -q " root "; then
      termsubsession $INDEX $PID "root shell" "C-d C-d C-d"
      break
    elif echo "$LINE" | egrep -q "note -i"; then
      termsubsession $INDEX $PID "note -i" "q q C-m"
      break
    elif echo "$LINE" | egrep -q " /usr/bin/ssh "; then
      termsubsession $INDEX $PID "remote shell" "C-d"
      break
    fi
  done
done

Add this line to your .tmux.conf:

set-hook -g client-detached 'run-shell ~/bin/terminate-privileged-sessions.sh'

Take care if you try to adopt the solution. For example, I had to send 3 times C-d to my root shell. I start it usually using su - and then execute bash as root. So, 2 x C-d should be sufficient. But it didn’t work, for whatever reason.

Also note, that I do not just kill the processes in question. For the remote session killing the ssh client might be sufficient, but in case of the root shell it leads to the tmux window being closed. I was unable to figure out why this happend so I finally resorted to using tmux send-keys.

↷ 15.08.2022 🠶 #tmux

Tierschutz - das Gegenteil von gut ist gut gemeint

Das ist Annie:

annie-grinst.jpg

Annie ist eine etwa 5 Jahre alte Mischlingshündin aus Spanien. Sie ist vor 10 Wochen bei uns eingezogen. Wir haben sie sehr ins Herz geschlossen - trotz all der Päckchen die sie mitbringt - und werden sie auch nicht mehr hergeben.

Diese Hündin ist im Grunde der typische Tierschutzhund: schwer vermittelbar. Hier ist eine Liste der Probleme, die wir bei ihr festgestellt haben:

  • massive Kieferfehlstellung: wodurch sich ein Teil der Vorderzähne des Oberkiefers im Freien befindet.
  • mehrere persistierende Milchzähne: dadurch leidet sie unter dauerhaften Zahnfleischentzündungen, Karies und Zahnstein, hauptsächlich an den oberen an der Luft befindlichen Zähnen.
  • Probleme beim Atmen: man hört ziemlich oft Röchelgeräusche.
  • Perinealhernie: das ist ein Bruch der Bauchdecke, wodurch die Blase eingeklemmt werden könnte.
  • Nystagmus (Vestibularsyndrom): ein neurologischer Schaden, der vermutlich durch Schläge oder durch eine nicht behandelte Staupeinfektion im Welpenalter ausgelöst wurde. Sie ist deswegen nicht in der Lage, ein Objekt mit den Augen zu focussieren. Die Augen wandern von allein nach rechts, sie zuckt dann mit dem Kopf ebenfalls nach rechts (wie um die Augen wieder einzufangen) und bewegt dann den Kopf wieder zurück. Das geht ununterbrochen so, auch im Schlaf, zumindest ist es zu beobachten wenn sie träumt.
  • eiternder Faden an der Narbe der Kastration.
  • eine entzündete Milchzitze.
  • Sie hat eine Lebensmittelallergie auf helles Fleich, was zu juckenden Entzündungen der Bauchhaut führt.
  • tränende Augen: ob es einen Zusammenhang mit dem neurologischen Schaden gibt, ist unklar.
  • nicht stubenrein: Wir müssen mit ihr mehrmals am Tag zusätzlich zu den normalen Gassirunden mit ihr in den Garten. Wenn wir da mal nicht schnell genug sind, schafft sie es nicht und pieselt irgendwo hin. Vermutlich wird das für immer so bleiben.
  • Sie verfügt über keinerlei Umweltsozialisation: sie kennt praktisch nichts, jedes Geräusch, jeder Gegenstand und jedes Lebewesen scheint neu für sie zu sein und sie ins Mark zu erschrecken.
  • Sie kann nicht in Einzelhaltung leben und benötigt unbedingt einen Zweithund als Sicherheit.

Die gesundheitlichen Probleme werden wir soweit möglich behandeln lassen. Wir werden die karösen Zähne entfernen lassen. Vom Schädel wird noch ein MRT angefertigt, um zu sehen ob es innere Schäden gibt. Die Behandlung der tränenden Augen hat bisher nicht angeschlagen. Entzündungen sind aber mittlerweile abgeklungen.

Die Unsicherheit, Angst und Panikatacken werden wir im Lauf der Zeit angehen. Wir konnten sie schon an Einiges gewöhnen, Annie ist wirklich sehr gelehrig. Sie ist bereits sehr gut abrufbar und man kann mit ihr abseits von Strassen bereits ohne Leine laufen.

Der interessante Teil der Geschichte ist aber, wie wir zu ihr gekommen sind. Zugegebenermaßen waren wir ziemlich naiv, haben uns beeinflussen lassen und hätten Annie vielleicht nie genommen, wenn wir von alldem vorher gewusst hätten.

Vermittelt wurde Annie durch einen in Spanien ansässigen Tierschutzverein, der auch in Deutschland tätig ist. Eine Bekannte von uns ist dort als Pflegestelle Mitglied und schwärmte in den höchsten Tönen vom Verein. Aus Furcht vor Repressalien durch diesen Verein kürze ich den Namen hier nur mit Der Verein ab. Ich kann den Verein auf Nachfrage jedoch gerne benennen.

Irgendwann war diese kleine Hündin verfügbar:

annie-grimasse.jpg

Annie kam am 11.07.2021 auf der Pflegestelle in Heiligenhafen an. Wir haben ihr am 16.07.2021 den ersten Besuch abgestattet. Der Unterbiss war nicht zu übersehen, ihr scheues Verhalten fanden wir normal. Auf der Pflegestelle wurde uns ansonsten nur Positives von ihr erzählt. Sie käme mit allem und allen gut klar, sie sei unauffällig, ein einfacher Hund halt.

Bei einer Gassirunde mit unserem Finlay ist es dann um uns geschehen. Die beiden sind wie ein altes Ehepaar zusammen gelaufen, was bei Finlay ja nicht unbedingt selbstverständlich ist.

annie-finnie-gucken.jpg

Wir entschieden uns recht schnell, Annie zu nehmen, unterzeichneten am 17.07.2021 den “Vertrag” (dazu unten mehr), bezahlten die “Ablösegebühr” und nahmen sie mit nach Hause. Nicht unerwähnt möchte ich lassen, dass ein gewisser Druck auf uns ausgeübt wurde, subtil aber effektiv. Es gäbe noch viele andere Interessenten und sie wäre in ein paar Tagen weg.

Die ganzen Probleme, die sie hat, sind uns daheim schon nach ein oder zwei Tagen aufgefallen. Auf Nachfrage bei der Pflegestelle wurde uns nur entgegnet, dass das nicht sein könne. Wir sind umgehend mit ihr in die Tierklinik Neustädter Bucht gefahren und haben sie gründlich untersuchen lassen. In den nächsten Monaten werden wir einige Behandlungen mit ihr machen lassen müssen, insgesamt werden Kosten von ca 2.500,- Euro auf uns zukommen, wovon wir bisher bereits knapp 600,- Euro aufgebracht haben.

Wir fragten daher beim Verein nach. Gar nicht mal, um Annie wieder loszuwerden (was eh nicht mehr in Frage kam!), sondern eher um über die doch nicht unerheblichen Kosten zu sprechen. Die Mitarbeiterin des Vereins, mit der wir telefoniert hatten, war spürbar ungehalten. Die Kompetenz deutscher Tierärzte bezweifelte sie gleich von Anfang an: Die behandeln Tierschutzhunde immer schlecht, denen ist nicht zu glauben, meinte sie unter anderem. Über ihre unfreundliche Art möchte ich nichts weiter schreiben.

Ohne dass wir danach gefragt hatten, teilte sie uns unumwunden mit, dass sie Annie einschläfern lassen würden, sollten wir uns entscheiden sie wieder zurückzugeben, sofern die Behandlungskosten das Budget des Vereins übersteigen würde (wobei wir zu diesem Zeitpunkt von etwa 1.000,- Euro ausgingen). Einschläfern! Ein Tierschutzverein! Wir waren entsetzt und beendeten jeglichen Kontakt zu diesen Leuten.

annie-pennt.jpg

Die Kommunikation des Vereins findet beinahe ausschliesslich bei Facebook oder via Whatsapp statt. Es gibt dutzende Gruppen, einige öffentlich, andere nur für Mitglieder oder für Übernehmer von Hunden.

annie-wiese.jpg

Nun bin ich selbst nicht bei Facebook Mitglied und kann mich daher dort nicht äussern, daher möchte ich meine Kritik hier darlegen.

Voranstellen möchte ich, dass ich überzeugt bin, dass die meisten Mitarbeiter des Vereins sicherlich mit guten Motiven ihre Arbeit tun. Ehrenamtlich noch dazu. Jeder weiss, wie es um Hunde in Spanien bestellt ist, Tierschutzvereine sind für viele Hunde oft die einzige Überlebenschance. Mit Sicherheit würde Annie jedenfalls heute nicht mehr leben, hätte der Verein sie nicht aus Spanien nach Deuschland geholt und wir sie übernommen. Insofern, trotz aller Kritik: Vielen Dank dafür!

annie-pennt-immer-noch.jpg

Unabhängig davon ist es meiner Meinung nach nicht zu viel verlangt, als Tierschutzverein professionell aufzutreten, sich an die selbst auferlegten Regeln zu halten, die Übernehmer von Hunden nicht im Regen stehen zu lassen und sich einfach mehr Mühe zu geben.

Der eklatanteste Mangel bei diesem Verein ist die Einschätzung der Hunde. Sie findet praktisch nicht statt. Man erfährt als Interessent praktisch nur die offensichtlichen Dinge, die nicht zu übersehen sind. Das ist unprofessionell. Das beschissenste Tierheim in Polen macht es besser.

Ein Hund, der frisch aus Spanien in Deutschland eintrifft, sollte eigentlich einige Wochen auf der Pflegestelle bleiben. Es ist ein Unding, einen Hund nur wenige Tage nach seinem Eintreffen zu vermitteln. Viele Verhaltensauffälligkeiten und Probleme eines Hundes treten erst nach geraumer Zeit zu Tage. Ein Hund könnte bissig sein, keine Kinder mögen, keine Männer, Allergien haben und vieles vieles mehr. Die Verantwortung einer Pflegestelle ist es, diese Dinge herauszufinden, zu dokumentieren und potentiellen Interessenten unbeschönigt mitzuteilen.

Wenn man Probleme nicht mitteilt, von denen man aufgrund der kurzen Zeit nichts weiss, die man aber mit mehr Zeit hätte in Erfahrung bringen können, muss man sich meiner Meinung nach den Vorwurf des Betrugs machen lassen. Wie gesagt, ich glaube nicht, dass irgend jemand in diesem Verein absichlich Leute betrügen will. Aber wie in diesem Verein mit der Einschätzung und Kritik umgegangen wird, das ist auf jeden Fall grob fahrlässig und unseriös.

Man könnte nun entgegnen, dass Annie vielleicht eine Ausnahme war, ein Ausrutscher einer Pflegestelle, ein Einzelfall. Das ist es nicht, wir haben die Facebookgruppen des Vereins eine längere Zeit verfolgt. Es findet geradezu ein Wettbewerb statt, wer als erstes seinen Pflegehund vermittelt hat. Der Rekord, den wir bisher beobachten konnten, lag bei 3 Tagen.

Eine weitere Sache ist der sogenannte “Übernahmevertrag”: ein Volksfest für jeden Juristen. Obwohl man den Hund kauft, bleibt er laut diesem Vertrag weiter Eigentum des Vereins. Eine solche Klausel ist mit dem deutschen Recht überhaupt nicht vereinbar. Der Verein räumt sich auch das Recht ein, die Räumlichkeiten des Übernehmers zu betreten, um die Haltung zu überprüfen. Auch das ist ganz klar weit weg vom deutschen Recht. In dem Vertrag gibt es noch unzählige weitere derartiger Klauseln. Wenn man danach googelt, findet man mehrere Gerichtsurteile, in denen gegen solche Verträge erfolgreich geklagt worden ist. Warum der Verein trotzdem weiter mit solch veralteten Unterlagen arbeitet, ist aus meiner Sicht nicht rational erklärbar. Und es ist peinlich.

Gut - wir haben diesen Vertrag unterschrieben. Aber ganz ehrlich: da waren vier Erwachsene, mehrere Hunde, es wurde laut durcheinander geredet und man bekommt im Tierheim oft ganz ähnliche Verträge. Ich habe das daher vor Ort nur überflogen und auf den ersten Blick sah das alles stimmig aus. Und man hat es ja auch mit einem offiziellen Tierschutzverein zu tun, dem man automatisch einen grossen Vertrauensvorschuss entgegen bringt. Wie dem auch sei, rechtlich bindend ist der Vertrag natürlich nicht, Annie ist und bleibt unser Eigentum und wir würden Himmel und Hölle in Bewegung setzen, sollte der Verein auch nur daran denken, sich an ihr zu vergreifen.

annie-finnie-betteln.jpg

Hier mal ein Beispiel, wie man Tierschutz auch anders machen kann:

Der Verein, der sowas tut, nennt sich Let’s Adopt International. Die nehmen kranke Tiere auf, behandeln sie bis sie vermittelbar sind, suchen neue Halter und bringen die Tiere dann zu den neuen Haltern. Wenn es sein muss auch mit dem Flieger einmal um die halbe Welt. Und die tun das alles auf ihre Kosten, als Übernehmer muss man nichts bezahlen, ausser einer freiwilligen Spende. Die Rettung, Behandlung und Vermittlung von Tieren ist hier kein Geschäft, sondern eine Mission.

Bei allem Negativen möchte ich auch nicht unerwähnt lassen, dass Annie viele liebenswerte Seiten hat. Sie ist eine Schmuserin vorm Herrn. Decke hoch, schwupps ist sie drunter, kuschelt sich ein und pennt. Sensationell. Sie läuft für ihr Leben gern. Diese aus ihr heraussprudelnde pure Lebensfreude, wenn sie wie ein Wirbelwind auf einen zurennt, lässt niemanden kalt. Annie macht auch eine Menge unmöglicher Geräusche, die wir noch nie bei einem Hund gehört haben. Es gibt regelmäßig einen Grund, sich schlapp zu lachen. Sie schnarcht wie ein alter Rottweiler. Und sie schmatzt wie ein Kamel - ach was, wie zehn Kamele!

annie-finnie-pennt.jpg

Annie ist einfach unser Mäusschen und mit Finlay zusammen sind es nun zwei Mäuschen, die wir haben. Beide mit ihrem Gepäck, das sie zu tragen haben und wobei wir sie bis an ihr Ende begleiten werden.

annie-finnie-tom.jpg

Zum Abschluss hier noch ein paar mehr Bilder von unserer Annie (die ich übrigens nach Hilde umbenennen wolte, aber überstimmt worden bin):

annie-garten-pause.jpg

annie-jumping.jpg

annie-koerbchen.jpg

annie-pennt-auf-arm.jpg

annie-run.jpg

annie-schleck.jpg

annie-wiese1.jpg

annie-wiese2.jpg

↷ 29.09.2021 🠶 #hund