Das GNOME-Projekt hat die allgemeine Verfügbarkeit der GNOME 44.2-Desktop-Umgebung angekündigt. Hierbei handelt es ich um eine zweite Wartungsaktualisierung, die Korrekturen und Verbesserungen bringt. GNOME Shell 44.2 soll die integrierte Bildschirmaufzeichnungsfunktion sowie das Bluetooth-Menü in den Schnelleinstellungen weiter verbessern, das benutzerdefinierte Namen unterstützt. Darüber hinaus behebt es einige Störungen im Kalender-Widget bei der Verwendung von großem...
Das GNOME-Projekt hat die allgemeine Verfügbarkeit der GNOME 44.1-Desktop-Umgebung angekündigt. Hierbei handelt es ich um eine erste Wartungsaktualisierung, die Korrekturen und Verbesserungen bringt. Nach etwa einem Monat seit der Veröffentlichung von Gnome 44 „Kuala Lumpur“ ist nun die erste Punktversion der neuesten Gnome Serie erschienen. Mit dabei ist im Menü nun der berüchtigte Abschnittstitel „Hintergrund-Apps“....
Während die Tage die meisten gerade erst den Wechsel von Gnome 43 auf Gnome 44 „Kuala Lumpur“ werden machen können, werfen wir heute einen Blick auf die nächste Gnome Version und wann diese veröffentlicht wird. So haben die Gnome Entwickler nun ihre Pläne zum Erscheinungstermin von Gnome 45 veröffentlicht. So dürfen wir im Spätsommer mit...
Das GNOME-Projekt hat die allgemeine Verfügbarkeit der GNOME 44-Desktop-Umgebung angekündigt. Hierbei handelt es ich um eine großes Aktualisierung, die einige neue Funktionen und viele Verbesserungen mit sich bringt. Unter dem Codenamen “Kuala Lumpur“ führt GNOME 44 eine GTK4-Portierung des Webbrowsers Epihaphy (GNOME Web), eine Dateiauswahl-Gitteransicht für Anwendungen, die die Standard-GTK-Dateiauswahl verwenden, sowie Unterstützung für das...
ChatGPT ist in aller Munde. Es formuliert in flüssigem Deutsch oder Englisch Hausaufgaben, löst Philosophie-Wiederholungsfragen und fügt bei Bedarf frei erfundene Quellen hinzu, damit der Text seriöser/wissenschaftlicher wirkt. Wenn man das Programm hinweist, dass 2+3 keineswegs 5 ist, entschuldigt es sich höflich für seinen Fehler. Kurzum, Bananen-Software, reift beim Anwender? Ich bin nicht dieser Meinung.
Trotz aller Unzulänglichkeiten schätze ich das Programm mittlerweile so sehr, dass ich bereit wäre, für seine Anwendung zu zahlen. Bisher war das nicht notwendig. Mit ein paar Versuchen ist mir der Login noch jedes Mal gelungen, auch bei angeblich unerwartet hoher Auslastung.
Nun zähle ich nicht zu den Twitter- oder YouTube-Enthusiasten, die Ihnen versprechen, mit ChatGPT 10 x produktiver zu arbeiten oder 10.000 EUR pro Monat extra zu verdienen. Blödsinn! Aber ich bin mittlerweile überzeugt, dass mir ChatGPT mehr Zeit erspart, als ich brauche, um die ca. 23 EUR zu verdienen, die ChatGPT Plus aktuell pro Monat kostet. Und ich bin schon sehr gespannt, welche KI-Tools als Nächstes kommen!
ChatGPT unterstützt mich beim Programmieren
Berufsbedingt wechsle ich zwischen rund einem Dutzend Sprachen hin und her. Manche Sprachen brauche ich beinahe täglich oder zumindest wöchentlich, bei anderen vergehen schon mal etliche Monate von der einen Anwendung zu nächsten. Das bringt es mit sich, dass ich mir einfach nicht auswendig merken kann, wie ich die letzten drei Zeichen einer Zeichenkette in einem SQL-Statement, in der PowerShell oder in Java extrahiere. Wie ich einen regulären Ausdruck in PHP anwende, und welche Funktionen dagegen in Python verwendet werden.
Solange ich nicht in meinen eigenen Büchern nachschauen kann (deren Aufbau kenne ich so gut, dass die Suchzeit gegen Null geht), habe ich mir derartige Fragen bisher meist von Google beantworten lassen. Google führt dann in die Dokumentation der jeweiligen Sprache oder (bevorzugt) auf einen Beitrag von StackOverflow. Und natürlich weiß ich, welche Seiten am ehesten zum Ziel führen. Dessen ungeachtet dauert es üblicherweise ein paar Minuten, um das im Internet präsentierte Wissen auf die eigene Fragestellung anzuwenden, die Streu eines langatmigen Blog-Beitrags vom Weizen zu trennen. (Mit Videos habe ich mich dagegen nie recht anfreunden können. Es dauert einfach viel zu lange, um an die Stelle zu kommen, wo es interessant wird.)
In den letzten zwei Monaten ist die Anzahl meiner Google-Programmier-Suchen stark gesunken. ChatGPT kann auch programmieren! Warum soll ich umständlich nach Details suchen, wenn ChatGPT innerhalb von Sekunden Code liefert, der nicht nur für die ganz spezifische Fragestellung funktioniert, sondern den die KI auch noch erläutert?
Beispiele
Ein Bild sagt mehr als 1000 Worte? Nun denn:
Wie kann ich in einem PHP-Programm das Bearer Token eines GET-Requests ermitteln?Vor kurzem habe ich einen regulären Ausdruck gebraucht, um ein Datum im US-Format (also mm/dd/yyyy) zu erkennen.Hier geht es nur um einen Vorschlag für die Struktur (das Grundgerüst) eines Scripts. Um die Details kümmere ich mich dann selbst, d.h. ich mache das wofür ich bezahlt werde, aber verschwende keine Zeit an Trivialitäten.Ich will in einem Python-Script eine Datei herunterladen, aber ohne Zusatzmodule zu verwenden.In einer Folgefrage suche ich nach einem Weg, beim GET-Request einen eigenen Header anzugeben. ChatGPT antwortet im Kontext der vorigen Frage.In einem Bash-Script will ich die Kennung einer Datei auslesen.ChatGPT kennt auch Kotlin samt der Datenbankbibliothek Exposed. Die Antwort schießt ein wenig über das Ziel hinaus und enthält auch Code, um eine neue Tabelle einzurichten.Extrem cool: Ich habe Code in einer Sprache (hier in der Bash) und brauche äquivalenten Code in einer anderen Sprache (hier für die PowerShell). Kein Problem für ChatGPT.Hier hilft ChatGPT bei der Formatierung von Bildern in einem Markdown-Dokument, das mit Pandoc verarbeitet wird. ChatGPT weist auf die Pandoc-spezifische Erweiterung der Markdown-Syntax hin.ChatGPT hilft auch bei der Linux-Administration. Hier geht es darum, mit »tar« ein inkrementelles Backup zu erstellen.
ChatGPT versus Copilot
Aus Sicht von Entwicklern ist der GitHub Copilot ein kostenpflichtiges Konkurrenzprodukt zu ChatGPT. Der Copilot soll die Code-Erstellung in Editoren wie VSCode beschleunigen. Im Prinzip geben Sie einen möglichst aussagekräftigen Funktions- oder Methodennamen an, und der Copilot schlägt dafür fertigen Code vor. Die Code-Schnipsel kommen aus dem riesigen Angebot öffentlicher Git-Repositories.
Auch der Copilot nutzt KI-Technik bei der Auswahl und Adaptierung von Code-Schnipsel. Copyright-technisch ist das bedenklicher als die Vorgehensweise von ChatGPT, die in der Regel Code wirklich neu generiert. Natürlich kann es passieren, dass der Copilot Code vorschlägt, der bekannte Fehler oder gar Sicherheitslücken enthält. Das sind aber Probleme, die auch bei ChatGPT auftreten können. Letztlich bleibt es die Verantwortung des Entwicklers / der Entwicklerin, den Code zu verstehen und zu entscheiden, ob er für das Problem taugt oder nicht.
Für mich liegt der wesentliche Unterschied zwischen ChatGPT und dem Copilot weniger im produzierten Code als in der Bedienung: Mit ChatGPT kann ich gewissermaßen sprechen, ich kann mein ganz spezifisches Problem in Deutsch oder (besser!) in Englisch beschreiben und erhalte eine Antwort, die exakt auf die Aufgabenstellung eingeht. Bei Bedarf kann ich sogar um eine Nachbesserung im einen oder anderen Punkt bitten. Die Arbeitsweise ist für mich ungleich intuitiver, angenehmer und »menschlicher« als der Ansatz des Copiloten, einfach nur Code zu einer Funktionsdeklaration zu liefern.
Mich hat der Copilot schon in der Beta-Phase nicht so recht begeistert, und mit ChatGPT sieht das Angebot — nur wenige Monate nach der Markteinführung — schon ziemlich alt aus.
Letzte Anmerkungen
Ich habe aktuell keine Angst, dass mich ChatGPT oder eine ähnliche Technik als Programmierer, Admin, Vortragender oder Autor ablöst. Für mich ist ChatGPT einfach ein neues Hilfsmittel bei meiner Arbeit.
Insofern halte ich es auch für verrückt, den Einsatz in Schulen, Unis etc. zu verbieten. Das Ziel muss es vielmehr sein, KI-Tools produktiv (und durchaus verantwortungsvoll) anwenden zu lernen. Dieser Grundsatz gilt ja auch für andere Werkzeuge, die wir heute als selbstverständlich einsetzen, von der Rechtschreibkorrektur bis zur Nutzung der Wikipedia.
Ich bin mir ziemlich sicher, dass der Nutzen von KI-Tools umso höher ist, je größer das eigene Wissen ist. Insofern ersetzen diese Tools weder qualifizierte Mitarbeiter noch deren Ausbildung.
Vielleicht bin ich altmodisch, aber ich pflege einen höflichen Umgangston mit ChatGPT und vergleichbaren Werkzeugen.
Zu guter Letzt habe ich das Gefühl (das ich aber nicht objektiv belegen kann), dass die Kommunikation in englischer Sprache zu besseren Ergebnissen führt als Anfragen in Deutsch. Grundsätzlich ist es verblüffend, dass ChatGPT nahezu jeder Sprache mächtig ist. Aber die IT-Welt ist englisch. StackOverflow ist englisch. Die Originaldokumentation nahezu jedes IT-Tools ist englisch. Selbst Entwickler, die eine andere Muttersprache haben, verwenden in der Regel englischsprachige Variablen-, Klassen- und Methodennamen, kommentieren ihren Code idealerweise in Englisch. Insofern erscheint es mir nahe liegend, Code-Fragen in Englisch zu formulieren, was sich auch in den meisten Screenshots dieses Texts widerspiegelt.
Gnome 42 hat das achte Point-Release erhalten, wie Jeremy Bicha bekannt gab. Das achte Wartungs-Update für Gnome 42 ist somit planmäßig erschienen. Die Gnome 42 Desktopumgebung wird noch bis ca. März 2023 unterstützt, bis Gnome 44 erscheint. GNOME 42.8 ist eine überschaubare Aktualisierung für diejenigen, die noch den GNOME 42-Desktop auf ihrer GNU/Linux-Distribution verwenden. Es...
Während viele Gnome Nutzer seit Version 42 und mit Version 43 die Vorzüge der technischen Modernisierung von Gnome Shell genießen können, sind die Gnome Entwickler bereits am Werkeln der nächsten großen Gnome 44 Version. Diese soll am 22 März 2023 erscheinen und wird neue Funktionen und Verbesserungen bringen. Das Drehbuch für Gnome 44 sieht demnach...
Unter Ubuntu 22.04 habe ich Snap gänzlich entfernt. Damit verschwand auch der Ubuntu Software Store, der auf Snap aufsetzt. Als Alternative hatte ich das Gnome Software Center installiert, wie hier gezeigt. Doch das Gnome Software Center verhedderte sich. Aktualisierungen zeigt es nicht mehr an, ebenso wie keine Apps darin mehr geöffnet werden konnten. Stattdessen blieb...
Mit Gnome 43 erscheint eine frische polierte Version des beliebten Linux Desktops. Gnome 43 trägt den Codenamen „Guadalajara“ und ist ein weiterer technologischer Meilenstein der Entwicklung von Gnome seit Version 40. Die Arbeiten umfassen GTK4-Portierungen von Core-Shell und nativen Apps, Verbesserungen von libadwaite und viele weitere Leistungsverbesserungen. Das ist neu mit Gnome 43 Zu erwähnen...
Im September 2022 kommt planmäßig Gnome Shell 43 heraus. Damit einhergehend kommen einige interessante Änderungen. Im Entwicklungszweit von Ubuntu 22.10 ist Gnome Shell 43 bereits im Test. Gnome 43 setzt die mit Gnome 40 begonnene neue Designrichtlinie weiter fort. Nun gibt es ein neues Konzept für das Systemmenü, App Ports für GTK4/libadwaita und verschiedene optische...
Kurz notiert: es gibt Situationen, in denen man Pfade auflösen, also relative Pfade in absolute umwandeln möchte. Für Anwender, die dabei Konstruktionen mit pwd und kompliziertes Parsing umgehen wollen, bietet sich realpath aus den GNU Coreutils an.
Die Bedienung ist denkbar einfach: realpath nimmt beliebig viele Pfade als Argumente auf und gibt die absoluten Pfade zeilenweise aus. Dabei werden standardmäßig auch Symlinks aufgelöst, sodass der „wahre“ Pfad, im Programmkontext auch physischer Pfad genannt, angezeigt wird.
Mit einigen Zusatzoptionen, die sich in der Manpage realpath(1) finden lassen, kann weiterhin das Verhalten angepasst werden. Hier sei zum Beispiel -e erwähnt, das einen strikteren Modus aktiviert und überprüft, ob das letzte Element im Pfad überhaupt existiert – stanardmäßig ist dies nicht der Fall. Mit -s kann die bereits beschriebene Auflösung von Symlinks deaktiviert werden.
Alles in allem, ein hilfreiches Werkzeug, besonders für Shellscripte. Der Quelltext von realpath ist auch überschaubar und beispielsweise auf GitHub zu finden.
Mit der Cutie Shell betritt eine weitere Benutzerschnittstelle die Nische für mobile Geräte auf der Basis von Linux und Android. Die Optik des Neulings ist von Sailfish OS inspiriert
Bei meinem letzten Update von Homebrew unter macOS Big Sur hatte ich die Fehlermeldung, dass es eine ungültigen Pfadangabe für die Entwicklerwerkzeuge gäbe. Da ich nur die Kommandozeilenwerkzeuge für macOS nutze wird diese nicht einem Update unterzogen. Bei einer kompletten Installation von Xcode würde dies automatisch geschehen. Um das Update selbst anzustoßen genügt ein:
Aufstehen, die gut versteckten Taster suchen, Einstellen, hinsetzen. Das gilt auch für meinen externen Monitor, welchen ich öfters wegen der Sonneneinstrahlung anpassen muss. Hier hilft mir xrandr in der Shell. Zuerst muss ich den richtigen angeschlossen Monitor finden und kann dann über Parameter die gewünschte Helligkeit einstellen. Bei Nutzung als Tastaturkürzel in TilingWMs eine große ... Weiterlesen
Meine Empfehlung für das kommende Jahr doch einmal die Schriftart zu ändern und eine neue für die Konsole und das Programmieren zu nutzen. Die Schriftart Hack lässt sich in jeder Größe sehr leicht lesen. Ein Blick auf die Proben sollte … Weiterlesen →
Es gibt unter macOS Mojave keine Autovervollständigung der definierten Hosts aus der Datei ~/.ssh/config. Hierzu habe ich in die Datei ~/.bash_profile folgende Funktion eingetragen : Nun reicht wieder ein ssh TAB in der Konsole um die einzelnen Hosts und der … Weiterlesen →
Unter der Adresse https://ifconfig.co/ gibt es einen Dienst, welcher die öffentliche Adresse des genutzten Clients ausgibt. ifconfig.co lässt sich sehr gut in eigene Scripte durch die Unterstützung von curl, httpie, GNU Wget und fetch einbinden. Ausgegeben werden hier nicht nur … Weiterlesen →
pfSense hat seit einigen Versionen eine völlig überarbeitete Oberfläche. Damit lassen sich alle Einstellungen i.d.R. gut erreichen und einstellen. Das frei konfigurierbare Dashboard ist ebenfalls eine feine Sache. Trotz allem gibt es manchmal den Fall, dass man Einstellungen gern über eine API oder die Kommandozeile vornehmen möchte. pfSense hat aktuell keine API, diese soll erst in einer der kommenden Versionen integriert werden. Bis dahin kann man sich über die pfSense Entwickler-Shell behelfen, auch pfSsh.php genannt.
Auf pfSsh.php zugreifen
Am schnellsten kommt man in die Entwickler-Shell, wenn man sich per SSH mit pfSense verbindet oder direkt einen Bildschirm an die Firewall anschließt. Wenn SSH noch nicht aktiviert ist, kann man das in der Weboberfläche unter System → Advanced nachholen.
Besser ist es, wenn man das Einloggen mit Passwort verbietet und nur das Anmelden mit Zertifikat erlaubt.
Ist der SSH-Zugang aktivert, kann man sich nun mit dem Admin-Benutzer anmelden (IP anpassen):
$ ssh admin@192.168.1.254
Unter Punkt 12 findet man die Entwickler-Shell, die im Grunde eine PHP-Shell ist.
Beispielbefehle für pfSsh.php
Hier einige Beispielbefehle, die zeigen sollen, wie man die Shell verwenden kann. Jede Eingabe ist normaler PHP Code und muss mit exec; abgeschlossen werden.
Mit pfSsh.php kann man auch mehrere Befehle „aufnehmen“ und später „abspielen“. Diese sogenannten Sessions sind für wiederkehrende Aufgaben nützlich. Ein Beispiel:
Die Eingaben werden unter /etc/phpshellsessions/ gespeichert und können dort bei Bedarf verändert werden.
Die „Aufnahme“ kann man nun wie folgt wiedergeben:
pfSense shell: playback echoTest
Playback of file echoTest started.
Das
ist
ein
Test
pfSense shell:
oder auch direkt von der root-Shell mit:
$ pfSsh.php playback echoTest
Fazit
pfSsh.php ist ein nützliches Werkzeug, um pfSense mit Skripten zu automatisieren oder Anpassungen vorzunehmen. Gerade, wenn man mehrere Instanzen verwaltet oder ein bestimmtes Setup immer wieder braucht, ist pfSsh.php eine große Hilfe. Man kann z.B. alle Einstellung (sprich PHP-Code) in eine Datei packen, unter /etc/phpshellsessions/ speichern und dann ausführen oder direkt die Ausgabe an pfSsh.php weiterleiten: