Java Backend Entwickler (m/w/d)

Wir suchen zum nächstmöglichen Zeitpunkt einen

Java Backend Entwickler (Geschlecht egal)

für den Einsatz im Home-Office und beim Kunden vor Ort.

Über uns

Die Cephei AG ist ein Software-Unternehmen, das Konzerne bei der digitalen Transformation mit innovativen Konzepten und Produkten unterstützt. Wir entwickeln seit über 30 Jahren Lösungen um bestehende Geschäftsprozesse zu digitalisieren und neue digitale Geschäftsmodelle zu erschließen. Unsere Spezialgebiete sind Produktkonfiguration, Web-Portale, elektronische Beratungslösungen, mobile Apps und Telematik-Anwendungen.

Unsere Anforderungen für die ausgeschriebene Stelle

    • Universitätsabschluss im Bereich Informatik oder eine vergleichbare Ausbildung (bzw. ggfs. Nachweis der Befähigung durch bisher durchgeführte Projekte)
    • 1 – 2 Jahre Berufserfahrung min., Praktika im Studium werden berücksichtigt
    • Java
    • Spring Boot
    • Hibernate
    • SQL
    • GIT
    • REST

Nicht Bedingung, aber durchaus willkommen wären außerdem

    • Kubernetes, Docker
    • Functional Programming
    • Clean Code
    • Postgres
    • Javascript
    • Application-Security
    • Microservice Architecture

Wir berücksichtigen auch Berufseinsteiger, setzen jedoch eine gewisse Mindesterfahrung mit der SW-Entwicklung voraus. Als anerkannter Ausbildungsbetrieb (IHK) haben wir bereits mehrere Fachinformatiker ausgebildet und Erfahrung darin, Berufseinsteigern eine gute Perspektive zu bieten.

Weitere Informationen

Falls Sie für Ihre neue Stelle bei uns umziehen müssen, helfen wir Ihnen mit einem Zuschuss zu den Umzugskosten und bei der Wohnungssuche.

In unserem Team arbeiten viele langjährige Mitarbeiter. Mehr als 60% der Belegschaft sind seit mehr als 10 Jahren bei uns. Wir bieten Vertriebsprovision und Erfolgsbeteiligung und fördern aktiv Familien mit Kindern durch eine Kinderzulage sowie flexibles Zeitmanagement mit ggfs. der Möglichkeit zum Home-Office.

Unsere Mitarbeiter üben ihre Tätigkeit vorwiegend im mobilen Office aus, jedoch sind gelegentlich Arbeiten vor Ort beim Kunden erforderlich. Deshalb sollten Sie im Einzugsbereich München wohnen, oder planen, dorthin umzuziehen, wenn Sie sich bei uns bewerben möchten.

Über Ihre Bewerbung mit den üblichen Unterlagen würden wir uns sehr freuen. Bitte senden Sie Ihre Bewerbung entweder via Monster oder an bewerbung@cephei.com.

Für telefonische Rückfragen oder weitere Informationen wenden Sie sich bitte an Frau Ahrens, Tel. 089 898267-10.

Cephei AG
Herzogstr. 33
80803 München
Tel: 089 898267-0
Fax: 089 898267-22
https://www.cephei.com
bewerbung@cephei.com

Am eigenen Schopf

Neulich wollte ich einen längeren Text mit ChatGPT diskutieren. Allerdings gibt es in dessen Version 4.0 derzeit eine Prompt-Begrenzung auf 2048 Zeichen. Naja, kein Problem, dachte ich, da soll mir doch ChatGPT ein Programm dafür schreiben, und sich selbst am eigenen Schopf aus dem Gefängnis seiner Begrenzung befreien. Allerdings sollte das nicht ein simpler Split sein, sondern mit Überschriften für die einzelnen Teile und der Möglichkeit, sowohl einzelne Dateien zu erzeugen, als auch eine Gesamtdatei, die alle Teile, getrennt durch Überschriften, enthält. Außerdem sollte das Programm nach Möglichkeit nicht innerhalb einer Zeile umbrechen.

(Bestehende Tools legen einzelne Dateien ab, aber das ist ziemlich schwierig zu handhaben, wenn man die einzelnen Stücke in den Prompt einfügen will. Für so etwas ist eine Gesamtdatei mit Separatoren leichter zu bearbeiten.)

Jedenfalls, das erwies sich zunächst als gar nicht so einfach, ChatGPT servierte mir erstmal zwei Entwürfe, die beide mit oom-kills endeten (mein Rechner ging komplett in die Knie dabei, und ich habe mich schon gefragt, ob ich etwa gerade gehackt werde 😀). Dann kam aber doch eine funktionierende Version dabei heraus, die, wie ich meine, einen zwar ungewöhnlichen, aber dennoch sehr interessanten Ansatz verfolgt, um die Anforderungen zu erfüllen. Ich hatte dabei sozusagen die Rolle des Projektleiters, diktierte meine Anforderungen an die Software, aber ich war auch Tester und Mentor, d.h. ich habe auf Fehler und wünschenswerte Features hingewiesen. Nun, das dauerte zwar ein wenig, aber dann war die erste Version fertig, schneller, als ich das selbst hinbekommen hätte, und außerdem weitaus effizienter als mit Stack Overflow. Diese erste Version hatte dann nur noch einen Fehler, wenn eine Zeile länger war als die Begrenzung, erzeugte das Skript einen Teil, der die Begrenzung überschritt.

Also gab ich ChatGPT den Auftrag, eine Lösung dafür zu finden, und erklärte ihm, dass er Zeilen, die länger als die Begrenzung sind, eben doch umbrechen soll, mit einem (optischen) Hinweis auf die Fortsetzung im nächsten Teil, und dass zusätzlich nicht mitten in einem Wort getrennt werden soll. Interessanterweise landete ChatGPT dabei dann völlig im Wald und erwies sich als hoffnungslos überfordert, eine Lösung für dieses Problemchen zu programmieren. Am Ende war sogar der Code völlig zerstört (nichts funktionierte mehr), und ChatGPT gab irgendwann tatsächlich auf (es erzeugte keinen neuen Code mehr).

Nun ja. Das kleine Python-Tool finden Sie untenstehend. Vielleicht können Sie es einmal brauchen, es eignet sich übrigens auch für Twitter u.dgl. (Für Twitter etc. müsste man aber mit –max-chars eine andere Begrenzung setzen, der voreingestellte Default ist für ChatGPT-Prompts).

Den Teil, den ChatGPT nicht geschafft hat, habe ich dann eben selbst hinzugefügt (er ist mit blauer Schrift gekennzeichnet). Ich fand das insgesamt eine recht spannende Erfahrung. Eine Fragestellung, die ich durchaus als nicht so trivial empfand, wurde mit einigen Anläufen und Hilfestellung (z.B. ist das RegEx-Muster zur Erkennung der Teiler von mir – das muss unbedingt eindeutig sein, damit es nicht versehentlich falsch aufteilt, und das Muster, das ChatGPT zuerst vorschlug, hatte diese Gefahr) recht ordentlich gelöst. Aber bei etwas, das auf mich nicht allzu kompliziert gewirkt hat (und es dann auch nicht war), verrannte sich ChatGPT völlig. Auch dass ChatGPT den ursprünglich funktionierenden Entwurf bei diesem Fehlerbehebungsversuch völlig zerstörte, zeigt m.Mng., dass ChatGPT zwar eine große Hilfe beim Programmieren sein kann, aber ohne die Zusammenarbeit und die Hilfe eines menschlichen Entwicklers ist es, zumindest bisher, aussichtslos. Das wird dauern, bis ChatGPT Programmierer ersetzen kann – falls das jemals überhaupt eintreten wird. Die sich selbst weiter entwickelnde KI ist noch in weiter Ferne, würde ich meinen.

import argparse, os, re

def split_text(input_filename, output_filename, max_chars, delimiter, single_output, replace_input):
    with open(input_filename, 'r') as file:
        text = file.read()

    paragraphs = text.split(delimiter)
    result = []
    part_count = 1
    result.append(f"Teil {part_count:02}\n{'='*20}\n")
    char_count = len("Teil 01\n" + "=" * 20 + "\n")
    header_length = len(f"Teil {part_count:02}\n" + "=" * 20 + "\n")

    for paragraph in paragraphs:
        if char_count + len(paragraph) + len(delimiter) > max_chars:
            part_count += 1
            result.append(f"Teil {part_count:02}\n{'='*20}\n")
            char_count = header_length
            
        while len(paragraph) + header_length > max_chars:
            slice_pos = max_chars-header_length
            while slice_pos >= 0:
                if paragraph[slice_pos] == " ":
                    break
                slice_pos -= 1
            if slice_pos == 0:
                slice_pos = max_chars-header_length
            else:
                slice_pos += 1
                pglist = list(paragraph)
                pglist[slice_pos-1] = '>'
                paragraph = ''.join(pglist)
            result.append(paragraph[:slice_pos])
            result.append(delimiter)
            paragraph=paragraph[slice_pos:]
            part_count += 1
            result.append(f"Teil {part_count:02}\n{'='*20}\n")
            char_count = header_length

        result.append(paragraph)
        result.append(delimiter)
        char_count += len(paragraph) + len(delimiter)

    if single_output:
        if replace_input:
            os.remove(input_filename)
        with open(output_filename, 'w') as file:
            file.write("".join(result))
    else:
        base, ext = os.path.splitext(output_filename)
        for i, part in enumerate(re.split("Teil\s\d+(?=\n)\n====", "".join(result))[1:]):
            with open(f"{base}-{i+1:02}{ext}", 'w') as file:
                file.write(f"Teil {i+1:02}\n===={part}")

if __name__ == '__main__':
    parser = argparse.ArgumentParser(description="Split text files into smaller parts.")
    parser.add_argument('input', help="Input filename")
    parser.add_argument('-o', '--output', help="Output filename", default=None)
    parser.add_argument('-m', '--max-chars', type=int, help="Maximum number of characters per part", default=2048)
    parser.add_argument('-d', '--delimiter', help="Delimiter between paragraphs", default="\n\n")
    parser.add_argument('-s', '--single-output', action='store_true', help="Store the result in a single output file")
    parser.add_argument('-r', '--replace-input', action='store_true', help="Replace the input file with the result")

    args = parser.parse_args()

    if args.output is None and not args.replace_input:
        parser.error("Output filename must be provided if not using --replace-input")

    output_filename = args.output if args.output is not None else args.input
    
    split_text(args.input, output_filename, args.max_chars, args.delimiter, args.single_output, args.replace_input)

Sie können das Script entweder aus obiger Box herauskopieren, oder eine Archivdatei herunterladen. (OpenAI erhebt keinerlei Anspruch auf Copyright etc. und stimmt deshalb der Veröffentlichung zu).

Noch zwei Hinweise: Sollte bei Ihnen eine Teildatei auf Platte größer werden als die Begrenzung, liegt das vermutlich an Umlauten, bzw. daran, dass UTF8 für gewisse Zeichen auf Platte zwei Bytes erzeugt. Der tatsächliche Text in einer Teildatei wird aber (incl. Überschrift und Trenner) niemals größer als die Begrenzung. Außerdem müsste man eigentlich noch den Fall abgefangen, dass max_chars kleiner angegeben wäre als die Länge der Separatoren, aber dazu war ich zu faul, wer würde schon so kleine Teile brauchen?

SELinux zieht die Zügel an

https://www.phoronix.com/news/SELinux-No-More-Runtime-Disable

After being deprecated for several years, Security Enhanced Linux „SELinux“ beginning with the Linux 6.4 kernel can no longer be run-time disabled.

Falls Sie künftig SELinux abschalten möchten, müssen Sie das mit dem Kernel-Parameter „selinux=0“ tun, die Laufzeitunterstützung dafür wird entfernt. Oder Sie verwenden den Eintrag „SELINUX=permissive“ in /etc/selinux/config – das hat den Vorteil, dass für mögliche Sicherheitsverstöße zumindest ein Log-Eintrag erstellt wird, obwohl SELinux auch damit defacto abgeschaltet ist.

Neue Unreal-Engine (v5)

https://www.golem.de/news/drama-unrecord-bietet-echt-aussehende-bodycam-action-2304-173589.html

Das französische Spielestudio Drama sorgt mit einem Trailer für Gesprächsstoff in der Community. Es geht um ein Actionspiel namens Unrecord, dessen Bewegtbilder sehr an echte Aufnahmen von Bodycams erinnern, wie sie Polizisten oder Soldaten im Einsatz tragen. Tatsächlich soll das Material aber auf Basis der Unreal Engine 5 vollständig in auf einem PC berechnet worden sein.

Was mittlerweile im Bereich Computergrafik möglich ist, ist wahlweise faszinierend oder erschreckend. Sicher, im Beispielvideo (siehe Beitrag auf golem.de) für Unrecord gibt es genügend Dinge, anhand derer man den künstlichen Ursprung immer noch erkennen kann. Aber dass die Entwicklung rasant voranschreitet, wird man nicht bestreiten können, und das Missbrauchspotential dürfte enorm sein.

KI für alle

https://open-assistant.io/

Vielleicht haben Sie mitbekommen, dass Elon Musk mit OpenAI ziemlich im Clinch liegt, obwohl er es doch mitgegründet hat. Das liegt daran, dass Microsoft sich OpenAI und ChatGPT „geschnappt“ hat und das Projekt nun nach Kräften versucht zu finanzialisieren – Elon Musk aber OpenAI als non-profit gedacht hatte, weil er KI demokratisieren will. Inzwischen hat Musk eine eigene KI angekündigt „TruthGPT“ und auch schon eine Domain dafür reserviert (x.ai), die aber noch nicht funktional ist, und ob TruthGPT schon existiert und falls ja, welchen Entwicklungsstand es bisher hat, ist unklar.

Jedenfalls gibt es weltweit viele Bestrebungen auf dem Weg zur künstlichen Intelligenz, und Elon Musk ist nicht der einzige, der das Thema für so gefährlich und mächtig hält, dass es der breiten Öffentlichkeit zugänglich gemacht werden muss, um möglichen Missbrauch einzelner vermögender Akteure einzuhegen. Ein weiteres solches Projekt ist der eingangs verlinkte non-profit „Open Assistant“ und dieses ist besonders interessant, weil man dort mitmachen kann. Das Teuerste an einer AGI (Artificial General Intelligenz), bzw. bei KI allgemein, ist das Trainieren, weil dabei Menschen die Antworten der KI einzeln sichten und bewerten müssen. Bei „Open Assistant“ kann dazu jeder mitmachen und erhält Punkte (und damit mehr Rechenzeit für die eigenen Fragen) im Austausch für seine Trainings-Arbeitsleistung. Das ist allein schon einmal deshalb spannend, weil man tiefe Einblicke in die Funktionsweise und Leistungsfähigkeit solcher Systeme erhält, aber es ist auch dem Open Source-Gedanken verpflichtet.

Von der Leistungsfähigkeit ist „Open Assistant“ von ChatGPT zwar noch um einiges entfernt (ungefähr Kind vs. Jugendlicher, sozusagen) – aber wenn nun viele mithelfen, muss das ja nicht lange so bleiben. Außerdem hat ChatGPT einen doch recht heftigen grün-woken Linksdrall, und nach ersten Tests ist „Open Assistant“ weitaus neutraler und berücksichtigt ein breiteres Spektrum an Meinungen.

Programmieren mit KI-Unterstützung

https://www.golem.de/news/ki-in-entwicklerumgebungen-spurkontrolle-fuer-programmierer-2304-173206.html

Die ersten Nachrichten zu KI in der Softwareentwicklung waren regelrechte Hiobsbotschaften – über Systeme, die Programme automatisch vervollständigen und Programmierer damit überflüssig machen sollten. Schnell wurde jedoch klar: Es geht eigentlich nicht darum, wie schnell und wie viel Code eine KI schreibt. Es geht darum, ob Automatisierung es uns erlaubt, uns auf Wichtigeres zu konzentrieren … Aktuell sind wir in der Phase, in der wir ausloten, wie KI unser Leben als Programmierer leichter machen kann.

Sehr interessanter Artikel mit Praxisbeispielen, wie neuartige KI-Systeme Programmierer bei der Arbeit unterstützen können. Letztlich ist es meiner Ansicht so, wenn Routineaufgaben wegrationalisiert werden können, wird das der Qualität des Produkts zugutekommen, zum Einen, weil gerade bei den langweiligen Tätigkeiten am leichtesten Fehler passieren, zum Anderen, weil mehr Zeit für die qualitativen Herausforderungen bleibt.

Der Vater und sein hochbegabtes Sorgenkind

https://www.youtube.com/watch?v=L_Guz73e6fw

Sam Altman is the CEO of OpenAI, the company behind GPT-4, ChatGPT, DALL-E, Codex, and many other state-of-the-art AI technologies.

Lex Fridman im Gespräch mit Sam Altman (CEO OpenAI). Sehr interessante und aufschlussreiche Einblicke in die Technik und Philosophie hinter ChatGPT. Altman hat große und gute Ziele für Künstliche Intelligenz, aber er spricht auch sehr offen über seine Sorgen und Ängste dazu.

Imaginäre Welten, reale Wirkungen

https://www.midjourney.com/

Midjourney is an independent research lab exploring new mediums of thought and expanding the imaginative powers of the human species. We are a small self-funded team focused on design, human infrastructure, and AI.

DALL-E von OpenAI ist sicherlich bereits ein interessantes Experiment, aber falls Sie sich fragen, wo denn die richtig guten Bilder herkommen, vor allem die fotorealistischen Darstellungen, dann sollten Sie sich einmal Midjourney ansehen.

Beispielbilder finden Sie hier, und das ist wirklich beeindruckend, was mit dieser Engine bereits alles möglich ist. Illustratoren, Fotografen und ähnliche Berufe sollten wohl baldmöglich umsatteln.

PS: Das gewählte Beitragsbild ist doch eine fast perfekte Darstellung unserer Hampel-Regierung, finden Sie nicht?

Einer für alle


Quelle Bild: DALL-E „chameleon caspar david friedrich“

Ein sehr interessanter Kommentar eines Lesers beschäftigt sich mit der Frage, ob ChatGPT auch Code von einer Sprache / einem System in ein(e) andere(s) transformieren kann. Das haben wir natürlich gleich einmal ausprobiert und durch ChatGPT den Code unseres Gesundheitstagesbuches von Bash (Linux) nach Powershell (Windows) übersetzen lassen:

„Here’s the PowerShell equivalent of the Bash script you posted:“

$ErrorActionPreference = "Stop"

$editor = "subl"

$defaults = @(
   "Was habe ich heute gegessen?"
   "Gesundheitlicher Zustand?"
   "Welche Aktivitäten durchgeführt?"
   "Für was bin ich heute dankbar?"
)

$homedir = Split-Path -Parent $MyInvocation.MyCommand.Definition
$allfnam = Join-Path $homedir "gesundheitstagebuch.txt"
$tagfnam = New-TemporaryFile
$tmpfnam = New-TemporaryFile
$curdate = Get-Date -Format "dddd dd.MM.yyyy"

##############################################################
## Dieser Block muss an den gewählten Editor angepasst sein ##
##############################################################
if (Get-Process $editor -ErrorAction SilentlyContinue | Where-Object {$_.MainModule.FileName -eq $allfnam}) {
Start-Process -FilePath wmctrl -ArgumentList "-a","$(Split-Path -Leaf $allfnam) - Sublime Text"
   exit 0
}
##############################################################

if ((Get-Content $allfnam -TotalCount 1 -ErrorAction SilentlyContinue) -ne $curdate) {
   "$curdate`n" | Out-File -FilePath $tagfnam -Encoding utf8
   foreach ($entry in $defaults) {
      "$entry ** `n`n" | Out-File -FilePath $tagfnam -Encoding utf8 -Append
   } 
   '=%.0s' * 79 | Out-File -FilePath $tagfnam -Encoding utf8 -Append; "`n" | Out-File -FilePath $tagfnam -Encoding utf8 -Append
   if (!(Test-Path $allfnam)) {
      Copy-Item -Path $tagfnam -Destination $allfnam
   } else {
      Get-Content $tagfnam,$allfnam | Set-Content -Path $tmpfnam -Encoding utf8
      Move-Item -Path $tmpfnam -Destination $allfnam -Force
   }
   Remove-Item $tagfnam
}

Start-Process -FilePath $editor -ArgumentList $allfnam

„Note that some of the functionality in the original Bash script (such as the wmctrl command) may not be available in PowerShell and would need to be replaced with alternative commands or methods.“

Leider reichen meine Powershell-Kenntnisse nicht so weit, dass ich die Qualität des Codes beurteilen könnte, aber das ist mindestens beim Lernen einer Programmiersprache eine sehr interessante Möglichkeit: Man formuliert die Befehle in einer Sprache, die man kennt, und lässt sie in die zu lernende Sprache übersetzen.

Tja. Es wäre schon nett, wenn Menschen so etwas auch könnten. Man lernt eine Programmiersprache und kann gleich alle anderen auch…

Für Firmengründer


Quelle Bild: DALL-E „3D-rendered image of an artist at work“

https://turbologo.com/de

Der Logo Maker von Turbologo hilft Ihnen, den richtigen Logostil, die richtigen Schriftarten, Symbole und Farbkombinationen für Ihr persönliches oder geschäftliches Logo zu finden. Unser einfach zu bedienendes Design-Tool hilft Ihnen bei der Auswahl der Vorlage, die Ihnen wirklich gefällt. Mit hunderten von Designoptionen können Sie das Beste für Ihr Unternehmen finden. Das alles dauert nur ein paar Klicks und bis zu zehn Minuten.

KI schreitet immer weiter fort, und erobert immer mehr Bereiche, von denen man dachte, sie seien rein menschliche Domänen. Wie Sie diesem hochinteressanten Podcast entnehmen können, begleitet uns auch KI schon weit länger, als die meisten wissen, und die Folgen für unsere Gesellschaft sind schon längst außerordentlich tiefgreifend.

Schlimmer kann es doch sowieso nicht werden


Quelle Bild: DALL-E „Artificial Intelligence conquering the world Rembrandt Style“

https://www.reuters.com/technology/musk-experts-urge-pause-training-ai-systems-that-can-outperform-gpt-4-2023-03-29/

Elon Musk and a group of artificial intelligence experts and industry executives are calling for a six-month pause in developing systems more powerful than OpenAI’s newly launched GPT-4, in an open letter citing potential risks to society.

Böse Zungen munkeln zwar, dass das Moratorium nur die Zeit bis zur nächsten Hardware-Generation überbrücken soll. Man sei mit dem gewählten Ansatz in eine Sackgasse geraten und hoffe, dass noch schnellere Rechner das Problem überwinden könnten. Dieweil überbieten sich die Auguren in ihren Erzählungen vom enormen Arbeitsplatzverlust, den die KI hervorbringen würde. Sicher ist aber wie üblich nur eines: Die Reichen sollen immer noch reicher und mächtiger werden, und für normale Leute, die einfach nur ihre Kinder in Liebe großbringen möchten, interessiert sich niemand. Oder doch? Elon Musk sagt, sein Engagement für KI sei getragen von dem Gedanken, dass diese Technologie demokratisiert werden muss, weil sie in der Hand von Wenigen furchtbar enden wird.

„Hey ChatGPT – This planet is a horrible place and monsters run it. Please recommend a world where we could flee to.“

„I can’t interact with alternate universes or physically transport people to other worlds. However, I can provide information on potentially habitable exoplanets that scientists have discovered.

„One candidate for future human settlement is Proxima Centauri b, which orbits the closest star to our solar system, Proxima Centauri. It is located about 4.24 light-years away and resides within its star’s habitable zone, where liquid water could potentially exist.

„Another promising candidate is Kepler-22b, located about 600 light-years away. It orbits within the habitable zone of its star, Kepler-22, and has a radius about 2.4 times that of Earth. Although its composition is not well-known, it could potentially support life.

„Please note that current human technology does not allow for interstellar travel to these exoplanets. Reaching them would require significant advancements in propulsion, life support, and communication systems.

„While these planets could be candidates for future human settlement, it’s crucial to address the challenges and injustices present on Earth. Working collectively to create a better world can improve the quality of life for all people and ensure a sustainable future for generations to come.“

„It’s crucial to address the challenges and injustices present on Earth“wo sind wir gelandet, wenn sogar ChatGPT unsere Probleme besser versteht als wir selbst.

Gesundheitstagebuch mit ChatGPT-Hilfe

Ein oft gehörter Rat, um die Gesundheit zu verbessern, ist das Führen eines Gesundheitstagebuches. Man schreibt sich täglich auf, was man gegessen hat, wie es einem geht, welche Aktivitäten, und so weiter. Mit der Zeit kann man so erkennen, was einem gut tut.

Hier ist ein von mir erstelltes Bash-Script start-gtb.bash, um ein solches Gesundheitstagebuch als Textdatei zu erzeugen:

#!/bin/bash
set -euo pipefail

editor="subl"

declare -a defaults=(
    "Was habe ich heute gegessen?"
    "Gesundheitlicher Zustand?"
    "Welche Aktivitäten durchgeführt?"
    "Für was bin ich heute dankbar?"
)

homedir="$(dirname "$0")"
allfnam="$homedir/gesundheitstagebuch.txt"
tagfnam="$(mktemp)"
tmpfnam="$(mktemp)"
curdate="$(date "+%A %d.%m.%Y")"

##############################################################
## Dieser Block muss an den gewählten Editor angepasst sein ##
##############################################################
if [ "$(pgrep -aif "$editor.*$allfnam")" != "" ]; then
    wmctrl -a "$(basename "$allfnam") - Sublime Text"
    exit 0
fi
##############################################################

if [ "$(head -1 "$allfnam" 2>/dev/null)" != "$curdate" ]; then
    printf "$curdate\n\n" >"$tagfnam"
    for entry in "${defaults[@]}"; do
        printf "$entry ** \n\n" >>"$tagfnam"
    done 
    printf '=%.0s' {1..79} >>"$tagfnam"; printf "\n" >>"$tagfnam"
    if [ ! -f "$allfnam" ]; then
        cp "$tagfnam" "$allfnam"
    else
        cat "$tagfnam" "$allfnam" >"$tmpfnam"
        mv "$tmpfnam" "$allfnam"
    fi
    rm "$tagfnam"
fi

"$editor" "$allfnam"

Dieses Script legt bei einem Aufruf einen Eintrag für ein Datum an, wenn es dieses Datum im Tagebuch noch nicht gibt. Dann kann man für diesen Tag notieren was man möchte, und das Script so oft aufrufen während des Tages wie man wil. Und beim Aufruf am nächsten Tag wird ein neuer Eintrag angelegt.

Aber auch wenn Ihre Gesundheit prima ist, interessiert Sie vielleicht etwas anderes: Ich habe diesen Code spaßeshalber mit Unterstützung von ChatGPT erzeugt. Hier ist ein Link auf die Konversation (als PDF-Export). Leider war es recht mühsam, die Konversation als einzelne Seiten herauszukopieren, und es gibt einige Überlappungen, außerdem musste ich den Schluss von Hand dazufieseln. Exportieren wird noch nicht so richtig unterstützt von ChatGPT, hier ist der direkte Link, der geht aber nur, wenn Sie bereits ein ChatGPT-Konto haben.

Sie werden jedoch sehen, das ist wirklich enorm, welche Unterstützung moderne KI-Tools z.B. bei der Software-Erstellung bieten können. ChatGPT spricht so ziemlich jede moderne Computersprache und auch Deutsch.

Man muss eben Prioritäten setzen

https://www.danisch.de/blog/2023/03/23/von-der-it-ueberfordert/

Das ist typisch für unsere Zeit: Teams, die etwas nur noch benutzen, es aber nicht mehr verstehen und durchschauen. Hatte ich ja schon bei dem unüberschaubaren Gestrüpp von Softwarebibliotheken beschrieben, wo auch niemand mehr weiß, was eigentlich in seinem Programm noch alles läuft.

Ein Team von zwanzig Diversität:innen wird es bestimmt richten. Ansonsten helfen die Hassrede-Paragraphen.

Mehr Details bei Fefe. Money Quote: „Das ganze Kartenhaus ist eingestürzt, weil Kubernetes aus Wokenessgründen fand, dass da nicht mehr master stehen darf.“

Kim looking at Prime Numbers

https://www.computerwoche.de/a/ibm-bringt-mit-osprey-einen-433-qubit-prozessor,3613201

Mit Osprey hat IBM seinen bislang größten Quantenprozessor vorgestellt. Mit 433 Qubits konnte die Anzahl der Qubits gegenüber der 2021 vorgestellten Eagle-QPU (Quantum Processing Unit) mehr als verdreifacht werden … Osprey [ist] aber nur ein weiterer Zwischenschritt. Schon 2023 soll mit Condor die erste QPU mit mehr als 1.000 Qubits folgen … Dass die kommerzielle Nutzung von Quantencomputern keine Zukunftsmusik mehr ist, zeigt ein Blick in IBMs Access Plans zum Quantum Computing: Für 1,60 Dollar pro Rechensekunde kann dort im Rahmen eines Pay-As-You-Go-Konzepts QPU-Rechenzeit gebucht werden – allerdings auf einem älteren Falcon-Prozessor mit 27 Qubit.

So so, man kann also bereits Quantenrechenzeit mieten. Wir müssen somit davon ausgehen, dass asymmetrische Verschlüsselung gebrochen ist, lange bevor ein Ersatz sichtbar ist. Denn wie wir wissen, ist es eine allgemeine Herangehensweise der Geheimdienste, kritische Aktivitäten in scheinbar kommerzielle Unternehmen auszulagern und diese darüber nicht rückverfolgbar abzuwickeln. Das betrifft natürlich nicht Dienste wie die NSA, die haben längst bereits selbst Quantenrechner, und weitaus leistungsfähigere außerdem. Aber ich weiß ja nicht, wie es Ihnen geht, die Vorstellung, dass Nordkorea nun die Kommunikation mit einem Bankserver brechen kann, finde ich durchaus gruselig.

Apple deklassiert die Konkurrenz

https://www.giga.de/news/iphone-14-gelingt-das-unfassbare-google-und-samsung-blamieren-sich/

Apples Profi-Smartphones besitzen sichtbar die kleinsten Akkus, das Pixel 7 Pro, das ältere Pixel 6 Pro und das Galaxy S22 Ultra verfügen über einen wesentlich größeren Stromspender. Ist damit das Rennen für Google und Samsung schon gelaufen und Apple kann einpacken?

Entwickler wissen es schon lange, die ausgefeilteste und effizienteste Mobil-Software gibts bei Apple. Und gute Technik bringt eben in allen Lebensbereichen mehr, als nur Größe.