staging.inyokaproject.org

9. Januar 2024

  1. Experiment: Pixel Tablet als Notebook-Ersatz
  2. Google Pixel Tablet als Notebook-Ersatz: Die Hardware
  3. Google Pixel Tablet als Notebook-Ersatz: Erste Erfahrungen

In meinem persönlichen Jahresrückblick hatte ich bereits über die Überlegungen berichtet, mein Notebook zugunsten eines Pixel Tablet zu ersetzen. Ich bin selbst noch nicht ganz davon überzeugt, aber möchte es gerne mal ausprobieren.

Die Überlegung basiert auf zwei komplementären Beobachtungen:

  1. Ich habe beruflich mindestens einmal im Jahr mit größeren Gruppen von Studierenden zu tun. Dabei stelle ich seit einiger Zeit fest, dass immer weniger klassische Laptops verwendet werden und immer mehr mit Tablets kommen. Manche Leute reagieren darauf mit einer mürrischen „Junge-Leute-haben-keine-Ahnung“-Attitüde. Ich selbst hinterfrage durch solche Erfahrungen immer wieder mein eigenes Nutzungsverhalten. Brauche ich wirklich ein Notebook oder bin ich es nur gewohnt?
  2. Ich habe mir einen All-in-One-PC für zu Hause gekauft. Mein Notebook liegt so viel ungenutzt herum, dass vor kurzem sogar der komplette Akku leer war, ohne dass ich es gemerkt habe. Das hat zwei Nebeneffekte. Erstens sinkt mein Anspruch an das mobile Gerät, weil ich vieles nur noch auf meinem großen PC erledige und die Daten auch nicht mehr synchronisiere. Zweitens entsteht ein gewisses Missverhältnis zwischen dem Pflegeaufwand einer Linux-Installation und dem Nutzen. Hier werden wieder einige mit den Augen rollen, aber keine Linux-Installation ist so wartungsarm wie mein GrapheneOS auf dem Smartphone.

Das finanzielle Risiko dieses Experiments war für mich tragbar, da wir uns sowieso ein Tablet für den Urlaub etc. anschaffen wollten. Schließlich nehme ich mein Notebook nicht mit in den Urlaub, um Touren zu planen. Mit dem Smartphone wird uns das schnell zu „fummelig“. Wenn das Experiment also scheitert und ich weiterhin ein vollwertiges Notebook brauche, dann wird das Google Pixel Tablet nur noch für solche Dinge zum Einsatz kommen. Ohne dieses Experiment hätte ich mir aber wahrscheinlich ein günstigeres iPad aus dem Vorjahr gekauft.

Das Pixel Tablet hat eher durchwachsene Bewertungen erhalten (z.B. Test bei Golem), aber es ist leider für mich das einzige in Frage kommende Tablet. Apples iPads sind immer noch das Maß der Dinge, aber integrieren sich halt überhaupt nicht in mein Geräte-Ökosystem. Alternativen gibt es nur mit Android. Der Mobile-Zug bei Linux ist meiner Ansicht nach abgefahren. Die Herstellerversionen von Android würde ich aber niemals nutzen, weil mir da zu viele Daten an Google und den Gerätehersteller abfließen. LineageOS halte ich hinsichtlich der Sicherheit für eine fragwürdige Alternative und der Support für die Hardware ist ein reines Glücksspiel. Das einzige für mich in Frage kommende Aftermarket-System ist GrapheneOS und das unterstützt halt nur Pixel-Geräte.

Bei der Zusammenstellung schielt man schon neidisch auf die Apple-Kundschaft. Die bekommen ein iPad Pro gleich mit Folio Keyboard mitgeliefert. Will man das Pixel Tablet vergleichbar nutzen, muss man sich die einzelnen Komponenten zusammensuchen. Das ist zwar etwas günstiger als die Apple-Lösung, aber für echte Budgetpreise darf man auch nicht zum Pixel greifen, sondern muss sich ein Huawei oder ähnliches suchen, das man dann mit seinen Daten bezahlt. Ich benutze diesen Blog nicht als Werbeplattform, daher verzichte ich auf meine persönlichen Empfehlungen für ein Cover und eine kleine Tastatur. Diese Defizite haben Golem zu der Einschätzung veranlasst, dass das Pixel eher als Sofa-Tablet konzipiert ist. Man muss es aber nicht so benutzen.

Die Installation von GrapheneOS ist sehr gut beschrieben und verläuft völlig reibungslos. Die Unterstützung des Pixel Tablet entspricht derjenigen von Google. Das betrifft meines Erachtens nach zwei wesentliche Modifikationen. Es gibt ein Dock am unteren Bildschirmrand und der Launcher als Startmenü-Ersatz, wenn man vom unteren Bildschirmrand hinein wischt.

Da ich GrapheneOS auf meinem Smartphone benutze, waren mir die Reichweiten und Grenzen von F-Droid natürlich bewusst. Auf meinem mobilen Begleiter brauche ich nicht viel. Browser, Mail, Kalender, ein paar Synology Apps und die Möglichkeit Office-Dateien anzuzeigen und ggf. zu bearbeiten. Das ist im Prinzip alles.

Im täglichen Betrieb merkt man aber leider, dass Google mit Android bisher keinen Fokus auf Tablets gelegt hat. Obwohl es seit einigen Jahren die beliebten Tablets von Samsung gibt, sind viele Apps schlecht an das große Format angepasst. Einige starten sogar in einem kleineren Format, andere nutzen den Platz schlecht aus.

Zur Veranschaulichung zwei exemplarische Apps. Zuerst die in GrapheneOS integrierte App zur Dateiverwaltung:

Hier erscheint die in der Smartphone-Variante nur per Wischgeste einblendbare Sidebar dauerhaft im größeren Format und die App kann im Tablet-Format sinnvoll genutzt werden. Weniger Funktionen als z.B. in der Dateiverwaltung von GNOME werden dem Nutzer auch nicht geboten.

Ein negatives Beispiel ist K9Mail:

Das Bild zeigt einen Screenshot von K9-Mail in der Tablet-Ansicht

Es wird lediglich die Nachrichtenliste eingeblendet. Es wäre genug Platz um gleichzeitig die Ordnerliste und/oder die E-Mail-Vorschau zu zeigen, aber dies wird von der App nicht unterstützt.


Edit: K9Mail kann doch auch die Nachrichtenvorschau anzeigen. Mehr in den Kommentaren.

Der Artikel Experiment: Pixel Tablet als Notebook-Ersatz erschien zuerst auf Curius

Ein Vortrag von Lorna Mitchell auf dem emf2022 Kongress über die aktuelle Landschaft der der Opensource Datenbanken. Eine rassante und guter Einblick was es alles gibt und welche Funktionalitäten die einzelnen Datenbanken besonders macht.

Every year we collect more data than before, and the tools we use to manage that data are evolving to accommodate our changing needs – but it can be difficult to keep up with all the innovations! This session will give you a tour of what’s happening in open source databases, from someone who lives the adventures of open source data in her day job. You will travel from the well-trodden paths of relational databases, through the leafy glades of time series, to the landmarks of search and document databases. This session is recommended for people with an interest in software who want to learn about the overall trends, license changes, rising stars, and which database technologies are here to stay.

Video https://media.ccc.de/v/emf2022-325-landscape-of-open-source-databases

Views: 0

The post Landscape of Open Source Databases first appeared on Dem hoergen Blog.

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.

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: <none>

Öffnen

  • tabnew <NAME> Neues Tab (Buffer)
  • tabf <NAME> Find – sucht im aktuellen Verzeichnis nach einer Datei. Tabulator Completion funktioniert
  • tab <VIM BEFEHL> ö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=<NUMMER> oder in der vimrc mit set tabpagemax=<NUMMER>

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 <NUMMER> verschiebt das aktuelle Tab aun die Postion von NUMMER. Fängt bei 0 an !

Weitere Infos

  • :set showtabline=<NUMMER> 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: 28

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

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 (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: 21

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.

4. 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 = `
    <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]:

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]:

3. 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]:

2. Januar 2024

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.

31. Dezember 2023

Es ist der 31.12.2023 und somit wird es wieder Zeit für den traditionellen Jahresrückblick. Dieses Jahr dominierten zwei Buchstaben: KI. Die Veröffentlichung von ChatGPT erfolgte zwar kurz vor 2023, in diesem Jahr wurden allerdings die Auswirkungen sichtbar. Ich muss sagen, dass es lange kein Werkzeug gab, an dem ich so viel Experimentierfreude erleben konnte.

Dabei ist die Mensch-Maschine-Schnittstelle besonders spannend. Die natürlichsprachliche Interaktion verbessert nicht nur die Zugänglichkeit, sondern erhöht auch die Interoperabilität: Das Werkzeug kann nicht nur die Aufgabe verstehen, sondern die Ergebnisse in der gewünschten Form darstellen. Schreibe ich eine Software, erfüllt sie nur einen Zweck. ChatGPT kann besonders einfach an neue Aufgabenbereiche angepasst werden. Man muss nicht einmal im klassischen Sinne "programmieren". Somit wird die Arbeit mit dem Computer auf eine ganz neue Stufe gehoben.

Auf die technische Ebene möchte ich heute gar nicht direkt eingehen, das haben wir das Jahr schon im Detail in diesem Blog ergründet. Diskussionen über Technik und Innovationen stellen nur eine Augenblickaufnahme dar. Im Rückblick auf eine größere Zeitepisode wie ein mindestens Jahr werden allerdings gesellschaftliche Entwicklungen deutlich. Und hier gab es einiges zu beobachten.

KI für die Massen

ChatGPT hat eine große Nutzerbasis erreicht, die zumindest ein Mal das Werkzeug ausprobiert hat. Im deutschsprachigen Raum, der sonst sich so "datenschutzorientiert" und innovationskritisch gibt, ist das schon bemerkenswert. Diskussionen über Datenschutz waren zweitrangig, die Menschen waren von der Innovation durch das Werkzeug fasziniert. Natürlich kam über das Jahr die Erkenntnis, dass in der aktuellen Form die Technologie je nach Branche noch nicht weit genug ausgereift ist, trotzdem wollte jeder einmal schauen, was es damit auf sich hat und ob es den Alltag erleichtern kann.

Und doch hat OpenAIs Werkzeug in meinen Augen ein wenig den Blick verengt: Durch das schnelle Wachstum wurde ChatGPT zum Sinnbild von "KI" und hat Ängste geschürt. Denn einerseits will jeder, dass KI ihm das Leben einfacher macht, jedoch nicht, dass andere mit KI ihm seine Lebenssituation verschlechtern bzw. ihn zu einem Umdenken zwingen. Ein Zeitungsredakteur möchte gerne KI für die Verbesserung seiner Texte einsetzen, fürchtet jedoch um seine Jobzukunft, wenn andere ihn durch automatische Generierung ganzer Zeitungsbeiträge drohen, überflüssig zu machen.

Dieser Umstand hat die Diskussion rund um den europäischen AI Act noch einmal deutlich angeheizt. An Large Language Models wurden auf einmal hohe Anforderungen gestellt, um subjektiven Ängsten entgegenzutreten. Dann war man sich aufgrund der Innovationsgeschwindigkeit auf einmal nicht sicher, ob es jetzt schon Zeit für eine starre Regulierung ist. Und schlussendlich zeichnet sich eine politische Entwicklung ab, jetzt lieber irgendeinen Kompromiss als später eine gut ausgearbeitete Fassung präsentieren zu können. Wie der AI Act kommt, werden wir dann im nächsten Jahr sehen.

Das alles war aber nicht das, was dieses Jahr in meinen Augen besonders gemacht hat. Es ist etwas anderes: die neue Rolle von Open Source.

Neue Hürden für Technologie?

Anfang des Jahres sah es so aus, als setzt eine besondere Kommerzialisierung in der Technikwelt ein: die Kommerzialisierung von Basistechnologie. Über die verschiedenen Jahre haben wir gesehen, dass es für verschiedene Produkte in der IT proprietäre und freie Lösungen gibt. Zwar sind erstere gerne technologisch mitunter überlegen, da die Profitorientierung Anreize setzt, für bestimmte Anwendungszwecke besonders passende Lösungen zu entwickeln. Kostet eine Software Geld, kann der Hersteller Programmierer anstellen, die auch die Features entwickeln, die man ungern freiwillig programmiert. Auf diese Weise entstehen runde Produkte für einen Anwendungszweck.

Freie bzw. zumindest quelloffene Software ermöglicht zumindest aber der Öffentlichkeit, einen Blick in die Funktionsweise zu werfen, um zu sehen, wie etwas funktioniert. Das ist die Grundlage, um Technologie zu verbessern.

In der Welt des maschinellen Lernens entstand allerdings durch die benötigte Compute Power eine hohe Eintrittshürde. Es sah so aus, als wären die Large Language Models nur noch großen Konzernen bzw. gut finanzierten Start-ups vorbehalten, die sich die Trainingspower leisten können. Während die Vorgängersysteme wie GPT-2 noch öffentlich zugänglich waren, wurden gerade Systeme wie GPT-3 und GPT-4, bei denen das Produkt endlich richtig nutzbar wurde, zurückgehalten.

Im Laufe des Frühlings habe ich allerdings vermutet, dass freie Modelle die proprietären outperformen können, weil die öffentliche Zugänglichkeit die Chance eröffnet, dass Experten weltweit mit ihren eigenen Erfahrungen, Eindrücken und ihrem Domänenwissen eine Technologie entwickeln können, die verschlossenen Produkten überlegen ist.

Überraschend war, dass es gerade das AI-Team von Facebook war, das den Stein mit LLaMA ins Rollen gebracht hat. Es folgten zahlreiche weitere Abkömmlinge, Weiterentwicklungen oder gänzliche Alternativansätze, die eines gemein hatten: ihr Kern mit den Gewichten war zugänglich.

Wie es aussieht, könnte die Dominanz proprietärer Systeme gebrochen werden, sodass auch die Möglichkeit gewahrt bleibt, einen wissenschaftlichen Diskurs zu führen. Technische Berichte proprietärer Modelle sind zwar nett, aber die Forschungsarbeiten, in denen reproduzierbare Fortschritte aufgezeigt werden, bringen uns tatsächlich eher voran.

Um die rasante Entwicklung im Frühling, als scheinbar jedes KI-Team großer Konzerne und Forschungseinrichtungen alle in der Schublade angesammelten LLM-Projekte zu veröffentlichen versuchte, im Auge zu behalten, habe ich die LLM-Timeline entwickelt. Sie wurde vor einigen Tagen wieder aktualisiert und zeigt besonders, wie sehr LLaMA als eines der ersten praktisch verwertbaren Modelle mit offenen Gewichten die Entwicklung beeinflusst hat.

Ein weiteres Projekt, das ich in der Zusammenarbeit mit der Fachhochschule Kiel realisiert habe, war der Podcast KI & Kultur, der generative Modelle aus der Perspektive Kulturschaffender beleuchtet hat.

Was bleibt

Das Jahr hat den 70 Jahre alten Begriff der KI wieder mal in die Massen gebracht. Dabei wird ChatGPT dem Begriff eigentlich gar nicht gerecht, weil es streng genommen relativ dumm ist. Insbesondere beschränkt es die Zustandsfähigkeit nur auf eine Prompt und lernt nicht, während es denkt. Training und Inferenz sind entkoppelt.

Und trotzdem ist es diese natürlichsprachliche Schnittstelle, die es so faszinierend macht. Allerdings ist auch diese Erkenntnis nicht neu und wurde schon vor 55 Jahren mit ELIZA diskutiert.

Erfreulich ist es, dass "Open Source" nicht mehr nur bei Software, sondern in neuen Technologien Anwendung findet. Der Gedanke, dass Technologie zugänglich sein muss, kann so erhalten werden. Und dass es hilft, wenn Wissenschaftler auf der ganzen Welt mit ihrem Wissen beitragen können, sehen wir weiterhin auch in dieser Thematik.

LLMs ermöglichen es, dass wir uns endlich wieder der Mensch-Maschine-Schnittstelle widmen können, die Technologie nutzbar macht. Menschen wollen, dass Technik das Leben einfacher macht. Die bisher begrenzte Rechenleistung hat uns zu Hilfsmitteln wie Displays, Touchscreens oder Tastaturen gezwungen. In den nächsten Jahren können wir schauen, wie wir das überwinden können, um endlich nutzbare Computer zu erhalten, die wirklich was bringen.

Und so ist es schon fast ironisch, dass die naheliegendste Technologie, die in den 2010er-Jahre euphorisch gefeiert wurde, von den LLMs noch wenig profitiert hat: Sprachassistenten. Sie sind überwiegend noch genau so begrenzt und unflexibel wie früher. Hier gibt es einiges zu tun.

Frohes Neues

Abschließend möchte ich meinen Lesern des Blogs und Zuhörern des Podcasts Risikozone sowie KI & Kultur danken, dass ihr den Blog lest, den Podcast hört und regelmäßig Feedback gebt. Ich wünsche euch einen guten Rutsch in das neue Jahr 2024.

Im nächsten Jahr werden wir wieder gemeinsam neue Technologien ergründen und die aktuellen Nachrichten diskutieren. Es wird auch mehr um Grundlagen und Visualisierungen gehen, hierauf freue ich mich schon besonders!

Viel Glück, Gesundheit und Erfolg!

Die Firefox-Erweiterung Obfuscate kann genutzt werden, um Inhalte auf Websites unkenntlich zu machen. Praktisch ist dies vor allem, wenn es um das Teilen von Screenshots geht und man dabei konkrete Inhalte nicht preisgeben möchte.

Manchmal kommt man in die Situation, in der man einen Screenshot oder eine Bildschirmaufnahme einer Website teilen möchte, ohne dabei bestimmte Informationen preiszugeben, weil es sich dabei beispielsweise um persönliche Informationen handelt. Abhilfe kann hierbei die Firefox-Erweiterung Obfuscate von Mozilla-Entwickler Vincent Tunru schaffen. Diese macht bei Aktivierung die Texte und Bilder der aktuellen Website unkenntlich, ohne dabei die Struktur der Website zu verändern. Per Schaltfläche oder Tastenkombination können entweder auf der gesamten Website die Inhalte unkenntlich gemacht werden oder man markiert vorher einen Teil des Textes. In dem Fall betrifft das dann nur die markierte Stelle.

Firefox-Erweiterung Obfuscate

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

Der Beitrag Firefox-Erweiterung Obfuscate kann Inhalte auf Websites unkenntlich machen erschien zuerst auf soeren-hentzschel.at.

30. Dezember 2023

Mozilla als Organisation ist komplexer strukturiert, als es viele annehmen. Dies führt immer wieder zu Verwirrungen darüber, wieso Mozilla einerseits so hohe Einnahmen hat und mitunter auch hohe Gehälter auf Führungsebene bezahlt, andererseits aber immer wieder betont, auf Spenden angewiesen zu sein. Dieser Artikel soll etwas Klarheit schaffen.

Wenn von Mozilla die Rede ist, denkt man häufig nur an Firefox. Dabei ist Mozilla heute sehr viel mehr als nur Firefox. Und Nutzer, die an Mozilla spenden, meinen unter Umständen, damit für die Entwicklung von Firefox zu bezahlen. Böse Zungen behaupten sogar, damit würde ein üppiges CEO-Gehalt bezahlt werden. Solche Annahmen basieren aber auf grundlegenden Irrtümern über die Organisationsstruktur von Mozilla.

Mozilla besteht aus mehreren Organisationen

Wenn die Menschen alles, was irgendwie mit Mozilla zu tun hat, einfach nur dem Namen Mozilla zuordnen, haben sie in gewisser Weise recht. Mozilla steht für bestimmte Werte und Ziele, welche in Form des Mozilla Manifests ausformuliert sind. Diese gelten gleichermaßen über alle Mozilla-Organisationen hinweg. Eine Unterscheidung ist häufig gar nicht notwendig. Um den Zusammenhang zwischen kommerziellen Produkten und Partnerschaften auf der einen und Spenden auf der anderen Seite zu verstehen, ist es allerdings unausweichlich, die Organisationsstruktur ein wenig besser zu verstehen.

Mozilla Corporation

Da gibt es zum einen die Mozilla Corporation. Diese ist unter anderem für die Entwicklung von Firefox sowie einen Großteil der Einnahmen verantwortlich. Im Jahr 2022 hat Mozilla einen Umsatz in Höhe von 594 Millionen USD erzielt, davon 510 Millionen USD durch Partnerschaften mit Suchmaschinen für Firefox.

Die Mozilla Corporation entwickelt aber auch andere, teils kostenlose und teils kommerzielle Produkte. Darunter fallen beispielsweise das Mozilla VPN, Firefox Relay, Firefox Monitor, Mozilla Hubs und Pocket.

Mozilla Online ist eine eigenständige Tochterorganisation der Mozilla Corporation, welche für den Betrieb in China verantwortlich ist.

Mozilla Ventures, Mozilla.ai, MZLA

Mit Mozilla Ventures hat Mozilla im November 2022 die Gründung eines Risikokapitalfonds für Startups bekannt gegeben. Im März 2023 folgt die Ankündigung von Mozilla.ai, wo man sich dem Thema der vertrauenswürdigen Künstlichen Intelligenz (KI) widmet. Beide wurden jeweils als eigenständige Organisationen innerhalb von Mozilla gegründet.

Und dann gibt es noch die MZLA Technologies Corporation. Diese entwickelt den E-Mail-Client Thunderbird. Die Entwicklung von Thunderbird findet tatsächlich komplett spendenfinanziert statt, immerhin erzielt MZLA aktuell 99,9 Prozent seiner Einnahmen durch Spenden. Spenden an MZLA funktionieren aber komplett getrennt von Spenden an „Mozilla“, wie sie im kommenden Absatz beschrieben werden.

Mozilla Foundation

Damit kommen wir zur Mozilla Foundation. Die Mozilla Foundation ist die Dachorganisation der zuvor genannten Mozilla Corporation, Mozilla Ventures, Mozilla.ai sowie MZLA Technologies Corporation.

Als steuerbefreite Not-for-Profit-Organisation nach 501(c)(3) ist es der Mozilla Foundation nicht erlaubt, Einnahmen in dieser Höhe beispielsweise durch Suchmaschinen-Partnerschaften zu erzielen, was ein wesentlicher Grund für die Existenz der Mozilla Corporation ist.

Wenn Nutzer an „Mozilla“ spenden, tun sie das für die Mozilla Foundation. Deren Aufgabe ist nicht die Entwicklung von Firefox oder anderen kommerziellen Produkten und auch nicht die Bezahlung des CEO-Postens der Mozilla Corporation.

Die Aufgaben der Mozilla Foundation umfassen Dinge wie politisches Engagement, indem man sich beispielsweise für eine Gesetzgebung im Sinne der Nutzer einsetzt. Dinge wie Common Voice, dem weltweit größten öffentlichen Datensatz menschlicher Stimmen, das Mozilla Festival, der Einkaufsberater mit Datenschutzfokus Datenschutz nicht inbegriffen, das Data Futures Lab oder Studien wie YouTube Regrets, um fragwürdige YouTube-Empfehlungen besser zu verstehen, sind Projekte der Mozilla Foundation. Aktuell arbeitet die Mozilla Foundation an einer App, um die Algorithmen von TikTok besser zu verstehen. Außerdem unterstützt die Mozilla Foundation andere Projekte durch Förderungen und Stipendien.

Die Mozilla Foundation ist auf Spenden angewiesen. Außerdem erhält sie einen Prozentsatz des Jahresumsatzes der Mozilla Corporation als „Lizenzgebühren“. So hat die Mozilla Corporation im Jahr 2022 etwas über 19 Millionen USD an die Mozilla Foundation gezahlt.

Mozilla Finanzen Diagramm
Bildquelle: Mozilla

Moment, aber wie spende ich nun für die Firefox-Entwicklung?

Es gibt keine direkte Möglichkeit, für die Entwicklung von Firefox oder einem anderen Mozilla-Produkt zu spenden. Ausnahme ist wie bereits beschrieben Thunderbird, was über ein separates Spendenformular funktioniert. Alle anderen Spenden kommen der Mozilla Foundation zugute.

Um die Entwicklung eines Mozilla-Produkts zu unterstützen, besteht die Möglichkeit, ein Abo eines kommerziellen Mozilla-Produkts zu nutzen, beispielsweise das Mozilla VPN, Firefox Relay Premium, Pocket Premium oder MDN Plus. Diese Form der Unterstützung ist zwar nicht steuerlich absetzbar, dafür erhält man aber eine Gegenleistung, die man nutzen kann. Diese Einnahmen erreichen die Mozilla Corporation, wovon unter anderem auch die Entwicklung von Firefox profitiert.

Fazit

Wie man sieht, muss man zwingend zwischen den Einnahmen durch unter anderem Suchmaschinen einerseits und Spenden andererseits unterscheiden. Weder handelt es sich bei den großen Geldbeträgen, die immer wieder durch die Medien gehen, um Mittel, welche der Mozilla Foundation zur Verfügung stehen, noch sind die Spenden an die Mozilla Corporation und deren CEO gerichtet. Beides hat schlicht und ergreifend nichts miteinander zu tun, außer dass die Mozilla Foundation auch vom Erfolg der Mozilla Corporation direkt profitiert, nicht aber umgekehrt.

Der Beitrag Die Organisationsstruktur von Mozilla erschien zuerst auf soeren-hentzschel.at.



Aktualisierung und Kernel-Umstellung auf Raspberry Pi OS Bookworm

WARNUNG: SORGFÄLTIG LESEN UND VORHER EIN BACKUP DER SD-KARTE ERSTELLEN

Diese Anleitung ermöglicht die Aktualisierung von Raspberry PiOS auf die neueste Version (Bookworm) und den Wechsel zu den neuen Kernels. Bitte beachten, dass dieser Vorgang nicht offiziell empfohlen wird und möglicherweise nicht für alle Anwendungen geeignet ist, besonders das Upgrade einer Installation mit grafischer Oberfläche wurde nicht getestet und wird höchstwahrscheinlich nicht ohne weiteres möglich sein. Auch ein Upgrade der 32-Bit Version von PiOS wurde nicht getestet.

With that out of the way:

Die 10 Schritte

Schritt 1: Sicherstellen, dass alles auf dem neuesten Stand ist

sudo apt-get update && sudo apt-get dist-upgrade

Schritt 2: Umstellen auf Bookworm-Repositorys

sudo sed -i -e 's/bullseye/bookworm/g' /etc/apt/sources.list
sudo sed -i -e 's/bullseye/bookworm/g' /etc/apt/sources.list.d/raspi.list

Inhalt von /etc/apt/sources.list sollte jetzt so aussehen:

deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
#deb-src http://deb.debian.org/debian bookworm main contrib non-free
#deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free
#deb-src http://deb.debian.org/debian bookworm-updates main contrib non-free

Inhalt von /etc/apt/sources.list.d/raspi.list:

deb http://archive.raspberrypi.org/debian/ bookworm main
#deb-src http://archive.raspberrypi.org/debian/ bookworm main

Schritt 3: Tatsächliches Update durchführen

sudo apt update && sudo apt -y full-upgrade && sudo apt -y clean && sudo apt -y autoremove

Schritt 4: Neustart

sudo reboot

Schritt 5: Alte Konfigurationsdateien entfernen

sudo apt purge ?config-files

Schritt 6: Wechseln zu den neuen Kernels

Vorbereitung

sudo dpkg --purge --force-depends raspberrypi-kernel raspberrypi-bootloader
sudo umount /boot
sudo fsck -y /boot
sudo mkdir /boot/firmware
sudo sed -i.bak -e "s#boot#boot/firmware#" /etc/fstab
sudo systemctl daemon-reload
sudo mount /boot/firmware
sudo apt install raspi-firmware

Tatsächliche Installation der Kernel (Die richtige Version für den Pi wählen)

# 64-Bit
sudo apt install linux-image-rpi-v8 linux-headers-rpi-v8

# 32-Bit
# sudo apt install linux-image-rpi-v7l linux-headers-rpi-v7l

# 32-Bit (alternative Version)
# sudo apt install linux-image-rpi-v6 linux-headers-rpi-v6

Auto_initramfs hinzufügen

sudo sed -i.bak '$ a\auto_initramfs=1' /boot/firmware/config.txt

Schritt 7: Neustart

sudo reboot

Schritt 8: Überprüfen mit "uname -a" (alter Stand, sollte mittlerweile etwas aktuellere Versionen anzeigen)

Alter Kernel:

Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr  3 17:24:16 BST 2023 aarch64 GNU/Linux

Neuer Kernel:

Linux raspberrypi 6.1.0-rpi4-rpi-v8 #1 SMP PREEMPT Debian 1:6.1.54-1+rpt2 (2023-10-05) aarch64 GNU/Linux

Schritt 9: Wechseln zu NetworkManager (optional)

sudo systemctl enable --now NetworkManager
sudo systemctl disable --now dhcpcd

Statische IP einrichten (Anpassen nach Bedarf)

sudo nmcli -p connection show 
sudo nmcli -p connection show "Wired connection 1"
sudo nmcli con mod "Wired connection 1" ipv4.method manual ipv4.addresses 192.168.1.5/24 ipv4.gateway 192.168.1.1

Schritt 10: Neustart

sudo reboot

Hinweise:

  • Falls der Wechsel zu NetworkManager nicht durchgeführt wird, kann die Netzwerkverbindung nach dem Neustart verloren gehen.

Quelle:

https://gist.github.com/jauderho/6b7d42030e264a135450ecc0ba521bd8


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.

29. Dezember 2023

Das Mozilla Innovation Team hat llamafile vorgestellt und bringt damit die Möglichkeit, einen vollständigen LLM-Chatbot in einer einzigen Datei auszuliefern, die auf sechs Betriebssystemen läuft. Dies begünstigt unter anderem die Entwicklung von ChatGPT-Konkurrenten, die ganz einfach lokal auf dem Computer ausgeführt werden können und nicht auf die Cloud eines Tech-Giganten angewiesen sind.

Sogenannte große Sprachmodelle, besser bekannt als LLMs, werden häufig über cloudbasierte, gerne auch kommerzielle, Dienste genutzt. Dies geschieht entweder direkt über den jeweiligen Dienst oder indem ein Produkt genutzt wird, welches auf einer Schnittstelle eines solchen Dienstes aufbaut, was Fragen in Bezug auf Datenschutz, Zugang und Kontrolle aufwirft. Werden die Unterhaltungen beispielsweise mitgelesen und wie werden die Daten verwendet? Wenn man nichts unternehme, würde in Zukunft „diese neue Ära der KI von einer Handvoll mächtiger Technologieunternehmen dominiert werden“, denen man dann vertrauen müsse, dass sie das Richtige tun, so Mozilla. Aus diesem Grund bräuchte es einen Plan B.

Diesen Plan B sieht Mozilla in der Open Source Community, welche dafür sorgen kann, dass der Zugang zu Künstlicher Intelligenz frei und kostenlos bleibt. Während Open Source KI in den letzten Jahren enorme Fortschritte gemacht hat, ist es immer noch nicht einfach, einen Open Source KI-Stack zum Laufen zu bekommen. Dies erfordert immer noch einiges an Fachwissen und Aufwand.

Im Rahmen der Innovation Week im Dezember hat das Mozilla Innovation Team llamafile vorgestellt. Mit llamafile werden LLM-Gewichte in ausführbare Dateien umgewandelt. Diese laufen auf Windows, macOS, Linux, OpenBSD, FreeBSD sowie NetBSD. Damit wird die Nutzung einer KI quasi so einfach wie der Doppelklick auf eine App, schreibt Mozilla. Dies ermögliche es mehr Entwicklern, mit der Technologie zu arbeiten, und mehr Endnutzern, Lösungen einzusetzen, welche Open Source statt Closed Source sind.

Für die Umsetzung von llamafile greift Mozilla auf bereits bestehende Open Source Technologie zurück. Zum einen ist dies llama.cpp, was eine Portierung von Metas LLaMA-Modellen in C/C++ ist und es ermöglicht, LLMs auf gewöhnlicher Endnutzer-Hardware laufen zu lassen. Zum anderen ist dies Cosmopolitan, was die Verteilung und Ausführung von Programmen auf einer Vielzahl von Betriebssystemen und Hardware-Architekturen unterstützt und deren Entwicklerin auch die Entwicklerin von llamafile ist. Zuvor hatte Mozilla über sein MIECO-Programm bereits die Entwicklung von Cosmopolitan 3.0 gesponsert. Mit llamafile werden diese beiden Projekte quasi kombiniert, um so beispielsweise einen Chatbot, vergleichbar mit ChatGPT, ganz einfach lokal auf dem eigenen Computer ausführen zu können.

Mozilla sieht in llamafile einen großen Schritt nach vorne, was den Zugang zu Open Source KI betrifft. Darüber hinaus möchte Mozilla mit dem Projekt „lokale KI“ vorantreiben. Keine Abhängigkeit von einer Cloud, man behält die Kontrolle über die Daten, niemand liest die Fragen oder Antworten mit. Ein weiterer Vorteil ist, dass die KI immer verfügbar ist und man nicht auf eine bestehende Internetverbindung angewiesen ist.

Wer llamafile testen möchte, findet auf GitHub mehrere Beispiel-Dateien zum Herunterladen. Nach Ausführung der entsprechenden Datei kann über den Browser eine Eingabe-Maske aufgerufen werden. Neben einigen Parametern, die sich darüber konfigurieren lassen, kann damit eine Unterhaltung mit dem Chatbot geführt werden. Es ist sogar möglich, Bilder hochzuladen und sich diese von der KI beschreiben zu lassen.

Mozilla llamafile Mozilla llamafile Mozilla llamafile

Der Beitrag Mit llamafile revolutioniert Mozilla den KI-Zugang und damit auch die Chatbot-Technologie erschien zuerst auf soeren-hentzschel.at.

28. Dezember 2023

Ich lese auf GNU/Linux.ch nun schon eine ganze Weile mit großer Begeisterung mit. Bei den Artikeln rund um das Smartphone, fehlte mir bisher immer ein Android Custom-Rom: CalyxOS. Das wollte ich nun ändern, indem ich einen eignen Artikel dazu schreibe.

Meine ersten Erfahrungen mit Smartphones und alternativen Custom-Roms, reichen etwas weiter zurück und starteten seiner Zeit mit dem legendären Nokia N900, welches ich mit Maemo geflasht habe. Voller Begeisterung von Maemo, habe ich mir noch das N9 gekauft und ebenfalls mit Maemo geflasht. Tolle Smartphones! Nun hatte ich Lunte gerochen und mir das Jolla Phone gebraucht gekauft, was leider irgendwann durch einen Hardwaredefekt zum Erliegen kam. SailfishOS (SFOS) hatte mich jedoch so sehr begeistert, dass ich SFOS dann auf diversen Sony Xperia Modellen geflasht habe. Da ich immer wieder für mich auf Einschränkungen und Unzulänglichkeiten bei den SFOS tauglichen Smartphones gestoßen bin, habe ich mir einen Ruck gegeben und mich mit Android-Custom-Roms beschäftigt und ausprobiert. Mein Daily Driver wurde dann ein Motorola Moto G7 mit LineageOS (LOS).

Leider hatte ich später ein Akkuproblem bei meinem Moto G7 und daher habe ich mich weiter mit alternativen Custom-Roms und geeigneten Geräten beschäftigt. Hierzu wurde ich durch eine tolle Artikelserie Android ohne Google: Take back control! von Mike Kuketz, inspiriert. Schnell hatte ich mich auf GrapheneOS und CalyxOS fokusiert. Durch einen Bekannten, der sich ebenfalls mit dem Thema auskennt und beschäftigt, bin ich auf die Google Pixel Geräte gestoßen. Da er auf seinem Smartphone CalyxOS einsetzt, habe ich mich schlussendlich dafür entschieden.

Der Entschluss war also gefasst, CalyxOS zu installieren. Hierzu habe ich mich umgeschaut, welche Geräte von diesem Custom-Rom unterstützt werden. Dabei ist die Wahl auf ein Google Pixel 6a gefallen. Für mich stellte das 6a das beste Preis-/Leistungsverhältnis von der Hardware dar und was mir sehr wichtig gewesen ist: Ein langer Firmware Support durch den Hersteller (Wichtig für Sicherheits-Updates ). In dem Fall von dem Pixel 6a wurden hier min. fünf Jahre zugesichert.

Gerne hätte ich mir ein Shift- oder FairPhone gekauft, da ich von der Idee zu Nachhaltigkeit, Modularität, guter Reparierbarkeit und deren Philosophie, sehr überzeugt bin. Allerdings hat mich leider das Preis-/Leistungsverhältnis nicht überzeugt (ich bin/war nicht bereit so viel Geld für ein Smartphone auszugeben) und CalyxOS hat zu dem Zeitpunkt nicht das Gerät, welches ich mir hätte vielleicht vorstellen können, unterstützt. Trotzdem möchte ich für diese Geräte und Hersteller Werbung machen und schließe für mich in der Zukunft nicht aus, mir ein solches zu kaufen.

Da wären wir auch schon bei dem ersten Argument für CalyxOS: Entgegen GrapheneOS unterstützt CalyxOS weitere Geräte wie nur die der Google Pixel Familie. Dazu zählen Shift, FairPhone und diverse Motorola Geräte (s. Geräteübersicht). Dazu kommt noch, dass bei den Google Geräten der Bootloader nach dem Flashen wieder geschlossen wird. Nicht ganz unwesentlich und leider ein Schwachpunkt bei den LOS Installationen. Hinzu kommt, dass der Bootloader der Pixel Geräte (ich kann das für mein 6a bestätigen, weiß aber, dass dies auch bei weiteren Geräten aus der Familie funktioniert) ohne Zustimmung und aufwendiges Beantragen beim Hersteller, entsperrt werden können. Die für meinen Geschmack gut beschriebene und recht einfache Installation (Beispiel Pixel 6a) von CalyxOS auf den Pixel Geräten, rundet den Gesamteindruck für mich ab. Das Device-Flasher-Script von CalyxOS macht es sehr einfach, die Geräte zu flashen. Natürlich müssen auch hierzu die Standard-Tools, wie z.B. die „android-sdk-platform-tools-common“ installiert sein, aber das ist wirklich sehr gut und einfach beschrieben und sollte für ambitionierte User ohne Probleme zu stemmen sein. Das Flashen des Pixel 6a habe ich unter Linux (wie alle meine Smartphones) erledigt. Ist aber genauso für Mac- wie auch Windows Rechner möglich und beschrieben.

Erwähnen möchte ich auch, dass es Geräte mit vorinstalliertem CalyxOS von den Calyx Institute zu erwerben gibt. Aus meiner Sicht ist das sicherlich ein Vorteil von Projekten wie z.B. Murena oder das Volla Phone (um nur mal zwei zu nennen), die mit bereits vorinstalliertem System auf Geräten erworben werden können. Das trägt m.M.n. zur Verbreitung und Akzeptanz bei den Nutzern bei, da die Hemmschwelle durch das selber Flashen doch recht hoch ist.

Hervorheben möchte ich bei CalyxOS, dass während der Einrichtung, also nachdem die Installation (Flashen) auf dem Gerät abgeschlossen ist und ihr das Smartphone das erste Mal bootet, ausgewählt werden kann, ob ihr microG auf dem Gerät verwenden möchtet oder nicht. Ich habe mich aufgrund meiner vorherigen Erfahrungen dafür entschieden microG zu verwenden und bereue das kein Stück. Für mich wird damit das Smartphone deutlich mehr alltagstauglich, da ihr deutlich weniger Einschränkungen bei diversen Apps, die Google Services voraussetzen, habt. Allerdings möchte ich auch nicht verschweigen, dass Ihr mit dem Einsatz von microG einen hart erkämpften Vorteil, von dem aufwendig entgoogeltem Phone, abgebt. Wie groß dieser Nachteil (wenn man das so überhaupt sagen kann) ist, kann ich nicht beantworten und muss jeder für sich selber entscheiden. Allerdings sehe ich das so mit den Android (AOSP) Smatphones: Nichts ist 100 % sicher und ich muss bewusst damit umgehen und mich an diverse Regeln halten. Es gibt ganz sicherlich Informationen oder Daten, die nicht auf ein solches Gerät gehören und Dinge, die ich damit nie tun würde!

Was mich von CalyxOS auch überzeugt hat, ist die App Auswahl nach der Installation (während der Installation kann ich diverse Apps auswählen): Ein aufgeräumtes System mit einer guten, aber nicht überladenen Vorauswahl an Apps. Dazu zählen z.B. der F-Droid und Aurora Store, Signal, K9 als E-Mail App, Tor Broser, Calyx VPN und diverse weitere Apps. Hinzu kommt, dass ich entgegen diverser anderer Custom-Roms, so gut wie alle Apps einfach deinstallieren kann.

Ich finde das CalyxOS hier einen guten Mittelweg gefunden hat, ohne das Gerät zu überladen oder den User zu bevormunden.

Die Sicherheits-Updates kommen automatisch einmal monatlich rein und werden in Bezug zu Google m.M.n. recht zeitnah zur Verfügung gestellt. Die Updates werden im Hintergrund (so macht es Google selber auch) installiert, um den Nutzer so wenig wie möglich in der Nutzung des Smartphones zu stören. Hier gibt es ein paar Konfigurationsmöglichkeiten im Handling. Des Weiteren kann ich zwischen Sicherheitsexpress, Stabil und Beta wechseln. Inwieweit ich da hin und her switchen kann, weiß ich nicht, da ich nur Stable nutze. Finde die Möglichkeit aber gut und kenne das bereits von SFOS.

Selber nutze ich Apps, wo immer das möglich ist aus dem F-Droid Store. Wenn das nicht zu vermeiden ist, kommt der Aurora Store zum Einsatz. Sehr wenige Apps beziehe ich auch vom Hersteller direkt.

Die Einrichtung von CalyxOS geht wirklich leicht von der Hand. Dabei wird der User nicht unnötig bevormundet, jedoch gut und sinnvoll unterstützt. Die Community ist rege dabei und z.B. im Matrix Kanal (Englisch) m.M.n. schnell bei der Unterstützung, wenn es doch mal irgendwo hakt oder Ihr eine Frage habt.

Mittlerweile habe ich auch das Moto G7 meiner Frau durch ein Pixel 6a mit CalyxOS ersetzt und es gab bisher keinerlei Beschwerden. Ich selber bin seit gut einem Jahr mit dem Pixel 6a und CalyxOS unterwegs und bereue meine Entscheidung kein Stück.

Natürlich gibt es auch andere tolle und hervorragende Projekte, die absolut empfehlenswert sind.
Calyx ist nur eines davon.

Ich möchte mich hier ausdrücklich bei allen Beteiligten des Projektes für die unermüdliche und hervorragende Arbeit bedanken. Aber auch bei der Community, die immer da ist, wenn es doch mal klemmt. Selbstverständlich gilt der Dank auch der Open Source Gemeinde, die sich jeden Tag aufs neue einbringt und dafür sorgt, dass wir alle diese freien Systeme und Programme nutzen dürfen.

In diesem Sinne frohe Festtage und eine unbeschwerte Zeit. Kommt gut und vor allem gesund nach 2024 rüber.

Quelle: https://gitlab.com/CalyxOS/branding/-/blob/master/calyxos/Logo_CalyxOS.jpg


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.

27. Dezember 2023

Das Mozilla Innovation Team hat Solo gestartet. Dabei handelt es sich um einen Website-Builder für Selbständige, der auf Künstliche Intelligenz (KI) und einen maximal einfachen Erstellungsprozess setzt.

Im Rahmen der Innovation Week im Dezember hat das Mozilla Innovation Team Solo gestartet. Dabei handelt es sich um einen sogenannten Website-Builder mit Fokus auf Selbständige. Wie Mozilla auf seinem Blog schreibt, sind in den USA 39 Prozent der Arbeitnehmer selbständig, sei es hauptberuflich oder im Nebenerwerb. Ein Drittel der von Selbständigen gegründeten Unternehmen hätten aber keine Website. Bei denen, die eine Website haben, würde sich laut Umfragedaten von Mozilla die Mehrheit auf „Technikfreunde“ verlassen, um eine Website zu erstellen – was zur Folge hat, dass die Unternehmer für Änderungen an der Website abhängig von diesen Freunden sind. Andere würden auf bestehende Website-Builder setzen, die es aber schwer machen, Inhalte zu erstellen und zu pflegen.

Solo möchte dieses Problem durch eine generative Künstliche Intelligenz lösen. Solo fragt grundlegende Informationen zum Unternehmen ab. Es kann außerdem auf eine bestehende Seite verwiesen werden. Daraufhin generiert Solo eine passende Website inklusive Kontaktformular, die dann weiter personalisiert und schließlich veröffentlicht werden kann. Der ganze Prozess dauert nur wenige Minuten. Die KI erstellt zum Unternehmen passende Textvorschläge, bezieht Bilder von Unsplash und kümmert sich um die Optimierung für Suchmaschinen.

Solo Website Builder Solo Website Builder Solo Website Builder Solo Website Builder Solo Website Builder

Solo ist derzeit noch als Beta gekennzeichnet. Die Verwendung einer eigenen Domain wird noch nicht unterstützt, soll aber bald kommen, ebenso wie das Hochladen eigener Bilder. Das Team kommuniziert diese und andere geplante Features auf der Website.

Die Nutzung von Solo ist kostenlos. Schon bald sollen gegen eine monatliche Gebühr aber auch zusätzliche Funktionen zur Verfügung stehen.

Der Beitrag Solo: Website-Builder von Mozilla setzt auf KI erschien zuerst auf soeren-hentzschel.at.

Mozilla hat in Firefox 120 eine Funktion implementiert, die im Idealfall Einwilligungsabfragen auf Webseiten (sog. Cookie-Banner) automatisch beantwortet. Die Funktion ist derzeit noch versteckt.

Die Funktion ist derzeit noch versteckt und bei Aktivierung zunächst nur für private Fenster aktiv. Das ist eine übliche Vorgehensweise bei Mozilla für neue Funktionen und wird vermutlich in künftigen Versionen vereinfacht. Diese Anleitung zeigt, wie sie überall aktiviert werden kann.

Dazu muss zunächst about:config in die Adresszeile getippt werden. Das öffnet die erweiterten Einstellungen von Firefox. Dort sucht man zunächst

cookiebanners.ui.desktop.enabled

Und setzt diesen Wert auf true.

Hierdurch erscheint in den Einstellungen eine neue Option in Datenschutz & Sicherheit.

Wenn diese Einstellung aktiviert ist, blockiert Firefox im privaten Modus alle erkannten Cookie-Banner. Um diese Einstellung auf den Normalbetrieb auszuweiten, ist wiederum eine Änderung in about:config notwendig. Die Suche nach folgendem Wert ergibt zwei Einstellungen

cookiebanners.service.mode

Zunächst die bereits in der UI modifizierte Einstellung für den privaten Modus (Fett) sowie die globale Einstellung. Es gibt drei Möglichkeiten:

  • 0 Cookie-Banner-Blocker ist deaktiviert
  • 1 Cookie-Banner-Blocker lehnt Cookies ab, sofern möglich
  • 2 Cookie-Banner-Blocker lehnt Cookies ab, sofern möglich und wenn nicht, dann akzeptiert es den Rest

Für eine auf Datenschutz und Privatsphäre ausgerichtete Nutzung empfehle ich den Wert 1. Wer nur in Ruhe gelassen werden möchte, sollte den Wert 2 eintragen.

Die Technik funktioniert noch nicht fehlerfrei. Insbesondere bei selbstgebastelten Lösungen ist der Erfolg begrenzt. Ich denke aber, dass das in Zukunft besser werden wird.

Eigentlich ist es schade, dass man solche technischen Lösungen braucht, um die ungewollten Folgen der DSGVO in den Griff zu bekommen.

Der Artikel Cookies automatisch ablehnen mit Firefox erschien zuerst auf Curius

Passkeys sind das bisher überzeugendste Konzept, um Passwörter endlich hinter uns zu lassen. Mit dem FIDO2-Standard ist ein etabliertes Gremium involviert und alle großen Hersteller ziehen mit. Im Jahr 2023 konnte man sehen, wie es Gestalt annimmt und ich gehe davon aus, dass sich Passkeys in den nächsten Jahren sukzessive etablieren werden. Linux und freie Android-Systeme wie GrapheneOS sind leider nicht dabei.

Passkeys sind eine Weiterentwicklung des FIDO2-Prinzips. Anstelle des physischen zweiten Faktors, z.B. in Form eines YubiKeys, wird nun ein anderes Verfahren mit Hilfe z.B. des Smartphones eingesetzt. YubiKeys haben sich einfach nicht durchgesetzt. Selbst in IT-Kreisen war das Verfahren vielen zu kompliziert, an die breite Masse braucht man gar nicht zu denken. Passkeys werden von den Herstellern mit biometrischen oder erweiterten Sicherheitseinstellungen der Geräte gekoppelt. Hier greifen also verschiedene Trends der letzten Jahre ineinander. Das ist keine Pflicht, aber stärkt das Vertrauen in das Prinzip. Zum Verständnis der Funktionsweise möchte ich zwei Artikel bei Heise empfehlen:

Das Problem ist nur, dass sowohl Linux als auch die Google-freien Android-Varianten außen vor sind. Bei Linux fehlt einfach die Implementierung und bei den vielen Baustellen im Sicherheitsbereich habe ich meine Zweifel, ob Linux Passkeys überhaupt sicherheitskonform implementieren kann. KeePassXC wird dies aber in Kombination mit dem Browseraddon bald anbieten. Bei Android hat Google wie so oft die Funktionalität nicht in AOSP implementiert. Mit Android 14 sind aber Lösungen von Drittanbietern erlaubt, so dass KeePassDX mittelfristig wohl Passkeys unterstützen wird.

Ob das mit Linux und Android so komfortabel wird wie mit Microsoft, Apple oder Google, sei dahingestellt. Auf jeden Fall ist dies ein weiterer Bereich, in dem Open-Source-Systeme nicht den Anschluss verlieren dürfen.

Der Artikel Passkeys aktuell ohne Linux und GrapheneOS erschien zuerst auf Curius