staging.inyokaproject.org

2024 Woche 01

7. Januar 2024

Mit mozilla.social betreibt Mozilla seine eigene Instanz des dezentralen sozialen Netzwerks Mastodon. Noch befindet sich diese in einem geschlossenen Betatest, sodass sich noch nicht jeder dort anmelden kann. Dieser Artikel beschreibt meine ersten Eindrücke nach drei Wochen Nutzung und geht auch auf ein paar Unterschiede zu anderen Mastodon-Instanzen ein.

Was ist Mastodon?

Mastodon ist eine Microblogging-Plattform oder auch soziales Netzwerk, welches vor allem mit X, ehemals Twitter, verglichen werden kann, oder auch dem neuen Threads von Meta. Der große Vorteil von Mastodon ist seine dezentrale Natur: Das Netzwerk gehört keinem einzelnen Unternehmen. Stattdessen kann jeder seine eigene Instanz mit eigenen Moderationsregeln und eigener Oberfläche betreiben. Die dafür verwendete Software ist Open Source und frei verfügbar.

Was ist mozilla.social?

Mit mozilla.social betreibt auch Mozilla eine Mastodon-Instanz. Dabei setzt Mozilla auf die offizielle Mastodon-Software in einer Version, welche Mozilla an die eigenen Bedürfnisse angepasst hat. Als Oberfläche verwendet Mozilla nicht die Standard-Oberfläche von Mastodon, sondern Elk in einer ebenfalls an die eigenen Bedürfnisse angepassten Version.

Derzeit befindet sich mozilla.social noch in einem geschlossenen Betatest. Das bedeutet, dass sich noch nicht jeder frei registrieren kann. Man kann sich aber auf eine Warteliste setzen lassen und ist dann hoffentlich bei der nächsten Runde neuer Nutzer dabei.

Ich bin seit dem 15. Dezember 2023 auf mozilla.social und im Folgenden beschreibe ich meine ersten Eindrücke und beobachteten Besonderheiten.

Erste Eindrücke und Besonderheiten von mozilla.social

Anmeldung mittels Mozilla-Konto

Praktisch ist, dass man für die Anmeldung bei mozilla.social keine zusätzlichen Anmeldedaten benötigt, wenn man bereits ein Mozilla-Konto hat. Dieses könnte man bereits aus einigen Gründen haben: für die Synchronisation von Firefox-Daten, für Pocket, das Mozilla VPN, Firefox Relay, Firefox Montitor, MDN Plus oder in Zukunft auch die Synchronisation in Thunderbird. In das Mozilla-Konto wiederum kann man sich entweder klassisch mittels E-Mail-Adresse oder auch via Google- oder Apple-Konto anmelden.

Die Oberfläche

Als ich neu in der Welt von Mastodon war, war mein erster Gedanke, wie altbacken Mastodon doch aussieht. Die Standard-Oberfläche erfüllt ihren Zweck, hat mich als langjährigen Twitter-Nutzer optisch aber nicht angesprochen. Erfreulicherweise nutzt Mozilla nicht die Standard-Oberfläche, sondern Elk. Das Elk-Projekt gibt sich selbst noch den Alpha-Status und schreibt, noch nicht bereit für eine größere Verbreitung zu sein. Aber Mozilla ist offensichtlich bereits genug überzeugt, um auf eine angepasste Version von Elk zu setzen. Ohne dabei etwas komplett anderes zu sein, erinnert Elk stärker an X / Twitter und wirkt dadurch nicht nur vertrauter, sondern auch moderner.

mozilla.social Web

Wie auch die originale Oberfläche bieten Elk und damit auch mozilla.social wahlweise ein helles oder ein dunkles Farbschema an. Im Allgemeinen empfinde ich helle Farben als freundlicher und weniger anstrengend. In diesem Sinne begrüße ich auch, dass anders als bei der originalen Oberfläche das helle und nicht das dunkle Farbschema Standard für nicht angemeldete Nutzer ist. Elk bietet im Gegensatz zur originalen Oberfläche aber auch für Gäste die Möglichkeit an, das Farbschema per Button-Klick zu ändern.

mozilla.social Web mozilla.social Web

Und ein Zen-Modus blendet große Teile der Oberfläche ganz aus, sodass man sich rein auf das Lesen der Inhalte fokussieren kann.

mozilla.social Web

Artikel-Empfehlungen ersetzen aktuelle Mastodon-Trends

Normalerweise zeigt Mastodon auf einer Seite Beiträge aus dem gesamten Netzwerk an, welche am jeweiligen Tag an Bedeutung gewinnen. Neben Aktualität ist die Anzahl der sogenannten „Boosts“ sowie Favoriten relevant. Mozilla hat diese Seite gestrichen und zeigt stattdessen eine Seite mit Artikel-Empfehlungen über Mozillas hauseigenen Dienst Pocket an.

mozilla.social Web

Können Nutzer bald weitere Nutzer einladen?

Auf mozilla.social gibt es einen Reiter für Einladungen. Hier erscheint derzeit nur ein Platzhalter-Text, der darauf hinweist, dass man „in ein paar Tagen“ wieder vorbeischauen soll und es dann Einladungs-Codes gibt, die man mit seinen Freunden teilen kann. Die Zeitangabe sollte man nicht wörtlich verstehen, denn der Text steht dort bereits von Anfang an.

mozilla.social Web

Einladungs-Codes für Mastodon sind kein neues Konzept von Mozilla. Aber weder Mastodon im Original noch Elk sehen Einladungen als Teil der Hauptnavigation vor. Deswegen kann man wohl davon ausgehen, dass Mozilla vor einer generellen Öffnung für alle Nutzer zumindest bald die Möglichkeit aktivieren wird, dass bestehende Nutzer weitere Nutzer zu mozilla.social einladen.

Moderations-Richtlinien

Mit dem Start der damals noch ausschließlich internen Betaphase im Mai 2023 hatte Mozilla auch seine Pläne bezüglich der Inhaltsmoderation angekündigt:

Sie werden einen großen Unterschied in unserem Ansatz der Inhaltsmoderation im Vergleich zu anderen großen Social-Media-Plattformen feststellen. Wir bauen keine weitere selbsterklärte „neutrale“ Plattform. Wir glauben, dass viel zu oft „Neutralität“ als Vorwand verwendet wird, um Verhaltensweisen und Inhalte zu ermöglichen, die darauf abzielen, diejenigen aus Gemeinschaften zu belästigen und zu schädigen, die schon immer Schikanen und Gewalt ausgesetzt waren. Unser Plan zur Moderation von Inhalten basiert auf den Zielen und Werten, die in unserem Mozilla-Manifest zum Ausdruck kommen – Menschenwürde, Inklusion, Sicherheit, individuelle Meinungsäußerung und Zusammenarbeit. Wir verstehen, dass die individuelle Meinungsäußerung, besonders in den USA, oft als absolutes Recht um jeden Preis gesehen wird. Selbst wenn dieser Preis die Schädigung anderer ist. Wir schließen uns dieser Ansicht nicht an. Das wollen wir klarstellen. Wir bauen eine großartige Sandbox, in der wir alle spielen können, aber es gibt auch Regeln, wie wir miteinander umgehen. Es steht Ihnen völlig frei, woanders hinzugehen, wenn Ihnen diese nicht gefallen.

Inwieweit diese Moderations-Richtlinien bereits Anwendung finden und sich in der Praxis tatsächlich von anderen Instanzen unterscheiden, ist für mich nicht zu beurteilen.

Mozillas eigene Anpassungen

Wie bereits beschrieben nutzt Mozilla weder Mastodon noch Elk in der jeweiligen Original-Version, sondern passt diese an. Dies kann neben den bereits genannten Dingen optische Details wie ein anderes Standard-Avatar bedeuten, aber auch bedeutsamere Anpassungen wie ein sofortiges Löschen hochgeladener Medien, wenn ein Beitrag gelöscht wird, was im Original-Mastodon erst zeitversetzt geschieht, oder eine Opt-Out-Einstellung für die Erhebung technischer Daten. Dies sind nur wenige Beispiele für Anpassungen, welche Mozilla auf Grundlage der jeweils aktuellen Versionen von Mastodon und Elk umsetzt.

Ersteindruck von Mastodon-App Mozilla Social für Android

Mittlerweile gibt es auch eine erste Vorschauversion der Mastodon-App Mozilla Social für Android. Diese kann auch von Mastodon-Nutzern verwendet werden, welche nicht auf mozilla.social, sondern auf einer anderen Mastodon-Instanz sind. Ich habe vor wenigen Tagen einen Ersteindruck-Artikel über Mozilla Social für Android veröffentlicht.

In eigener Sache: Dieser Blog auf Mastodon

Auch dieser Blog ist auf Mastodon vertreten. Wer mir folgen möchte, findet mich unter dem Namen @s_hentzschel@mozilla.social.

Der Beitrag Ein Ersteindruck von Mozillas Mastodon-Instanz mozilla.social erschien zuerst auf soeren-hentzschel.at.

Vim Tabs

Ein Buffer ist der im Arbeitsspeicher befindliche Text einer Datei. Ein Fenster ist ein Ausschnitt, also ein Viewport, aus einem Buffer. Eine Tab-Seite ist eine Sammlung von Fenstern.

Hilfe dazu gibt es unter :help tab-page. Ein eigenes Kommando gibt es nicht.

Öffnen

  • tabnew öffnet ein neues Tab (Buffer)
  • tabf sucht im aktuellen Verzeichnis nach einer Datei. Tabulator-Completion funktioniert
  • tab öffnet ein neues Tab und führt einen Vim-Befehl aus, zum Beispiel :tab help tab-pages

Mit einem neuen Tab kann auch gleich eine bestehende Datei geladen werden, indem mit dem Befehl der Dateiname mitgegeben wird.

Mehrere Dateien können als Tabs direkt bei Aufruf von vim mit dem Parameter -p geladen werden.

vim -p Datei1 Datei2 Datei3 Datei4

Standardmässig können 10 Dateien gleichzeitig geladen werden. Dieses Maximum kann verkleinert oder erweitert werden mit der Direktive :set tabpagemax= oder in der vimrc mit set tabpagemax=.

Schliessen

  • tabclose schliesst das Tab. Mit einem Ausrufezeichen, wenn Änderungen nicht gespeichert werden sollen
  • :q schliesst das Tab
  • Strg+w q funktioniert nur, wenn nichts geändert wurde
  • tabonly schliesst alle anderen Tabs ausser dem aktuellen

Navigation

  • Strg+BildRunter und Strg+BildHoch wechseln das Tab rechts oder links. Tipp: 2+Strg+BildRunter
  • gt oder :tabn wechselt zum nächsten Tab rechts (next). Tipp: 5gt springt 5 Tabs nach rechts
  • gT oder :tabp wechselt zum vorherigen Tab links (previous)
  • :tabs zeigt eine Übersicht aller Tabs

Reihenfolge

  • :tabm oder :tabmove verschiebt das aktuelle Tab ganz nach rechts
  • :tabm verschiebt das aktuelle Tab an die Position von NUMMER. Fängt bei 0 an

Weitere Infos

  • :set showtabline= 0 blendet die Tabline aus, 1 ist automatisch, 2 ist immer eingeblendet
  • :tabdo führt einen Befehl für alle offenen Tabs aus. Zum Beispiel :tabdo %s/foo/bar/g

Quellen

Vim ist als Open-Source-Software verfügbar.

Ein Buffer (Puffer) ist der im Arbeitsspeicher befindliche Text einer Datei.
└- Ein Fenster (Window) ist ein Ausschnitt (Viewport) aus einem Buffer.
└— Eine Tab-Seite (Tab) ist eine Sammlung von Fenstern.

Hilfe :help tab-page
Kommando:

Öffnen

  • tabnew Neues Tab (Buffer)
  • tabf Find – sucht im aktuellen Verzeichnis nach einer Datei. Tabulator Completion funktioniert
  • tab öffnet ein neues Tab und führt einen Vim Befehl aus z.B. :tab help tab-pages

Mit einem neuen Tab kann auch gleich eine bestehende Datei geladen werden, indem mit dem Befehl der Dateiname mitgegeben wird.

Mehrere Dateien können als Tabs direkt bei Aufruf von vim mit dem Parameter -p geladen werden

vim -p Datei1 Datei2 Datei3 Datei4

Standardmäßig können 10 Dateien gleichzeitig geladen werden. Dieses Maximum kann verkleinert oder erweitert werden mit der Direktive :set tabpagemax= oder in der vimrc mit set tabpagemax=

Schließen

  • tabclose Schliesst das Tab. Mit einem ! Ausrufezeichen, wenn Änderungen nicht gespeichert werden sollen
  • :q
  • Strg+w q funktioniert nur, wenn nichts geändert wurde
  • tabonly Schliesse alle anderen Tabs außer dem aktuellen Tab

Navigation

  • Strg+BildRunter / Strg+BildHoch Tab wechseln rechts/links. Tipp: 2+Strg+BildRunter
  • gt / :tabn zum nächsten Tab rechts wechseln (next). Tipp: 5gt springt 5 Tabs nach rechts
  • gT / :tabp zum vorherigen Tag links wechseln (previous)
  • :tabs zeigt eine Übersicht aller Tabs

Reihenfolge

  • :tabm / :tabmove verschiebt das aktuelle Tab ganz nach rechts
  • :tabm verschiebt das aktuelle Tab aun die Postion von NUMMER. Fängt bei 0 an !

Weitere Infos

  • :set showtabline= 0 = Tabline ausblenden, 1 = automatisch, 2 = immer einblenden
  • :tabdo Einen Befehl für alle offenen Tabs ausführen. Zum Beispiel :tabdo %s/foo/bar/g

Weitere hyperblog Artikel zum Thema

vim

Views: 56

The post Vim – mit Tabs fensterln first appeared on Dem hoergen Blog.

Ein Buffer (Puffer) ist der im Arbeitsspeicher befindliche Text einer Datei.
└- Ein Fenster (Window) ist ein Ausschnitt (Viewport) aus einem Buffer.
└— Eine Tab-Seite (Tab) ist eine Sammlung von Fenstern.

Hilfe :help tab-page
Kommando:

Öffnen

  • tabnew Neues Tab (Buffer)
  • tabf Find - sucht im aktuellen Verzeichnis nach einer Datei. Tabulator Completion funktioniert
  • tab öffnet ein neues Tab und führt einen Vim Befehl aus z.B. :tab help tab-pages

Mit einem neuen Tab kann auch gleich eine bestehende Datei geladen werden, indem mit dem Befehl der Dateiname mitgegeben wird.

Mehrere Dateien können als Tabs direkt bei Aufruf von vim mit dem Parameter -p geladen werden

vim -p Datei1 Datei2 Datei3 Datei4

Standardmäßig können 10 Dateien gleichzeitig geladen werden. Dieses Maximum kann verkleinert oder erweitert werden mit der Direktive :set tabpagemax= oder in der vimrc mit set tabpagemax=

Schließen

  • tabclose Schliesst das Tab. Mit einem ! Ausrufezeichen, wenn Änderungen nicht gespeichert werden sollen
  • :q
  • Strg+w q funktioniert nur, wenn nichts geändert wurde
  • tabonly Schliesse alle anderen Tabs außer dem aktuellen Tab

Navigation

  • Strg+BildRunter / Strg+BildHoch Tab wechseln rechts/links. Tipp: 2+Strg+BildRunter
  • gt / :tabn zum nächsten Tab rechts wechseln (next). Tipp: 5gt springt 5 Tabs nach rechts
  • gT / :tabp zum vorherigen Tag links wechseln (previous)
  • :tabs zeigt eine Übersicht aller Tabs

Reihenfolge

  • :tabm / :tabmove verschiebt das aktuelle Tab ganz nach rechts
  • :tabm verschiebt das aktuelle Tab aun die Postion von NUMMER. Fängt bei 0 an !

Weitere Infos

  • :set showtabline= 0 = Tabline ausblenden, 1 = automatisch, 2 = immer einblenden
  • :tabdo Einen Befehl für alle offenen Tabs ausführen. Zum Beispiel :tabdo %s/foo/bar/g

Weitere Artikel hier zu vim

6. Januar 2024

Die Firefox-Erweiterung Lightbeam veranschaulicht Drittanbieter-Verbindungen von Websites, indem diese durch einen Graphen visualisiert werden.

Während wir Websites besuchen, passieren im Hintergrund Dinge, von denen man als Nutzer nichts mitbekommt. So werden vor allem Ressourcen von anderen Domains geladen, welche wiederum unter Umständen Daten von wieder anderen Domains laden. Und so entsteht sehr schnell ein großes Netz an Verbindungen. Die Firefox-Erweiterung Lightbeam visualisiert genau das und hilft so zwar nicht direkt beim Reduzieren des Trackings durch Websites, aber macht das Ganze anschaulich und schärft so das Bewusstsein.

Firefox-Erweiterung Lightbeam

Download der Browser-Erweiterung Lightbeam für Mozilla Firefox

Sowohl die Idee als auch der Name klingen vertraut? Das hat einen Grund. Ursprünglich wurde die Erweiterung im Februar 2012 von Mozilla unter dem Namen Collusion veröffentlicht. Im Oktober 2013 folgte eine Umbenennung in Lightbeam. Nach einer Neuentwicklung als WebExtension mit reduziertem Funktionsumfang im Rahmen eines Outreachy-Projekts im Herbst 2017 hat Mozilla die Erweiterung Lightbeam im Oktober 2019 schließlich offiziell eingestellt und auch den Download von seiner Erweiterungs-Plattform entfernt. Zwar wurde die Erweiterung dann durch jene Entwicklerin privat neu bereitgestellt, welche bereits in die Neuentwicklung als WebExtension involviert war, aber auch das hatte im Jahr 2022 ein Ende und die Erweiterung verschwand erneut von Mozillas Erweiterungsplattform. Noch im selben Jahr entstand ein neuer Fork von Christoph Klassen, der auch heute noch besteht.

Sein Hauptziel ist nach eigenen Angaben, dafür zu sorgen, dass die Erweiterung verfügbar bleibt. Das heißt, der Fokus liegt auf dem Anpassen der Erweiterung, falls Änderungen seitens Mozilla dies notwendig machen, dem Aktualisieren verwendeter Bibliotheken etc. Die Entwicklung neuer Funktionen ist ausdrücklich kein Ziel. Mit dem Fusion-Modus gibt es allerdings tatsächlich eine neue Funktion, welche die ursprüngliche Lightbeam-Version von Mozilla nicht hatte. Dabei werden verschiedene Drittanbieter-Domains zu einem gemeinsamen Knoten „fusioniert“. Welche Domains fusioniert werden sollen, lässt sich in den Einstellungen der Erweiterung konfigurieren.

Firefox-Erweiterung Lightbeam

Die Erweiterung ist sowohl mit Firefox für Windows, macOS und Linux kompatibel als auch mit Firefox für Android.

Der Beitrag Firefox-Erweiterung Lightbeam visualisiert Drittanbieter-Verbindungen von Websites erschien zuerst auf soeren-hentzschel.at.

5. Januar 2024

Mozilla hat eine erste Vorschauversion von Mozilla Social für Android veröffentlicht. Dabei handelt es sich um eine App für die Nutzung des dezentralen sozialen Netzwerks Mastodon. Diese unterstützt natürlich nicht nur Mozillas eigene Mastodon-Instanz, sondern kann von Nutzern aller Mastodon-Instanzen genutzt werden.

Download Mozilla Social Nightly für Android

Mozilla hat heute die erste Nightly-Version von Mozilla Social für Android veröffentlicht. Bislang steht die Version nur über GitHub zur Verfügung und aktualisiert daher auch nicht automatisch auf neuere Versionen. Bald soll Mozilla Social aber auch im Google Play Store und dann mit automatischen Updates zur Verfügung stehen. Auch Mozilla Social für Apple iOS befindet sich in Entwicklung, dort ist die Entwicklung aber noch nicht so weit vorangeschritten.

Download Mastodon-App Mozilla Social Nightly für Android

Erste Eindrücke von Mozilla Social für Android

Zunächst eine Anmerkung, die für das Erwartungshaltungsmanagement wichtig ist: Die Veröffentlichung von Mozilla Social als Nightly-Version bedeutet, dass wir hier von einer frühen Vorschau sprechen. Es handelt sich um kein finales Produkt. Noch nicht alles sieht hübsch aus, ein paar wichtige Funktionen fehlen noch. Darauf werde ich später noch etwas mehr eingehen.

Der erste Start

Bereits der Startbildschirm weist einen darauf hin, dass es sich noch um eine „Beta“-Version handelt, wobei es wohl auch nicht falsch wäre, noch von einer „Alpha“-Version zu sprechen, auf Grund noch fehlender Funktionen und weil es ja auch eine Nightly-Version ist.

Die große Schaltfläche führt einen zum Login für Mozillas Mastodon-Instanz. Das Praktische hierbei: Man kann sich mit seinem bestehenden Mozilla-Konto anmelden, was wahlweise über die Eingabe der E-Mail-Adresse, via Google oder via Apple funktioniert. Allerdings befindet sich Mozillas Mastodon-Instanz derzeit noch in einem geschlossenen Beta-Test. Hier kann also noch nicht jeder teilnehmen. Ich habe bereits Zugang und habe meine ersten Eindrücke von Mozillas Mastodon-Instanz, welche sich in ein paar Punkten von anderen Mastodon-Instanzen unterscheidet, in einem eigenen Artikel beschrieben.

Der Link unter der großen Schaltfläche führt zur Eingabe eines anderen Mastodon-Servers. Nach Eingabe des Servers landet man auf der entsprechenden Login-Seite. Mozilla Social kann also für jede Mastodon-Instanz genutzt werden, nicht nur für die von Mozilla.

Mozilla Social für Android: Erste Vorschauversion

Ein Rundgang durch die App

Nach dem Login ist das erste, was man sieht, der persönliche Feed. Also die Nachrichten von den Nutzern, denen man folgt. An der Stelle gibt es keinen Algorithmus, der einem potenziell interessante Nachrichten wildfremder Nutzer oder bezahlte Beiträge vorschlägt. Beiträge anderer Nutzer der gleichen Instanz sieht man, wenn man vom Reiter „For You“ zum Reiter „Local“ wechselt, und im Reiter „Federated“ gibt es dann auch Beiträge von Nutzern anderer Instanzen. Diese Information ist in erster Linie für diejenigen, welche beispielsweise von X, ehemals Twitter, kommen. Bestehende Mastodon-Nutzer kennen das Konzept.

Mozilla Social für Android: Erste Vorschauversion

Rechts oben geht es zur Suche. Die Ergebnisse sind aufgeteilt auf die Reiter „Top“, „Accounts“, „Posts“ sowie „Hashtags“. Aus den Ergebnissen heraus kann direkt einem Profil oder einem Hashtag gefolgt oder mit Beiträgen interagiert werden.

Mozilla Social für Android: Erste Vorschauversion

Der zweite Tab ist eine Besonderheit von Mozilla Social. Darüber gibt es Inhaltsempfehlungen. Aber nicht etwa von Mastodon-Nutzern, sondern von Mozillas hauseigenem Dienst Pocket, wie man sie auch von der Firefox-Startseite kennt. Die Artikel sind sogar schon auf Deutsch, obwohl der Rest der App noch auf Englisch ist.

Die Artikel können direkt in der App gelesen oder auch mit anderen Apps geteilt werden. Man findet hier auch noch Schaltflächen zum Teilen sowie Setzen als Lesezeichen innerhalb von Mastodon, diese Schaltflächen sind aber noch ohne Funktion.

Mozilla Social für Android: Erste Vorschauversion

Der mittlere Tab führt dann zum Verfassen eines eigenen Beitrags. Neben dem eigentlichen Textinhalt sowie dem Sichtbarkeitsstatus können hier auch Fotos oder Videos hochgeladen, eine Umfrage angehängt und eine Content-Warnung konfiguriert werden.

Mozilla Social für Android: Erste Vorschauversion

Der vierte Tab ist derzeit nur ein Platzhalter. Hier sollen in Zukunft die Lesezeichen erscheinen. Der fünfte Tab ist schließlich das eigene Profil. Hierüber gelangt man zu den eigenen Beiträgen, Medien, Beiträgen, die man mit „Gefällt mir“ markiert hat, sowie Personen, die einem folgen und denen man selbst folgt. Das eigene Profil kann bearbeitet werden und es geht in die Einstellungen.

Mozilla Social für Android: Erste Vorschauversion

Die Einstellungen beinhalten einen Link zum Verwalten des Accounts, was einen de facto zur entsprechenden Webansicht des Mastodon-Servers bringt, sowie zum Logout. Auch blockierte und stumm geschaltete Nutzer können bereits verwaltet werden. In den Datenschutz-Einstellungen kann Telemetrie aktiviert werden. Standardmäßig ist diese ausgeschaltet. Schließlich gibt es noch einen Info-Bildschirm.

Mozilla Social für Android: Erste Vorschauversion

Noch fehlende Funktionen

Während also schon einige Dinge da sind, gibt es auch noch ein paar Funktionen, die zu diesem Zeitpunkt noch fehlen. Das aus meiner Sicht Wichtigste zuerst: Benachrichtigungen. Noch gibt es keine Benachrichtigungen über neue Follower oder Beiträge, die von anderen Nutzern geteilt werden oder die anderen gefallen. Lesezeichen wurden bereits angesprochen. Auch befindet sich die komplette App noch ausschließlich in englischer Sprache und ist nicht ins Deutsche übersetzt. Ebenfalls gibt es noch keine Möglichkeit, mehrere Profile innerhalb der App zu verwalten und im Vergleich zur offiziellen Mastodon-App fehlt auch noch die eine oder andere Einstellung.

Fazit

Mozilla Social macht bereits einen sehr guten Ersteindruck, wenn man den frühen Entwicklungsstand berücksichtigt, und könnte eine interessante Alternative zur offiziellen Mastodon-App werden. Gleichzeitig wird natürlich schnell klar, dass zu diesem Zeitpunkt noch ein paar Dinge fehlen, die dafür zwingend notwendig sind. Auch optisch verträgt die eine oder andere Stelle noch ein bisschen Feinschliff. Aber es ist davon auszugehen, dass in den kommenden Wochen noch einiges passieren wird.

Ich persönlich könnte sogar tatsächlich schon den vollständigen Wechsel zu Mozilla Social beim aktuellen Stand der Dinge in Betracht ziehen, wenn die Benachrichtigungen implementiert wären. Denn diese Funktion ist für mich wesentlich, auf alles andere kann ich warten.

Wenn es um die Frage geht, wieso Nutzer überhaupt zu Mozilla Social anstelle der offiziellen Mastodon-App greifen sollten, wird es spannend zu sehen sein, was sich Mozilla einfallen lässt, um nicht nur Feature-Gleichheit herzustellen, sondern sich abzuheben. Die Content-Empfehlungen von Pocket sind ein Anfang, den andere Mastodon-Apps nicht bieten. Und vielleicht hat Mozilla ja noch weitere Einfälle.

In eigener Sache: Dieser Blog auf Mastodon

Auch dieser Blog ist auf Mastodon vertreten. Wer mir folgen möchte, findet mich unter dem Namen @s_hentzschel@mozilla.social.

Der Beitrag Mozilla veröffentlicht Mastodon-App Mozilla Social für Android als Nightly-Version – Ersteindruck mit vielen Screenshots erschien zuerst auf soeren-hentzschel.at.

Ein Buffer ist der im Arbeitsspeicher befindliche Text einer Datei. Ein Fenster ist ein Ausschnitt, also ein Viewport, aus einem Buffer. Eine Tab-Seite ist eine Sammlung von Fenstern.

Hilfe dazu gibt es unter :help windows. Das Kommando lautet :wincmd oder Strg+w.

Die aktuelle Ansicht lässt sich in mehrere Fenster aufteilen. Detailliertere Informationen und weitere alternative Befehle sind in der Hilfe zu finden.

Teilen und Neu

  • Strg+w s oder :sp oder :split teilt das Fenster horizontal (gleicher Inhalt und Buffer)
  • Strg+w v oder :vs oder :vsplit teilt das Fenster vertikal (gleicher Inhalt und Buffer)
  • Strg+w n oder :new teilt das Fenster horizontal und erstellt ein neues Dokument (leerer Buffer)
  • :vne oder :vnew teilt das Fenster vertikal und erstellt ein neues Dokument (leerer Buffer)

Schliessen

  • Strg+w q oder :q schliesst das Fenster
  • Strg+w o oder :on oder :only schliesst alle anderen Fenster ausser das aktuelle
  • Es gibt noch viele weitere Parameter zum Fenster schliessen

Navigation

  • Strg+w Pfeiltasten wechselt zwischen den Fenstern. Es gehen auch die Vim-Cursor-Tasten
  • Strg+w p wechselt zum letzten Fenster zurück
  • Strg+w r oder Strg+w R rotiert die Fenster runter und rechts oder hoch und links

Größe

  • Strg+w = macht alle Fenster gleich gross
  • Strg+w - macht das aktuelle Fenster um 1 vertikal kleiner. Strg+w 5 - um 5 kleiner
  • Strg+w + macht das aktuelle Fenster um 1 vertikal grösser
  • Strg+w _ maximiert das aktuelle Fenster vertikal. Alle anderen Fenster werden so klein wie möglich gemacht
  • Strg+w | maximiert das aktuelle Fenster horizontal
  • Eine Vollbildanzeige kann mit der Kombination von Strg+w _ und oder Strg+w | erreicht werden
  • Strg+w < macht das aktuelle Fenster um 1 horizontal kleiner. Strg+w 7 < um 7 kleiner
  • Strg+w > macht das aktuelle Fenster um 1 horizontal grösser
  • In einer grafischen Oberfläche lassen sich die Fenster am Rahmen mit der Maus kleiner und grösser machen

Quellen

Vim ist als Open-Source-Software verfügbar.

Ein Buffer (Puffer) ist der im Arbeitsspeicher befindliche Text einer Datei.
└- Ein Fenster (Window) ist ein Ausschnitt (Viewport) aus einem Buffer.
└— Eine Tab-Seite (Tab) ist eine Sammlung von Fenstern.

Hilfe :help windows
Kommando :wincmd Strg+w

Die aktuelle Ansicht in mehrere Fenster aufteilen.

Detailliertere Informationen und weitere alternative Befehle sind in der Hilfe zu finden

Teilen & Neu

  • Strg+w s / :sp / :split Fenster horizontal teilen (gleicher Inhalt/Buffer)
  • Strg+w v / :vs / :vsplit Fenster vertikal teilen (gleicher Inhalt/Buffer)
  • Strg+w n / :new Fenster horizontal teilen und neues Dokument (leerer Buffer) erstellen
  • :vne / :vnew Fenster vertikal teilen und neues Dokument (leerer Buffer) erstellen

Schliessen

  • Strg+w q / :q Fenster schließen.
  • Strg+w o / :on / :only schließt alle anderen Fenster, ausser das aktuelle Fenster
  • Es gibt noch viele weitere Parameter zum Fenster schließen

Navigation

  • Strg+w Pfeiltasten Zwischen den Fenstern wechseln. Es gehen auch die Vim Cursor
  • Strg+w p Zum letzten Fenster zurück wechseln
  • Strg+w r / Strg+w R Fenster durchrotieren runter/rechts und hoch/links

Größe

  • Strg+w = Alle Fenster gleich groß machen
  • Strg+w - Das aktuelle Fenster um 1 vertikal kleiner machen. Strg+w 5 - um 5 kleiner machen
  • Strg+w + Das aktuelle Fenster um 1 vertikal größer machen
  • Strg+w _ Das aktuelle Fenster vertikal maximieren. Alle anderen Fenster so klein wie möglich machen
  • Strg+w | Das aktuelle Fenster horizontal maximieren
  • Eine Vollbildanzeige kann mit der Kombination von Strg+w _ und/oder Strg+w | erreicht werden
  • Strg+w < Das aktuelle Fenster um 1 horizontal kleiner machen. Strg+w 7 < um 7 kleiner machen
  • Strg+w > Das aktuelle Fenster um 1 horizontal größer machen
  • In einer grafischen Oberfläche lassen sich die Fenster am Rahmen mit der Maus kleiner und größer machen

Weitere Artikel hier zu vim

Ein Buffer (Puffer) ist der im Arbeitsspeicher befindliche Text einer Datei.
└- Ein Fenster (Window) ist ein Ausschnitt (Viewport) aus einem Buffer.
└— Eine Tab-Seite (Tab) ist eine Sammlung von Fenstern.

Hilfe :help windows
Kommando :wincmd Strg+w

Die aktuelle Ansicht in mehrere Fenster aufteilen.

Detailliertere Informationen und weitere alternative Befehle sind in der Hilfe zu finden

Teilen & Neu

  • Strg+w s / :sp / :split Fenster horizontal teilen (gleicher Inhalt/Buffer)
  • Strg+w v / :vs / :vsplit Fenster vertikal teilen (gleicher Inhalt/Buffer)
  • Strg+w n / :new Fenster horizontal teilen und neues Dokument (leerer Buffer) erstellen
  • :vne / :vnew Fenster vertikal teilen und neues Dokument (leerer Buffer) erstellen

Schliessen

  • Strg+w q / :q Fenster schließen.
  • Strg+w o / :on / :only schließt alle anderen Fenster, ausser das aktuelle Fenster
  • Es gibt noch viele weitere Parameter zum Fenster schließen

Navigation

  • Strg+w Pfeiltasten Zwischen den Fenstern wechseln. Es gehen auch die Vim Cursor
  • Strg+w p Zum letzten Fenster zurück wechseln
  • Strg+w r / Strg+w R Fenster durchrotieren runter/rechts und hoch/links

Größe

  • Strg+w = Alle Fenster gleich groß machen
  • Strg+w - Das aktuelle Fenster um 1 vertikal kleiner machen. Strg+w 5 - um 5 kleiner machen
  • Strg+w + Das aktuelle Fenster um 1 vertikal größer machen
  • Strg+w _ Das aktuelle Fenster vertikal maximieren. Alle anderen Fenster so klein wie möglich machen
  • Strg+w | Das aktuelle Fenster horizontal maximieren
  • Eine Vollbildanzeige kann mit der Kombination von Strg+w _ und/oder Strg+w | erreicht werden
  • Strg+w < Das aktuelle Fenster um 1 horizontal kleiner machen. Strg+w 7 < um 7 kleiner machen
  • Strg+w > Das aktuelle Fenster um 1 horizontal größer machen
  • In einer grafischen Oberfläche lassen sich die Fenster am Rahmen mit der Maus kleiner und größer machen

Weitere hyperblog Artikel zum Thema

vim

Views: 26

The post Vim – Windows first appeared on Dem hoergen Blog.

Luc Lenôtre stellt Maestro vor, einen Unix-ähnlichen Kernel und ein Betriebssystem, das von Grund auf in Rust geschrieben wurde. Maestro soll leichtgewichtig und kompatibel genug mit Linux sein, um im Alltag genutzt werden zu können.



Es gibt sie noch, die Wunderkinder. Wie den 13-jährigen Willis Gibson, der am 21. Dezember als erster Mensch Tetris zu Ende gespielt hat, und das nach fast 40 Jahren. Oder Luc Lenêtre, der Student, der mal eben alleine einen UNIX-ähnlichen Kernel in Rust schreibt. Er ist Student an der Schule 42 in Paris. Über sich selbst und seine Motive schreibt er:

Ich bin ein französischer Softwareentwickler. Ich habe mit dem Programmieren begonnen, als ich 10 Jahre alt war und liebe osdev, Systemprogrammierung, Rust und Mathematik. Derzeit schreibe ich mein eigenes Unix-ähnliches Betriebssystem von Grund auf mit der Sprache Rust, nur zum Spaß 🙃.

Falls euch "nur zum Spass" bekannt vorkommt, dann schaut mal hierhin.

In seinem Blog schreibt Lenêtre:

"Der erste Commit des Kernels datiert auf den 22. Dezember 2018, um 3:18 Uhr morgens (die beste Zeit, um Code zu schreiben). Es begann als Schulprojekt. Ursprünglich wurde es in der Sprache C implementiert, und zwar für etwa anderthalb Jahre, bis die Codebasis zu schwer sauber zu halten war. In diesem Moment beschloss ich, zu Rust zu wechseln (mein erstes Projekt in dieser Sprache), was mehrere Vorteile mit sich brachte:

  • Das Projekt von vorne beginnen und dabei die Lehren aus früheren Fehlern ziehen.
  • Etwas innovativer zu sein als nur einen Linux-ähnlichen Kernel in C zu schreiben.
  • Die Sicherheit der Sprache Rust nutzen, um einige Schwierigkeiten der Kernelprogrammierung zu überwinden. Die Verwendung des Typisierungssystems von Rust ermöglicht es, einen Teil der Verantwortung für die Speichersicherheit vom Programmierer auf den Compiler zu verlagern.

Bei der Kernel-Entwicklung ist das Debugging aus mehreren Gründen sehr schwierig:

  • Dokumentation ist oft schwer zu finden, und BIOS-Implementierungen können fehlerhaft sein (häufiger, als man denkt).
  • Beim Booten hat der Kernel vollen Zugriff auf den Speicher und kann dort schreiben, wo er es nicht sollte (z. B. seinen eigenen Code).
  • Die Fehlersuche bei Speicherlecks ist nicht einfach. Tools wie valgrind können nicht verwendet werden.
  • gdb kann mit QEMU und VMWare verwendet werden, aber der Kernel kann sich anders verhalten, wenn er auf einem anderen Emulator oder einer anderen virtuellen Maschine läuft. Außerdem kann es sein, dass diese Emulatoren gdb nicht unterstützen (Beispiel VirtualBox).
  • Einige Funktionen in der Unterstützung für gdb in QEMU oder VMWare fehlen (z.B. Record und Replay) und gdb kann manchmal sogar abstürzen.

All diese Probleme sind Gründe für die Verwendung einer speichersicheren Sprache, um sie so weit wie möglich zu vermeiden. Alles in allem ermöglichte die Verwendung von Rust im Kernel die Implementierung zahlreicher Sicherheitsvorkehrungen. Und ich glaube, dass dies bis heute die beste Entscheidung ist, die ich für dieses Projekt getroffen habe."

Die folgenden Funktionen sind derzeit in Maestro implementiert:

  • Terminal mit VGA-Textmodus und PS/2-Tastatur (mit Vorwärtskompatibilität zu USB, die von der Firmware des Motherboards verwaltet wird)
    • Teilweise Unterstützung von ANSI-Escape-Codes
  • Speicherzuweisung/virtueller Speicher
    • Buddy-Allokator
    • Interner Speicherallokator, der Ähnlichkeiten mit der Implementierung von dlmalloc aufweist und auf dem Buddy-Allokator aufbaut
  • Prozesse und Scheduler (round-robin)
    • POSIX-Signale
  • Aufzählung von PCI-Geräten
  • Dateien:
    • Mountpoints
    • IDE/PATA-Treiber
    • Dateisystem (vorerst nur ext2)
    • Festplattenpartitionen (MBR und GPT)
    • Virtuelle Dateisysteme (/tmp und /proc)
    • initramfs
  • Zeit/Uhr (RTC)
  • Linux-Systemaufrufe (etwa 30% sind derzeit implementiert)
  • Kernel-Module
  • ELF-Programme

Wo steht das Einmann-Projekt zurzeit?

Maestro ist ein monolithischer Kernel, der im Moment nur die x86-Architektur (in 32 Bit) unterstützt. Momentan sind 135 von 437 Linux-Systemaufrufen (etwa 31 %) mehr oder weniger implementiert. Das Projekt hat 48 800 Codezeilen in 615 Dateien (alle Repositories zusammen, gezählt mit dem Befehl cloc). Neben dem Kernel besteht das Betriebssystem derzeit aus den folgenden Komponenten:

  • Solfège: ein Boot-System und ein Daemon-Manager (ähnlich wie systemd, aber weniger aufwendig)
  • maestro-utils: Befehle für Systemdienstprogramme
  • blimp: ein Paketmanager

Bislang wurde die folgende Software von Drittanbietern getestet und funktioniert auf dem Betriebssystem:

  • musl (C-Standardbibliothek)
  • bash
  • Einige GNU coreutils Befehle wie ls, cat, mkdir, rm, rmdir, uname, whoami, etc...
  • neofetch (eine gepatchte Version, da das Original neofetch Maestro nicht kennt)

Selbst ausprobieren

Da sich das Projekt in einer sehr frühen Phase befindet, dürft ihr bezüglich Funktionalität und Stabilität nicht vier erwarten. Hier ist ein ISO-Image und hier die Anleitung zum selbst kompilieren. Ich habe versucht, das Image in GNOME-Boxes zu starten, bin aber nicht über den Startbildschirm hinausgekommen, was so aussah:

Nach Press ENTER passierte nichts mehr. Vielleicht habt ihr mehr Glück.

Quellen:
https://blog.lenot.re/
https://github.com/llenotre/maestro


GNU/Linux.ch ist ein Community-Projekt. Bei uns kannst du nicht nur mitlesen, sondern auch selbst aktiv werden. Wir freuen uns, wenn du mit uns über die Artikel in unseren Chat-Gruppen oder im Fediverse diskutierst. Auch du selbst kannst Autor werden. Reiche uns deinen Artikelvorschlag über das Formular auf unserer Webseite ein.

Gentoo vollzieht den Wandel: Binäre Pfade im Quellcode-Dschungel! Am 29. Dezember 2023 sorgte Gentoo Linux für Aufsehen, als verkündet wurde, dass der altbewährte Paketmanager Portage nicht mehr nur auf Quellcode setzt, sondern nun auch mit binären Paketen jongliert. Ein Schritt, der die Flexibilität steigert, da beide Welten nun harmonisch koexistieren können.



Warum diese Kursänderung? Um auf älteren Hardware-Plattformen effizienter zu agieren und für mehr Anwenderfreundlichkeit zu sorgen. Und hier kommt das Highlight: Ab sofort könnt ihr euch binäre Pakete direkt schnappen und sie ohne Umwege installieren. Aber: Für die meisten Architekturen beschränkt sich das auf das Grundsystem und wöchentliche Updates. Aber es bleibt festzuhalten: Bei amd64 und arm64 steht ein imposantes Paketarchiv von über 20 Gigabyte bereit – von LibreOffice über KDE Plasma bis zu Gnome und Docker. 

Die "Gory Details"

Die Ankündigung bietet detaillierte Anleitungen zur Integration von Binärpaketen in eine bestehende Gentoo-Installation. Die Einrichtung erfordert die Erstellung einer Konfigurationsdatei in /etc/portage/binrepos.conf/. Für neue Stages ist bereits eine passende gentoobinhost.conf vorhanden. Die Installation erfolgt über "emerge -uDNavg @world".

Für AMD64-Pakete werden Kompilierungseinstellungen wie CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe" verwendet. Die verfügbaren Use-Flag-Einstellungen entsprechen den Profilen amd64/17.1/nomultilib, amd64/17.1/desktop/plasma/systemd und amd64/17.1/desktop/gnome/systemd.

Arm64-Pakete verwenden CFLAGS="-O2 -pipe" und haben entsprechende Use-Flag-Einstellungen für Profile wie arm64/17.0 (openrc), arm64/17.0/desktop/plasma/systemd und arm64/17.0/desktop/gnome/systemd.

Die Q&A klärt Unklarheiten zur Signatur von Paketen und betont, dass Benutzer selbst kompilieren können, wenn sie spezifische Optimierungen wünschen. Bei langsamen Downloads wird empfohlen, lokale Mirror zu nutzen, wobei die kryptografische Signatur standesgemäße Sicherheit bietet.

Es wird erläutert, wie man mit Fehlern bei der Signaturverifikation umgeht und dass Benutzer, die ihre eigenen Binärpakete erstellen, einen Signaturschlüssel einrichten müssen. Es gibt auch Hinweise zur Behebung von Problemen, zur Nutzung auf einem "merged-usr"-System und man klärt auf, dass die Binärpakete nur mit bestimmten Profilversionen kompatibel sind.

Quelle:

https://www.gentoo.org/news/2023/12/29/Gentoo-binary.html


GNU/Linux.ch ist ein Community-Projekt. Bei uns kannst du nicht nur mitlesen, sondern auch selbst aktiv werden. Wir freuen uns, wenn du mit uns über die Artikel in unseren Chat-Gruppen oder im Fediverse diskutierst. Auch du selbst kannst Autor werden. Reiche uns deinen Artikelvorschlag über das Formular auf unserer Webseite ein.

MX Linux 23.1 RPi Respin ist gerade erschienen. Neben Ubuntu gibt es damit das zweite "große" Desktop-System, das auf einem Raspberry Pi läuft. Und nach einigen Test-Tagen muss ich sagen: Die Entwickler haben hervorragende Arbeit geleistet.



MX Linux nimmt im Ranking von DistroWatch seit langer Zeit den ersten Platz ein, gefolgt von Linux Mint und den anderen bekannten Namen.

Das Ranking bezieht sich zwar nur auf das Interesse an einer bestimmten Distro und sagt nichts über die Zahl der tatsächlich genutzten Installationen aus. Aber man wird MX Linux sicher zu den sehr beliebten und ausgereiften Systemen zählen dürfen. Durch die recht genügsame Xfce-Umgebung ist MX Linux zudem recht gut geeignet für schwächere oder ältere Computer.

Im Begrüßungstext für neue Anwender heißt es daher:

MX-23 RPi Respin vereint Debian 12 (Bookworm), Raspberry Pi OS und die Flaggschiff-Xfce-Version von MX Linux. Es wurde auf Pi 4, Pi 400, Pi 5 sowie Orange Pi 5 entwickelt und getestet.

Besonderheiten der Version für den Raspberry Pi

  • Als Standardbrowser wird Chromium statt Firefox während der Erst-Installation eingerichtet (Firefox lässt sich aber problemlos nachrüsten). Chromium startet auf dem Raspberry Pi in der Regel etwas schneller.
  • Die Benutzereinrichtung erfolgt beim Start.
  • Auf ein Live-System wurde verzichtet (bei den MX-Tools fehlt auch das Snapshot-Werkzeug).
  • Die Anzahl der vorinstallierten Anwendungen ist geringer, kann aber nach eigenen Wünschen später ergänzt werden.

Der Desktop verlinkt ein kurzes Erklär-Video zur Einführung in die Raspberry Pi-Version und eine Wiki-Seite mit kurzen Tipps für Einsteiger. Weiterhin finden sich in den Menüs eine Reihe von Programmen, die man vom Raspberry Pi OS her kennt:

  • Raspberry Pi - Konfiguration
  • Raspberry Pi - Dokumentation
  • Raspberry Pi - Imager
  • SD Card Copier usw.

Wie schlägt sich diese Version nun im Vergleich zum hauseigenen Raspberry Pi OS?

Bereits für den 4-er gab es nach kurzer Zeit ARM-kompatible Versionen von Ubuntu bis zu Manjaro. Die "funktionierten" auf den kleinen Pi-Geräten zwar auch einigermaßen, waren aber speicherhungriger und träger als das Pi-OS. Ich habe damals fünf oder sechs ausprobiert - und bin immer wieder zurück zu Raspberry Pi OS. Das System ist zwar optisch kein Hingucker und funktional eher an Basics orientiert - aber von LibreOffice bis hin zu Docker-Anwendungen läuft ja alles, was man im Alltag so benötigt. Und die Bookworm-64-Variante für den 5-er ist nun wirklich derart flott geworden, dass ich ausgesprochen zufrieden mit ihr bin.

Daher war ich vor der Installation von MX Linux skeptisch.

Meine Testumgebung:

  • Raspberry Pi 5 mit 8 GB
  • Raspberry Pi Originalgehäuse mit "Lüfter im Deckel"
  • Raspberry Pi USB-C Netzteil (bis 27 W)

Der Start von MX Linux geschieht zügig, im Arbeitsspeicher belegt es 775 MB.

WLAN wird sofort gefunden, Bluetooth läuft, Bildschirmanzeigen tadellos. Netzwerk-Drucker und -Scanner werden auf Anhieb gefunden. Die Anwendungen aus der MX-Toolbox funktionieren ebenfalls - von der Nutzerverwaltung bis zur Samba-Konfiguration.

Programmaufrufe, Webseiten, Installation von neuen Programmen usw. - alles läuft ausgesprochen flott. Einen Unterschied zum OS von Raspberry Pi konnte ich nicht wahrnehmen. Was YouTube oder Streaming-Dienste betrifft, so haben beide Systeme das gleiche Problem: In hohen Auflösungen laufen die Videos nicht rund, aber etwas niedriger eingestellt ist dann auch dieser Bereich einigermaßen okay. Videokonferenzen z.B. mit Jitsi laufen hingegen recht gut. Ein großer Pluspunkt ist die übersichtliche Darstellung der verschiedenen Paketquellen. Von der Empfehlungsrubrik für Einsteiger bis zu Flatpaks wird ein großer Kosmos von Möglichkeiten eröffnet.

Neugierig war ich auf das Lüfter-Management - hier hatte wohl die Ubuntu-Ausgabe für den Raspberry Pi Probleme (der Lüfter lief ununterbrochen). Aber auch hier war alles in Ordnung: Während der Alltagsnutzung, z.B. bei der Nutzung von Office-Anwendungen, blieb es meist im 55 bis 58-Grad-Bereich. Unter Belastung, zwei Videos gleichzeitig plus zwei unterschiedliche Browser plus 10 Browser-Tabs, wurde der Lüfter zwar eingeschaltet, war aber kaum zu hören. Höher als 68 Grad kam ich bei dieser Belastung nicht, danach ging es innerhalb von Sekunden wieder auf unter 60 Grad.

Ich werde das System noch einige Tage testen. Wenn es sich bei allen Anforderungen als stabil erweist, steige ich zumindest auf dem 5-er auf MX Linux um. Aber auch auf einem 4-er oder 400-er sollte sich ein Test von MX Linux lohnen.

Quellen:
https://mxlinux.org/blog/mx-23-1-raspberry-pi-os-respin/
https://mxlinux.org/wiki/rpi-tips/
https://distrowatch.com/dwres.php?resource=popularity)


GNU/Linux.ch ist ein Community-Projekt. Bei uns kannst du nicht nur mitlesen, sondern auch selbst aktiv werden. Wir freuen uns, wenn du mit uns über die Artikel in unseren Chat-Gruppen oder im Fediverse diskutierst. Auch du selbst kannst Autor werden. Reiche uns deinen Artikelvorschlag über das Formular auf unserer Webseite ein.

3. Januar 2024

Manchmal möchte ich mein Auditorium über eine Aussage, eine Theorie oder einen anderen Gedanken nachdenken lassen. Deshalb habe ich mir für meine Folien einen kleinen Timer in Javascript gebaut, der eine gewünschte Anzahl an Minuten oder Sekunden herunterzählt.

Javascript

Ich erstelle die Datei timer.js und gebe ihr folgenden Inhalt:

// inspired by Mateusz Rybczonec

const FULL_DASH_ARRAY = 283;
const WARNING_THRESHOLD = 10;
const ALERT_THRESHOLD = 5;

const COLOR_CODES = {
  info: {
    color: "green"
  },
  warning: {
    color: "orange",
    threshold: WARNING_THRESHOLD
  },
  alert: {
    color: "red",
    threshold: ALERT_THRESHOLD
  }
};

// Funktion zur Initialisierung des Timers in einem Container
function initializeTimer(containerId, timeLimit) {
  let timePassed = 0;
  let timeLeft = timeLimit;
  let timerInterval = null;
  let remainingPathColor = COLOR_CODES.info.color;

  // Dynamisches Erstellen des Timer-HTML-Inhalts für jeden Container
  document.getElementById(containerId).innerHTML = `
    
id="${containerId}-path-remaining" stroke-dasharray="283" class="base-timer__path-remaining ${remainingPathColor}" d=" M 50, 50 m -45, 0 a 45,45 0 1,0 90,0 a 45,45 0 1,0 -90,0 " > ${formatTime( timeLeft )}
`; startTimer(); // Startet den Timer für einen bestimmten Container function startTimer() { timerInterval = setInterval(() => { timePassed = timePassed += 1; timeLeft = timeLimit - timePassed; document.getElementById(`${containerId}-label`).innerHTML = formatTime( timeLeft ); setCircleDasharray(); setRemainingPathColor(timeLeft); if (timeLeft === 0) { onTimesUp(); } }, 1000); } // Funktion, die aufgerufen wird, wenn der Timer abgelaufen ist function onTimesUp() { clearInterval(timerInterval); } // Funktion zur Formatierung der verbleibenden Zeit function formatTime(time) { const minutes = Math.floor(time / 60); let seconds = time % 60; if (seconds < 10) { seconds = `0${seconds}`; } return `${minutes}:${seconds}`; } // Funktion zur Festlegung der Farbe des verbleibenden Pfades basierend auf der verbleibenden Zeit function setRemainingPathColor(timeLeft) { const { alert, warning, info } = COLOR_CODES; const pathId = `${containerId}-path-remaining`; if (timeLeft <= alert.threshold) { document.getElementById(pathId).classList.remove(warning.color); document.getElementById(pathId).classList.add(alert.color); } else if (timeLeft <= warning.threshold) { document.getElementById(pathId).classList.remove(info.color); document.getElementById(pathId).classList.add(warning.color); } } // Funktion zur Berechnung des Anteils der verstrichenen Zeit function calculateTimeFraction() { const rawTimeFraction = timeLeft / timeLimit; return rawTimeFraction - (1 / timeLimit) * (1 - rawTimeFraction); } // Funktion zur Festlegung der Strichlänge des verbleibenden Pfades basierend auf dem Anteil der verstrichenen Zeit function setCircleDasharray() { const circleDasharray = `${( calculateTimeFraction() * FULL_DASH_ARRAY ).toFixed(0)} 283`; document .getElementById(`${containerId}-path-remaining`) .setAttribute("stroke-dasharray", circleDasharray); } }

quarto Dokument

Innerhalb des quarto-Dokuments kann ein Timer wie folgt eingebunden werden:

<div id="UNIQUE-ID">div>
<script src="timer.js">script>
<script>
    document.addEventListener("DOMContentLoaded", function () {
        initializeTimer("UNIQUE-ID", SECONDS); 
    });
script>

…wobei UNIQUE-ID an beiden Stellen durch eine eindeutige ID und SECONDS durch die gewünschte Anzahl an Sekunden ersetzt werden müssen.

Ein Beispiel für einen 4minütigen Timer könnte so aussehen:

Please think about this for 4 minutes.
<div id="4minWaiting">div>
<script src="timer.js">script>
<script>
    document.addEventListener("DOMContentLoaded", function () {
        initializeTimer("4minWaiting", 240); 
    });
script>

Es können beliebig viele Timer verwendet werden, solange immer eine eindeutige UNIQUE-ID verwendet wird.

Countdown-Timer im Einsatz

Quarto-Extension

Mittlerweile gibt es eine eigene kleine Extension, über die der Timer the quarto way installiert werden kann:

$ quarto add produnis/quarto-timer

Viel Spass damit!

Weblinks




kommentiere per [matrix]:

Manchmal möchte ich mein Auditorium über eine Aussage, eine Theorie oder einen anderen Gedanken nachdenken lassen. Deshalb habe ich mir für meine Folien einen kleinen Timer in Javascript gebaut, der eine gewünschte Anzahl an Minuten oder Sekunden herunterzählt.

Javascript

Ich erstelle die Datei timer.js und gebe ihr folgenden Inhalt:

// inspired by Mateusz Rybczonec

const FULL_DASH_ARRAY = 283;
const WARNING_THRESHOLD = 10;
const ALERT_THRESHOLD = 5;

const COLOR_CODES = {
  info: {
    color: "green"
  },
  warning: {
    color: "orange",
    threshold: WARNING_THRESHOLD
  },
  alert: {
    color: "red",
    threshold: ALERT_THRESHOLD
  }
};

// Funktion zur Initialisierung des Timers in einem Container
function initializeTimer(containerId, timeLimit) {
  let timePassed = 0;
  let timeLeft = timeLimit;
  let timerInterval = null;
  let remainingPathColor = COLOR_CODES.info.color;

  // Dynamisches Erstellen des Timer-HTML-Inhalts für jeden Container
  document.getElementById(containerId).innerHTML = `
    <div class="base-timer">
      <svg class="base-timer__svg" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
        <g class="base-timer__circle">
          <circle class="base-timer__path-elapsed" cx="50" cy="50" r="45"></circle>
          <path
            id="${containerId}-path-remaining"
            stroke-dasharray="283"
            class="base-timer__path-remaining ${remainingPathColor}"
            d="
              M 50, 50
              m -45, 0
              a 45,45 0 1,0 90,0
              a 45,45 0 1,0 -90,0
            "
          ></path>
        </g>
      </svg>
      <span id="${containerId}-label" class="base-timer__label">${formatTime(
        timeLeft
      )}</span>
    </div>
  `;

  startTimer();

  // Startet den Timer für einen bestimmten Container
  function startTimer() {
    timerInterval = setInterval(() => {
      timePassed = timePassed += 1;
      timeLeft = timeLimit - timePassed;
      document.getElementById(`${containerId}-label`).innerHTML = formatTime(
        timeLeft
      );
      setCircleDasharray();
  

    setRemainingPathColor(timeLeft);

      if (timeLeft === 0) {
        onTimesUp();
      }
    }, 1000);
  }

  // Funktion, die aufgerufen wird, wenn der Timer abgelaufen ist
  function onTimesUp() {
    clearInterval(timerInterval);
  }

  // Funktion zur Formatierung der verbleibenden Zeit
  function formatTime(time) {
    const minutes = Math.floor(time / 60);
    let seconds = time % 60;

    if (seconds < 10) {
      seconds = `0${seconds}`;
    }

    return `${minutes}:${seconds}`;
  }

  // Funktion zur Festlegung der Farbe des verbleibenden Pfades basierend auf der verbleibenden Zeit
  function setRemainingPathColor(timeLeft) {
    const { alert, warning, info } = COLOR_CODES;
    const pathId = `${containerId}-path-remaining`;

    if (timeLeft <= alert.threshold) {
      document.getElementById(pathId).classList.remove(warning.color);
      document.getElementById(pathId).classList.add(alert.color);
    } else if (timeLeft <= warning.threshold) {
      document.getElementById(pathId).classList.remove(info.color);
      document.getElementById(pathId).classList.add(warning.color);
    }
  }

  // Funktion zur Berechnung des Anteils der verstrichenen Zeit
  function calculateTimeFraction() {
    const rawTimeFraction = timeLeft / timeLimit;
    return rawTimeFraction - (1 / timeLimit) * (1 - rawTimeFraction);
  }

  // Funktion zur Festlegung der Strichlänge des verbleibenden Pfades basierend auf dem Anteil der verstrichenen Zeit
  function setCircleDasharray() {
    const circleDasharray = `${(
      calculateTimeFraction() * FULL_DASH_ARRAY
    ).toFixed(0)} 283`;
    document
      .getElementById(`${containerId}-path-remaining`)
      .setAttribute("stroke-dasharray", circleDasharray);
  }
}

quarto Dokument

Innerhalb des quarto-Dokuments kann ein Timer wie folgt eingebunden werden:

<div id="UNIQUE-ID"></div>
<script src="timer.js"></script>
<script>
    document.addEventListener("DOMContentLoaded", function () {
        initializeTimer("UNIQUE-ID", SECONDS); 
    });
</script>

…wobei UNIQUE-ID an beiden Stellen durch eine eindeutige ID und SECONDS durch die gewünschte Anzahl an Sekunden ersetzt werden müssen.

Ein Beispiel für einen 4minütigen Timer könnte so aussehen:

Please think about this for 4 minutes.
<div id="4minWaiting"></div>
<script src="timer.js"></script>
<script>
    document.addEventListener("DOMContentLoaded", function () {
        initializeTimer("4minWaiting", 240); 
    });
</script>

Es können beliebig viele Timer verwendet werden, solange immer eine eindeutige UNIQUE-ID verwendet wird.

Countdown-Timer im Einsatz

Quarto-Extension

Mittlerweile gibt es eine eigene kleine Extension, über die der Timer the quarto way installiert werden kann:

$ quarto add produnis/quarto-timer

Viel Spass damit!

Weblinks




kommentiere per [matrix]:

2. Januar 2024

Mit quarto können über revealjs schöne HTML-Folien erstellt werden.

Über die YAML-Parameter

format: 
  revealjs: 
    embed-resources: true

wird eine HTML-Datei erzeugt, die alle benötigten Daten (z.B Medien- oder Scriptdateien) enthält. Der Vorteil liegt auf der Hand: eine solche HTML-Datei läuft auch offline, und ich muss mich nicht um weitere Ressourcen kümmern. Auf Konferenzen beispielsweise läuft eine solche HTML-Datei direkt auf (fast) jedem Gerät.

Möchte man in den Folien lokale Schriftdateien (Fonts) verwenden, so können auch diese in 3 Schritten in die HTML-Datei integriert werden.

Schritt 1: Font-Dateien in resources-Liste

In diesem Beispiel möchte ich die Schrift Vollkorn als Hauptschrift und Roboto Mono als Monotype verwenden. Von der Webseite habe ich die woff2-Dateien heruntergeladen, und innerhalb meines Quartoprojektes in den Unterordner “fonts” gespeichert. Um sicherzustellen, dass diese Dateien auch exportiert werden, gebe ich sie im YAML-Header expliziet unter resources an:

format: 
  revealjs: 
    embed-resources: true
    resources:
      - fonts/Roboto-Mono-regular.woff2
      - fonts/Vollkorn-Bold.woff2
      - fonts/Vollkorn-BoldItalic.woff2
      - fonts/Vollkorn-Italic.woff2
      - fonts/Vollkorn-Regular.woff2

Schritt 2: SCSS-Datei

Damit die Datei später erkannt wird, müssen wir sie mittels einer SCSS-Datei quarto bekannt machen. Es bietet sich dabei an, für jede lokale Schrift, die verwendet werden soll, eine eigene SCSS-Datei anzulegen.

Monospace

Für Roboto Mono ist dies schnell erledigt. Ich nenne die Datei fontrobotomono.scss und gebe ihr folgenden Inhalt:

/*-- scss:defaults --*/
$font-family-monospace: "Roboto Mono" !default;

@font-face {
  font-family: 'Roboto Mono';
  src: url('../../../../../fonts/Roboto-Mono-regular.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
}

Beachten Sie den relativen Pfad zu der woff2-Datei. Quarto benötigt 5x ../, um sich später im richtigen Verzeichnis mit den Schriften wiederzufinden.

Sans Serif

Für die Vollkorn-Fonts erzeuge ich die Datei fontvollkorn.scss mit folgendem Inhalt:

/*-- scss:defaults --*/
$font-family-sans-serif: "Vollkorn" !default;

@font-face {
  font-family: 'Vollkorn';
  src: url('../../../../../fonts/Vollkorn-Regular.woff2') format('woff2');
  font-weight: normal; // Black
  font-style: normal;
}

@font-face {
  font-family: 'Vollkorn';
  src: url('../../../../../fonts/Vollkorn-Italic.woff2') format('woff2');
  font-weight: normal; // Black
  font-style: italic;
}

@font-face {
  font-family: 'Vollkorn';
  src: url('../../../../../fonts/Vollkorn-Bold.woff2') format('woff2');
  font-weight: bold;
  font-style: normal;
}

@font-face {
  font-family: 'Vollkorn';
  src: url('../../../../../fonts/Vollkorn-BoldItalic.woff2') format('woff2');
  font-weight: bold;
  font-style: italic;
}

Beachten Sie auch hier den relativen Pfad zu den woff2-Dateien. Quarto benötigt 5x ../, um sich später im richtigen Verzeichnis mit den Schriften wiederzufinden.

Schritt 3: SCSS-Datei einbinden

Nun können wir im YAML-Header die SCSS-Dateien über den theme-Parameter einbinden, und somit die Hauptschrift auf Vollkorn, und Monospace auf Roboto Mono umzustellen.

format: 
  revealjs: 
    embed-resources: true
    resources:
      - fonts/Roboto-Mono-regular.woff2
      - fonts/Vollkorn-Bold.woff2
      - fonts/Vollkorn-BoldItalic.woff2
      - fonts/Vollkorn-Italic.woff2
      - fonts/Vollkorn-Regular.woff2
    theme: [default, fontvollkorn.scss, fontrobotomono.scss]

Und schon ist die Hauptschrift in Vollkorn, und Monospace ist Roboto Mono, und die Fontdateien sind in der HTML-Datei enthalten.

Weblinks




kommentiere per [matrix]:

Mit quarto können über revealjs schöne HTML-Folien erstellt werden.

Über die YAML-Parameter

format: 
  revealjs: 
    embed-resources: true

wird eine HTML-Datei erzeugt, die alle benötigten Daten (z.B Medien- oder Scriptdateien) enthält. Der Vorteil liegt auf der Hand: eine solche HTML-Datei läuft auch offline, und ich muss mich nicht um weitere Ressourcen kümmern. Auf Konferenzen beispielsweise läuft eine solche HTML-Datei direkt auf (fast) jedem Gerät.

Möchte man in den Folien lokale Schriftdateien (Fonts) verwenden, so können auch diese in 3 Schritten in die HTML-Datei integriert werden.

Schritt 1: Font-Dateien in resources-Liste

In diesem Beispiel möchte ich die Schrift Vollkorn als Hauptschrift und Roboto Mono als Monotype verwenden. Von der Webseite habe ich die woff2-Dateien heruntergeladen, und innerhalb meines Quartoprojektes in den Unterordner “fonts” gespeichert. Um sicherzustellen, dass diese Dateien auch exportiert werden, gebe ich sie im YAML-Header expliziet unter resources an:

format: 
  revealjs: 
    embed-resources: true
    resources:
      - fonts/Roboto-Mono-regular.woff2
      - fonts/Vollkorn-Bold.woff2
      - fonts/Vollkorn-BoldItalic.woff2
      - fonts/Vollkorn-Italic.woff2
      - fonts/Vollkorn-Regular.woff2

Schritt 2: SCSS-Datei

Damit die Datei später erkannt wird, müssen wir sie mittels einer SCSS-Datei quarto bekannt machen. Es bietet sich dabei an, für jede lokale Schrift, die verwendet werden soll, eine eigene SCSS-Datei anzulegen.

Monospace

Für Roboto Mono ist dies schnell erledigt. Ich nenne die Datei fontrobotomono.scss und gebe ihr folgenden Inhalt:

/*-- scss:defaults --*/
$font-family-monospace: "Roboto Mono" !default;

@font-face {
  font-family: 'Roboto Mono';
  src: url('../../../../../fonts/Roboto-Mono-regular.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
}

Beachten Sie den relativen Pfad zu der woff2-Datei. Quarto benötigt 5x ../, um sich später im richtigen Verzeichnis mit den Schriften wiederzufinden.

Sans Serif

Für die Vollkorn-Fonts erzeuge ich die Datei fontvollkorn.scss mit folgendem Inhalt:

/*-- scss:defaults --*/
$font-family-sans-serif: "Vollkorn" !default;

@font-face {
  font-family: 'Vollkorn';
  src: url('../../../../../fonts/Vollkorn-Regular.woff2') format('woff2');
  font-weight: normal; // Black
  font-style: normal;
}

@font-face {
  font-family: 'Vollkorn';
  src: url('../../../../../fonts/Vollkorn-Italic.woff2') format('woff2');
  font-weight: normal; // Black
  font-style: italic;
}

@font-face {
  font-family: 'Vollkorn';
  src: url('../../../../../fonts/Vollkorn-Bold.woff2') format('woff2');
  font-weight: bold;
  font-style: normal;
}

@font-face {
  font-family: 'Vollkorn';
  src: url('../../../../../fonts/Vollkorn-BoldItalic.woff2') format('woff2');
  font-weight: bold;
  font-style: italic;
}

Beachten Sie auch hier den relativen Pfad zu den woff2-Dateien. Quarto benötigt 5x ../, um sich später im richtigen Verzeichnis mit den Schriften wiederzufinden.

Schritt 3: SCSS-Datei einbinden

Nun können wir im YAML-Header die SCSS-Dateien über den theme-Parameter einbinden, und somit die Hauptschrift auf Vollkorn, und Monospace auf Roboto Mono umzustellen.

format: 
  revealjs: 
    embed-resources: true
    resources:
      - fonts/Roboto-Mono-regular.woff2
      - fonts/Vollkorn-Bold.woff2
      - fonts/Vollkorn-BoldItalic.woff2
      - fonts/Vollkorn-Italic.woff2
      - fonts/Vollkorn-Regular.woff2
    theme: [default, fontvollkorn.scss, fontrobotomono.scss]

Und schon ist die Hauptschrift in Vollkorn, und Monospace ist Roboto Mono, und die Fontdateien sind in der HTML-Datei enthalten.

Weblinks




kommentiere per [matrix]:

Mit dem AI Guide stellt Mozilla ein kollobaratives Nachschlagewerk zum Thema Künstliche Intelligenz bereit, welches Entwicklern den Einstieg in die KI-Branche erleichtern soll.

Bereits im November hatte Mozilla eine erste Version vom Mozilla AI Guide angekündigt. Im Rahmen der Innovation Week im Dezember hat das Mozilla Innovation Team eine aktualisierte Fassung veröffentlicht.

Beim AI Guide handelt es sich um ein Nachschlagewerk mit Fokus auf Entwicklern, welches Grundlagen über Künstliche Intelligenz (KI), Sprachmodelle und mehr erklärt. Dabei ist die Community explizit eingeladen, Beiträge beizusteuern, um den Guide zu erweitern.

Mozilla AI Guide

Der Beitrag Mozilla AI Guide: Nachschlagewerk zum Thema KI erschien zuerst auf soeren-hentzschel.at.

1. Januar 2024

Mit MemoryCache hat das Mozilla Innovation Team ein weiteres KI-Experiment vorgestellt. Dieses soll aus vom Benutzer bereitgestellten Daten wie besuchten Websites lernen.

Im Rahmen der Innovation Week im Dezember hat das Mozilla Innovation Team mehrere Projekte aus dem Bereich der Künstlichen Intelligenz vorgestellt, darunter mit Solo einen KI-basierten Website-Builder und mit llamafile eine revolutionäre Möglichkeit, einen LLM-Chatbot in einer einzigen Datei auszuliefern, welche auf verschiedenen Betriebssystemen einfach gestartet werden kann und im Gegensatz zu ChatGPT & Co. lokal auf dem Computer läuft. Ein weiteres Projekt ist MemoryCache.

Die Idee von MemoryCache ist es, einen lokalen KI-Assistenten bereitzustellen, welcher nicht etwa aus großen Modellen, sondern aus vom Anwender selbst bereitgestellten und kategorisierbaren Informationen lernt und dann beispielsweise bei der Recherche oder beim Brainstorming hilft, scheinbar nicht zusammenhängende Themen miteinander zu verbinden und so neue Einsichten und Erkenntnisse zu gewinnen. So können zum Beispiel besuchte Websites gespeichert werden, aber auch Dateien, die manuell hinzugefügt werden. Der große Datenschutz-Vorteil, wie auch schon bei llamafile: Alles findet lokal auf dem eigenen Computer statt, es werden keine Daten an irgendeinen Dritten weitergeleitet.

Das folgende Bild zeigt ein Mockup einer möglichen zukünftigen Oberfläche:

Mozilla MemoryCache Mockup

MemoryCache befindet sich noch in einem früheren experimentellen Status. Dementsprechend kompliziert ist die Ausführung zu diesem Zeitpunkt noch. Neben einem lokalen Setup einer älteren Version von PrivateGPT sowie einem konfigurierten Symlink auf dem System wird derzeit noch eine Firefox-Erweiterung sowie ein angepasster Firefox-Build benötigt. Zu einem späteren Zeitpunkt soll das idealerweise einfacher funktionieren.

Der Beitrag MemoryCache: Lokaler KI-Assistent erschien zuerst auf soeren-hentzschel.at.