tchncs

Latest articles

This is the local timeline where you can see the latest articles from this instance. You can control the visibility of each of your blogs. New blogs are currently set to unlisted by default. You can change this in each blogs settings.

from Libertas

Nicht Arbeit genug! Dass so ein Wahn in den Köpfen der Mehrzahl Platz greifen konnte, zeigt, wie verkehrt das ganze wirtschaftliche System der modernen Staaten ist. Nicht Arbeit genug? Das ist, als wenn ein Bär sagte, er habe nicht Haare genug. Es gibt in der Welt mehr Arbeit, als die Menschen tun können, und wenn sie noch so viele Maschinen erfinden, werden sie doch alle beschäftigt werden können, wenn sie nur die Freiheit haben, arbeiten zu dürfen, d. h. wenn man ihnen die Erde nicht verwehrt, auf der und aus der sie geboren sind. Sobald der Arbeiter keinen Tribut zu zahlen braucht für das Privilegium, arbeiten zu dürfen, wird die Klage über Arbeitsmangel verstummen.

(Libertas 7, Samstag, 30. Juni 1888, S. 8.)

Anmerkung

Dieser kurze Kommentar ohne Angabe des Verfassers steht unmittelbar nach der Übernahme eines kurzen Textes aus der „Michigan Arbeiter-Zeitung“ und bezieht sich wohl auf diesen.

 
Weiterlesen...

from Libertas

Steuern.

[H[err?]. C. Bechtold in der „Michigan Arbeiter-Zeitung.“]

Jedes bis jetzt bekannte Steuersystem ist ungerecht, weil es sich auf den Zwang gründet. Die zufällig Herrschenden haben es in ihrer Gewalt, jedes Individuum durch die Steuerschraube seines Eigentums zu berauben oder das ganze Eigentum des Volks zu konfiszieren, sei es zur Bezahlung von Staatsschulden, Gründung von Monopolen oder Bereicherung einzelner privilegierten Familien. Es gibt darum keinen einzigen Menschen, der die Zwangssteuer gern bezahlt. Jeder sucht die Bezahlung von Steuern zu umgehen, weil sie in allen Fällen ein Raub sind, wodurch ein Teil der Arbeit des Volks, wenn nicht die ganze, oder gar die Arbeit künftiger Geschlechter mit Beschlag belegt wird. Wo die Steuer nicht zu umgehen ist, wird sie stets von den Reichen auf die Unbemittelten, von den Starken auf die Schwachen abgewälzt. Nur freiwillige Besteuerung zu gemeinsamen Zwecken hat einen Sinn unter freien Menschen.

(Libertas 7, Samstag, 30. Juni 1888, S. 8.)

Anmerkung

Zur „Michigan Arbeiter-Zeitung“ und deren Herausgeber C. Bechthold vgl. die Anmerkungen hier.

 
Weiterlesen...

from Johannes Leutenegger

Die Konferenz an der Berufsfachschule Uster war hochkarätig besetzt, so war nicht nur Regierungsrätin und Bildungsdirektorin Silvia Steiner (Mitte) anwesend, sondern auch der Amtschef des Mittelschul- und Berufsbildungsamts Niklaus Schatzmann. Den anwesenden Spitzenkräften wurde von der Vertretung der BFSU und der ZHAW auch kräftig Honig um den Bart geschmiert.

Gemeinsamer Teil in der Aula

In den Grusswörtern wurde die Berufsmaturität als eine der grössten Innovationen des dualen Bildungssystems der Schweiz gepriesen. Durchaus berechtig. Allerdings wies Miriam Hänni vom EHB in ihrem Referat darauf hin, dass die Berufsmaturität nicht unbedingt alle Hoffnungen erfüllt.

  • So wird zum einen die BM als wichtiges Mittel für Chancengerechtigkeit bezeichnet. In der Statistik zeigt sich aber, dass eine Mehrheit der BM-Absolvent:innen selber bereits Eltern mit Tertiärbildung haben
  • Die BM wird als Tor zur Tertiärbildung verkauft, was es ja effektiv auch ist. Ein nicht zu unterschätzender Faktor ist allerdings, dass viele nach ihrer BM gar nicht an einer Hochschule studieren

Ein weiteres Thema das vielen BM-Lehrpersonen momentan unter den Nägel brennt ist das Aufnahmeprozedere. Interessant war es, dass die Situation – wie könnte es anders sein – je nach Kanton verschieden ist. Einige Kantone haben immer noch Aufnahmeprüfungen, andere Anforderungen an Schnitte, wieder andere verlangen eine Empfehlung der abgegebenden Schule, andere Kantone wiederum verpflichten die potenziellen BM-Lernenden vor dem BM2-Start zu einem Vorbereitungskurs, der Kanton Tessin führt jeweils Aufnahmegespräche durch.

Doch wie verhält es sich mit der Abschlussquote je nach Aufnahmeprozedere. Erstaunlicherweise ist die Abschlussquote bei Kantonen mit Aufnahmeprüfung tiefer als bei fast allen anderen Prozessen. Über die genauen Gründe kann man nur spekulieren, ausserdem ist völlig unklar wie gut diese Abschlüsse effektiv waren und die Gegebenheiten im Kanton, wie die gymnasiale Quote, die Branchenverteilung und so weiter sind nicht berücksichtigt.

Ich wäre vorsichtig, daraus direkte Schlüsse zu ziehen. Was auf jeden Fall klar ist: Aufnahmeprüfungen sind/waren in vielen Kantonen schon vor Corona nicht üblich und diese Verfahren sind nicht grundsätzlich schlechter als die Aufnahmeprüfung.

Was auch interessant war ist, dass die BM-Quote je nach Beruf sehr unterschiedlich war. Im Grunde genommen ist die Erkenntnis relativ banal, aber dass Köchinnen und Köche selten bis nie eine BM absolvieren und Elektrotechniker:innen fast zu zwei Dritteln (BM1 und BM2) zusammengerechnet, scheint naheliegend.

Fachgruppe Deutsch: Digitales Lesen / #BookTok

Ich unterrichte kein Deutsch, allerdings muss bei mir im Geschichtsunterricht und auch in der Philosophie, wenn ich das irgendwann wieder einmal unterrichten darf, auch viel gelesen werden.

Dass das Lesen auf Bildschirmen, was ich als “digitales Lesen” verstanden habe, eher schlechter und mindestens anders funktioniert als das Lesen auf Papier, habe ich mich für diesen Workshop eingeschrieben. Einen Workshop für Geschichte gab es nicht, wahrscheinlich weil das Fach nicht zu den sogenannte “Basiskompetenzen” gehört.

Jedenfalls war der Workshop ganz anders als gedacht. Es ging um die Lesemotivation junger Leute. Dazu hat ein Dozent der ZHAW die junge Buchhändlerlin und Booktokerin Arwen Rose eingeladen, die erzählt hat, wie Booktok funktioniert. Hier ein paar Dinge, die mir geblieben sind.

  • “Emotionen vor Qualität” sei bei den New Adult Geschichten wichtig, die auf Booktok besprochen werden. Im Schulzimmer konnte man den Deutschlehrpersonen beim innerlichen Sterben zusehen, als diese Aussage fiel.
  • Booktok ist erstaunlich bibliophil. Bücher sollen schön aussehen, spezielle Auflagen, aber auch Erstauflagen, Goodies wie Charakterkarten sind begehrte Sammlerobjekte. Das finde ich als bescheiden Bibliophiler natürlich schön.
  • “Spice” also eine gewisse erotische Stimmung ist wichtig. Dem Vernehmen nach ist das ein running gab bei Leuten die über Booktok berichten. Alle Berichte die ich dazu gestern noch gesehen haben, machen sich über das Thema der Erotik in solchen Büchern lustig.
  • Sachbücher spielen bei Booktok offenbar nur am Rande ein Thema. Höchstens Selbsthilfebücher wie “Das Kind in dir” werden rezipiert.
  • Männer sind auf Booktok gemäss Auskunft der Vortragenden praktisch nicht vorhanden. Das scheint eher ein Phänomen von weiblichen “Content Creators” im Alter von ca. 20 bis 30 Jahren zu sein.
  • Junge Menschen wollen lesen, aber vielleicht nicht unbedingt den Schulkanon.
 
Weiterlesen...

from Der Emil

§ 1

Die Umstellung der Uhrzeit führt nicht zu den erhofften Effekten, sondern ist sogar für einen negativen gesundheitlichen Effekt, für höhere Unfallzahlen u. v. m. ursächlich. Daher wird

1) ab 2025 keine Verschiebung in die OstEuropäische Zeitzone mehr erfolgen, nicht mehr auf MESZ umgestellt.

2) allen Institutionen, Untenehmen, Organisationen, Behörden, Ämtern, Anstalten usw. usf. die Verschiebung der bei ihnen üblichen Arbeits-, Öffnungs- und ähnlichen Zeiten freigestellt.

§ 2

Grenzüberschreitende Zeitvereinbarungen und -abgleiche, Termine usw. usf. werden ab 2025 ausschließlich in UTC getroffen. Die Verwaltung, die Justiz, die Polizei des Bundes und der Länder, Betreiber und Ersteller von Systemen der Informationstechnik, der Kommunikationstechnik, des Verkehrswesens usw. haben ihre Technik dahingehend anzupassen bis zum 01.03.2025.

§ 3

Dieses Gesetz wurde beschlossen und verkündet am 31.10.2024 und tritt am 01.02.2025 im Geltungsbereich des Grundgesetzes der Bundesrepublik Deutschland in Kraft.

 
Read more...

from Der Emil

Beschissen. Anders kann ich es nicht beschreiben.

Schuld daran hat niemand. Denn niemand wird absichtlich krank, um etwas, auf das große Vorfreude herrscht, absagen zu können. Ja, eine Infektion versaut zwei Menschen dieses Wochenende. (Aber Corona ist ja vorbei …)

Andererseits: Etwas, auf das wir so lange gewartet haben, verschiebt sich jetzt um irgendeine Zeitpanne. Es verschiebt sich nur … (Und fühlt sich dennoch echt beschissen an, siehe oben.)

 
Read more...

from Michael Gisiger

Werkstatt von Rembrandt: A Girl with a Broom

Benannt nach dem englischen Philosophen Wilhelm von Ockham (engl. William of Occam), der mit seinem berühmten „Rasiermesser“ die Grundlage für eine elegante Wissenschaftsregel legte, ist „Ockhams Besen“ eine humorvolle und nachdenklich machende Ergänzung: anstatt die einfachste Erklärung zu wählen, werden hier störende Details beiseitegefegt. Dieser Ansatz erlaubt, sich auf das Wesentliche zu konzentrieren und die ungelösten Fragen – zumindest vorläufig – aus dem Blick zu räumen.

Was ist Ockhams Rasiermesser?

Ockhams Rasiermesser gilt als eine der bekanntesten heuristischen Prinzipien der Wissenschaft. Es besagt, dass von verschiedenen Theorien zur Erklärung eines Phänomens die einfachste die plausibelste ist. Diese Denkweise dient als Leitfaden, um Hypothesen zu vereinfachen und jene zu bevorzugen, die ohne zusätzliche Annahmen auskommen. Doch so elegant Ockhams Rasiermesser ist, es vermag nicht jedes Rätsel der Forschung zu lösen. Hier kommt „Ockhams Besen“ ins Spiel, eine vom Molekularbiologen und Nobelpreisträger Sydney Brenner eingeführte Idee, die bewusst in eine andere Richtung weist.

Ockhams Besen: Ein „Anti-Denkwerkzeug“

Sydney Brenner, Mitentdecker der Boten-RNA (mRNA) mit unkonventionellen Ansätzen, formulierte das Prinzip von „Ockhams Besen“. Es beschreibt die bewusste Entscheidung, Fakten, die einer Theorie widersprechen, vorläufig zu ignorieren. Statt das Bild zu verkomplizieren, erlaubt Ockhams Besen, das Unerklärte erst einmal zu verdrängen und sich auf das Erklärbare zu konzentrieren: „Was unverstanden bleibt, fege man so lange unter den Teppich, bis es zu schwierig wird, auf ihm herumzulaufen. Dann hole man alles wieder hervor und fange von vorne an“ (NZZ).

Auch der Philosoph Daniel Dennett bezieht sich auf Ockhams Besen, indem er es als „Anti-Denkwerkzeug“ beschreibt. Es wird genutzt, um das analytische Denken auszubremsen und auf das Wesentliche zu fokussieren. Doch in dieser Verdrängung steckt eine zweischneidige Gefahr: Zuweilen kann die Ignoranz unbequemer Fakten wissenschaftlichen Fortschritt behindern und den Status quo stützen, anstatt ihn kritisch zu hinterfragen: „[Der Besen] glättet den Teppich gerade nicht, unter den er das Unerklärte fegt, aber er gibt auf jeden Fall den Blick auf ein sauberes Zimmer frei, in dem sich leben lässt, bis einen das Knirschen unter dem Teppich stört“ (NZZ).

Sydney Brenner und die „Don't Worry Hypothesis“

Der humorvolle Umgang mit komplexen wissenschaftlichen Fragen zeigt sich auch in Brenners „Don't Worry Hypothesis“ („Reg-dich-nur-nicht-auf-Hypothese“). Anstatt von der Unvollständigkeit von Theorien überwältigt zu sein, rät Brenner, pragmatisch zu bleiben und die offenen Fragen beiseitezuschieben, bis die Zeit reif ist, sich ihnen zu stellen. „Mit den schwierigen Fragen der Biologie“, so Brenner, „muss man so umgehen wie mit den Einkommenssteuern – nämlich alles tun, um ihnen aus dem Weg zu gehen“ (NZZ).

Brenner demonstrierte diesen Ansatz in seiner Forschung zur Boten-RNA (mRNA). Durch Experimente, die einzelne Hypothesen verifizierten oder falsifizierten, konnte Brenner einen Durchbruch erzielen, ohne die ungelösten Fragen zu seinem Thema sofort zu klären. Indem er sich auf das machbare #Wissen konzentrierte und sich nicht im Detail verlor, schuf er ein Modell, das das Verständnis der Molekularbiologie grundlegend beeinflusste. Diese pragmatische Methode veranschaulicht, wie Ockhams Besen sinnvoll eingesetzt werden kann, um zunächst Fortschritte zu erzielen, ohne das Unerklärte auszublenden.

Beispiele aus der Wissenschaft und dem Alltag

Ockhams Besen findet sich nicht nur in der Wissenschaft, sondern auch im Alltag. Im wissenschaftlichen Kontext zeigt sich dieses Prinzip, wenn Forscher auf Daten stossen, die bestehende Theorien infrage stellen. Anstatt diese Daten in die Forschung zu integrieren, werden sie mitunter ignoriert oder beiseitegeschoben, um den Fortschritt nicht zu behindern. Solche Vorgehensweisen sind jedoch oft nur kurzfristig hilfreich. Das Risiko besteht darin, dass man langfristig auf einem Modell verharrt, das möglicherweise unvollständig oder gar falsch ist.

Im Alltag begegnen wir Ockhams Besen beispielsweise in Diskussionen, in denen bestimmte Fakten nicht in das eigene Argument passen und bewusst ausgeklammert werden. Man denke etwa an die Entscheidung, eine neue Wohnung zu beziehen. Ein Käufer, der den Lärmpegel als störend empfindet, mag diese Information „wegfegen“, um seine Entscheidung zu rechtfertigen. Doch wird das Problem später unüberhörbar, steht man vor einer Herausforderung, die man durch kritische Prüfung hätte vermeiden können.

Nutzen und Risiken von Ockhams Besen

Ockhams Besen ist mehr als ein pragmatischer Trick – er ist ein Dilemma. Während die bewusste Ignoranz störender Faktoren helfen kann, sich auf die Kernpunkte zu konzentrieren, kann sie auch in die Irre führen. Der Besen fegt Widersprüche beiseite und ebnet so den Weg für eine klare Vorstellung, die mit der Zeit immer mehr Fakten integrieren kann. Dennoch birgt diese Methode das Risiko, dass sich wichtige Erkenntnisse verschliessen, wenn Forscher sich nicht mehr die Zeit nehmen, das Widersprüchliche zu untersuchen.

Eine kluge Anwendung des Besens sollte also nicht in reiner Ignoranz enden, sondern als ein Mittel verstanden werden, das offene Fragen strukturiert und später wieder aufgreift. Wie Brenner betonte, ist Wissenschaft ein dynamischer Prozess, der sich kontinuierlich anpassen muss. Ein Forscher, der den Besen ohne Verstand schwingt, könnte sich letztlich in einem Konstrukt verlieren, das an wichtigen Stellen brüchig ist.

Drei Empfehlungen für den Alltag

Wie lässt sich die Idee von Ockhams Besen im Alltag produktiv und dennoch kritisch anwenden? Hier sind drei Empfehlungen:

  1. Selektive Fokussierung statt blindes Ignorieren: Nutze den Besen bewusst, um dich auf die wichtigen Elemente eines Problems zu konzentrieren, ohne dich zu verzetteln. Behalte aber im Hinterkopf, dass die „verdeckten“ Fakten später aufgerollt werden müssen, um ein vollständiges Bild zu erhalten.

  2. Kritisches Hinterfragen: Gerade bei komplexen Entscheidungen lohnt es sich, gelegentlich innezuhalten und zu überlegen, welche Argumente oder Fakten im eigenen Gedankengang fehlen könnten. Was hast du „unter den Teppich gekehrt“? Eine gesunde Portion Skepsis und Selbstkritik hilft, voreilige Schlüsse zu vermeiden.

  3. Flexibilität bewahren: Die besten Entscheidungen werden getroffen, wenn wir bereit sind, neue Informationen zu berücksichtigen und unsere Ansichten gegebenenfalls anzupassen. Manchmal müssen wir den Teppich wieder lüften und das Unerklärliche integrieren, um unsere Entscheidungen zu verfeinern.

Fazit: Die Balance zwischen Pragmatismus und kritischem Denken

Ockhams Besen bietet eine faszinierende Perspektive auf wissenschaftliches und alltägliches Denken. Während das Prinzip der selektiven Ignoranz es erlaubt, sich zunächst auf das Wesentliche zu konzentrieren, ermahnt es uns gleichzeitig zu intellektueller Ehrlichkeit und kritischem Denken. Die Fähigkeit, ein Gleichgewicht zwischen Fokus und Offenheit zu finden, ist entscheidend. Denn nur so können wir vorankommen, ohne wichtige Wahrheiten dauerhaft zu verdrängen. Letztlich erinnert uns Ockhams Besen daran, dass pragmatische Ansätze und kritische Reflexion keine Gegensätze sein müssen – sie sind zwei Seiten einer Medaille, die den Weg zu fundierten Entscheidungen und Erkenntnissen ebnen.


Bildquelle Carel Fabritius (1622–1654), zugeschrieben: A Girl with a Broom, National Gallery of Art, Washington, DC, Public Domain.

Disclaimer Teile dieses Texts wurden mit Deepl Write (Korrektorat und Lektorat) überarbeitet. Für die Recherche in den erwähnten Werken/Quellen und in meinen Notizen wurde NotebookLM von Google verwendet.

Topic #ProductivityPorn

 
Weiterlesen...

from Libertas

Eine Exkursion nach Plymouth Rock.

Wenige Städte haben eine schönere Umgebung als Boston und Boston selber ist nicht ohne grossen Reiz. Überall kommt die Natur dem Gemüt und der Fantasie des Menschen entgegen. Alles ladet zu heiterem Lebensgenuss ein. Was einzig dazu erforderlich ist, ist eine unbefangene und freie Auffassung der Natur und des Lebens. Nirgends könnten sich freie Menschen mehr des Daseins freuen, als hier. Aber gerade das fehlt: freie Menschen, das Vorherrschen einer unbefangenen und natürlichen Welt- und Lebensanschauung. Infolgedessen hat das Leben in Neu-England einen düsteren Anstrich. Der Einladung der Natur, an den Sonntagen hinaus ins Freie zu ziehen, Gram und Sorge und Armut an die Seite zu schieben, und bei Wein und Bier und freudvollem Tanz und Spiel mit den Frauen [Freunden?; Wort unleserlich] sich zu freuen, darf man hier nur auf die Gefahr hin zu folgen wagen, mit dem Polizeistock und dem Gerichtshof in Berührung zu kommen. Der freie, frohe Lebensgenuss ist gesetzlich untersagt. Der fromme Puritaner könnte sich beim Anblick fröhlicher Feste die Augen verrenken.

Aber die Menschen wissen sich zu helfen. Wie „Mein Onkel Benjamin“ bemerkt, verkehrt die Fröhlichkeit immer mit der Knechtschaft; „das Volk trug Ketten, aber es tanzte darin, und wenn sie rasselten, so klang es wie Kastagnetten.“ Wenn man auf dem Lande nicht seine Feste feiern und der Freude leben darf, so wehrt’s einem doch niemand auf der See. Zwar wurde s. Z. der Menschenhandel auf der See durch die Gesetze des Landes als Kapitalverbrechen behandelt, (während sie ihn auf dem Boden der Republik beinahe ein Jahrhundert lang als ein heiliges Recht beschützten), und ein heidnischer Lebensgenuss ist im Auge des christlichen Gesetzes kaum ein geringeres Verbrechen als der Menschenhandel. Daraus könnte man schliessen, dass heidnischer Lebensgenuss auch auf der See wie ein Verbrechen behandelt würde, zumal ihm auf dem Lande keine so liebevolle Fürsorge zuteilwird, wie einst dem Menschenhandel. Das ist aber nicht der Fall. Wenn das Gesetz auch auf dem Lande das Heidentum lieber gleich mit Stumpf und Stiel ausrotten möchte, so gibt es demselben doch auf dem Meere die Zölle frei. So recht eigentlich das Sinnbild der Freiheit, ladet die See zudem zu heiterem Lebensgenuss geradezu ein. Diesen Umstand machten sich die Bostoner Turner am letzten Sonntag zu Nutze, indem sie für die Gelegenheit ein Dampfboot mieteten und eine Exkursion nach Plymouth Rock veranstalteten.

Stark besetzt, und reichlich mit den Gaben des Bacchus und Gambrinus versehen, verliess das Boot „Nantasket“ präzis zehn Uhr Vormittags unter den erhebenden Klängen der Musik das [sic!] Werft. Alles strahlte von Freude. Und immer lustiger wurde es, je weiter wir uns von den Marken des Gesetzes entfernten und mutig hinausstiessen auf das freie, herrenlose Gebiet des wild dahin wogenden Meeres. Der Anblick des ungebundenen und doch massvollen Verkehrs der Menschen an Bord des [sic!] „Nantasket“ liess eine Ahnung des Lebens aufsteigen, wie es sich einst unter der Freiheit gestalten wird. Hier wurde allerdings nur der freie Sonntag und die Freiheit Gambrins gefeiert. Es war das keine segelnde Republik, wie sie Garibaldi vorgeschwebt hatte, immer bereit, da zu landen, wo es für die Freiheit zu kämpfen gelten würde. Die Betrachtung, dass sich die Turner, wie überhaupt das freisinnige Deutschtum, nicht für die ganze und allseitige Freiheit zu begeistern vermögen, wirkt ernüchternd. Auch wir Anarchisten sind willens, für den freien Sonntag und für die Freiheit Gambrinus zu Felde zu ziehen, aber unsere Freiheitsliebe findet nicht hier ihre Grenze. Wir erheben die ganze und allseitige Freiheit auf unseren Schild. Ich habe Männer kennengelernt, die bereit gewesen waren, für die Trinkfreiheit ihr Leben einzusetzen, die sich aber allen darüber hinaus zielenden Freiheitsbestrebungen gegenüber entschieden feindlich verhielten. Die Münchener machen Revolution, wenn eine neue Steuer vom Bier erhoben werden soll, aber ich habe noch nicht gehört, dass sie für die Befreiung der Arbeit von der erdrückenden Last gesetzlicher Privilegien auch nur den kleinen Finger gerührt haben. Bei derartigen Betrachtungen kommt mir immer das Wort Heinzens in den Sinn: „Nieder mit dem Bier, solange es nicht heisst, hoch die Idee!“

Nach einer nahezu vierstündigen Fahrt langten wir in Plymouth Rock an. Die Stunde, die uns zum Aufenthalte daselbst gewährt war, wurde zur Aufsuchung der reichlich vorhandenen geschichtlichen Denkmäler benutzt. Hier landeten bekanntlich im Winter des Jahres 1620 jene Pilgrime, die auf der „Mayflower“ ein Reich suchten, das nicht von dieser Welt war, das Reich der Gedanken- und Gewissensfreiheit. Ihrer Gesinnungen wegen im alten Vaterlande verketzert und verfolgt, unterzogen sie sich selbstvertrauend und hoffnungsvoll den Entbehrungen und Mühseligkeiten, welche die Gründung eines freien Gemeinwesens in dem neuen Weltteil damals mit sich brachte. Anders als die Abenteurer, die sich auf die Jagd nach Gold begaben, waren diese Menschen ausgezogen, um einen Fleck Erde zu suchen, auf dem sie frei und sorglos ihrem besseren Selbste leben konnten. Leider vergassen sie später, als sie die Freiheit für sich errungen hatten, die Segnungen derselben auch den ihrem engeren Kreise fernstehenden Menschen zuteilwerden zu lassen. Ja, aus Verfolgten wurden sie selber zu Verfolgern. Das gilt namentlich von den Puritanern, welche bald nach der Niederlassung der Pilgrime auf Plymouth Rock von England herüberkamen und neue Ansiedlungen gründeten. Indem ich aber im Geiste durch die Zeiten zu ihnen hinüberschweifte, entdeckte ich immerhin manche Berührungspunkte und vieles, das mich sympathisch ansprach; wenn nicht die Gesamtheit, so doch bemerkenswerte Einzelheiten, welche auf das wahrhaft Grosse hinwiesen. Auch konnte ich, der ich mit meinen Gesinnungsgenossen selber in eine neue Welt gezogen bin, in die Welt des Anarchismus, mir einigermassen das harte und beschwerliche Leben mit seinen unendlichen Kämpfen und Sorgen vergegenwärtigen und würdigen, welches hier das Los der Pilgrime und Puritaner wurde. Haben wir doch ähnliche Pioniersarbeiten zu verrichten. Und obgleich der Felsen von Plymouth, wie ein deutsch-amerikanischer Dichter singt, noch keine goldnen Früchte getragen hat, so fand ich es doch schön und passend, dass ein „dankbares Volk“ auf einem auf einer Anhöhe errichteten, noch unvollendeten Monument im Namen „der religiösen und bürgerlichen Freiheit“ das Gedächtnis dieser Pioniere feiert, aber es erschien mir als eine traurige Illustration zu dieser Freiheit, „Pilgrim Hall“ mit ihren Sehenswürdigkeiten am Sonntage geschlossen zu finden. Mit grossem Interesse las ich auf einem Steine den Wortlaut des Vertrags, wonach die Passagiere an Bord der „Mayflower“ sich vereinbarten, auf dem neuen Grund und Boden ein freies, auf „gleichen und gerechten Gesetzen“ beruhendes Gemeinwesen zu gründen; es erweckte aber eine tiefe Wehmut in meiner Brust, als ich weiter las, dass dieser Vertrag am 11. November 1620 ausgefertigt und unterzeichnet wurde und sich mir die Betrachtung aufdrängte, dass die hier geborene Freiheit an einem anderen 11. November in Chicago erwürgt und zu Grabe getragen wurde.

Weitere Betrachtungen überlasse ich dem Leser. Hier nur noch die Frage: werden die Menschen ewig um die Freiheit kämpfen, nur um sie nach errungenem Sieg wieder zu zertreten? Heinzen verglich einmal die Freiheit mit dem Meer. Aller Unrat und aller Schmutz der Welt wird dem Meere zugeführt, aber mit selbstreinigender Kraft erhält es sich ewig frisch und klar und rein. Wird die Erkenntnis niemals tagen, dass auch die Freiheit ihrem innersten Wesen gemäss mit selbstreinigender Kraft alle schmutzigen, unsittlichen und feindlichen Elemente der Gesellschaft unerbittlich ausscheidet und nur das Reine, Gesunde und Starke duldet? Nur an diese Erkenntnis knüpfe ich meine Hoffnungen für die Freiheit.

G.S.

(Libertas 7, Samstag, 30. Juni 1888, S. 5.)

Anmerkungen

  • Plymouth Rock ist heute noch ein beliebtes Ausflugsziel.
  • Der Name des Boots, „Nantasket“ bezieht sich auf einen Strand in der Umgebung Bostons.
  • Mein Onkel Benjamin (Mon oncle Benjamin) ist ein humoristisch-satirischer Roman des Franzosen Claude Tillier (1801–1844) aus dem Jahre 1843. Eine Übersetzung ins Amerikanische fertigte Benjamin Tucker an.
  • Zum Publizisten Karl Heinzen s. die Anmerkungen hier.
 
Weiterlesen...

from Libertas

Die freie Konkurrenz.

Das zweite Wort der Staatssozialisten ist stets ein Verdammungsurteil über die freie Konkurrenz. Der schrankenlosen, freien Konkurrenz, wie sie das Ding auch nennen, wird ohne weiteres Forschen die Schuld für die herrschende Misere in die Schuhe geschoben. Für alle die sozialen Übelstände, über welche gerechter- und erfreulicherweise immer lautere Beschwerde geführt wird, machen die Anhänger des Staatssozialismus die freie Konkurrenz verantwortlich. Es fällt ihnen nicht ein, einmal zu untersuchen, ob es auch wirklich auf dem Gebiet der Industrie im wahren Sinne des Worts eine freie Konkurrenz gebe. Vergebens verweist man sie auf die Tatsache, dass die Konkurrenz nicht eigentlich eine freie ist, dass also die gegen sie erhobenen Anklagen nicht die freie Konkurrenz treffen, und dass es vielmehr eine unfreie Konkurrenz ist, aus welcher die heutigen sozialen Übelstände entspringen. Vergebens hält man ihnen vor, dass Bodenrente, Kapitalzins und Profit, diese Hauptformen des an der Arbeit verübten Raubs, gerade auf die gesetzliche Beschränkung und Unterdrückung der freien Konkurrenz zurückzuführen sind, und dass unter dem Walten wahrhaft freier Konkurrenz diese Ausbeutungsformen sich nicht erhalten könnten und die Arbeit in den Besitz ihres vollen Ertrags gelangen würde. Es nutzt alles nichts, die Staatssozialisten halten eigensinnig an der einmal angenommenen Ansicht fest. Vielleicht kann ich den Staatssozialisten gegenüber die Ansicht, welche die freie Konkurrenz mit der Herausbildung und dem Fortbestand der heutigen misslichen Eigentumsverhältnisse belastet, auf keine wirksamere Weise widerlegen als durch das nachfolgende Zitat aus einer Rede Lassalles:

Rodbertus hat Sie darauf hingewiesen; wie sind die jetzigen Besitzverhältnisse entstanden? Haben dieselben unter der Herrschaft der freien Konkurrenz begonnen? Sind die Grundsätze der heutigen Vermögensverhältnisse durch die freie industrielle Arbeit gelegt? Sie sind vielmehr das Produkt einer Vergangenheit von zwei Jahrtausenden. Diese haben die Grundlage gelegt für die heutigen Verhältnisse des Besitzes. In diesen zweitausend Jahren war erst Sklaverei, dann Leibeigenschaft, dann Hörigkeit und daneben Zunftzwang. Das sind alles Staatsinstitutionen gewesen, ganz positive Staatseinrichtungen. Unter diesen Einrichtungen und durch diese gezwungen haben Sie, resp. Ihre Vorfahren, als Sklaven, als Leibeigene, als zünftige Lehrlinge und Gesellen für die jetzigen besitzenden Klassen das Vermögen produziert, das sie nun haben. Kam endlich die Französische Revolution und proklamierte die Rechtsfreiheit und die freie Konkurrenz, aber natürlich behielten die Besitzenden das Vermögen, die Waffen, die Sie ihnen geschmiedet, und erlauben Ihnen nun, unbewaffnet, mit Ihren Nägeln und Zähnen in den Wettkampf, in die freie Konkurrenz mit eben den Kapitalien und Maschinen einzutreten, die Sie durch so viele Jahrhunderte hindurch für jene erarbeitet haben.

Aus diesem Zitat geht deutlich hervor, dass Lassalle nicht die freie Konkurrenz für die herrschenden ungleichen und ungerechten Eigentumsverhältnisse verantwortlich machte, sondern den Staat mit seinen gewaltsamen Eingriffen in das Erwerbsleben der Menschen. Daraus ergibt sich für den logischen Geist von selber die Forderung nach der Elimination des Staats aus dem Industrieleben des Volks und der Herstellung wirklich freier Konkurrenz.

Aber weil es nach der Meinung der Staatssozialisten nichts Gutes mit der freien Konkurrenz auf sich hat, weil sie nach ihrer Behauptung die Gütererzeugung und Verteilung nicht in Gemässheit mit dem Begriff der Gerechtigkeit zu regeln vermag, weisen sie die Aufgabe dieser Regulierung dem Staate zu. Als ob der Staat dies vermochte! Der durch diese Forderung bekundete sozialistische Staatsbegriff entspricht genau dem Gottesbegriff des religiösen Glaubens. Ohne einen Gott kann sich der religiöse Mensch das Weltall gar nicht vorstellen. Ähnlich ergeht es dem Staatssozialisten im Hinblick auf die Volkswirtschaft. Ohne den Staat würde sich nach seiner Behauptung der industrielle Verkehr des Volks in die hellste Unordnung auflösen.

Nun, wir haben ja den Staat, und man sieht’s täglich, wie es um die Ordnung bestellt ist.

Nein, wir brauchen keinen Staat, um auf dem Gebiet des Erwerbslebens Ordnung herzustellen und zu erhalten. Was wir brauchen, ist mehr Freiheit, wirkliche, durchgreifende freie Konkurrenz. Eine ideale Ordnung wird es nie geben, aber ich hege die feste Überzeugung, dass sich die grösstmögliche Annäherung an dieselbe aus dem freien Walten der natürlichen, durch keine staatlichen Zwangsmassregeln behinderten Gesetze des menschlichen Zusammenlebens und Verkehrs herausbilden wird. Die herrschende schreiende Unordnung ist nicht die Folge der freien Konkurrenz, noch wird sie durch dieselbe aufrechterhalten; diese Unordnung ist vielmehr eine Schöpfung des Monopols, des Staats.

Nieder mit dem Monopol! Es lebe die Konkurrenz, aber die freie Konkurrenz!

G. S.

(Libertas 7, Samstag, 30. Juni 1888, S. 5.)

Anmerkungen

  • Die kursiven Hervorhebungen entsprechen dem Originaltext.
  • Ferdinand Lassalle (1825–1864) war Schriftsteller, sozialistischer Politiker im Deutschen Bund und einer der Wortführer der frühen deutschen Arbeiterbewegung. Als Hauptinitiator und Präsident der ersten sozialdemokratischen Parteiorganisation im deutschen Sprachraum, des 1863 gegründeten Allgemeinen Deutschen Arbeitervereins (ADAV), zählt er zu den Gründervätern der Sozialdemokratischen Partei Deutschlands (SPD), die 26 Jahre nach seinem Tod aus der Sozialistischen Arbeiterpartei (SAP) hervorging.
  • Das Zitat Lassalles konnte bis zum jetzige Zeitpunkt noch nicht festgemacht werden; es kann vermutet werden, dass Schumm hier aus einem Briefwechsel zitiert.
  • Johann Karl Rodbertus (1805–1875) war ein deutscher Nationalökonom. Rodbertus gilt als Begründer des Staatssozialismus, verstanden als Verstaatlichung der Produktionsmittel und des politischen Monopols.
 
Weiterlesen...

from Libertas

Herr Louis Prang von Boston bricht in einem wohldurchdachten Artikel im „American Lithographer and Printer“ eine Lanze für Freihandel. Sehr richtig finde ich es, dass er Protektion im Sinne des Staatssozialismus auffasst und verwirft. Aber wie Protektion auf den Staatssozialismus hinausläuft, so führt der konsequent durchgeführte Freihandel zum Anarchismus. Herr Prang sagt das nicht, aber ich vermute, dass er es versteht. Die meisten Freihändler verstehen es aber nicht.

(Libertas 7, Samstag, 30. Juni 1888, S. 4.)

Anmerkungen

  • Es darf vermutet werden, dass der Verfasser dieser kurzen Notiz Tucker selbst war.
  • Der „American Lithographer and Printer“ war eine seit 1883 wöchentlich in New York erscheinende Branchen-Zeitung, herausgegeben von Fred. Buehring (Quelle).
  • Louis Prang (1824–1909) war ebenfalls ein aus Deutschland über die Schweiz in die USA emigrierter 1848er. Er war Drucker, Lithograf und Verleger und wurde bekannt als „Vater der amerikanischen Weihnachtskarte“.
  • Zum Thema Staatssozialismus, Freihandel und Anarchismus vgl. Tuckers Staatssozialismus und Anarchismus.
 
Weiterlesen...

from Michael Gisiger

Lovis Corinth: Porträt des Malers Benno Becker

Kürzlich habe ich in der NZZ vom 8. Oktober 2024 einen Artikel von Mischa Senn gelesen, der mich zum Nachdenken angeregt hat. Den Beitrag fand ich in gewisser Weise inspirierend, da er eine neue Perspektive auf den Umgang mit Falschinformationen in den #Medien aufzeigt. Besonders in sozialen Netzwerken und bei durch künstliche Intelligenz generierten Inhalten wird die bewusste Unterscheidung von Wahrheit und Unwahrheit immer schwieriger. Senn unterbreitet in seinem Artikel einige Vorschläge, die uns zu einem grundsätzlich neuen Ansatz der Medienkompetenz führen könnten: Einer „Unrichtigkeitsvermutung“ gegenüber medialen Inhalten. Diesen Gedankengang möchte ich weiterführen, ergänzt durch einen Ansatz von Cal Newport, der uns hilft, unseren Nachrichtenkonsum qualitativ zu verbessern.

Senn, Dozent für Medien- und Werberecht sowie Vizepräsident der Schweizerischen Lauterkeitskommission, stellt in seinem Artikel eine These auf, die zunächst kontraintuitiv erscheinen mag: Er plädiert für eine Umkehrung des klassischen Vertrauensvorschusses, den wir vielen Medieninhalten entgegenbringen. Statt einfach davon auszugehen, dass das, was wir lesen, sehen oder hören, wahr ist, empfiehlt er eine bewusste Haltung des Misstrauens – eine Unrichtigkeitsvermutung. Diese Idee besagt, dass man jede Information zunächst als potenziell falsch betrachten sollte, solange man ihre Richtigkeit nicht unabhängig bestätigen kann.

Was zunächst als ein radikaler, vielleicht gar zynischer Ansatz wirken mag, entpuppt sich bei genauerer Betrachtung als eine notwendige Reaktion auf die Informationsflut unserer Zeit. Insbesondere in sozialen Medien, wo Inhalte oft mit einem emotionalen Unterton verbreitet werden und Algorithmen bevorzugt das zeigen, was hohe Interaktionsraten verspricht, ist eine gesunde Skepsis unabdingbar. Auch bei durch #KI generierten Inhalten ist Vorsicht angebracht, denn diese Modelle optimieren sehr oft auf kohärente Ausdrucksweise, nicht unbedingt auf faktische Richtigkeit.

Diese Unrichtigkeitsvermutung soll jedoch nicht als universeller Pessimismus verstanden werden. Vielmehr fordert sie uns dazu auf, Informationen bewusst zu prüfen und kritisch zu hinterfragen. Es geht darum, die Mechanismen der Medienproduktion besser zu verstehen und ein aktiver Teilnehmer im Kommunikationsprozess zu sein, statt ein passiver Konsument. Der Misstrauensvorschuss, von dem Senn spricht, führt nicht dazu, den Wert von Medien generell infrage zu stellen, sondern soll eine Art intellektueller Sicherheitsgurt sein, der uns vor voreiligen Schlussfolgerungen bewahrt.

Verantwortungsvoller Konsum von Informationen

Ergänzend zu Senns Ansatz möchte ich einen weiteren Vorschlag einführen, den ich in einer Podcast-Folge von Cal Newport gehört habe. Newport, Professor an der Georgetown University und bekannter Autor, Verfechter eines minimalistischeren und fokussierteren Lebensstils, spricht sich dafür aus, den Konsum von Nachrichten – und generell von Informationen – auf qualitative Weise zu steigern, während die Quantität gleichzeitig reduziert wird.

Newport schlägt ein dreistufiges Modell vor, das sich auf unterschiedliche Zeithorizonte erstreckt: täglich, monatlich und saisonal. Auf täglicher Basis empfiehlt er, eine einzelne, nicht algorithmisch kuratierte Quelle zu nutzen — zum Beispiel eine gedruckte Zeitung oder einen Newsletter. Dies steht im Gegensatz zu den Social-Media-Feeds, die uns häufig in eine Informationsschleife ziehen, in der nur Inhalte auftauchen, die besonders hohe Aufmerksamkeit generieren. Eine Tageszeitung ist hingegen eine kompakte und qualitätsorientierte Alternative.

Monatlich empfiehlt Newport zudem, zwei bis sechs lange Magazinartikel zu lesen, die Themen, die uns beschäftigen, umfassend behandeln. Diese Art der Informationsaufnahme erlaubt uns, Zusammenhänge besser zu verstehen und uns mit komplexen Fragen intensiver auseinanderzusetzen, ohne uns dabei ständig dem Aktualitätsdruck auszusetzen.

Saisonal, also einmal im Quartal, rät Newport dazu, ein fundiertes Buch zu einem der für uns relevanten Thema zu lesen. Auf diese Weise können wir uns einem Gegenstand umfassend widmen, ihn aus verschiedenen Perspektiven beleuchten und ein differenziertes Verständnis entwickeln, das weit über das hinausgeht, was durch Nachrichten oder mediale Diskurse möglich ist. Diese Leseempfehlung ermöglicht es uns, das Wissen zu vertiefen und nachhaltiger zu verankern.

Fazit: Zwei Ansätze, die sich ergänzen

Die Unrichtigkeitsvermutung nach Senn und Newports dreistufiges Modell des Informationskonsums sind auf den ersten Blick unabhängige Ansätze, die jedoch einen ähnlichen Zweck verfolgen: Beide bieten eine Reaktion auf die Herausforderungen unserer modernen Informationsgesellschaft. Senn fordert uns auf, Inhalte kritisch zu hinterfragen, bevor wir ihnen Glauben schenken. Newport wiederum gibt uns eine konkrete Methode an die Hand, wie wir bewusst Informationen selektieren können, um uns nicht im sich ständig schneller drehenden Nachrichtenzyklus zu verlieren.

Beide Ansätze rufen zu einem bewussteren Umgang mit Informationen auf, jedoch auf unterschiedliche Weise. Senn möchte unsere Haltung gegenüber Medieninhalten verändern, Newport hingegen die Art und Weise, wie wir den Informationsfluss strukturieren. Im Zusammenspiel bieten beide Modelle eine effektive Möglichkeit, der Reizüberflutung und der oftmals fragwürdigen Qualität der angebotenen Informationen entgegenzuwirken.


Bildquelle Lovis Corinth (1858–1925): Porträt des Malers Benno Becker, Von der Heydt-Museum, Wuppertal, Public Domain.

Disclaimer Teile dieses Texts wurden mit Deepl Write (Korrektorat und Lektorat) überarbeitet. Für die Recherche in den erwähnten Werken/Quellen und in meinen Notizen wurde NotebookLM von Google verwendet.

Topic #Kommerz

 
Weiterlesen...

from Der Emil

sage ich zu mir und stecke einmal mehr im Spalt zwischen himmelhoch jauchzend und zu Tode betrübt fest. Immer dann, wenn mir etwas nicht schnell genug geht, kommen Ängste dazu, deren Überwindung mich viel mehr Kraft kostet, als ich dafür auzuwenden dachte. Und dann die jubelnde, hoch hinauftragende Hoffnung, wenn etwas dem entspricht, in etwa dem entspricht, das ich mir ausgemalt hatte in leuchtenden Grautönen (Farben sind dann doch eher nicht meines). Ja, das Leben ist nicht mittelmäßig, es ist mittelschön (und mittelschlecht kenne ich auch). Das heißt, die schönen Momente überwiegen um eine Winzigkeit die schlechten Momente. Und wenn ich erst begriffen haben werde, daß die Ängste vollkommen irrational und überflüssig sind, dann …

Ich gestehe, ich habe seit langem wieder einmal eine Ahnung davon, wie ein (für mich) gutes Leben aussehen kann; und daß es so wird, ist nicht mehr absolut unwahrscheinlich.

Kryptisch? Naja, es ist nicht einfach, auf diesem Gebiet alle Tarnungen und Schutzmechanismen fallenzulassen.

 
Read more...

from Inside Out Insights

In today's interconnected world, user authentication plays a critical role in ensuring the security and integrity of computer systems. Whether it's logging into an application, accessing sensitive data, or protecting digital assets, effective user authentication is essential to verify the identity of individuals accessing these resources.

One powerful tool in the realm of authentication is the Pluggable Authentication Module (PAM). PAM provides a flexible framework for implementing authentication mechanisms in various Unix-like systems, allowing system administrators to integrate multiple authentication methods seamlessly.

In this blog post, we will delve into the intricacies of PAM, exploring its architecture, modules, and control flags. We will understand how PAM separates the authentication process from individual applications, providing a centralized and standardized approach to authentication.

Furthermore, we will take our understanding of PAM a step further by demonstrating how to develop a custom PAM module using Python. With Python's simplicity and versatility, we can create a module that extends the authentication capabilities of our system, enabling us to implement custom authentication logic to meet our specific requirements.

We will walk through the process of developing a Python-based PAM module, discussing the code, its functionality, and the configuration options available. Additionally, we will explore the steps for integrating our custom module into the PAM system and provide practical guidance for configuring and using the module effectively.

By the end of this blog post, you will have a comprehensive understanding of PAM, the ability to create custom PAM modules, and the knowledge to enhance authentication solutions in your system. So, let's dive in and unravel the world of PAM and custom authentication modules!

An Overview of PAM

What is PAM?

Pluggable Authentication Modules, or PAM, are dynamic libraries that provide a generic interface for authentication-related tasks. It effectively separates the specifics of authentication from applications, allowing system administrators to customize authentication procedures without changing or rewriting the software.

By using PAM, a system can implement a range of authentication methods including, but not limited to, password, biometric, or hardware-based authentication. PAM's flexibility and extensibility give it a significant advantage over hard-coded authentication mechanisms, ensuring the system remains robust and adaptable to emerging security challenges.

When an application needs to authenticate a user, it can invoke PAM as an authentication module. Here's an explanation of how the application interacts with PAM during the authentication process:

  1. Application Initialization: The application initializes the authentication process, typically when a user attempts to log in or access a protected resource. It identifies that user authentication is required.
  2. Application-PAM Interaction: The application interacts with PAM by calling PAM functions or APIs provided by the operating system. These functions allow the application to initialize the PAM authentication process and pass relevant information, such as the username and authentication credentials, to PAM.
  3. PAM Stack Invocation: Once the application interacts with PAM, the PAM layer comes into play. PAM invokes a predefined stack of modules based on the configuration for the specific service or application. The stack defines the order and types of modules to be executed during the authentication process.
  4. Authentication Modules: The first set of modules to be executed within the PAM stack are the authentication modules. These modules are responsible for verifying the user's identity by validating the provided credentials, such as a password, biometric data, or a cryptographic key. Each authentication module performs its verification process, and the results are passed back to the PAM layer.
  5. Account Modules: After the authentication modules, the account modules are invoked. These modules check whether the authenticated user has the necessary permissions or access rights to use the application or access-specific resources. They enforce any account-related policies or restrictions defined in the configuration.
  6. Session Modules: The session modules come into play once the user's authentication and account have been validated. These modules handle the setup and management of the user's session, ensuring that resources are allocated, environment variables are set, and any necessary actions are performed to initialize the user's session.
  7. Password Modules: If the user successfully passes the previous modules, the password modules are invoked. These modules manage password-related tasks, such as password change or updating mechanisms. They enforce password policies, handle password encryption, and perform any necessary actions to maintain the security of user credentials.
  8. PAM Result: Throughout this process, PAM keeps track of the results from each module. Based on the results, PAM determines whether the authentication process is successful or not. The final result is passed back to the application, indicating whether the user is authenticated or denied access.

By invoking PAM as an authentication module, the application leverages the flexibility and extensibility of the PAM framework. It delegates the responsibility of authentication to the PAM layer, allowing for centralized and customizable authentication processes across different applications and services.

Dive into PAM Modules and Stacks

PAM employs a modular approach to authentication. Each PAM module is essentially a shared library, written in C or another supported language, which implements a specific authentication mechanism. Some common examples of PAM modules include pam_unix.so for traditional password authentication, pam_cracklib.so for password strength checking, and pam_nologin.so for denying logins when /etc/nologin exists.

Each of these modules performs specific tasks by implementing different interfaces. Some modules implement all of these interfaces (pam_unix.so, pam_systemd.so, etc). These interfaces are executed as various stages of the authentication process. such as verifying a user password (auth), providing password changing function (password), setting up user credentials (session), or establishing account management commands (account).

PAM uses a concept called “stacks” to organize these modules for each service that requires authentication. A PAM stack is essentially an ordered list of module entries, read from top to bottom. For each module entry, PAM will execute the corresponding module and depending on its success or failure, and the control flag associated with it, will continue, terminate, or skip other modules.

Control flags play a pivotal role in controlling the authentication flow. There are four types of control flags:

  • required: The module must pass for authentication to succeed. If it fails, the user will not be notified until the results of all module executions are available.
  • requisite: Similar to required, but in case of failure, the authentication process returns immediately, denying the user.
  • sufficient: The module is not necessary for authentication. If it passes and no previous required module has failed, PAM returns immediately, granting the user access.
  • optional: The module is not necessary for authentication. It only matters if it is the only module associated with a particular service.

Let's visualize this with a hypothetical PAM stack for the login service:

# /etc/pam.d/login
auth       requisite      pam_securetty.so
auth       required       pam_unix.so nullok
auth       optional       pam_group.so
account    required       pam_unix.so
password   required       pam_cracklib.so
password   required       pam_unix.so obscure sha512
session    required       pam_unix.so

This PAM configuration you've provided is related to the login service on a Unix-like system. It contains four types of module-types: auth, account, password, and session. Here's a breakdown:

  1. auth: Determines how a user will prove their identity. In this case, there are three modules:
    • pam_securetty.so: It restricts root access to the system through devices that aren't listed in the /etc/securetty file. “Requisite” here means that if this module fails, the entire authentication process will be dropped immediately, presenting a failure message to the user.
    • pam_unix.so: It is a standard module for traditional password authentication. It uses standard UNIX password encryption. The nullok argument means it's okay if the password field is empty; it won't cause an authentication failure.
    • pam_group.so: It is used to grant additional group memberships based on the user's ID, service, and terminal. It is only included as optional
  2. account: Manages user account properties, usually related to access controls and resource usage.
    • pam_unix.so: In the context of the account type, it checks for password expiration, account expiration, and whether the user is allowed to access the system at the current time.
  3. password: Deals with password management.
    • pam_cracklib.so: It checks the strength of a password against a library of known weak passwords.
    • pam_unix.so: It handles password updates. The obscure argument checks for simple passwords, and sha512 indicates that the updated passwords should be hashed using the SHA-512 algorithm.
  4. session: Configures and manages user sessions.
    • pam_unix.so: It handles session-related tasks such as mounting the user's home directory and logging session opening/closing.

Remember that PAM modules are processed in the order they're written in the configuration file. The flow stops either when a module fails (if it's marked as requisite or required) or at the end of the module list (if all the modules are marked as optional). In this case, if pam_securetty.so fails, the user isn't authenticated, no matter the result of the other two auth modules.

This modular design gives PAM immense flexibility, allowing you to choose authentication policies that best suit your system's security needs.

The ability to customize the control flow via these flags allows for a granular level of control over the authentication process, making PAM an adaptable and powerful framework for system security.

Developing a Custom PAM Module

As we delve deeper into the world of PAM, it becomes clear that one of its standout features is the ability to develop custom modules. This functionality not only allows for system-specific authentication methods, but also enables rapid development and integration of new security mechanisms as the need arises. This way, you can seamlessly adapt your authentication strategies to meet evolving security challenges or unique system requirements.

However, it's worth noting that with this flexibility and adaptability comes an increased responsibility. When developing custom PAM modules, care should be taken to ensure that security best practices are followed. After all, the code you write will form a part of the system's authentication mechanism. In particular, the source code for the modules should be guarded carefully. If an attacker gains access to this code, they could potentially modify it to circumvent the entire authentication process.

In this section, we will demonstrate how to create a custom PAM module using Python – a language chosen for its ease of use and wide range of libraries. Our module will extend the system's existing authentication capabilities, showcasing the flexibility and adaptability that makes PAM a powerful tool in the hands of system administrators and security professionals.

What Makes a PAM Module?

A PAM module is essentially a shared library that provides one or more of four basic service types: authentication management (auth), password management (password), account management (account), and session management (session).

In a PAM module, there are several interfaces that correspond to different stages of an authentication process. These stages include setting up credentials, managing user accounts, managing user sessions, and changing authentication tokens. For each of these stages, there's a corresponding function that the module needs to implement:

  • pam_sm_authenticate: This is the primary function of a PAM module responsible for carrying out the authentication process. It uses the authentication mechanism defined for the module to verify the user's identity. For our Python-based PAM module, this function prompts the user for their Password and validates it against the stored Password in the shadow file.
  • pam_sm_setcred: After a successful authentication, the PAM framework often needs to set up specific user credentials. This process is handled by pam_sm_setcred. Our module, however, doesn't require any specific credential setup, so this function always returns PAM_SUCCESS, signaling a successful operation to the PAM system.
  • pam_sm_acct_mgmt: Once the user is authenticated and their credentials have been set, the PAM framework proceeds with account management tasks, which is where pam_sm_acct_mgmt comes into play. Again, our module doesn't perform any specific account management tasks, hence the function simply returns PAM_SUCCESS.
  • pam_sm_open_session and pam_sm_close_session: These functions correspond to the lifecycle of a user session, from initiation to termination. They can be employed for specific tasks upon opening or closing a user session. For our module, both these functions return PAM_SUCCESS as we're not managing session-specific activities.
  • pam_sm_chauthtok: This function is invoked when the user's authentication token (such as a password) is to be changed. While our module doesn't handle token changes and returns PAM_SUCCESS, in more comprehensive applications, this function could enforce password complexity rules, synchronize password changes across systems, or provide other token management features.

Let's take a closer look at a simple PAM module written in Python. The module will perform basic password authentication, comparing a user's input against a stored password:

import spwd
import crypt

def pam_sm_authenticate(pamh, flags, argv):
    try:
        entered_password = pamh.authtok
        stored_password = spwd.getspnam(pamh.user)[1]
    except Exception as e:
        return pamh.PAM_AUTH_ERR

    if crypt.crypt(entered_password, stored_password) != stored_password:
        return pamh.PAM_AUTH_ERR

    return pamh.PAM_SUCCESS

def pam_sm_setcred(pamh, flags, argv):
    return pamh.PAM_SUCCESS

def pam_sm_acct_mgmt(pamh, flags, argv):
    return pamh.PAM_SUCCESS

def pam_sm_open_session(pamh, flags, argv):
    return pamh.PAM_SUCCESS

def pam_sm_close_session(pamh, flags, argv):
    return pamh.PAM_SUCCESS

def pam_sm_chauthtok(pamh, flags, argv):
    return pamh.PAM_SUCCESS

In this example, pam_sm_authenticate is the main function of interest. It takes three arguments: pamh (the PAM handle, which is an object encapsulating all PAM-related data), flags (which can be used to modify the module's behavior), and argv (the arguments passed to the module).

This function fetches the entered password from the PAM handle and the stored password for the given user from the system's shadow password database. It then uses the crypt library to hash the entered password with the salt from the stored password. If the hashed entered password doesn't match the stored password, the function returns PAM_AUTH_ERR, indicating an authentication error. Otherwise, it returns PAM_SUCCESS, indicating successful authentication.

The other functions (pam_sm_setcred, pam_sm_acct_mgmt, pam_sm_open_session, pam_sm_close_session, and pam_sm_chauthtok) are required to complete the PAM module. In this simple example, they don't do anything and simply return PAM_SUCCESS. In a more complex module, these could handle tasks like setting user credentials, managing user accounts, opening and closing sessions, and changing authentication tokens (passwords), as mentioned above.

This example should give you a basic idea of what a PAM module looks like. From here, you can extend and modify this template to create a PAM module that meets your specific needs.

Modifying the template to a custom PIN Login

Let's explore our custom Python PAM module. This module uses a custom PIN for authentication. Here's the complete code:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
import json

def _get_config(argv):
    config = {}
    for arg in argv:
        argument = arg.split('=')
        if len(argument) == 1:
            config[argument[0]] = True
        elif len(argument) == 2:
            config[argument[0]] = argument[1]
    return config

def _get_pin_file(config):
    try:
        pin_file = config['pin_file']
    except:
        pin_file = "$HOME/.config/pin"
    return pin_file.replace('$HOME',os.environ.get('HOME'))

def _get_max_tries(config):
    try:
        max_tries = config['max_tries']
    except:
        max_tries = 0
    return max_tries

def pam_sm_authenticate(pamh, flags, argv):
    config = _get_config(argv)

    try:
        user = pamh.get_user()
    except pamh.exception, e:
        return e.pam_result

    if not user:
        return pamh.PAM_USER_UNKNOWN

    try:
        resp = pamh.conversation(pamh.Message(pamh.PAM_PROMPT_ECHO_OFF,
                                 'Password: '))
    except pamh.exception, e:
        return e.pam_result

    max_tries = _get_max_tries(config)
    pin_file = _get_pin_file(config)

    if not os.path.exists(pin_file):
        return pamh.PAM_AUTH_ERR

    creds = json.load(open(pin_file))
    if creds['tries'] <= max_tries or max_tries == 0:
        if creds['pin'] == resp.resp:
            creds['tries'] = 0
            json.dump(creds, open(pin_file, 'w+'))
            return pamh.PAM_SUCCESS
        else:
            creds['tries'] += 1
            json.dump(creds, open(pin_file, 'w+'))

    return pamh.PAM_AUTH_ERR

def pam_sm_setcred(pamh, flags, argv):
    return pamh.PAM_SUCCESS

def pam_sm_acct_mgmt(pamh, flags, argv):
    return pamh.PAM_SUCCESS

def pam_sm_open_session(pamh, flags, argv):
    return pamh.PAM_SUCCESS

def pam_sm_close_session(pamh, flags, argv):
    return pamh.PAM_SUCCESS

def pam_sm_chauthtok(pamh, flags, argv):
    return pamh.PAM_SUCCESS

The main function here is again pam_sm_authenticate. It reads the module configuration from the arguments passed to it. The configuration parameters include the path to the PIN file (pin_file) and the maximum number of authentication attempts allowed (max_tries).

The PIN file is a JSON file storing the correct PIN and the number of unsuccessful authentication attempts made so far. If this file doesn't exist or can't be read, the function immediately returns an authentication error.

Following that, the function retrieves the user's credentials. If the user doesn't exist, it instantly returns an error signaling an unknown user.

The function then prompts the user to enter their PIN. If the PIN matches the one stored in the file and the number of unsuccessful attempts has not exceeded the maximum allowed, the function resets the count and returns PAM_SUCCESS, signifying successful authentication. If the entered PIN doesn't match the stored one, the function increments the count of tries and returns PAM_AUTH_ERR, indicating an authentication error.

This custom PAM module adds a second factor of authentication, or simple PIN Authentication with a custom user configurable PIN. By leveraging Python's innate support for JSON and OS interfaces, this demonstrates the potential and flexibility that custom PAM modules can provide.

Integration and Usage

Now that we have our Python-based PAM module ready, the next step is integrating it into our system and putting it to use.

Pre-requisites

To use our custom Python PAM module, we must satisfy a few pre-requisites:

  • Python: Since our module is written in Python, you must have Python installed on your system. Most Unix-like operating systems already come with Python pre-installed. You can check the installed version by typing python --version in your terminal. If Python is not installed, or you need a different version, follow the official Python installation guide.
  • pam_python: pam_python is a PAM Module that runs the Python interpreter, thus allowing PAM Modules to be written in Python. The module we've developed relies on pam_python.so to interface with the system's PAM library. Depending on your Linux distribution, you may need to install it manually. On Ubuntu, for example, you could install it with: sudo apt-get install libpam-python For other distributions, please consult their specific package management systems or compile from source if necessary. Be aware that pam_python.so must be compatible with the version of Python you're using for your module.
  • Python Libraries: Ensure all Python libraries used in your PAM module are installed. In our example module, we're using os and json, which are part of Python's standard library and thus do not need separate installation.
  • System Permissions: PAM modules are run as the root user, since they need to interact with system-level authentication processes. Ensure that your system permissions allow for the execution of your PAM module, and that it is securely stored in a directory that's accessible to the root user.

Placing the Module

Copy the Python PAM module script to a suitable location. For instance, you can place it in /usr/local/lib/security/. Make sure the permissions are set correctly, so that the module is readable by the services that will use it.

sudo cp my_module.py /usr/local/lib/security/
sudo chmod 644 /usr/local/lib/security/my_module.py

Configuring PAM

The PAM library determines the sequence and execution of the PAM modules through the configuration files. Each service using PAM has its own configuration file. On most Unix-like systems, these are stored in the /etc/pam.d/ directory. The configuration files use a simple syntax to define the module stack for a given service.

Firstly, you must decide which service(s) you want your custom module to be integrated with. This could be a single service like SSH (sshd), or multiple services depending on your needs.

Once decided, you will need to edit the configuration file for each selected service. Let's use sshd as an example. Open the SSH PAM configuration file using a text editor with root privileges. You can use nano, vi, or any text editor of your choice. Next, add the following line to the configuration file:

auth required pam_python.so /usr/local/lib/security/my_module.py

Here's a breakdown of what this line means: * auth: This indicates the type of module. In this case, it's an authentication module, which verifies the user's identity. * required: This is the control flag. If the module returns a failure, the whole authentication process fails, and no subsequent modules of the same type (in this case, auth) are executed. * pam_python.so: This is the PAM module to be invoked. pampython.so runs Python scripts as PAM modules. * /usr/local/lib/security/my_module.py: This is the full path to the Python script we want pampython.so to execute.

Note that the line we added should be placed correctly according to the desired sequence of module execution in the stack.

Once you've saved and closed the file, PAM is configured to use your custom module for SSH authentication.

Remember, always back up your original configuration files before making any changes to them. In case something goes wrong, you can restore the original configuration. Be aware that incorrect PAM configurations can potentially lock you out of your system.

Configuring Module Parameters

You can pass parameters to your PAM module directly from the configuration file. In our custom module, we used parameters to configure the PIN file location and the maximum number of tries.

To set these parameters, you add them to the end of the line in the configuration file, like so:

auth required pam_python.so /usr/local/lib/security/my_module.py pin_file=/path/to/pin/file max_tries=3

In this line, pin_file is set to /path/to/pin/file, and max_tries is set to 3. These will be the default settings for the module unless they're overridden by the user.

This way, you can tailor the behavior of your module without modifying the Python code, making your module more flexible and reusable.

Testing

Testing is of paramount importance in any software development process, and it becomes especially critical when dealing with sensitive components like authentication modules. There are several reasons why rigorous testing should be an integral part of developing a custom PAM module:

  • Verification of Functionality: Testing ensures that the module functions as expected, successfully performing its intended tasks. A PAM module handles sensitive operations related to user authentication, making it crucial to verify that it correctly authenticates valid users and restricts unauthorized ones.
  • Security Assurance: A poorly tested PAM module could have vulnerabilities that could be exploited, potentially leading to severe security breaches. Comprehensive testing helps detect and address any such weaknesses, thereby enhancing the overall security of the system.
  • Prevention of System Disruptions: PAM modules are intimately linked with the system's authentication processes. If not correctly implemented or integrated, they can cause widespread disruptions or even lock users out of the system. Rigorous testing can prevent such disruptions by identifying issues before deployment.
  • Enhancing Code Quality: Testing can also help improve the quality of the module's code by identifying inefficient or redundant segments. This process can lead to more maintainable and efficient code, making future updates or modifications easier.

Given these critical factors, it is clear that thorough testing is not just an optional step but an essential part of the development and integration of a custom PAM module. It contributes significantly to ensuring the stability, security, and reliability of the overall system.

Troubleshooting

When integrating and testing your PAM module, you might encounter some issues. Here's how to troubleshoot common problems, including which log files can provide useful insights.

  • Authentication Fails Unexpectedly:

If the module fails to authenticate despite providing valid credentials, check for any syntax or logical errors in your Python script. Also, verify if the PIN file is correctly formatted and contains the correct data. The Python error logs can often provide useful insights about what's causing the failure. Additionally, the /var/log/auth.log file records all authentication attempts, and checking this log can help you pinpoint the issue.

  • The Module Doesn't Seem to be Invoked:

If it seems like your module isn't being invoked at all, double-check the PAM configuration. Make sure that the module is correctly referenced in the appropriate service's configuration file and the path to the Python script is accurate. If the problem persists, the /var/log/syslog or /var/log/secure (location depends on your system) can provide more information about system events and could contain details about why your module isn't being called.

  • PAM Ignores the Control Flag:

If it appears that PAM isn't respecting the control flag (e.g., required, sufficient, etc.), ensure that the flag is correctly specified in the configuration file. Remember, the order of the modules in the configuration file matters, and they are processed in the order they appear. The /var/log/auth.log file can provide insights into the authentication process, which may help diagnose the problem.

  • Changes to the Configuration File Don't Take Effect:

If changes to the PAM configuration file don't seem to take effect, make sure you're editing the correct file for the service you're testing. Also, confirm that you've saved the changes and the configuration file has the correct permissions. The /var/log/syslog or /var/log/secure files may have relevant information if the system isn't recognizing your changes.

  • System-Wide Issues After Deploying the Module:

If you experience system-wide issues after deploying the module (e.g., users unable to log in), it might be because the module is incorrectly blocking authentications. Be very cautious when deploying a custom PAM module system-wide and always have a secure way to revert the changes. In such a case, both the /var/log/auth.log and the /var/log/syslog or /var/log/secure files can provide crucial information about what went wrong.

Remember, understanding PAM and its working is critical when troubleshooting a custom PAM module. Incorrect configurations can lead to system-wide issues, potentially locking all users out of the system. Always test your module thoroughly in a controlled environment before deploying it on a live system.

Conclusion

In this blog post, we explored Pluggable Authentication Module (PAM) and how to create a custom PAM module in Python. We learned about the importance of user authentication and how PAM provides a flexible framework for authentication.

By developing a custom PAM module, you can extend the authentication capabilities of your system. We discussed the structure and functionality of a Python-based PAM module and covered the integration and usage process.

Thorough testing is essential to ensure proper functionality and system stability. We highlighted the significance of troubleshooting and provided guidance on where to look for relevant log files.

Creating custom PAM modules allows you to tailor authentication processes to your specific needs, enhancing security and flexibility. We encourage you to continue exploring PAM and experimenting with custom modules to bolster the security of your systems.

Happy coding and secure authentication!

 
Weiterlesen...

from raspel

Für meinen eignen Server der direkt am DSL Router hängt, habe ich von AdminForge noip.at als Provider für meine Domain verwendet.

Soweit so gut... Nur in meinem Lan lies sich meine Domain nicht auflösen. Zunächst habe mir auf meinem Clients mit Einträgen in der /etc/hosts geholfen... Da ich für meine Rechner im Lan einen eigenen Nameserver betreibe, habe ich dort nach Fehlern gesucht und nicht gefunden...

Nun habe ich zu einem Quick und Dirty Trick gegriffen und die Zone noip.at als Zone auf meinem Nameserver abgebildet.

Auschnitt aus der Zonendatei für noip.at:

; A records hostname IN A a.b.c.d www IN A e.f.g.h noip.at. IN A e.f.g.h *.noip.at. IN A e.f.g.h

Ich gebe zu, dass es keine schöne Lösung ist. Wer einen besseren Ansatz hat, möge mir schreiben: @raspel@procial.tchncs.de

 
Weiterlesen...

from vorinstanz

Nach zwei Jahren Entwicklung ist es soweit: Der Mail Client K-9 wird als Thunderbird Android neu geboren. Damit wird Thunderbird (endlich) mobil. Die erste Beta ist nun verfügbar. K-9 soll weiterhin verfügbar sein und gepflegt werden. Beide Tools sind Open Source.

Bereits Ende Oktober 2024 wird die finale Version verfügbar sein. Zurzeit sind Engagierte gesucht, welche die Vorversion testen wollen. Mit Thunderbird Android können übrigens auch Outlook- und GMail-Konten verwaltet werden.

Beta-Version (GooglePlay)

#Tools #Mail #OpenSource

 
Weiterlesen...

from Johannes Leutenegger

Ich war heute Freitag am Swiss Coffee Festival. Hier ein paar kleinere Highlights:

Latte Art bei Beleaf von Emmi

Hatte ein gutes Gespräch mit einer Angestellten vom Emmi über Beleaf. Der Haferdrink – in veganen Kreisen wegen seines besonders haferigen Geschmacks und braunen Farbe in der Vergangenheit etwas umstritten – wurde rundum erneuert. Die Milch ist jetzt sehr weiss, der Geschmack ziemlich neutral. Die Aufschaumfähigkeit ist fantastisch, sogar ein Anfänger kriegt es hin – zugegeben mit einer leistungsfähigen La Marzocco GS3 – in kurzer Zeit mit wenig Wissen aufzuschäumen. Oatly hat offenbar ähnliches Feedback wie Emmi bekommen. Auch Oatly hat neu eine “Light” Variante im Angebot, die weniger süss sein soll und mehr den Kaffee Raum lassen soll. Nach einem Cappuccino kann ich diese Behauptung persönlich bestätigen.

Erfreulich ist es, dass vegane Milchalternativen und insbesondere Hafermilch für viele Firmen eine klare Priorität ist. Kuhmilch war zwar am Swiss Coffee Festival zu finden, aber es gab gleich vier Anbieter, die Hafermilch beworben haben. Neben Emmi Beleaf waren dies die üblichen Verdächtigen Oatly und Alpro und die Hipster von Minor Figures aus dem Vereinigten Königreich.

Über Oatly als Firma wurde viel schlechtes geschrieben in den vergangenen drei Jahren, der Aktienkurs ist deutlich zusammengebrochen. Doch gemessen an der Stimmung am Swiss Coffee Festival sind pflanzliche Alternativen bei Baristas mehr als eine blosse Alternative, sondern fast Standard.

Jedenfalls durfte ich bei Beleaf einmal meinen ersten Gehversuch mit Latte Art machen. Ich erspare hier meinem Publikum ein Bild davon. Auf jeden Fall verbesserungswürdig.

Maschinen, Maschinen, Maschinen

Ich war mit einem Arbeitskollegen vor Ort und der war vor allem an Maschinen interessiert und hat den Ausstellern regelrecht Löcher in den Bauch gefragt. Das ist auch völlig richtig so, immerhin wollen die ja auch etwas verkaufen.

Was es hier aber für verschiedene Maschinen gab, meine Güte. Hier mal ein paar Höhepunkte. Die Ligre, die zu grossen Teilen im Tirol und in Bayern produziert wird. Ein richtig mutiger Designentscheid. Eine Espressomaschine, die wirklich mit dem – seien wir ehrlich sehr konservativen – Konzept einer klassischen Espressomaschine bricht. Sie sieht mehr aus wie eine Stereoanlage von Bang & Olufsen, jetzt mal abgesehen vom Siebträger. Wer klassische Hebel und Steuerelemente bei dieser Maschine sucht, wird enttäuscht werden. Auch da geht die Maschine andere Wege. Auch technisch haben die Entwickler andere Wege gewählt als die klassischen italienischen Modelle, mit einem eigens entwickelten Heizsystem, das ich ehrlich gesagt nicht ganz verstanden habe. Irgendwie Thermoblock, aber irgendwie doch nicht. Kosten: Stolze 4000 europäische Pesos.

Angeschaut haben wir auch die Unica. Eine Schweizer Maschine, die in zwei Minuten heiss sein soll, spannende Extraktionsdaten anzeigen und nutzbar machen kann und ziemlich klein ist. Der Preis ist allerdings auch ziemlich happig, nämlich etwa 7000 schweizerische Drachmen.

Auch bei den manuellen Kaffeemachern gab es etwas zu bestaunen. Der Bird von Weber Workshop. Das Gerät ist wie man es sich von Weber Workshop gewohnt ist: Wahnsinnig ästhetisch, verdammt overengineered und saumässig teuer. Der Bird, der aussieht wie eine Stempelkanne (unredlich: Frenchpress), aber irgendetwas zwischen Aeropress und Siphonkaffee (so der Verkäufer am Stand) produzieren soll, kostet nämlich stolze 314 schweizerische Sesterzen. Ach ja und spezielle Filterpapiere muss man dafür auch noch kaufen. Die Filter werden übrigens von Cafec in Japan produziert. Jesses Maria. Allerdings gibt es für die 314 schweizerischen Dollars auch noch ein “stainless mesh reusable filter” inbegriffen, den aber der Verkäufer nach eigener Aussage selber nicht nutzen möchte.

“Modern-moderner” Espresso bei Turm Kaffee

Zum Abschluss wollte ich noch einen Espresso trinken. Der Barista des Turm Kaffee aus St. Gallen fragte mich, was für ein Espresso mich interessieren würde. “Eher klassisch, oder...” Ich sagte von mir selber überzeugt, wahrscheinlich angetrieben von zu viel Koffein: “Eher modern.” – “Also modern, oder modern-modern?” – “Modern-modern.” Was ich da trank, war irgendetwas zwischen Filterkaffee und Espresso, serviert als Espresso. “Funky” ist ein Ausdruck, den man in den Spezialitätenkaffeekreisen gerne dafür verwendet, was ich natürlich auch sagte. Es handelte sich um einen “Blueberry fermented” Kaffee. Also es wurden zuerst Blaubeeren fermentiert und dann die Hefe oder was auch immer daraus verwendet um damit die Kaffeebohnen zu fermentieren. Also keine Infusion, aber wirklich “sehr funky”.

Ich muss zugeben, ich bin auch mit der Erwartung dort hin gegangen, genau solchen “funky” Kaffee zu trinken. Aber der Nachgeschmack ist mir dann echt etwas zu viel geworden. Offenbar hat Turm Kaffee nur 10 Kilo dieses Kaffees bekommen und die Hälfte ist bereits am Freitag an der Messe regelrecht weggekauft worden. Es hat etwas FOMO eingesetzt bei mir, aber ganz ehrlich, so einen Kaffee muss ich echt nicht zuhause trinken.

 
Read more...