Hubzilla gestalten
Fortsetzung zu Individuelle Anpassungen mit dem PDL-Editor (Einsteiger)
Eine Digitaluhr im simplen Text-Format in die Seitenleiste schieben und umständlich ein Hubzilla-Menü zu bauen... das ist jetzt nicht die "Hohe Schule" der Hubzilla-Gestaltung. Und auch nicht besonders schick und modern...
Eine Digitaluhr im simplen Text-Format in die Seitenleiste schieben und umständlich ein Hubzilla-Menü zu bauen... das ist jetzt nicht die "Hohe Schule" der Hubzilla-Gestaltung. Und auch nicht besonders schick und modern...
View article
View summary
Fortsetzung zu Individuelle Anpassungen mit dem PDL-Editor (Einsteiger)
Eine Digitaluhr im simplen Text-Format in die Seitenleiste schieben und umständlich ein Hubzilla-Menü zu bauen... das ist jetzt nicht die "Hohe Schule" der Hubzilla-Gestaltung. Und auch nicht besonders schick und modern. Die Beispiele aus dem Artikel sollten nur dem grundlegenden Verständnis der Seitengestaltung bei Hubzilla dienen.
Das Thema ist auch kaum vollumfassend abzuhandeln. In diese Artikel hier gehe ich auch nur beispielhaft auf die Möglichkeiten ein und ich kann vielleicht Anstöße zu neuen Ideen geben, wie sich Nutzer ihr eigenes Hubzilla zusammenbauen können, ohne mit Admin-Rechten irgendetwas zu installieren.
Im ersten Teil habe ich ja gezeigt, wie man mit der App "Webseiten" ein Menü erstellt und dieses im PDL-Editor in die Seitenleiste packen kann... etwas umständlich und so eigentlich auch nicht vorgesehen.
Die Optik eines solchen Menüs ist ohnehin nicht sonderlich ansprechend und tut damit auch nichts gegen den Vorwurf, Hubzilla würde mit seinem Standard-Theme "Redbasic" doch recht altbacken aussehen.
Sinnvoller und auch so vorgesehen ist die Gestaltung mit selbst erstellten Blöcken. Nutzt man ein moderneres Theme, so passt sich die Optik auch halbwegs an das Theme an. So richtig schick wird es aber erst, wenn man auf ein modernes Framework zurückgreift.
Voraussetzung für all die Dinge, die ich hier einmal vorführen möchte, sind die installierten Apps "PDL-Editor" und "Webseiten" und die Freigabe für Code für den Kanal, den man aufpeppen möchte.
Sofern man nicht selbst der Administrator ist, muss man für den letzten Punkt den Hub-Administrator kontaktieren und ihn bitten, Code für den eigenen Kanal zuzulassen. Für den Admin ist das nur ein einfacher Klick. Am besten schreibt man dem Admin bei der Bitte um Freischaltung auch gleich, wofür man das benötigt.
Sind diese Voraussetzungen geschaffen, die Apps also installiert und der Code erlaubt, kann es auch gleich losgehen.
Die meisten Themes für Hubzilla bieten entweder ein Subset oder teilweise zumindest das Basis-Stylesheet von Bootstrap. Möchte man aber die Fähigkeiten von Bootstrap umfassend für die Gestaltung nutzen, ist es sinnvoll, das Framework auch original einzubinden.
Das funktioniert mit dem Inhaltstyp "HTML" auch völlig problemlos. Man muss nur führend im Block (gilt natürlich auch für Webseiten, wenn man sie so erstellen möchte) Bootstrap einbinden:
Damit bringt man dann allerdings eine Fremdquelle mit ein. Nun ist Bootstrap nicht extrem groß (aktuell 8,3 MB), weshalb es sich anbietet, es einfach in der eigenen Hubzilla-Cloud vorzuhalten. Dazu legt man sich am besten im Wurzelverzeichnis der eigenen Cloud ein Verzeichnis
Eingebunden wird es dann mit
Auch dieses Framework muss man am Beginn eines Blocks einbinden:
Oder man lädt w3.css herunter, packt es z.B. in ein Verzeichnis
ein.
Blöcke werden von der App "Webseiten" zur Verfügung gestellt. Sie dienen dazu, wiederholt benutzbare Inhalte aufzunehmen, welche man dann über den Blocknamen in Webseiten, Webseiten-Layouts oder aber auch in die Seitenlayouts von Hubzilla einbinden kann.
Der Vorteil ist, dass selbst erstellte Blöcke im ITEM-Bereich des PDL-Editors zur Verfügung stehen und per Drag-and-Drop an die passende Stelle geschoben werden können.
Ein Block kann so ziemlich "alles" beinhalten. Und man kann ihn mit verschiedenen Inhaltstypen erstellen.
Es stehen die Inhaltstypen
zur Auswahl.
bbCode erlaubt zwar keine Einbindung eines Web-Frameworks, dafür bietet es spezielle Auszeichnungen für hubzilla-spezifische Dinge.
HTML ist der universellste Inhaltstyp, sofern man sich mit HTML auskennt. Mit einem HTML-Block kann man auch die erwähnten Frameworks nutzen und tolle Effekte und Funktionen einsetzen.
Markdown eignet sich für formatierte Texte, ist also eher etwas für Beitrags-Inhalte und weniger für Blöcke, die man z.B. in die Seitenleiste einer Ansicht packt. Verwenden kann man es aber schon dafür.
(Plain) Text, also reiner, unformatierter Text, ist die einfachste Variante, gibt aber für unsere Zwecke nichts her.
Die Comanche-Layout Auszeichnungssprache ist für den Einsatz für die Dinge, welche hier behandelt werden auch nicht sinnvoll.
PHP hingegen kann man durchaus nutzen, wenn man dynamische Inhalte erzeugen möchte. Setzt allerdings das Verständnis und die Fähigkeit zum Programmieren voraus.
Ich werde jetzt hier fast ausschließlich Blöcke im HTML-Format einsetzen, weil damit die größte Flexibilität gegeben ist.
Und jetzt fange ich einmal mit einem konkreten Beispiel an: Eine Navigationsleiste, die ich ganz oben im Inhaltsbereich der Kanalansicht einbauen möchte. Ich möchte damit Besuchern meiner Kanalseite eine einfache Navigation zu wesentlichen Bereichen meines Kanals ermöglichen. So sollen sie mit einem Klick, ohne länger zu suchen, auf meine Artikelseite, zu meinen Karten, zu meinem Wiki, meiner Galerie und zu meinem öffentlichen Kalender gelangen können. Damit es auch noch wirklich schick aussieht, gibt es als ersten Navigationspunkt eine Logo-Grafik des Hubs, die bei Anklicken zur Hub-Beschreibung führt.

Zunächst habe ich mir für den "Home-Button" eine passende Grafik gebaut, die transparenten Hintergrund hat und zur Schriftgröße der weiteren Buttons passt (100 x 24 Pixel):

Die Navigationsleiste realisiere ich in diesem Fall mit W3.CSS. Außerdem mach ich es noch ein wenig bunt, indem ich die Hover-Farbe für die Buttons auf verschiedene Standard-Farben des Frameworks festlege.
Den Block erstelle ich mit dem Block-Editor der App "Webseiten". Als Namen habe ich "wnavbar" festgelegt. Als Inhaltstyp
Anschließend muss der Block im PDL-Editor noch an die oberste Stelle des Inhaltsbereichs im MODUL "channel" geschoben und die Änderungen mit Klick auf den Button "APPLY" übernommen werden.

Nicht schlecht für den Anfang, oder?
Im ersten Einführungsteil hatte ich ja ein Menü zu Artikeln von mir als Beispiel gebastelt. Allerdings nicht als Block, sondern als Hubzilla-Menü, welches man nur umständlich mit dem PDL-Editor einbauen kann:

Im Endeffekt ist ein natives Hubzilla-Menü nichts anderes als eine Liste von Links. Und eine Link-Liste kann man auch ohne die Menü-Funktion erstellen.
Für diese Beispiel jetzt, erstelle ich wiederum ein Menü zu einigen (drei) Artikeln meines Kanals. Allerdings als Link-Liste.
Der HTML-Code für den entsprechenden Block sieht dann z.B. so aus:
Hier einfach als einzelne Links untereinander mit dem
Sieht so aus:

Oder vielleicht besser als unsortierte Liste?
Sieht schon etwas besser aus:

In die Kanalseite eingebaut (und mit einem Titel versehen):

Nett! Aber... Nett ist die kleine Schwester von Scheiße! 😉😂
Also packen wir mal ein wenig Schnick und Schnack vom W3.CSS Framework dazu:
Und schon sieht es fetziger aus, oder?

Nun möchte ich noch in der Seitenleiste ein Element haben, welches die Kontaktmöglichkeit mittels Delta Chat anzeigt. Dafür möchte ich den QR-Code meines Delta Chat Accounts verwenden.
Nun könnte man einfach ein Bild, nämlich den QR-Code dort hinpacken. Und das sogar mit bbCode, weil's einfacher ist.

Dann sieht das halt so aus:

Nicht sehr ansprechend... und es frisst Platz, weshalb das Artikelmenü (oder andere Inhalte, falls man noch weitere in die Seitenleiste geschoben hat) nach unten rutscht und man erst scrollen muss, um es zu erreichen.
Besser wäre es, wenn dort ein Button "Kontakt" zu sehen wäre, welche bei Klick den QR-Code einblendet... und den man mit einem weiteren Klick wieder ausblenden kann. Dafür bietet sich das "Accordeon" von W3.CSS an.
Und damit es nicht so langweilig aussieht, peppe ich es noch mit einer Karte als Inhalt und einer kleinen Animation auf. Ach... und der Button wird schwarz und hat ganz leich abgerundete Ecken.
Der Code dafür:
Schnell noch in die Seitenleiste geschoben... und schon ist die Delta Chat Karte da!

Einfach, um zu zeigen, dass man auch was mit PHP machen kann, hier ein Block, der anzeigt, wann die aktuelle Seite aufgerufen wurde. Mir ist einfach nichts Nützliches eingefallen...
Dazu legt man einen Block mit dem Inhaltstyp "PHP" an. Ich nenne ihn hier einfach mal "aufrufzeit".
Der Code ist extrem simpel!
Beachte hier: Es darf kein
Das Ding packe ich in die Profilansicht ganz ans Ende, damit jeder weiß, wann er sich das Profil angeschaut hat:

Damit lasse ich es jetzt einfach bewenden. Ich wollte hier einfach nur zeigen, was über die einfachen Dinge aus dem ersten Teil mit Hubzilla alles möglich ist.
Man ist extrem frei, die Oberfläche für sich selbst, aber auch für Besucher attraktiver und praktischer zu gestalten.
Und man ist nicht auf die Fähigkeiten vorhandener Widgets und Styles vorhandener Themes beschränkt. Mit aktuellen Frameworks kann man sehr viel gestalten, was frisch und modern aussieht.
Und da geht manches, was man vielleicht gar nicht für möglich hält. So habe ich einfach einmal was ausprobiert (in einem Test-Kanal... weil ich es eigentlich nicht nutzen würde)...
Zum einfachen Verfassen von bbCode-Beiträgen nutze ich gerne den SCEditor. Den habe ich mir lokal in eine HTML-Datei abgelegt und als Lesezeichen in die Lesezeichen-Symbolleiste meines Browsers gepackt. Ein Klick und er öffnet sich... und ich kann losschreiben.
Und da dachte ich mir einfach mal: Ob man das auch in eine Hubzilla-Ansicht packen kann?
Und tatsächlich ist es ohne große Anstrengung dort umsetzbar. Sah dann so aus:

Ihr seht also... es ist echt viel möglich. Einfach einmal ausprobieren.
Um Euch in die Frameworks einzuarbeiten oder den Einstieg in PHP zu schaffen, empfehle ich persönlich die Tutorials von w3 schools:
Viel Spaß beim Experimentieren und bei der Gestaltung Eures Hubzilla-Kanals!
Artikel in der Hubzilla KnowledgeDB
Eine Digitaluhr im simplen Text-Format in die Seitenleiste schieben und umständlich ein Hubzilla-Menü zu bauen... das ist jetzt nicht die "Hohe Schule" der Hubzilla-Gestaltung. Und auch nicht besonders schick und modern. Die Beispiele aus dem Artikel sollten nur dem grundlegenden Verständnis der Seitengestaltung bei Hubzilla dienen.
Das Thema ist auch kaum vollumfassend abzuhandeln. In diese Artikel hier gehe ich auch nur beispielhaft auf die Möglichkeiten ein und ich kann vielleicht Anstöße zu neuen Ideen geben, wie sich Nutzer ihr eigenes Hubzilla zusammenbauen können, ohne mit Admin-Rechten irgendetwas zu installieren.
Im ersten Teil habe ich ja gezeigt, wie man mit der App "Webseiten" ein Menü erstellt und dieses im PDL-Editor in die Seitenleiste packen kann... etwas umständlich und so eigentlich auch nicht vorgesehen.
Die Optik eines solchen Menüs ist ohnehin nicht sonderlich ansprechend und tut damit auch nichts gegen den Vorwurf, Hubzilla würde mit seinem Standard-Theme "Redbasic" doch recht altbacken aussehen.
Sinnvoller und auch so vorgesehen ist die Gestaltung mit selbst erstellten Blöcken. Nutzt man ein moderneres Theme, so passt sich die Optik auch halbwegs an das Theme an. So richtig schick wird es aber erst, wenn man auf ein modernes Framework zurückgreift.
Voraussetzungen
Voraussetzung für all die Dinge, die ich hier einmal vorführen möchte, sind die installierten Apps "PDL-Editor" und "Webseiten" und die Freigabe für Code für den Kanal, den man aufpeppen möchte.
Sofern man nicht selbst der Administrator ist, muss man für den letzten Punkt den Hub-Administrator kontaktieren und ihn bitten, Code für den eigenen Kanal zuzulassen. Für den Admin ist das nur ein einfacher Klick. Am besten schreibt man dem Admin bei der Bitte um Freischaltung auch gleich, wofür man das benötigt.
Sind diese Voraussetzungen geschaffen, die Apps also installiert und der Code erlaubt, kann es auch gleich losgehen.
Bootstrap und/oder W3.CSS
Die meisten Themes für Hubzilla bieten entweder ein Subset oder teilweise zumindest das Basis-Stylesheet von Bootstrap. Möchte man aber die Fähigkeiten von Bootstrap umfassend für die Gestaltung nutzen, ist es sinnvoll, das Framework auch original einzubinden.
Das funktioniert mit dem Inhaltstyp "HTML" auch völlig problemlos. Man muss nur führend im Block (gilt natürlich auch für Webseiten, wenn man sie so erstellen möchte) Bootstrap einbinden:
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">`
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
Damit bringt man dann allerdings eine Fremdquelle mit ein. Nun ist Bootstrap nicht extrem groß (aktuell 8,3 MB), weshalb es sich anbietet, es einfach in der eigenen Hubzilla-Cloud vorzuhalten. Dazu legt man sich am besten im Wurzelverzeichnis der eigenen Cloud ein Verzeichnis
bootstrap
an, in welches man dann den Inhalt der Bootstrap-Distribution hochlädt.Eingebunden wird es dann mit
<link href="https://<URL_des_Hub>/cloud/<Kanal>/bootstrap/css/bootstrap.min.css" rel="stylesheet">`
<script src="https://<URL_des_Hub>/cloud/<Kanal>/bootstrap/js/bootstrap.bundle.min.js"></script>
Ich persönlich nutze aber auch sehr gerne das W3.CSS Framework, weil es ohne Javascript-Bibliothek auskommt und wesentlich kompakter ist (24,2 KB).Auch dieses Framework muss man am Beginn eines Blocks einbinden:
<link rel="stylesheet" href="https://www.w3schools.com/w3css/5/w3.css">
Oder man lädt w3.css herunter, packt es z.B. in ein Verzeichnis
css
in der eigenen Cloud und bindet es mit<link rel="stylesheet" href="https://<URL_des_Hub>/cloud/<Kanal>/css/w3.css">
ein.
Blöcke
Blöcke werden von der App "Webseiten" zur Verfügung gestellt. Sie dienen dazu, wiederholt benutzbare Inhalte aufzunehmen, welche man dann über den Blocknamen in Webseiten, Webseiten-Layouts oder aber auch in die Seitenlayouts von Hubzilla einbinden kann.
Der Vorteil ist, dass selbst erstellte Blöcke im ITEM-Bereich des PDL-Editors zur Verfügung stehen und per Drag-and-Drop an die passende Stelle geschoben werden können.
Ein Block kann so ziemlich "alles" beinhalten. Und man kann ihn mit verschiedenen Inhaltstypen erstellen.
Es stehen die Inhaltstypen
- bbCode
- HTML
- Markdown
- Text (plain Text)
- Comanche-Layout
- PHP
zur Auswahl.
bbCode erlaubt zwar keine Einbindung eines Web-Frameworks, dafür bietet es spezielle Auszeichnungen für hubzilla-spezifische Dinge.
HTML ist der universellste Inhaltstyp, sofern man sich mit HTML auskennt. Mit einem HTML-Block kann man auch die erwähnten Frameworks nutzen und tolle Effekte und Funktionen einsetzen.
Markdown eignet sich für formatierte Texte, ist also eher etwas für Beitrags-Inhalte und weniger für Blöcke, die man z.B. in die Seitenleiste einer Ansicht packt. Verwenden kann man es aber schon dafür.
(Plain) Text, also reiner, unformatierter Text, ist die einfachste Variante, gibt aber für unsere Zwecke nichts her.
Die Comanche-Layout Auszeichnungssprache ist für den Einsatz für die Dinge, welche hier behandelt werden auch nicht sinnvoll.
PHP hingegen kann man durchaus nutzen, wenn man dynamische Inhalte erzeugen möchte. Setzt allerdings das Verständnis und die Fähigkeit zum Programmieren voraus.
Ich werde jetzt hier fast ausschließlich Blöcke im HTML-Format einsetzen, weil damit die größte Flexibilität gegeben ist.
Beispiel 1: Navigationsleiste für die Kanalseite
Und jetzt fange ich einmal mit einem konkreten Beispiel an: Eine Navigationsleiste, die ich ganz oben im Inhaltsbereich der Kanalansicht einbauen möchte. Ich möchte damit Besuchern meiner Kanalseite eine einfache Navigation zu wesentlichen Bereichen meines Kanals ermöglichen. So sollen sie mit einem Klick, ohne länger zu suchen, auf meine Artikelseite, zu meinen Karten, zu meinem Wiki, meiner Galerie und zu meinem öffentlichen Kalender gelangen können. Damit es auch noch wirklich schick aussieht, gibt es als ersten Navigationspunkt eine Logo-Grafik des Hubs, die bei Anklicken zur Hub-Beschreibung führt.

Zunächst habe ich mir für den "Home-Button" eine passende Grafik gebaut, die transparenten Hintergrund hat und zur Schriftgröße der weiteren Buttons passt (100 x 24 Pixel):

Die Navigationsleiste realisiere ich in diesem Fall mit W3.CSS. Außerdem mach ich es noch ein wenig bunt, indem ich die Hover-Farbe für die Buttons auf verschiedene Standard-Farben des Frameworks festlege.
Den Block erstelle ich mit dem Block-Editor der App "Webseiten". Als Namen habe ich "wnavbar" festgelegt. Als Inhaltstyp
<link rel="stylesheet" href="https://klacker.org/cloud/pepecyb/css/w3.css">
<div class="w3-bar w3-border w3-light-grey">
<a href="https://klacker.org/page/pepecyb/about" class="w3-bar-item w3-button"><img src="https://klacker.org/cloud/pepecyb/whoville/whoville-logo.png" alt=""></a>
<a href="https://klacker.org/articles/pepecyb" class="w3-bar-item w3-button w3-hover-green">Artikel</a>
<a href="https://klacker.org/cards/pepecyb" class="w3-bar-item w3-button w3-hover-blue">Karten</a>
<a href="https://klacker.org/wiki/pepecyb" class="w3-bar-item w3-button w3-hover-teal">Wikis</a>
<a href="https://klacker.org/gallery/pepecyb" class="w3-bar-item w3-button w3-hover-purple">Galerie</a>
<a href="https://klacker.org/cal/pepecyb" class="w3-bar-item w3-button w3-hover-red">Kalender</a>
</div>
Anschließend muss der Block im PDL-Editor noch an die oberste Stelle des Inhaltsbereichs im MODUL "channel" geschoben und die Änderungen mit Klick auf den Button "APPLY" übernommen werden.

Nicht schlecht für den Anfang, oder?
Beispiel 2: Nochmal das Menü aus dem ersten Teil - aber besser
Im ersten Einführungsteil hatte ich ja ein Menü zu Artikeln von mir als Beispiel gebastelt. Allerdings nicht als Block, sondern als Hubzilla-Menü, welches man nur umständlich mit dem PDL-Editor einbauen kann:

Im Endeffekt ist ein natives Hubzilla-Menü nichts anderes als eine Liste von Links. Und eine Link-Liste kann man auch ohne die Menü-Funktion erstellen.
Für diese Beispiel jetzt, erstelle ich wiederum ein Menü zu einigen (drei) Artikeln meines Kanals. Allerdings als Link-Liste.
Der HTML-Code für den entsprechenden Block sieht dann z.B. so aus:
<a href="https://klacker.org/articles/pepecyb/hhowama">Hubzilla-Häppchen: Hubzilla-Magie - OpenWebAuth / MagicAuth</a><br>
<a href="https://klacker.org/articles/pepecyb/folhsh2">Hubzilla: Hashtags folgen - Variante 2</a><br>
<a href="https://klacker.org/articles/pepecyb/irrungenwirrungen">Irrungen und Wirrungen - Hubzilla-Accounts, -Kanäle, -Profile</a>
Hier einfach als einzelne Links untereinander mit dem
<br>-Tag
(nicht schön und elegant).Sieht so aus:

Oder vielleicht besser als unsortierte Liste?
<ul><li><a href="https://klacker.org/articles/pepecyb/hhowama">Hubzilla-Häppchen: Hubzilla-Magie - OpenWebAuth / MagicAuth</a></li>
<li><a href="https://klacker.org/articles/pepecyb/folhsh2">Hubzilla: Hashtags folgen - Variante 2</a></li>
<li><a href="https://klacker.org/articles/pepecyb/irrungenwirrungen">Irrungen und Wirrungen - Hubzilla-Accounts, -Kanäle, -Profile</a></li></ul>
Sieht schon etwas besser aus:

In die Kanalseite eingebaut (und mit einem Titel versehen):

Nett! Aber... Nett ist die kleine Schwester von Scheiße! 😉😂
Also packen wir mal ein wenig Schnick und Schnack vom W3.CSS Framework dazu:
<link rel="stylesheet" href="https://klacker.org/cloud/pepecyb/css/w3.css">
<ul class="w3-ul w3-card-4 w3-pale-green" style="width:100%">
<li><a href="https://klacker.org/articles/pepecyb/hhowama">Hubzilla-Häppchen: Hubzilla-Magie - OpenWebAuth / MagicAuth</a></li>
<li><a href="https://klacker.org/articles/pepecyb/folhsh2">Hubzilla: Hashtags folgen - Variante 2</a></li>
<li><a href="https://klacker.org/articles/pepecyb/irrungenwirrungen">Irrungen und Wirrungen - Hubzilla-Accounts, -Kanäle, -Profile</a></li>
</ul>
Und schon sieht es fetziger aus, oder?

Beispiel 3: Kontakt-Widget
Nun möchte ich noch in der Seitenleiste ein Element haben, welches die Kontaktmöglichkeit mittels Delta Chat anzeigt. Dafür möchte ich den QR-Code meines Delta Chat Accounts verwenden.
Nun könnte man einfach ein Bild, nämlich den QR-Code dort hinpacken. Und das sogar mit bbCode, weil's einfacher ist.

Dann sieht das halt so aus:

Nicht sehr ansprechend... und es frisst Platz, weshalb das Artikelmenü (oder andere Inhalte, falls man noch weitere in die Seitenleiste geschoben hat) nach unten rutscht und man erst scrollen muss, um es zu erreichen.
Besser wäre es, wenn dort ein Button "Kontakt" zu sehen wäre, welche bei Klick den QR-Code einblendet... und den man mit einem weiteren Klick wieder ausblenden kann. Dafür bietet sich das "Accordeon" von W3.CSS an.
Und damit es nicht so langweilig aussieht, peppe ich es noch mit einer Karte als Inhalt und einer kleinen Animation auf. Ach... und der Button wird schwarz und hat ganz leich abgerundete Ecken.
Der Code dafür:
<link rel="stylesheet" href="https://klacker.org/cloud/pepecyb/css/w3.css">
<button onclick="myFunction('contact1')" class="w3-button w3-block w3-black w3-left-align w3-round w3-margin-bottom">Kontakt</button>
<div id="contact1" class="w3-hide w3-container w3-animate-zoom">
<div class="w3-container">
<div class="w3-card-4 w3-center" style="width:100%;max-width:400px">
<h2>Delta Chat</h2>
<img src="https://klacker.org/cloud/pepecyb/Pepes%20pic/delta.png" alt="" style="width:100%">
<div class="w3-container w3-center">
<p>derpepe@morpork.email</p>
</div>
</div>
</div>
</div>
<script>
function myFunction(id) {
var x = document.getElementById(id);
if (x.className.indexOf("w3-show") == -1) {
x.className += " w3-show";
} else {
x.className = x.className.replace(" w3-show", "");
}
}
</script>
Schnell noch in die Seitenleiste geschoben... und schon ist die Delta Chat Karte da!

Beispiel 4: Sinnfreier PHP-Block
Einfach, um zu zeigen, dass man auch was mit PHP machen kann, hier ein Block, der anzeigt, wann die aktuelle Seite aufgerufen wurde. Mir ist einfach nichts Nützliches eingefallen...
Dazu legt man einen Block mit dem Inhaltstyp "PHP" an. Ich nenne ihn hier einfach mal "aufrufzeit".
Der Code ist extrem simpel!
date_default_timezone_set('Europe/Budapest');
echo 'Seite aufgerufen am: ' . date('d.m.Y - H:i:s');
Beachte hier: Es darf kein
<?php
davor und kein ?>
am Ende stehen!Das Ding packe ich in die Profilansicht ganz ans Ende, damit jeder weiß, wann er sich das Profil angeschaut hat:

Soviel dazu...
Damit lasse ich es jetzt einfach bewenden. Ich wollte hier einfach nur zeigen, was über die einfachen Dinge aus dem ersten Teil mit Hubzilla alles möglich ist.
Man ist extrem frei, die Oberfläche für sich selbst, aber auch für Besucher attraktiver und praktischer zu gestalten.
Und man ist nicht auf die Fähigkeiten vorhandener Widgets und Styles vorhandener Themes beschränkt. Mit aktuellen Frameworks kann man sehr viel gestalten, was frisch und modern aussieht.
Und da geht manches, was man vielleicht gar nicht für möglich hält. So habe ich einfach einmal was ausprobiert (in einem Test-Kanal... weil ich es eigentlich nicht nutzen würde)...
Zum einfachen Verfassen von bbCode-Beiträgen nutze ich gerne den SCEditor. Den habe ich mir lokal in eine HTML-Datei abgelegt und als Lesezeichen in die Lesezeichen-Symbolleiste meines Browsers gepackt. Ein Klick und er öffnet sich... und ich kann losschreiben.
Und da dachte ich mir einfach mal: Ob man das auch in eine Hubzilla-Ansicht packen kann?
Und tatsächlich ist es ohne große Anstrengung dort umsetzbar. Sah dann so aus:

Ihr seht also... es ist echt viel möglich. Einfach einmal ausprobieren.
Um Euch in die Frameworks einzuarbeiten oder den Einstieg in PHP zu schaffen, empfehle ich persönlich die Tutorials von w3 schools:
Viel Spaß beim Experimentieren und bei der Gestaltung Eures Hubzilla-Kanals!
Artikel in der Hubzilla KnowledgeDB
Feintuning extrem - Berechtigungen unter Hubzilla
Immer wieder "prahle" ich, wie feingranular denn das Berechtigungssystem von Hubzilla ist und wie genau man festlegen kann, wer was sehen und wer was womit machen kann...
View article
View summary

Immer wieder "prahle" ich, wie feingranular denn das Berechtigungssystem von Hubzilla ist und wie genau man festlegen kann, wer was sehen und wer was womit machen kann.
Nutzt man die Kanalrollen "Persönlich" oder "Öffentlich", so ist auch schon sehr viel möglich. Viel mehr als bei den meisten Fediverse-Diensten. Aber trotzdem bleiben es noch "Berechtigungen mit Hammer und Meißel". Wer aber mit dem spitzen Bleistift feine Berechtigungsmuster zeichnen möchte, der muss etwas tiefer in das Berechtigungssystem von Hubzilla eintauchen und – das ergibt sich aus dem Wunsch – ein wenig mehr Aufwand betreiben.
Ausgangspunkt für einen solchen Kanal ist die Kanalrolle. Und hier müssen wir nun "Benutzerdefiniert" auswählen, weil die vorgegebenen Rollen zu viele Rechte einräumen.
Die benutzerdefinierte Kanalrolle entspricht nach Kanalerstellung der Rolle "Persönlich". Wir können aber, im Gegensatz zu den vorkonfigurierten Rollen, jegliche Berechtigung selbst festlegen. Dies geschieht über Einstellungen ➔ Privacy-Einstellungen ➔ Benutzerdefinierte Konfiguration der Channel Role.

Wählt man diesen Punkt, wird man zunächst gewarnt, dass man sich damit seinen Kanal durchaus "kaputt konfigurieren" kann. Na ja... dauerhaft kaputt macht man ihn sich damit auch nicht, weil man ja alles "zurückdrehen" kann. Es kann nur passieren, dass gewisse Dinge womöglich nicht mehr funktionieren, sofern man bei bestimmten Berechtigungen die falsche Einstellung wählt.

"Feintunig extrem" heißt dieser Beitrag... und "extrem" ist hier ziemlich wörtlich gemeint.
Grundsätzlich möchte man ja trotzdem, wenn man ein Soziales Netzwerk nutzt, mit anderen Nutzern in Interaktion treten. Das sollte man im Hinterkopf behalten, insbesondere bevor man bei einer Berechtigung die Auswahl "Nur ich" anwendet.
Für mein Beispiel setze ich jede(!) Berechtigung auf "Nur die, denen Du es explizit erlaubst". Damit ist der erste Schritt getan. Ab sofort muss ich alles, was ich anderen zugestehen möchte, explizit für jeden auch erlauben.
Nun kommen die Kontaktrollen ins Spiel. Es gibt immer die Rolle "Standard", welche allen Verbindungen das erlaubt, was auch mit der Kanalrolle "Persönlich" erlaubt ist. Und jede neue Verbindung erhält zunächst die Kontaktrolle "Standard". Damit wäre also erstmal kaum etwas gewonnen. An dieser Stelle ist es also erforderlich (bei einem neuen Kanal am besten, bevor man die erste Verbindung überhaupt eingeht), weitere Kontaktrollen zu erstellen. Das geschieht mit der App "Contact Roles" (findet Ihr die nicht im App-Menü, müsst ihr in der App-Verwaltung das "Sternchen" erst noch aktivieren).
Dort sieht man in einer Liste die bisher einzige vorhandene Kontaktrolle "Standard" und ein leeres Formular zur Erstellung einer neuen Rolle. Die ist nun im vorliegenden Fall im Bereich der Berechtigungen ohne auch nur ein einziges abgehaktes Kästchen und es gibt auch keine positiven Berechtigungen, die von der Kanalrolle geerbt wurden. Und genau diese Rolle nehmen wir jetzt auch mit sämtlich leeren Kästchen als eine neue Kontaktrolle. Das ist die Rolle, die auch Verbindungen nichts erlaubt. So mal rein gar nichts.

Sie muss einen Namen bekommen. Ich habe meine "nüscht" genannt. Wichtig (nicht zwingend, dazu später mehr) für unser Vorhaben ist die Option "Neuen Kontakten automatisch diese Rolle zuweisen". Die sollte aktiviert werden. Das sorgt dafür, dass jede neu eingegangene Verbindung grundsätzlich erst einmal diese Rolle bekommt... und letztlich "nüscht" darf. Die Verbindung bekommt nicht einmal von uns geteilte Inhalte auch nur zu sehen. Und wir selbst sehen von dieser Verbindung damit auch erstmal genau "nüscht".
Das ist nun aber eher sinnfrei. Die Rolle und die Festlegung, jedem Kontakt dieser Rolle zuzuweisen, sofern man keine andere auswählt, dient nur der Sicherheit, dass neue Verbindungen unbeabsichtigt Berechtigungen bekommen, die wir ihnen eigentlich nicht zugestehen wollen.
So, und nun können wir ans Feintuning gehen. Wir legen uns weitere Kontaktrollen an, die ganz genau auf unsere Bedürfnisse abgestimmt sind.
Die vorhandene (und nicht bearbeitbare) Standard-Rolle können wir natürlich auch für Verbindungen nutzen. Nämlich für genau diejenigen, mit denen wir wie in einem Sozialen Netzwerk ganz normal interagieren möchten.
Nun mag es vielleicht sein, dass wir das typische Social-Network-Verhalten nur für eine bestimmte Zahl unserer Verbindungen haben wollen, die meisten aber sollen die Funktionen nur etwas eingeschränkt nutzen können. Angenommen, die normalen Kontakte sollen unsere Postings sehen können, wir selbst wollen deren Postings auch sehen, sie sollen auch unsere Dateien und Bilder sehen können, ebenso unsere Webseiten und Wikiseiten. Überdies sollen sie liken und disliken können und unsere Beiträge kommentieren... ach und Direktnachrichten sollen sie uns auch schicken können. Die Rolle, ich nenne sie einfach mal "normal" würde dann so aussehen:

Nun mag es sein, dass wir Kontaktanfragen bekommen, wir dem Antragsteller auch durchaus erlauben wollen, unsere Beiträge zu verfolgen, wir selbst wollen aber seine Beiträge nicht sehen und er soll auch keine Reaktionen oder Kommentare machen können... er wäre also das, was bei anderen Diensten der "Follower" ist, dem wir selbst aber nicht folgen, dann können wir eine weitere Rolle anlegen (und z.B. "Follower" nennen). Die sähe dann so aus:

Wir erlauben dem "Follower" also, alles zu sehen, aber selbst nicht in unserem Stream in Erscheinung zu treten.
Und nach diesem Schema können wir uns beliebig viele Kontaktrollen für jede denkbare Verbindung erstellen und dann bestimmten Verbindungen zuweisen.
Das Zuweisen erfolgt entweder, wenn wir selbst eine Verbindung eingehen im dann erscheinenden Verbindungs-Editor. Hier können wir im Auswahlmenü "Wählen Sie eine Rolle für diesen Kontakt" die gewünschte Kontaktrolle auswählen.

Bereits bestehenden Verbindungen können wir auch andere Kontaktrollen zuordenen, indem wir den Verbindungs-Editor in der App "Verbindungen" nutzen.

Bekommen wir eine Verbindungs-Anfrage, landen wir auch wieder im Verbindungs-Editor und legen dort auch gleich die Rolle fest.

Bei einer übersichtlichen Zahl von Verbindungen funktioniert das. Werden es wesentlich mehr Verbindungen, dann kann man sich auch mit der Privacy Gruppen das Leben etwas einfacher machen (auch wenn man die Berechtigungen später einmal umfassend für seine Verbindungen umstrukturieren möchte).
Die App "Privacy Gruppen"muss, sofern noch nicht geschehen, erst einmal installiert werden (obwohl ihre Grundfunktionalität ohnehin schon vorhanden ist... man kann halt ohne die App nicht dran rumschrauben).
Legt man sich für verschiedene Berechtigungs-Rollen nun verschiedene Privacy Gruppen an und schiebt seine Kontakte in diese Gruppen, so kann man in der App "Contact Roles" bei jeder Rolle festlegen, dass diese allen Mitgliedern einer bestimmten Privacy Gruppe zugewiesen werden.
Achtung, Fußangel: Ordnet Ihr einzelne Verbindungen gleichzeitig mehreren Privacy Gruppen zu, so gilt für diese Verbindungen natürlich die Kontaktrolle, die Ihr zuletzt einer Gruppe zugewiesen habt.
Ist also Kontakt A gleichzeitig in den Gruppen B und C und Ihr weist die Kontaktrolle D allen Mitgliedern der Gruppe B zu und danach allen Mitgliedern der Gruppe C die Rolle E, dann verfügt Kontakt A über die Berechtigungen der Rolle D, weil ihm zuletzt als Gruppenmitglied der Gruppe C die Rolle E zugewiesen hat.
Aaaargh... wenn Ihr jetzt einen Knoten im Gehirn habt, Beschwerden bitte nach /dev/null verschieben. 😉😂 War jetzt suboptimal, das Beispiel...
Also kurz: Die zuletzt einer Privacy Gruppe zugewiesene Kontaktrolle gilt dann für alle Gruppenmitglieder, die sich zu dem Zeitpunkt in dieser Gruppe befunden haben. Andere Kontaktrollen, die sie vorher hatten, werden überschrieben.
Soviel zum Berechtigungs-Feintuning. Mit Hubzilla ist echt sehr viel möglich. Und das, was ich hier beschrieben habe, ist tatsächlich, wenn man es auf die Spitze treibt, etwas für Berechtigungsverteilungsfanatiker (nicht nur die Ungarn können lange Wörter). Man muss die richtige Balance finden.
Das Beispiel, das ich mit den paar Rollen hier beschrieben habe, ist aber durchaus alltagstauglich und kann helfen, den Stream hygienisch zu halten.
Die Rolle "nüscht" könnt Ihr Euch auch klemmen, wenn Ihr wollt (vor allem die automatische Zuweisung für neue Kontakte). Ihr müsst dann halt nur darauf achten, beim Eingehen einer Verbindung auch wirklich die korrekte Kontaktrolle zuzuweisen. Ist quasi nur ein zusätzliches Sicherungsseil. Dann wäre es aber sinnvoll, neuen Kontakten als Standard die Rolle "Normal" zuzuweisen.
Titelbild von Kevin Wuhrmann auf Pixabay
Wieder einmal Zuwachs: Bájoska
Nachdem wir ja im ersten Halbjahr einige unserer Schützlinge endgültig gehen lassen mussten, war wieder Kapazität in unserem Hunde-Altersruhesitz...
View article
View summary
Nachdem wir ja im ersten Halbjahr einige unserer Schützlinge endgültig gehen lassen mussten, war wieder Kapazität in unserem Hunde-Altersruhesitz.
Und so hat Bájoska, eine nette ältere Dame (ca. 9 Jahre), Neufundländer-Mix wie auch unser Magic, bei uns ihr endgültiges Zuhause gefunden. Sie war wieder einmal der klassische Fall eines Hundes, der das Tierheim ansonsten nie mehr verlassen hätte: etwas größer, schwarz, "alt"... und überdies mit Herzwurmvorgeschichte (ist schon therapiert). Sowas will keiner haben.
Jedenfalls sprach meine Frau vor ein paar Tagen mit der Leiterin des örtlichen Tierheims hier und berichtete vom Stand unseres Hundealtersruhesitzes. Den Saša, den wir vor Jahren über sie aufgenommen hatten, mussten wir ja vor einiger Zeit erlösen. Na jedenfalls erwähnte meine Frau, dass wir nun wieder einmal Platz für Unvermittelbare hätten.
Und... natürlich gab es da die unvermittelbare Bájoska. Die sei voll lieb (auf den Fotos ständig am Lächeln... das sprach dafür), aber niemand würde sie haben wollen. Verträglich mit Hund und Katz und Spatz. Wir sollten sie uns doch mal am Sonntag anschauen kommen.
Gestern waren wir also da... und was soll ich sagen... so einen aufgeschlossenen, lieben Hund hab ich selten erlebt. Sie kam sofort auf uns zu, als würden wir uns schon ewig kennen und nun endlich nach längerer Zeit wiedersehen. Wir haben ja schon sehr lange Erfahrung mit Hunden aus dem Tierschutz, und wissen wie lange es dauern kann, bis so ein Engel Vertrauen gefasst hat und "angekommen" ist. So z.B. der Magic, dem sie ja so ähnlich sieht. Grundvertrauen hatte er schon nach ein paar Monaten, aber erst seit ein paar Wochen, also nach über einem Jahr bei uns, ist er so richtig endgültig angekommen... Kuscheln einfordern und sowas halt.
Na jedenfalls hat sie uns 😉😂 sofort adoptiert und wir haben sie auch sofort mitgenommen (das Tierheim ist eh völlig überfüllt).
Hier angekommen wollte ich sie dann mit der üblichen Strategie ans Rudel (acht gerettete Hunde) heranführen... also: Rudel im Haus, Neuzugang in den Garten und dann einen nach dem anderen, vom aufgeschlossensten bin zum skeptischsten Schützling in den Garten lassen. Magic war der erste, der durfte. Und dann hat unser Toni von innen selbst die Tür geöffnet und der Rest war ungeplant auf einen Schlag draußen.
Null Probleme! Geschaut, beschnuppert, akzeptiert!
Ob sie wohl mit ins Haus kommt? Klar kommt sie. Nun muss sie nur noch die Hundeklappe (ne große, wo sie alle durchpassen) lernen, das kennt sie noch nicht. Ich schätze, das geht auch in ein paar Tagen.
Auf jeden Fall verhält sie sich hier, als wäre sie schon immer bei uns gewesen. Ich habe noch nie einen Hund erlebt, der (sie kennt uns ja noch nicht einmal 24 Stunden) so in uns hineinkriecht, wie Bájoska. Ines hat sich gestern dann mit ihr auf den Boden gesetzt und wollte probieren, ob sie sich kämmen lässt (war dringend notwendig). Na klar... nach ein paar Stunden lag neben ihr ein "zweiter Hundefell-Hund". Und Bájoska hatte sich während des Bürstens auf ihre Schenkel gelegt. Unglaublich!
Die erste Nacht war völlig ohne Vorkommnisse. Vermutlich wird wohl der Rudi neben ihr gelegen haben... der war nämlich sofort "schockverliebt".
Und so hat sie ein neues Zuhause und darf bei uns bleiben... logisch...
Instanz blockiert - Kontakte weg
Heute Morgen habe ich den Artikel Fediverse: Wenn Admins Communities zerstören im Blog C0D1 gelesen. Und ich kann den Ärger durchaus nachvollziehen...
View article
View summary
Heute Morgen habe ich den Artikel Fediverse: Wenn Admins Communities zerstören im Blog C0D1 gelesen.
Und ich kann den Ärger durchaus nachvollziehen. Ich persönlich halte grundsätzlich vom Blocken kompletter Instanzen nicht sehr viel, bin auf der anderen Seite aber auch froh, dass es einen solchen Mechanismus gibt. Der ist nämlich durchaus sinnvoll, um wirklich echten Dreck von der eigenen Instanz fernzuhalten.
Fediverse-Server krimineller Vereinigungen, Instanzen die vom Ansatz her ausschließlich auf Spam-Verteilung ausgerichtet sind, welche Inhalte anderer Instanzen abgrasen, um sie selbst anzubieten oder die schon vom Namen her ganz klar zeigen, wofür sie stehen (ein altes, aber prominentes Beispiel ist
hub.natehiggers.org
), die blockiere auch ich instanzweit auf meinen Hubs.Damit sperre ich aber nicht wirklich "normale" Nutzer dieser Instanzen aus, weil diese speziellen Instanzen gar keine "Normalen" Nutzer haben.
Nun ist es leider so, dass auch normale Fediverse-Instanzen (oft nur temporär bis der jeweilige Admin dem einen Riegel vorschiebt) von Nutzern missbraucht werden, um z.B. massenweise Spam zu verteilen. Die überwiegende Mehrheit der Nutzer gehört aber zu den "anständigen Fediversisten". Und die würde ich mit einem Instanz-Block einerseits von allen Kontakten, welche sie zu Nutzern meiner Hubs haben, als auch die Nutzer meiner Hubs von allen Kontakten, die einen Account auf der blockierten Instanz haben, komplett abschneiden. So, wie es Norbert halt auch widerfahren ist. Und deshalb blockiere ich solche Instanzen grundsätzlich erst einmal nicht. Grundsätzlich bedeutet aber, dass es Ausnahmen gibt. Wenn es eine Spam-Schwemme gibt, die von einer bestimmten Instanz ausgeht und diese von sehr vielen Spam-Accounts missbraucht wird, dann hat das Auswirkungen auf meine Nutzer (und ggf. sogar auf die Kontakte meiner Nutzer). Nun können Admins betroffener Instanzen oftmals nicht in kürzester Zeit etwas dagegen unternehmen. Deshalb besteht durchaus die Möglichkeit, dass ich solche Instanzen temporär, also für die Zeit, während welcher das Problem besteht, blockiere. Der Block wird dann wieder entfernt, sobald die Probleme beseitigt sind. Das ist aber nur die ultima Ratio. Solange es sich trotzdem um eine überschaubare Anzahl von missbräuchlich genutzten Accounts handelt und ich deren Handle dann auch kenne, landen nur die Accounts (Kanäle, wie es bei Hubzilla heißt) auf der instanzweiten Blockliste. Der Rest der Ausgangs-Instanz bleibt davon unberührt.
So... das ist mein Umgang in Bezug auf das Blockieren. Ach ja... von Blocklisten halte ich mal so gar nichts. Ungeprüft irgendwem blind zu vertrauen, dass er die Weisheit gepachtet hat, alleine alle blockierungswürdigen Instanzen zu kennen, kommt für mich nicht infrage. Bevor ich eine Instanz blockiere, schaue ich sie mir selbst genau an und entscheide dann für mich und meine eigenen Instanzen.
Aber das löst natürlich nicht die Probleme, die Norbert beschrieben hat. Denn es muss ja keiner so handhaben, wie ich. Und es kann letztlich jeder Instanzbetreiber (Admin) für seine eigene Instanz entscheiden, andere Instanzen einfach zu blockieren. Aus welchen Gründen auch immer. Und dann bliebe, wenn sich nichts daran ändern lässt, das, was er in seinem Artikel beschreibt:
Ich habe einen Account auf einer anderen Instanz und damit kann ich die mir wichtigen Menschen kontaktieren und darauf aufmerksam machen.
Aber weder kann ich von anderen erwarten, dass sie ihre Instanz wechseln, noch werde ich wechseln. Zumal diese Funktion ja auch nicht ganz so reibungslos funktioniert und Teile der Kontakte im Nirwana hängen bleiben.
Ja, das ist halt das Problem. Ein Zweit-Account hilft nicht viel. Man müsste den ja schon recht früh erstellen, dann auch dort alle Verbindungen eingehen, die man auf seinem Haupt-Account hat, hoffen, dass die "Follower" einem dann auch dort folgen, selbst wenn man dort nichts schreibt und letztlich dann, im konkreten Fall auf den Zweit-Account umsteigen. Nicht praktikabel! Umständlich! Aufwendig!
Das sind Probleme, die ich sehe, die mich aber selbst nicht betreffen. Denn ich nutze ein Fediverse-System, welches in dieser Hinsicht wesentlich "zensurresistenter" ist, als die Mehrheit der Fediverse-Dienste: Hubzilla.
Durch die nomadische Identität wäre es kein Problem, wenn eine fremde Instanz, bei welcher ich Kontakte habe, meinen Hub komplett blockiert. Ich habe ja Klone von meinem Kanal auf anderen Hubs (eigenen und fremden). Und für diese Klone brauche ich mich um fast nichts zu kümmern. Die Verbindungen, die ich mit dem Haupt-Kanal eingehe, die bestehen auch bei den Klonen. Was ich poste, wird ebenfalls bei den Klonen – ohne dass ich einen Finger krumm machen muss – synchronisiert. Es geht also nichts verloren. Da meine Identität (also mein Kanal) unabhängig von einem bestimmten Server ist, kann ich also jederzeit mit einem dieser Klone als genau der, den man im Fediverse kennt (also meine Identität), mit einem anderen Hub weitermachen. Wäre ich von einem umfassenden (also viele meiner Verbindungen betreffenden) Block betroffen, würde ich dann überlegen, ob ich nicht den Klon auf einem nicht blockierten Hub zu meinem primären Kanal (quasi Haupt-Kanal) machen sollte.
Ein kleines Manko sollte man dabei aber nicht verschweigen. Viele Dienste, die nur ActivityPub verwenden, kommen mit der nomadischen Identität nicht richtig klar. Ist man auf seinem Klon-Kanal, erkennt man diese daran, dass im Verbindungsverzeichnis neben dem Kontakt "An diesem Ort nicht verbunden" steht. Aber es gibt dort dann auch einen (meist grünen) Button "+Verbinden", welcher mit einem Klick die Verbindung auch beim Klon-Kanal erstellt.
So, das hilft jetzt dem Protagonisten aus dem eingangs erwähnten Artikel jetzt aktuell auch nicht weiter. Aber ich denke, die Möglichkeiten sind ein gutes Argument, Hubzilla als Zugangssoftware für das Fediverse zu nutzen. Wenn man denn ein- oder umsteigen möchte. Und das Onboarding ist jetzt auch keine schwarze Magie mehr. Abgesehen von sehr wenigen Einstellungen, ist ein frisch erstellter Hubzilla-Kanal sofort und ohne extreme Umstellung sofort für das Agieren im Fediverse geeignet. Die ganzen "Spezialitäten" von Hubzilla, welche für den Ruf sorgen, es sei ein unglaublich kompliziertes System, muss man ja gar nicht nutzen. Einiges ist etwas anders, das begreift man aber sehr schnell. So wie man z.B. auch ganz schnell die Spezialitäten eines Mastodon-Klienten begreift, wenn man von App "A" auf App "B" umsteigt.
Für Nutzer wie Norbert, der 2.300 Follower hat und der selbst 240 Kanäle, denen er folgt, gibt es leider keine einfache Lösung, um einfach mal so umzusteigen. Wer solche umfangreichen Kanäle hat, muss selbst entscheiden, ob er sich die Mühe macht, in die Freiheit umzusteigen, oder ob er sich weiterhin der Gefahr aussetzen möchte, durch pauschale Instanz-Blocks einen (womöglich nicht gerade kleinen) Teil seiner Kontakte komplett zu verlieren.
Z.B. bei Mastodon, kann man die Handles der Kanäle, welchen man folgt, als CSV-Datei exportieren. Leider gibt es keine Import-Funktion für solche Dateien in Hubzilla. Das liegt nicht zuletzt daran, dass Kontakte bei Hubzilla anders funktionieren. Grundsätzlich ist eine Verbindung bei Hubzilla genau das, was das Wort selbst sagt: eine Verbindung. Es geht also um einen wechselseitigen Kontakt. Es ist zwar möglich, dass fremde Nutzer dem eigenen Kanal nur folgen, man ihnen selbst aber nicht. Das ist jedoch die Ausnahme und kann von Hubzilla aus auch verhindert werden.
Dementsprechend muss man sich einmal die Arbeit machen und die exportierten "gefolgten Kanäle" z.B. aus der Exportdatei per Copy & Paste dem Hubzilla-Kanal hinzufügen.
Fremde Kanäle, die einem folgen, denen man selbst jedoch nicht folgt ("Follower") lassen sich nicht exportieren. Hier muss man also direkt z.B. bei der Mastodon-Instanz die Liste der Follower direkt aufrufen und sie ggf. als Verbindungen bei Hubzilla zufügen. Allerdings macht dieses Vorgehen einen selbst dann auch zum "Follower", was womöglich nicht gewünscht ist. Einfache wäre es, das Posten bei der fremden Instanz zu beenden und eine (am besten angepinnte) Nachricht zu veröffentlichen, dass man nun eine andere Instanz verwendet und dort auch gleich das Handle des Hubzilla-Kanals angeben. Dadurch gehen sicher einige Follower verloren, aber mit diesem Schwund muss man wohl leben. Karteileichen falen so raus... und solche Follower, die womöglich gar kein echtes Interesse an den Inhalten haben ebenfalls, denn wer die "Mühe" scheut einen neuen Kontakt einzugehen, der hat vermutlich gar kein so großes Interesse an dem Kanal und den Inhalten.
Wer mehr Sicherheit und Schutz davor haben möchte, Opfer von Instanzblocking zu werden, sollte in Erwägung ziehen, Hubzilla als Fediverse-Zugang zu nutzen. Selbst wenn man schon eine Reihe Kontakte hat, lässt sich solch ein Umstieg gut verwirklichen. Ja... und wer noch unabhängiger werden möchte: Die Installation eines eigenen Hubs ist wesentlich einfacher, als das Aufsetzen einer Instanz der meisten anderen Fediverse-Dienste.
NIP-05 Adresse - Ein Handle für die eigene Identität
Wie bereits erwähnt, ist der "Benutzername" in Nostr der öffentliche Schlüssel "npub". Das ist jetzt nicht besonders benutzerfreundlich und auch nicht zu merken. Schöner wäre es, wenn man ein Handle wie bei den typischen Sozialen Netzwerken und dem Fediverse haben könnte...
View article
View summary

Wie bereits erwähnt, ist der "Benutzername" in Nostr der öffentliche Schlüssel "npub". Für meine Idetität "PepeCyB" lautet dieser
npub1h8ypsr7lw8l5r9pr9tm44xfkdm32welavahzmeez2t0flp5cs8qq04wc3j
.Das ist jetzt nicht besonders benutzerfreundlich und auch nicht zu merken. Schöner wäre es, wenn man ein Handle wie bei den typischen Sozialen Netzwerken und dem Fediverse haben könnte.
So nach dem Schema
benutzername@irgendwashintendran.tld
.Und das ist mit Nostr ebenfalls möglich.
Es gibt für Nostr die sogenannten NIPs. Die Abkürzung NIP steht für Nostr Implementation Possibilities, welche beschreiben, auf welche Art und Weise bestimmte Funktionalitäten für Nostr von den Clients umgesetzt werden müssen.
Und da gibt es die NIP-05 mit der Bezeichnung Mapping Nostr keys to DNS-based internet identifiers (Zuordnung von Nostr-Schlüsseln zu DNS-basierten Internet-Identifikatoren).
Und genau dieses Dokument beschreibt, wie eine solche Zuordnung umzusetzen ist. Allerdings ist das Dokument nun wirklich nicht für den normalen Endbenutzer oder gar den Einsteiger geeignet. Deshalb hier jetzt eine Anleitung, wie man an ein "Nostr-Handle" gelangen kann. Ist gar nicht so kompliziert.
NIP-05 dient dazu, den Nostr-Schlüssel einer e-mail-ähnlichen Adresse zuzuordnen. Tatsächlich funktioniert es sehr ähnlich wie eine Webfinger-Adresse im Fediverse: Ein Client überprüft den Teil /.well-known/ eines Domainnamens auf ein nostr.json-Dokument. Also z.B.
GET https://tnevlos.xyz/.well-known/nostr.json?name=PepeCyB
Der Client erhält eine JSON-Antwort, in der der Name mit einer hexadezimal formatierten Version des dazugehörigen öffentlichen Schlüssels verbunden wird:
{
"names": {
"PepeCyB": "b9c8180fdf71ff4194232af75a99366ee2a767fd676e2de72252de9f869881c0"
}
}
Die Nostr-Identität verweist also auf den NIP-05-Wert auf dem Server, der mit dem Namen übereinstimmt, welcher seinerseits auf die Nostr-Identität (öffentlicher Schlüssel) verweist.
Nun gibt es verschiedene Möglichkeiten, ein solches Handle zu erhalten. Es gibt Drittanbieter-Dienste, die Identitäten anbieten, oder man verfügt selbst über einen Server mit einem Domainnamen, auf welchem man die benötigte Datei ablegt.
Verschiedene Clients bieten solche Dienste an, wobei die Nutzung in der Regel kostenpflichtig ist. Ein einfacher Weg ist es, eine Adresse mit dem Dienst Alby zu erzeugen. Das erledigt man dort via Dashboard ➔ Settings ➔ Nostr Address. Hier muss man nur seinen öffentlichen Schlüssel angeben und es wird ein Handle erzeugt. Ist aber nicht jedermanns Sache (meine auch nicht), weil Alby ein Bitcoin-Dienst ist.
Verfügt man z.B. über eine Wordpress-Installation, so gibt es z.B. das Plugin Nostr Verify. Das muss man unter Wordpress installieren und dann kann man dort einen Namen (der Teil vor dem "@") und den eigenen öffentlichen Schlüssel (im Hex-Format – hiermit kann man den npub ins Hex-Format konvertieren: damus Key Converter) ein. Nun verfügt man über eine NIP-05-Adresse, wobei der Teil hinter dem "@" dem Domainnamen der WordPress-Installation entspricht.
Ein wenig technischer, aber die höchste Form der Unabhängigkeit ist es, die NIP-05-Adresse manuell einzurichten. Voraussetzung ist ein eigener oder gemieteter Server (oder auch Webspace), sowie eine eigene Domain.
Im Wurzelverzeichnis der Domain muss ein Unterverzeichnis
.well-known
vorhanden sein. Ggf. muss man es selbst anlegen. Wichtig ist, dass es öffentlich lesbar ist. In dieses Verzeichnis lädt man dann eine Datei mit dem Namen nostr.json
hoch, welche folgenden Inhalt hat:{
"names": {
"<BENUTZERNAME>": "HEX-SCHLÜSSEL"
}
}
Auch hier benötigt man wieder die Hex-Version des öffentlichen Schlüssels.
Man kann auch mehrere Benutzernamen mit der Datei anlegen, um für mehrere Identitäten ein Handle festzulegen.
Wichtig ist nur, dass die Datei öffentlich erreichbar ist. Also nach dem Schema
<URL_DES_EIGENEN_SERVERS>/.well-known/nostr.json
. Ruft man diese Adresse im Browser auf, so muss die JSON-Datei angezeigt werden.Nun muss diese Verknüpfung nur noch bekannt gemacht werden.
Das kann man mit seiner bevorzugten Nostr-App erledigen (die meisten bieten das an). Mit Iris z.B. gibt man einfach unter Settings ➔ Profile im Feld "User @ domain name verification (NIP-05)" das komplette Handle ein und klickt anschließend auf "Save".

Eine weitere Möglichkeit ist die Nutzung von nostr.app, wo man die NIP-05-Adresse im entsprechenden Feld einträgt und anschließend ganz unten auf den Button "SaveProfile" klickt.

Nun verfügt man über ein Nostr-Handle, unter welchem man von anderen Nutzern leichter gefunden werden kann und welches sich auch einfacher weitergeben lässt.
So viele Apps
Schaut man auf die Webseite nostr apps, werden derzeit (Stand: 03.09.2025) 71 Apps angezeigt...
View article
View summary

Schaut man auf die Webseite nostr apps, werden derzeit (Stand: 03.09.2025) 71 Apps angezeigt. Das kann einen schon erschlagen. Wieso gibt es eigentlich so viele verschiedene Apps? Nun, das liegt einerseits daran, dass man mit Nostr wesentlich mehr veranstalten kann, als nur Microblogging à la X, und andererseits daran, dass die Apps der eigentliche Motor von Nostr sind (die Relays sind eher der Treibstofftank). Während bei den üblichen Sozialen Netzwerken der Server (auf dem man sich registrieren muss) die Funktionalität und die Benutzeroberfläche anbietet, welche dann von Webbrowsern oder dummen Clients auf dem Endgerät dargestellt wird, ist es bei Nostr genau umgekehrt. Die eigentlichen FUnktionen und die Benutzeroberfläche werden von den Apps zur Verfügung gestellt, während der Server (Relay) lediglich die Daten verwaltet.
Und das sind die Gründe, weshalb es nicht die eine Nostr-App gibt, sondern sehr viele verschiedene. Jeder App-Entwickler hat eigene Vorstellungen, wie sein App funktionieren und wie sie sich dem Anwender darstellen soll. Und es gibt Allrounder-Apps, die viele verschiedene Funktionen von Nostr anbieten, aber auch sehr spezialisierte Apps, die vielleicht nur eine oder zwei Funktionalitäten zur Verfügung stellen.
So kann man mit Nostr auch (verschlüsselte) private Nachrichten versenden. Und so gibt es Apps, die genau nur das bieten. Oder Chat-Apps (auch Gruppenchat), Foto- oder Streaming-Apps, Blogging-Apps und viele mehr.
Nostr - Der einfache Einstieg
Nostr zu nutzen ist unglaublich einfach. Es gibt keine wirklichen Hürden, um loszulegen...
View article
View summary

Nostr zu nutzen ist unglaublich einfach. Es gibt keine wirklichen Hürden, um loszulegen.
Zunächst benötigt man, wie erwähnt, eine Nostr-Identität. Die kann man mit den meisten Apps direkt erstellen, man kann sie sogar unabhängig von solchen Apps auf dem eigenen Rechner erstellen (z.B. ganz grundlegend mit dem Tool "nak" – das steht für "nostr army knife" im Terminal ).
Ein gangbarer und für Einsteiger nachvollziehbarer und sinnvoller Weg ist es, die Identität über die Projekt-Webseite zu erzeugen. So wie man z.B. die Seite von "X" aufruft, um sich einen Account anzulegen, ruft man also die Projektwebseite von Nostr auf:

Gleich auf den ersten Blick sieht man dort einen Button "Join Nostr".

Klickt man auf diesen, eght es auch schon los. Es dauert einen kleinen Augenblick, und schon wurde ein Schlüsselpaar erzeugt.

Ganz wichtig ist es, die Schlüssel zu speichern. Besonderes Augenmerk ist auf den geheimen Schlüssel nsec zu legen. Es ist quasi das "Passwort" für die Identität. Wichtig: Er kann nicht wiederhergestellt oder später geändert werden. Wer ihn besitzt, verfügt vollständig über die Identität. Verliert man ihn, ist die Identität ebenfalls verloren. Man hat dann keinen Zugriff mehr darauf und es gibt auch keine Möglichkeit, wieder Zugriff darauf zu erlangen. Dien Inhalte bleiben unter dem npub zwar verfügbare, aber ansonsten ist die Identität nicht mehr nutzbar.
Klickt man nun auf "Next Steps", landet man bei einem weiteren Dialog, welcher den eigenen npub anzeigt. Hier kann man, wenn man möchte, ein Profilfoto hochladen und einen Profilnamen eingeben.

Und damit ist es auch schon erledigt.
Um loslegen zu können, muss man nun eine App benutzen. Das Formular schlägt bereits einige vor. Um aus allen bekannten Apps auswählen zu können, ruft man einfach die Seite Nostr-Apps auf.

Für den Einstieg empfehle ich ausdrücklich die App "Iris".

Sie ist recht intuitiv nutzbar und bietet für den Einstieg alles, was man vorerst benötigt.
Um sich nun mit der frisch erstellten Identität zu authentifizieren, kann man im Dialog für das Einloggen den geheimen Schlüssel npub eingeben.
Empfehlenswert ist es – zumindest auf dem Desktop – eine Schlüsselverwaltung zu nutzen. Für Firefox verwende ich persönlich das Addon Nostr Connect. Ruft man die Erweiterung erstmalig auf, kann man seinen nsec eingeben.
Wenn nun eine Nostr-App einen Dialog zum Einloggen anzeigt, kann man in der Regel auswählen, dass man sich mit einer Browser-Erweiterung authentifizieren möchte. Mit dieser Auswahl übernimmt das Addon die Authentifizierung.


So, und jetzt ist man wirklich "drin". Mehr braucht es nicht.
Bei der App "Iris" sollte man nun die Einstellungen "Settings" aufrufen.

Hier kann und muss man einige Dinge einstellen. Ich bin z.B. kein Fan einer dunklen Oberfläche. Unter "Appearance" kann man das Theme auswählen...

Bei Iris sind schon sinnvolle und in der Regel funktionierende Relays vorausgewählt. Bei den Einstllungen kann man aber weitere hinzufügen.

Entweder, man öffnet die "Discovered Relays Liste" (Liste der entdeckten Relays) und fügt von dort welche zu, oder man fügt mittels Klick auf "+ Add relay" ein Relay manuell hinzu. Es gibt Relays-Listen, auf welchen man Relays-Adressen finden kann.
Eine gute Anlaufstelle ist #Nostr relays.

Möchte man die Möglichkeit haben, sich mit Kanälen des Fediverse zu verbinden, sollte das Relay
wss://relay.mostr.pub
hinzugefügt werden.
m einfach loslegen zu können, muss man an den Relays aber nichts ändern. Die Vorauswahl genügt fürs erste.
Damit Nostr Spaß macht, braucht man, wie in allen nicht-algorythmischen Netzwerken Verbindungen, also Nutzer, denen man folgt (und die einem dann womöglich auch irgendwann folgen).
Ist der öffentliche Schlüssel eines Nutzers bekannt, so kann man diesen npub-Schlüssel in das Suchfeld eingeben (besser hineinkopieren... sind doch schon ein wenig lang). Verfügt der Nutzer über eine sogenannte NIP05-Adresse, kann man auch diese dort eingeben. Diese sieht wie eine E-Mail-Adresse aus. Meine lautet z.B.
PepeCyB@tnevlos.xyz
.Wie man für sich selbst eine solche Adresse erstellen oder eine solche bekommen kann, erläutere ich in einem weiteren Artikel.
Man kann auch auf gut Glück mal einen Namen in das Suchfeld eingeben. Auch so kann man Nutzer finden.

Hat man nun einen Nutzer gefunden, dem man folgen möchte, so klickt man einfach auf den Button "Follow".

Es ist auch möglich, sich mit Nutzern zu verbinden, deren Postings in der Timeline auftauchen. Dafür führt man den Mauszeiger auf das Avatarbild. Es öffnet sich ein kleines Popup, wo man wieder den Button "Follow" findet.
Folgt man bei Iris mindestens einem Nutzer, so erscheint über der Timeline ein Filterbereich:

Über diese Filter kann man einstellen, welche Postings man zu sehen bekommt.
Um bei Nostr ein "Lebenszeichen" von sich zu geben, sollte man nun vielleicht ein "Einführungs-Posting" veröffentlichen. Dabei ist es sinnvoll, als Hashtag
#introductions
unter das Posting zu setzen. Verwendet man Iris, dann klickt man auf das Feld "What's on your mind?", um den Editor zu öffnen.So, das war es dann erst einmal mit dem Einstieg. Willkommen bei Nostr!
Auf den zweiten Blick
Schon 2023 hatte ich einmal einen Blick auf Nostr geworfen. Und das nicht ohne eine gewisse Portion Skepsis...
View article
View summary

Erster Blick
Schon 2023 hatte ich einmal einen Blick auf Nostr geworfen. Und das nicht ohne eine gewisse Portion Skepsis. Nostr, so hatte ich aufgeschnappt, war ja "Irgendwas mit Bitcoin". Und von dem ganzen Cryptowährungs-Kram halte ich mich komplett fern.
Trotzdem habe ich mir eine Identität (Beachte: eine Identität... nicht einen Account) erstellt. Genutzt hatte ich dfür den Web-Clienten Coracle, welche die Identitätserstellung mittels "nstart" erledigt.
Das war keine große Sache. Einen Namen für meine Identität musste ich mir ausdenken (logisch... wieder einmal "PepeCyB"), ich konnte ein Avatarbild festlegen und auch was zu mir selbst schreiben. Eine Mail-Adresse musste ich nicht angeben und auch ein Passwort musste ich mir nicht ausdenken.
Schon war die Identität angelegt und ich konnte mich einmal etwas umschauen. Na ja... viel umzuschauen gab es da nicht. Aber ich habe dann zumindest einmal eine Art "Neuhier-Posting" veröffentlicht...

Weil ich mit Coracle nun nicht so viel anfangen konnte, habe ich noch nostter ausprobiert. Und der Client sah schon besser aus. Mit diesem war es möglich, ohne große Suche, auch einen "öffentlichen Stream" anzuzeigen und damit interessante Nutzer zu finden, um diesen zu folgen.
Hmmm... ja... irgendwie ein wenig wie TwiXtter oder Mastodon. Überwiegend englischsprachig (was kein Problem ist, aber muttersprachliche Beiträge sehe ich halt auch gerne), viel Belangloses und immer wieder tauchte die Vokabel "Bitcoin" auf. Also nüscht, was mich weiter brachte oder mir akut Lust auf mehr gemacht hätte.
Und so habe ich seit dem extrem sporadisch (alle paar Monate) mal wieder da reingeschaut, aber nicht wirklich viel damit getan.
Zweiter Blick
Seitdem die Diskussion um Altersverifikationen in verschiedenen Ländern und die damit Verbundene Deanonymisierung und das Preisgeben persönlicher Daten in diesem Jahr intensiver geworden ist (ich sehe dabei zwar noch keine Gefahr für das Fediverse), habe ich noch einmal geschaut, was es denn sonst noch an Möglichkeiten einer freien Kommunikation im Stil Sozialer Netwerke so gibt. Und in dem Zusammenhang habe ich mir Nostr noch einmal genauer angeschaut.
Na und auf den zweiten Blick ist das ja wirklich eine gute Alternative.
Nostr steht für "Notes and Other Stuff Transmitted by Relays". Die Bezeichnung verrät auch gleich etwas über das Funktionsprinzip.
Während im Fediverse die einzelnen Instanzen für das Vorhalten und Anbieten der Inhalte der eigenen Nutzer und von Inhalten von Nutzern anderer, mit der eigenen Instanz verbundenen Instanzen ist, funktioniert die Speicherung der Inhalte bei Nostr mittels Relais. Auch damit wird eine Dezentralisierung des Netzwerkes erreicht. Sie geht in meinen Augen sogar noch ein ganzes Stück weiter, als im Fediverse.
Identität statt Account
Ich hatte ja oben geschrieben, dass ich mir eine Identität und keinen Account angelegt hatte. Und das ist ein feiner Unterschied. Man legt sich nämlich tatsächlich keinen Account bei irgendeinem Server an, sondern man erzeugt eine unabhängige Identität. Ein Nostr-Client ist kein Server im Sinne einer Fediverse-Instanz, bei welchem man einen Account erstellt, sondern es handelt sich tatsächlich nur um eine Zugangs-Software. Bei dieser Zugangs-Software authentifiziere ich mich mit meiner Nostr-Identität und die Software erlaubt mir dann den Zugriff auf die Daten und Inhalte, die auf verschiedenen Relays liegen können.
Relays
Meine Identität ist unabhängig vom Client und auch unabhängig von einzelnen Relays. Ich kann mich mit ihr praktisch über jede Zugangssoftware authetifizieren und auf meine Ressource zugreifen. Es gibt nicht nur Web-Apps, also Webseiten mit Clienten, sondern auch Desktop-Apps und Apps für mobile Endgeräte. Diese Clienten tun nichts anderes, als die Web-Apps, außer dass sie halt auf meinem Endgerät laufen. Man authentifiziert sich mit seiner Identität und die Programme nehmen dann mit verschiedenen Relays Kontakt auf, um mir meine "Timeline" anzuzeigen und es mir zu erlauben, selbst Inhalte zu posten. In der Regel sind einige (teilweise gut erreichbare und größere) Relays in den Apps voreingestellt. Man kann aber fast immer auch weitere Relays hinzufügen. Es gibt Listen mit verfügbaren Relays, z.B. nostrwat.ch.
Außerdem kann man auch selbst ein Relay hosten, so wie man ja auch eine eigene Fediverse-Instanz hosten kann. Also eine maximale Unabhängigkeit ist möglich.
Ja nachdem, welche Relays man im Clienten festgelegt hat, werden die eigenen Inhalte auch an viele verschiedenen Relays verteilt (manche speichern Daten nur für eine gwisse Zeit, andere unbegrenzt... da muss man sich schlau machen). Nostr bietet also das, was für mich als alter Hubzilla-Fan eine Kernfunktionalität ist, ebenfalls eine nomadische Identität mit Synchronisation.
Nostr-Clients
Inzwischen gibt es schon sehr viele Nostr-Clienten, die auch unterschiedliche Funktionsumfänge aufweise und für unterschiedliche Zwecke verwendet werden können. Am zahlreichesten sind die Microblogging-Apps. Es gibt aber auch Blogging-Apps für lange Artikel, Foto- und Video-Sharing-Apps, Apps die Direktnachrichten ermöglichen, oder Chats, oder oder... hier gibt es einen Überblick: nostr apps.

So... und was ist jetzt Sache mit dem Bitcoin-Kram?
Nun... das war ein Missverständnis (eines, das übrigens weit verbreitet und damit Grund für Vorbehalte ist). Nostr basiert einfach auf denselben kryptografischen Prinzipien wie Bitcoin und an seiner Entwicklung waren auch Menschen aus diesem Umfeld beteiligt. Die findet man auch noch immer dort und aus diesem Grund wird das Netzwerk bzw. Protokoll von vielen, die sich mit Bitcoin befassen, genutzt. Und so kommt es, dass man über Inhalte zu diesem Thema auch immer wieder stolpert. Nostr ist aber völlig unabhängig von Bitcoin. Man muss davon keine Ahnung haben, man braucht kein Wallet und man muss sich mit Bitcoin auch nicht befassen (es sei denn, man möchte es).
Als reine Option ermöglicht es Nostr allerdings, Zahlungen an andere Im Netzwerk mittels Zaps zu leisten, was über eine ebenfalls optionale Verbindung zum Lightning-Netzwerk ermöglich wird. Aber das ist opt-in! Nostr hat als nichts mit Bitcoin zu tun.
Und wie ist das jetzt mit der identität?
Nun, wenn man sich eine Identität erstellt, bekommt man zwei Schlüssel: einen öffentlichen und einen privaten Schlüssel. Der öffentliche Schlüssel ("npub") ist quasi die Identitätsbezeichnung und der private Schlüssel ("nsec") das "Passwort". Den ersten ("npub") kann und sollte man großzügig verteilen, denn mit diesem Schlüssel ist es anderen möglich einem zu folgen. Den zweiten ("nsec") muss man hingegen hüten, wie seinen Augapfel. Denn wer ihn kennt, kann sich authentifizieren. Man kann ihn auch nicht verändern und auch nicht wiederherstellen.Also gut drauf aufpassen.
Weil der "nsec" als "Benutzername" nicht wirklich nutzerfreundlich ist, gibt es auch die Möglichkeit, die eigene Identität mit einer lesbaren Adresse zu verknüpfen. Wie das funktioniert wird Teil eines weiteren Artikels.
Um mir zu folgen verwendet man entweder meinen "npub":
npub1h8ypsr7lw8l5r9pr9tm44xfkdm32welavahzmeez2t0flp5cs8qq04wc3j
oder meine NIP-05-Adresse:
PepeCyB@tnevlos.xyz
Nostr ist es in meinen Augen also wirklich wert, sich einmal damit zu befassen... also es auszuprobieren.
Ich werde mich jedenfalls weiter damit beschäftigen und ganz sicher ab und an noch weitere Artikel dazu schreiben.
Der Wahnsinn greift um sich
Mit dem Schutz der Jugend lässt sich fast alles begründen...
View article
View summary
Wahnsinn Nr. 1: Völlig absurde Ideen, um "die Jugend zu schützen"
Mit dem Schutz der Jugend lässt sich fast alles begründen. Ich kenne das von meinem Steckenpferd, dem Dampfen ("Pfrunzeln"). Da wird argumentiert, dass nor Kinder und Jugendliche ja wirklich fruchtige Aromen oder Aromen von Süßigkeiten mögen würden, woraus folgt, dass Liquids (die Flüssigkeiten, die vaporisiert und inhaliert werden) nur deshalb z.B. nach Erdbeere schmecken würden, um Kinder und Jugendliche zu ködern, damit zu Nikotinjunkies zu machen, die später dann rauchen und oft auch auf harte Drogen umsteigen würden.
Abgesehen davon, dass die letzte Sache – der sogenannte Gateway-Effekt – durch etliche Studien widerlegt wurde, ist es Tatsache, dass auch Erwachsene (oder bin ich womöglich eine Ausnahme) auch Erdbeergeschmack mögen. Und die Quote von Pfrunzel-Konsumenten unter Minderjährigen liegt z.B. in Deutschland um wirklich unteren einstelligen Prozentbereich. Wer dampft, war in der Regel vorher Raucher... und er ist erwachsen... und er mag auch alle möglichen Geschmäcker.
Trotzdem wird immer lauter gefordert (und in immer mehr Ländern gesetzlich umgesetzt), dass Aromen in Liquids verboten werden sollen... "zum Schutz der Jugend". Dass nun Erwachsene, also selbstbestimmte, eigenverantwortliche Menschen auch keine Geschmacksvielfalt mehr haben (einer der Gründe dafür, dass der Umstieg aufs Dampfen eine wirklich erfolgreiche Rauchstopp-Strategie ist... es funktioniert), muss wohl "zum Schutz der Jugend" so hingenommen werden. Und das, obwohl Minderjährige ja eigentlich aufgrund von Gesetzen gar keine Liquids kaufen können. Das ist schon verboten.
Hintergrund ist, dass das Dampfen an sich eingeschränkt und beseitigt werden soll... denn Genuss ist schlecht! 😉
So... Abschweifung beendet... jetzt zum Kern dieses Artikels!
Der "Schutz der Jugend" wird nun in einigen Ländern auch dafür hergenommen, die Nutzung von Internetdiensten zu erschweren oder gar zu verunmöglichen.
Dass es im Internet Inhalte gibt, die für Minderjährige nicht geeignet sind, die diesen schaden können, ist unbestritten.
Wer eine Seite ins Internet stellt, die den Zugriff auf jugendgefährdende Inhalte, welche der Betreiber selbst anbietet, ermöglicht, der muss in sehr vielen Ländern sicherstellen, dass nur Erwachsene Zugriff darauf bekommen. Das ist halt deren Problem und das müssen sie halt irgendwie hinbekommen. Nicht mein Problem.
Problematisch wird es erst, wenn Internet-Dienste es auch ermöglichen, dass Nutzer (also Besucher oder registrierte Nutzer) selbst Inhalte auf der Webseite zur Verfügung stellen. Sofern dies nicht generell moderiert geschieht, oder es erlaubt ist, auch jugendgefährdende Inhalte zu veröffentlichen, müsste sichergestellt werden, dass nur Volljährige die Inhalte sehen können.
Das ist also ein Problem aller Plattformen des Social Networking. Und damit auch ein Problem des Fediverse.
"Auf der Insel" ist die rechtliche Lage nun so, dass Nutzern, die ihre Volljährigkeit nicht nachgewiesen haben, der Zugriff auf solche (aber hat NUR SOLCHE) Inhalte verwehrt werden muss. Das kann man noch irgendwie sicherstellen, wobei das auch Betreiber kleinerer Instanzen vor schier unlösbare Probleme stellen könnte.
Noch umfassender ist die Regulierung derzeit in Mississippi. Dort würde ein Altersnachweis verbindlich. Für jeden Nutzer. Und im Endeffekt müssten die Aktivitäten dieser Nutzer dann auch – unter Beachtung des Altersnachweises – künftig überwacht werden.
Bluesky hat nun gejammert, dass sie das als "kleines Unternehmen" nicht stemmen könnten. Und dass sie es aus Prinzip auch ablehnen würden, die für die Einhaltung des Gesetzes erforderlichen Daten zu speichern und zu nutzen.
Und was machen sie "schweren Herzens..."? Die Blocken einfach die gesamte Region (den Staat) für jegliche Nutzung von Bluesky. Problem gelöst!
Problem gelöst?
Na ja... ich weiß nicht, ob es bei den Bluesky-Servern auch Mechanismen gibt, welche die Nutzung unter Verwendung von VPN oder Proxys blockiert. Soweit ich weiß ist es wohl nicht so.
Was also bringt das Geoblocking von Mississippi? Im Endeffekt nüscht! Auch wenn es vielleicht nicht sehr viele wissen, wie man das Blocking auf diese Art und Weise umgeht, kann es den Vorgaben der gesetzlichen Regelung eigentlich nicht genügen.
Wahnsinn Nr. 2: Deanonymisierung durch die Hintertür
Wenn Dienste den o.g. Regelungen entsprechen, dann bedeutet das aber auch eine Deanonymisierung. Auch wenn Drittanbieter-Dienste die eigentlichen Daten haben und nur den Altersnachweis gegenüber einem Dienst garantieren, so bleibt trotzdem eine mögliche direkte Verknüpfung zwischen Account und persönlichen Daten des Nutzers. Damit würde ein grundlegender Pfeiler des freien Internets wegbrechen. Na schönen Dank!
Wahnsinn Nr. 3: Auch Dienstanbieter im Fediverse denken über den völlig nutzlosen Schwachsinn des Geoblockings nach
In den vergangenen Tage sind mir mehrere Diskussionsstränge im Fediverse aufgefallen, wo über ein Verfahren, analog zu Blueskys Geoblocking gesprochen wurde. Euer Ernst? Abgesehen, dass diese Methode nicht wirklich wasserdicht ist (VPN/Proxy) und auch den gesetzlichen Vorgaben damit nicht wirklich entsprechen wird, widerspricht es für mich der Grundphilosophie des Fediverse als freies, unzensierbares Netzwerk. Außerdem ist es aufgrund der dezentralen Struktur ziemlich wirkungslos (wesentlich wirkungsloser als bei Bluesky, das ja nicht so richtig dezentral ist).
Wenn ich eine Fediverse-Instanz habe, die keine Altersverifikation durchführt (derzeit ja Nomalzustand... und das ist auch gut so) und ich geoblocke Mississippi. Dann können Nutzer meiner Instanz ja womöglich "jugendgefährdende" Inhalte teilen. Die können dann von den Menschen in dem Bundesstaat nicht gesehen werden. Allerdings platzt die Sache schon in dem Moment, wenn meine Instanz mit einer anderen Instanz föderiert, die in Mississippi nicht geblockt ist und auch keine Altersverifikation durchführt. Und schon stehen die Inhalte auch Minderjährigen dort zu Verfügung.
Die einzige Lösung neben dem Geoblocking wäre es, die Instanz zusätzlich komplett zu deföderieren. Dann aber ist es kein Fediverse-Dienst mehr.
Was also soll das Blocken bringen, außer dass man bestimmte Regionen aussperrt? Also ehrlich... das ist nicht das Internet, was ich mir vorstelle. Und das hat mit Fediverse auch nur noch am Rande zu tun (abgesehen davon, dass eine Fediverse-Software zum Einsatz kommt).
Wahnsinn Nr. 4: Das alles hat nichts mit dem "Schutz der Jugend" zu tun
Was wirklich wahnsinnig ist... auch die um sich greifenden Regelungen zum Jugendschutz haben gar nichts mit dem "Schutz der Jugend" zu tun. Das ist nur vorgeschoben. In Wirklichkeit geht es um Kontrolle, Freiheitseinschränkungen, Einschüchterung (durch Angst vor Repressionen), die Aufhebung der Anonymität im Internet und um Zensur. Und dabei dann auch noch mitzumachen ist für mich der Gipfel des Wahnsinns...
Der ganze Wahnsinn (inklusive des aufkeimenden Wahnsinns im Fediverse) hat übrigens dafür gesorgt, dass ich mir Nostr nun noch ein wenig näher angeschaut habe... aber dazu mehr in einem anderen Artikel.
KI-Paranoia
KI, also "Künstliche Intelligenz", ist zu einem fast unerträglichen Reizwort geworden. Bei vielen gehen die Schotten sofort zu, sobald davon irgendwie die Rede ist...
View article
View summary
KI, also "Künstliche Intelligenz", ist zu einem fast unerträglichen Reizwort geworden. Bei vielen gehen die Schotten sofort zu, sobald davon irgendwie die Rede ist.
Nun mag man davon halten, was auch immer man möchte. Die meisten verbinden mit "KI" ohnehin fast nur LLM (Large Language Model), also so'n Kram wie ChatGPT__(Nummer hier einfügen), Grok, Gemini, Copilot, etc. ... also den "modernen Versionen" von Weizenbaums Eliza. Gut... die können oft mehr, als nur Schwätzen... man kann sich auch Bilder erstellen lassen oder man lässt den Bot Programmcode erzeugen.
Über den praktischen Nutzen und auch die möglichen Gefahren will ich hier nicht ausgiebig sprechen. Es muss jeder selbst entscheiden, ob und inwieweit er solche Dienste nutzt. Ich selbst nutze diese Dienste auch sporadisch. Mehrheitlich als Ausgangsbasis für eigene Recherchen. Wenn ich also etwas zu einem bestimmten Thema suche, stelle ich die Frage bei einem solchen Bot und beginne dann selbst anhand des Ergebnisses mit meinen Recherchen. Das ist schon praktisch... vor allem, wenn der Bot auch Quellenangaben macht. Und Artikelbilder, die selbst nur als "Schmuck" für einen Artikel dienen, lasse ich mir auch öfter einmal erstellen. Wobei ich bei solchen Bildern, die einfach nur wegen des einheitlichen Erscheinungsbildes sein "müssen", auch regelmäßig meine "natürliche Intelligenz" in Verbindung mit Gimp und meinen krummen Fingern an der Maus dazu nutze, aus CC0-Bildern und meinen beschränkten künstlerischen Fähigkeiten solche Bilder zu erstellen.
Und da wären wir dann auch schon beim Thema Nr. 1!
Viele, welche öffentlich – und mit öffentlichen Inhalten – im Web agieren, sind strikt dagegen, dass (ich nenne sie jetzt mal vereinfachend) "KI-Engines" auch ihre "Daten" in ihre Ergebnisse mit einbeziehen. Vor allem, weil es an detaillierten Quellenangaben fehlt. Ok... nun denn. Wenn tatsächlich relevant lange Passagen z.B. aus veröffentlichten Texten 1:1 übernommen werden, dann gehört es sich auch, dass eine entsprechende Quellenangabe erscheint (und/oder andere Vorgaben einer eventuelle angegebenen Lizenz der Quelle). Das gilt aber sowohl für "künstliche", wie auch für "natürliche" Intelligenz. Wenn ich in Beiträgen ausführlich zitiere, dann wird das gekennzeichnet und die Quelle angegeben. Ob und wie das bei KI-generierten Texten funktioniert und stattfindet, weiß ich nicht. Da habe ich noch keine Erfahrungen... wahrscheinlich, weil ich diese Dienste nur sporadisch und – wir bereits erwähnt – als Startpunkt für eigene Recherchen nutze. Werden aber lediglich die Informationen gewonnen und entsprechend gewertet, eingeordnet und letztlich in neu erstellten Texten genutzt, dann ist das sowas wie "künstliches Lernen". Es gibt quasi "Erkenntnisgewinne". Wenn ich also zu einem Thema recherchiere, erweitere ich mein Wissen. Und dieses erlernte Wissen nutze ich dann in eigenen Texten. Das ist normal. Wenn ich etwas zu einem geografischen Thema schreiben würde, was auf meinem Wissen, welches ich in meinem bisherigen Leben angehäuft habe, basiert, so ist das doch ganz normal. Mir hat der Diercke-Atlas, den ich in der Schule genutzt habe, zum Glück nicht verboten, mir gewisse Dinge zu merken (neee... das ist ja Sinn und Zweck des schulischen Lernens) und später zu verwenden. Solange ich nicht knallhart plagiiere, ist das ok. Dem wird wohl niemand ernsthaft widersprechen wollen.
Wieso soll das nun bei der KI anders sein? Was ist so schlimm daran, wenn das "Wissen", welches sie "angehäuft" hat, von diesen Systemen bei Anfragen angewendet, also genutzt wird? Das Argument, dass solche Dienste letztlich auch immer irgendwie mit ihrem Dienstangebot Geld verdienen, ist auch kein Argument dagegen. Oben beispielhaft erwähnte (und echt utopische) Ausführungen zu einem erdkundlichen Thema könnte ich mir ja auch bezahlen lassen. Ich nutze also Wissen, welches ich aus anderen Quellen gesammelt habe, zu kommerziellen Zwecken. Na und? Normal! So funktioniert die Welt.
Bei ausführlichen Ausarbeitungen, Beiträgen, Artikeln kann ich es noch verstehen, wenn nicht jeder damit einverstanden ist, dass alles verwendet wird... wobei auch das ziemlich "schräg" ist. Denn wenn ich mir einen solchen Beitrag durchlesen und das dadurch gewonnene Wissen später in einem eigenen Beitrag verwenden würde, ohne zu plagiieren, sondern als eigene "Arbeit" formuliert, wird sich auch keine aufregen... oder? Oder doch? Falls doch, stellt sich mir die Frage: Wieso veröffentlicht denn dann jemand sowas? Wenn es doch eigentlich niemand lesen soll... weil dadurch ja die "Gefahr" besteht, dass der Leser die Erkenntnisse irgendwann selbst publizistisch nutzt. Wenn keiner etwas von meinem Werk haben soll, dann darf ich es schlicht nicht veröffentlichen.
Ganz besonders skurril finde ich die Protesthaltung bezüglich des Durchsuchens Sozialer Netzwerke. Euer Ernst, wenn Ihr meint, das müsse unterbunden werden? Erstmal ist das doch in der Regel nur Beifang, was die Dienste da einsammeln. Oder meint Ihr, Postings mit "guten Morgen", über das gerade eingenommene Mittagessen, über eine Etappe einer Radtour durch die Lüneburger Heide oder darüber, dass Sohn oder Tochter heute schon wieder das Pausenbrot unangerührt mit nach Hause gebracht hat, besäße eine wirkliche Relevanz für den Datenpool von LLMs? Das ist seichter Smalltalk. Das wird nicht wirklich gebraucht. Und bei ausführlicheren Beiträgen in diesen Netzwerken gilt das zuvor Gesagte: Wenn es keiner nutzen, lesen, verstehen, lernen soll, dann veröffentlicht es einfach nicht! Soziale Netzwerke... auch die dezentralen Netzwerke sind nunmal in der Regel komplett öffentlich. Wer da etwas postet, sollte sich im Klaren darüber sein, dass das JEDER lesen kann. Es gibt selbst im Fediverse nur wenige Dienste, die eine nicht-öffentlichen Nutzung innerhalb von sozialen Gruppen erlauben: mein geliebtes Hubzilla, dann auch Friendica, (streams) und Forte z.B.
Wer also nicht möchte, dass Postings durch KI-Dienste gecrawlt werden, muss einen solchen Dienst nutzen... und zwar so nutzen, dass es sich um einen nicht-öffentlichen Kanal handelt. Dann kommen da solche Akteure auch nicht dran.
Wer einen öffentlichen Dienst nutzt, welche dann über so schwache Mechanismen, wie eine robot.txt versucht, das Abgrasen zu verhindern, der betrügt sich selbst. Öffentlich ist öffentlich. Und was öffentlich ist, kann auch kaum einer Nutzerbeschränkung unterliegen.
Aber... wie gesagt... das ist eh ein Getrommel wegen Nichtigkeiten, wenn man sich die Timelines dieser Dienste anschaut.
Jetzt zum Thema Nr. 2!
Man findet immer mehr Software, welche bestimmte KI-Funktionen einbauen. Und da gibt es dann einen irrsinnigen Beißreflex. "Neee, wenn mein Office-Programm jetzt auch KI anbietet, dann lösch ich das und suche mir ein anderes."
Was soll der Scheiß? Gerade erst las ich solche Aussagen bezüglich Onlyoffice. Da wird ein sehr gutes Stück Software verteufelt, weil jetzt KI-Funktionen angeboten werden. Die sind aber gar nicht automatisch aktiviert und müssen vom Nutzer ganz explizit eingeschaltet (und oft sogar mit einem Lizenzschlüssel für den jeweiligen Dienst freigeschaltet) werden... sofern sich der Nutzer der Software einen Nutzen davon verspricht. Ich für meinen Teil wüsste nicht, wozu ich das aktivieren sollte... ich brauche das nicht. Und weil ich es nicht aktiviere, ist der Rest der Software ja nicht schlechter als vorher. Aber ich maße mir doch nicht an, bestimmen zu wollen, dass andere Nutzer dieses Feature auch nicht nutzen sollen. Wer das braucht, soll es nutzen können. Und für den ist die Software dann auch "besser" als vorher. Und je mehr Programme solche Optionen einbauen, desto öfter liest man Boykott-Erklärungen oder gar Boykott-Aufrufe.
Echt mal... haltet Euch einfach aus meinem Leben raus! Ich entscheide selbst, was ich nutze und was nicht.
Ganz anders sehe ich das nur, wenn mir solche Funktionen ungewollt aktiviert untergeschoben werden. Das empfinde ich als anmaßende Einmischung in mein Verhalten. Und wenn man es gar nicht abschalten kann, dann entscheide ich auch für mich selbst, dass ich die Software nicht mal mit der Kneifzange anpacke. Aber ich verurteile auch niemanden, der sie trotzdem nutzt... wenn er denn genau die Funktion ohnehin haben möchte.
Es herrscht zurzeit eine echte KI-Paranoia... und ein unglaublicher Beißreflex mit eingebauter Moral-Keule.
Nervt schon ein bisserl...
Conversation Features
Loading...
Loading...
Login
PepeCyBs Welt
pcw@hub.hubzilla.hu
Mein Blog PepeCyB's Welt - Pepes Gedanken, das Fediverse und mehr…
Categories