Karriereplanung für Softwareentwickelnde: Die Arbeit an Open-Source-Projekten ermöglicht es, soziale Strukturen und projektspezifisches Know-how bei einem Firmenwechsel zu erhalten.

M. E. ist der folgende Aspekt bei der Karriereplanung von Softwareentwickelnden unterbeleuchtet: Nur die Arbeit in einem relevanten Open-Source-Projekt ermöglicht es, die sozialen Arbeitsstrukturen (v.a. Kolleginnen und Kollegen) bei einem Firmenwechsel zumindest teilweise zu erhalten. Zudem bleibt das erworbene projektspezifische Know-how bei einem Wechsel des Unternehmens weiterhin nutzbar.
Wer z.B. bei Suse angestellt ist und am Linux-Kernel arbeitet, wird wahrscheinlich auch bei einer anderen Firma, die sich mit dem Linux-Kernel beschäftigt, eine Anstellung finden. Das Arbeitsumfeld und Know-how bleiben beim Wechsel des Unternehmens zumindest teilweise erhalten bzw. nutzbar.
Bei der Arbeit an proprietärer Software dürfte der Firmenwechsel mit einem weitgehenden Verlust der sozialen Arbeitsstruktur und einer verminderten Nutzbarkeit des projektspezifischen Know-hows einhergehen, weil es in der Regel kein weiteres Unternehmen gibt, das an derselben Software arbeitet.

PhotoPrism

PhotoPrism ist eine Open-Source-Software zur Verwaltung von Fotosammlungen im Browser, die ich seit einigen Monaten verwende.

Mit Hilfe von Docker bzw. Docker Compose kann PhotoPrism einfach installiert werden, ohne dass umständliche Konfigurationen erforderlich sind. Wichtig für mich ist, dass PhotoPrism die Fotos in ihrer ursprünglichen Verzeichnisstruktur belässt, ohne sie zu bearbeiten, zu verschieben oder umzubenennen. Auf diese Weise behält man die volle Kontrolle über die eigene Fotosammlung, so dass es kein großes Problem ist, wenn die Software einmal ausfällt oder gewechselt werden muss. Außerdem kann so die Organisationsstruktur frei gewählt werden.
PhotoPrism bietet eine Weboberfläche, die es einfach macht, Fotos zu suchen und anzuzeigen. Darüber hinaus kann es auch Gesichter automatisch erkennen und taggen, was die Suche nach bestimmten Personen erleichtert.

Da PhotoPrism kein Berechtigungssystem enthält, eignet es sich nur für die Verwaltung der eigenen Fotosammlung. Für den Austausch mit verschiedenen Personengruppen ist es eher ungeeignet (es sei denn, alle Personen sollen Zugriff auf die gesamte Sammlung haben). Für den Austausch mit verschiedenen Personengruppen verwende ich Nextcloud.

Stable Diffusion One-Click-Installer

https://stable-diffusion-ui.github.io/

Installiert Stable Diffusion inkl. Web-UI. Wie seriös das Paket ist, kann ich leider nicht bewerten.

Meine AMD-Grafikkarte wurde erst für die Berechnungen verwendet, nachdem ich den ausführenden Linux-Benutzer in die Gruppen render und video eingetragen hatte.

LLMs: Chain-of-thought prompting

Man konnte zeigen, dass man von Large Language Models (wie ) bei einigen Fragestellungen häufiger richtige Antworten erhält, wenn man der Frage beispielsweise das Zusatzkommando „Let’s think step by step“ hinzufügt. Das Modell generiert dann ggf. eine Wortfolge, die wie eine schrittweise Herleitung des Ergebnisses aussieht. M. E. ist daran interessant, dass solche Modelle, obwohl sie keinerlei Verständnis von Frage und Antwort haben, auf diese Weise bessere Antworten generieren.

Ein entsprechendes Paper findet sich hier: https://openreview.net/pdf?id=e2TBb5y0yFf

Im Paper wird folgendes Beispiel genannt:

„Q: A juggler can juggle 16 balls. Half of the balls are golf balls, and half of the golf balls are blue. How many blue golf balls are there?
A: Let’s think step by step.

(Output) There are 16 balls in total. Half of the balls are golf balls. That means that there are 8 golf balls. Half of the golf balls are blue. That means that there are 4 blue golf balls.“

Ohne die Zusatzanweisung „Let’s think step by step“ hätte das Modell, das im Beispiel verwendet wurde, eine falsche Antwort gegeben: Es hätte „8“ geantwortet.

Gerade weil das Modell kein Verständnis davon hat, welche Wortfolgen erzeugt werden, muss man dabei im Auge behalten, dass auch diese Methode nicht zu fehlerfreien Antworten führt. Bei vielen Antworten wird es sich weiterhin um „Halluzinationen“ handeln.

„Like previous GPT models, the GPT-4 base model was trained to predict the next word in a document“

Was bedeutet das nach meinem Verständnis:

Bei ist es so, dass es sich den bestehenden Text „anschaut“ und dann, anhand von dem, was da bereits steht, das nächste Wort errechnet (immer nur ein Wort). Bei der Berechnung werden die wahrscheinlichsten Kandidaten für das nächste Wort ermittelt. Dann schreibt GPT einen der Kandidaten hin* und fängt erneut an. Text „lesen“, nächstes Wort ausrechnen. Text „lesen“, nächstes Wort ausrechnen. Usw. usf.

(Wobei intern keine Worte sondern nur Zahlen verwendet werden.)

Wenn ein Mensch etwas sinnvolles schreibt, hat er / sie vermutlich schon vorher eine gewisse Vorstellung von dem, was er / sie schreiben will.

Wenn ein Mensch schreibt „Delphine sind Säugetiere, weil sie lebende Nachkommen auf die Welt bringen und Milch geben.“, dann hat er / sie sich evtl. aus den Tatsachen hinter dem „weil“ die vorhergehende Aussage „Säugetier“ hergeleitet.

Bei GPT kann das nicht passieren. GPT schreibt das Wort „weil“ einfach nur, weil der Algorithmus dies (basierend auf den Wörtern, die bereits vorhanden sind) errechnet hat.

Die Wahrscheinlichkeiten werden beim „Training“ des Modells ermittelt. Das Modell wird mit Unmengen an Text gefüttert und leitet sich daraus die Wahrscheinlichkeiten ab.

* Es hat sich gezeigt, dass die Texte „besser“ und interessanter werden, wenn nicht immer das wahrscheinlichste Wort verwendet wird. Eigentlich handelt es sich auch nicht unbedingt um Wörter sondern um sogenannte Token. Dabei kann es sich u. a. um Worte, Teilworte oder einzelne Buchstaben handeln.

Mit openHAB auf openWB-Wallbox zugreifen

Auf dem -Server:

  • MQTT-Binding installieren (ein MQTT-Server ist nicht nötig)
  • Neues Thing anlegen: MQTT-Broker mit dem Hostname bzw. der IP der Wallbox:
Bridge mqtt:broker:openwbbroker "OpenWBBroker" [ host="hostnameOpenWB", secure=false, clientID="openhabian",port=1883, username="",password=""]
  • Neues Thing für die anlegen:

// Beispielhaft Leistung der PV-Anlage und Hausverbrauch auslesen
Thing mqtt:topic:openwb "OpenWB" (mqtt:broker:openwbbroker) {

   Channels:
     Type number : pvpower "PV-Leistung" [
        stateTopic="openWB/pv/W",unit="W" 
      ] 
     Type number : powerconsumption "Hausverbrauch" [ 
        stateTopic="openWB/global/WHouseConsumption",
        unit="W"
      ] 
}

Die MQTT-Topics der Wallbox habe ich mit MQTT-Explorer ausgelesen.

  • Für die Channels können anschließend Items angelegt werden:
Number:Power pvpower "PV-Leistung" { channel="mqtt:topic:openwb:pvpower" }
Number:Power powerconsumption "Hausverbrauch" { channel="mqtt:topic:openwb:powerconsumption" }

Schwächen eines Apple TV

Ich wurde kürzlich zu meiner Meinung zu Apple TV gefragt. Ein Pluspunkt von Apple TV ist sicherlich, dass das Gerät den Fernseher nach Möglichkeit auf dieselbe Bildwiederholungsrate einstellt wie das Videomaterial. Das reduziert Mikroruckler.

Außerdem sind mir folgende Schwächen eingefallen:

  • Es sind keine USB-Geräte anschließbar.
  • Apps können nur aus dem Appstore installiert werden. Eine Installation von Apps, die im Appstore nicht verfügbar sind, ist nicht möglich. Es scheint z. B. keinen Browser zu geben.
  • Das Gerät funktioniert nur, wenn man eine Apple-ID hat und diese auf dem Gerät eingibt. Das Anlegen einer neuen ID gestaltet sich relativ aufwändig, insb. wenn man keine weiteren Geräte von Apple hat.
  • Apple TV+ zeigt vor jedem Video Werbung für ein anderes Video von Apple TV+.
  • Soweit ich weiß können keine Playlisten angelegt werden. Schon gar nicht über mehrere Streamingdienste hinweg.
  • Mit der Fernbedienung kann man nicht zu einer Zeitmarke innerhalb eines Videos springen. Man kann nur „vor- und zurückspulen“, was ggf. recht lange dauert.
  • Es gibt keine Möglichkeit die Sprache pro Serie festzulegen. Wenn man unterschiedliche Serien in unterschiedlichen Sprachen anschaut, muss man immer wieder die Sprache wechseln.
  • Die Liste der auswählbaren Sprachen kann nicht angepasst werden. D. h. beim Umstellen der Sprache muss man ggf. immer wieder über Sprachen hinwegscrollen, an denen man eigentlich kein Interesse hat. Für mich kommen eigentlich nur zwei Sprachen in Betracht. Wenn ich die übrigen Sprachen entfernen könnte, wäre mir sehr geholfen. Auf meinem deutschen Apple-TV steht die Sprache Deutsch immer an erster Stelle, was einen Wechsel zur englischen Tonspur noch aufwändiger macht.
  • In der Apple TV+-App gibt es die Möglichkeit das Intro einer Serie zu überspringen. Den Button muss man allerdings immer wieder anklicken. Es gibt keine Möglichkeit das Intro immer zu überspringen.
  • Es gibt keine Möglichkeit Untertitelsprache und Audiosprache gleichzeitig zu wechseln.
  • Das Eingeben von Buchstaben mit der Fernbedienung ist ziemlich unkomfortable.
  • Nach Szenenwechseln kommt es manchmal zu kurzen Rucklern. Ggf. liegt das am Streamingdienst. Mir ist das bei Paramount+ aufgefallen.
  • Bei Apps können die Berechtigungen nicht entzogen werden.
  • Das Gerät hat keinen separaten Ausgang für den Ton. D. h. wer einen AV-Receiver benutzt und den HDMI-Ausgang des Apple-TVs nicht durch den AV-Receiver schleift, muss den Ton vom Fernsehgerät abgreifen (z. B. per ARC).
  • Einige Einstellungen des Apple-Accounts können anscheinend nicht über den Browser angepasst werden. Bei mir hat zum Beispiel die Kündigung eines Abonnements, das ich über Apple TV abgeschlossen hatte, auf dem Apple TV nicht funktioniert. Ich konnte das Abo nur über den Support kündigen lassen, da es anscheinend keinen Browserzugang zur Verwaltung der Abos gibt.