Simple Web Server

Ab und an kann es vorkommen, dass ein Webserver auf dem eigenen Rechner benötigt wird. Natürlich existieren hierfür auch Lösungen für das Terminal, aber wenn eine grafische Oberfläche gewünscht ist, muss auf andere Werkzeuge ausgewichen werden. Eines dieser Werkzeuge ist der Simple Web Server.

Simple Web Server unter macOS

Über diesen kann unter macOS und Windows einfach ein Webserver konfiguriert und bei Bedarf ausgeführt werden. Die eingerichteten Server werden hierbei persistiert, sodass sie auch zu einem späteren Zeitpunkt wieder genutzt werden können. Zu finden ist die Applikation auf der offiziellen Webseite. Das Projekt ist freie Software, lizenziert unter der MIT-Lizenz. Der Quelltext ist auf GitHub zu finden.

Teilzeit diffamieren heißt Verantwortung verweigern

Lifestyle-Teilzeit. Dieser Begriff transportiert ein Weltbild. Ein solches, in dem bestimmte Arten der Teilzeit kein legitimes Arbeits- und Lebensmodell sind, sondern eine bequeme und egoistische Freizeitentscheidung.

Die Debatte darüber entspann sich an einem geplanten Antrag der CDU-Mittelstands- und Wirtschaftsunion (MIT). Dieser Antrag, mit dem Titel Kein Rechtsanspruch auf Lifestyle-Teilzeit soll nach Wunsch der MIT auf dem Bundesparteitag der Union im Februar dieses Jahres beschlossen werden.

Definitionsfrage

Die Definition von Teilzeitarbeit ergibt sich im deutschen Recht aus dem Teilzeit- und Befristungsgesetz. Dort heißt es in Paragraf 2:

Teilzeitbeschäftigt ist ein Arbeitnehmer, dessen regelmäßige Wochenarbeitszeit kürzer ist als die eines vergleichbaren vollzeitbeschäftigten Arbeitnehmers.

Überspitzt könnte dies bedeuten, dass bereits eine 39-Stunden-Woche definitionsgemäß Teilzeit ist. Andere Definitionen, etwa in OECD-Statistiken, setzen die Grenze für Teilzeit häufig bei einer Wochenarbeitszeit von maximal 30 Stunden an.

Was sich zeigt, ist, dass Teilzeit kein Lifestyle oder Ausdruck von Arbeitsunlust ist. Stattdessen ist es ein geregelter Rechtsbegriff: regelmäßige Arbeitszeit unterhalb der betrieblichen Vollzeit.

Der Gesetzgeber verfolgt damit eine einfache, aber zentrale Idee. Arbeitszeit ist verhandelbar, weil Leben nicht normiert ist. Wer dieses Recht infrage stellt, greift nicht einen modischen Lebensentwurf an. Er greift ein zentrales Arbeitnehmerrecht an und verkauft das als Kulturkampf.

Der Nische entwachsen

Teilzeitbeschäftigung ist in Deutschland längst kein Nischenthema mehr, sondern ein Massenphänomen. Laut Destatis arbeiteten im Jahr 2024 erstmals 29 % aller Erwerbstätigen in Teilzeit.

Der Frauenanteil unter den Teilzeitbeschäftigten ist dabei hoch. 49 % der erwerbstätigen Frauen waren 2024 in Teilzeit, aber nur 12 % der Männer. In absoluten Zahlen bedeutet das, dass fast jede zweite Frau, aber nur knapp jeder achte Mann in Teilzeit arbeitet.

Die Teilzeitquote steigt dabei seit Jahren. Während 2005 erst 43 % der Frauen und 7 % der Männer in Teilzeit arbeiteten, sind es 2024 jeweils 49 % und 12 %.

Diese Zunahme ging Hand in Hand mit einem starken Anstieg der Erwerbstätigenquote, besonders bei Frauen, von gut 59 % im Jahr 2005 auf 74 % im Jahr 2024. Hier wird also nicht weniger gearbeitet, sondern mehr.

Teilzeit in der IT

Die Debatte um Teilzeit findet in der IT-Branche eine besondere Relevanz.

Aktuelle Bitkom-Zahlen zeigen, dass in der deutschen Wirtschaft auch 2025 weiterhin ein großer Fachkräftemangel in der IT-Branche besteht. Rund 109.000 IT-Stellen sind aktuell unbesetzt, und Unternehmen berichten, dass vakante Positionen im Schnitt etwa 7,7 Monate unbesetzt bleiben.

Trotz teils zurückhaltender Einstellungspläne durch Unternehmen bleibt die Nachfrage nach IT-Fachkräften hoch, was den Druck auf den Arbeitsmarkt und die Suche nach flexiblen Beschäftigungsformen wie Teilzeit verstärkt.

Unternehmen haben erkannt, dass Flexibilität Mitarbeiter:innen bindet und neue Bewerberkreise erschließt. So lautet die zentrale Erkenntnis einer aktuellen Studie des Institutes der deutschen Wirtschaft, dass Teilzeitstellen den Kandidatenpool erweitern und damit eine Chance zur Fachkräftesicherung sind.

Eine branchenübergreifende Befragung zeigt, dass rund drei Viertel der Unternehmen Teilzeitstellen als förderlich für ihr Geschäft einschätzen. Von diesen erwarten 56 % eine höhere Mitarbeiterzufriedenheit, 51 % eine bessere Deckung des Personalbedarfs und 18 % eine Produktivitätssteigerung.

In der IT ist Teilzeit längst gelebte Praxis moderner Arbeitsmodelle. Flexible Formen wie Teilzeit-Führung, Remote Work, Gleitzeit oder Job-Sharing helfen, Talente zu gewinnen und zu halten. Die CDU-Vorschläge würden genau diese Flexibilität zurückdrehen. Ausgerechnet in einer Branche, die ohne sie kaum funktionieren würde. Stattdessen plädiert die CDU-Mittelstands- und Wirtschaftsunion faktisch für eine Verknappung des Bewerbermarkts.

Symboldebatte statt Fakten

Gegner von Teilzeit verweisen gern auf die Leistungsgesellschaft. Deutschland müsse härter arbeiten, um international mithalten zu können.

Ein Blick auf die Zahlen relativiert das. Deutschland hat mit rund 29 Prozent eine der höchsten Teilzeitquoten in Europa, und die durchschnittliche Wochenarbeitszeit aller Erwerbstätigen liegt unter dem EU-Durchschnitt (etwa 33,9 Stunden in Deutschland vs. rund 36 Stunden im EU-Schnitt). Während die wöchentliche Arbeitszeit für Vollzeitbeschäftigte in Deutschland nahezu dem EU-Durchschnitt entspricht, zieht der hohe Anteil an Teilzeitstellen den Durchschnitt aller Beschäftigten nach unten. Es wird nicht weniger gearbeitet, sondern anders.

Länder mit ähnlich hohen Teilzeitquoten wie die Niederlande oder Dänemark zählen trotz, oder gerade wegen, dieser Modelle zu den produktivsten Volkswirtschaften. Mehr Arbeitszeit allein schafft keine Wettbewerbsfähigkeit; entscheidend sind Produktivität, Qualifizierung und verlässliche Betreuung.

Ein hoher Teilzeitanteil ist weder ein Allheilmittel gegen den Fachkräftemangel noch der Wettbewerbsnachteil, als der er oft dargestellt wird. Er ermöglicht vielmehr eine bessere Vereinbarkeit von Arbeit und Leben; ein Standortfaktor und immaterieller Nutzen, der in internationalen Vergleichen regelmäßig unterschätzt wird.

Teilzeit und Familie

Deutschland ist nach wie vor eines der Länder mit der größten geschlechtsspezifischen Aufteilung von Beruf und Haushalt. Frauen leisten laut Statistischem Bundesamt knapp 44 % mehr unbezahlte Sorgearbeit als Männer (rund 30 vs. 20 Stunden pro Woche).

Ohne Teilzeitmodelle müssten viele Mütter Vollzeit arbeiten, ohne Rücksicht auf Kinderbetreuung, was oft nicht praktikabel ist.

Die Daten zeigen einen klaren Zusammenhang zwischen der Verfügbarkeit von Kinderbetreuung und dem Umfang von Teilzeitarbeit. Ohne verlässliche Ganztagsbetreuung und familienfreundliche Arbeitsmodelle ist Teilzeit keine Option, sondern die Voraussetzung für Erwerbsarbeit von Eltern. Flexible Arbeitszeitmodelle sind hier oft die einzige Möglichkeit, Beruf und Familie zu vereinbaren.

Wer wirklich mehr Arbeitsvolumen will, hat eine langweilige Pflichtaufgabe: Kitas, Ganztag, Pflege, flexible Arbeitsmodelle. Das ist teuer, mühsam, unsexy.

Die Belastung der Sozialsysteme

Wenn die MIT-Vorsitzende Gitta Connemann erklärt, ergänzende Sozialleistungen seien nur für „echte Ausnahmesituationen“ gedacht, verkennt sie die Realität des Arbeitsmarkts.

Teilzeit ist für Millionen Beschäftigte kein freiwilliger Komfort, sondern die Voraussetzung dafür, überhaupt erwerbstätig zu sein. Ohne flexible Arbeitszeitmodelle würden viele Eltern und Pflegende ganz aus dem Arbeitsmarkt fallen; mit deutlich höheren Sozialausgaben als Folge. Dass Eltern und Pflegende damit angeblich nicht gemeint seien, ändert nichts: Der Begriff Lifestyle-Teilzeit trifft nicht Einzelfälle, sondern diskreditiert Teilzeit insgesamt.

Ergänzende Leistungen sind daher kein Zeichen von Arbeitsunwillen, sondern ein Korrektiv für strukturelle Defizite: fehlende Betreuung, unzureichende Pflegeangebote und Arbeitszeiten, die mit realem Leben kollidieren. Was hier als Normalfall kritisiert wird, ist politisch erzeugt.

Schuld ersetzt Lösungen

Der Vorstoß der CDU-Mittelstands- und Wirtschaftsunion macht aus einer strukturellen Realität ein individuelles Fehlverhalten. Lifestyle-Teilzeit ist kein analytischer Begriff, sondern ein moralischer. Er soll beschämen, wo Politik gestalten müsste, und Misstrauen säen, wo Verantwortung gefragt wäre. So wird Sozialpolitik durch Schuldzuweisung ersetzt.

Teilzeitarbeit ist in Deutschland kein Randphänomen und kein modischer Rückzug aus der Leistungsgesellschaft. Sie ist für Millionen Menschen die Voraussetzung, Erwerbsarbeit überhaupt mit Betreuung, Pflege, Gesundheit oder schlichten Belastungsgrenzen vereinbaren zu können. Wer das diffamiert, bekämpft Symptome und blendet Ursachen aus.

Besonders entlarvend ist der Versuch, den Rechtsanspruch auf Teilzeit an würdige Motive zu knüpfen. Arbeitszeit ist jedoch kein Bekenntnis, sondern eine Vertragsfrage. Gleichzeitig existiert bis heute kein durchsetzbarer Anspruch auf Rückkehr in Vollzeit. Wer reduziert, trägt das Risiko allein. Diese strukturelle Einbahnstraße bleibt im CDU-Vorstoß unerwähnt.

Auch das Argument der Sozialsysteme überzeugt nicht. Geschwächt wird der Sozialstaat nicht durch reduzierte Arbeitszeit, sondern durch schlechte institutionelle Organisation, niedrige Löhne und politische Fehlanreize. Dass ausgerechnet bei der Arbeitszeit moralisch sortiert wird, während andere beitragsmindernde Modelle unangetastet bleiben, ist keine ökonomische Logik, sondern moralische Rosinenpickerei.

Diese Debatte ist daher keine arbeitsmarktpolitische, sondern eine kulturelle. Wer Teilzeit als Lifestyle diffamiert, fordert nicht mehr Produktivität, sondern mehr Anpassung. Deutschland hat kein Teilzeitproblem. Deutschland hat ein Betreuungs-, Pflege- und Politikproblem und versucht, dieses Versagen rhetorisch nach unten weiterzureichen.

Dieser Artikel erschien ursprünglich auf Golem.de und ist hier in einer alternativen Variante zu finden.

EUVD unter Rust nutzen

Bedingt durch die Kürzungen der US-Regierung, war es in den letzten Wochen durchaus denkbar, dass die CVE-Liste, mangels monetärer Mittel, ihre Arbeit hätte einstellen müssen. Das veranlasste die Agentur der Europäischen Union für Cybersicherheit (ENISA), ihre eigene Schwachstellen-Datenbank, die European Vulnerability Database (EUVD), früher vorzustellen. Neben der offiziellen Seite, wird auch eine API bereitgestellt.

Das Webinterface der EUVD

Mehrere spezialisierte Endpunkte stehen innerhalb der API zur Verfügung: /api/lastvulnerabilities, /api/exploitedvulnerabilities und /api/criticalvulnerabilities liefern jeweils bis zu acht aktuelle Einträge. Über /api/vulnerabilities lassen sich Schwachstellen detailliert nach Kriterien wie Score, EPSS-Wert, Veröffentlichungszeitraum, Hersteller oder Produktname filtern. Weitere Routen ermöglichen den Zugriff auf konkrete Einträge per ENISA-ID oder geben zugehörige Advisories aus.

Die erstellte OpenAPI-Spezifikation

Die Dokumentation der API ist allerdings eher rudimentär und nicht wirklich strukturiert gehalten, so werden z.B. die Response-Objekte nirgendwo definiert. Da ich die API in Rust nutzen wollte, führte dies zur Entwicklung des Crates euvd. Passend dazu habe ich eine OpenAPI-Spezifikation erstellt, welche die API möglichst vollumfänglich abbildet. Damit können auch Clients abseits von Rust für die EUVD-API erzeugt werden.

Der Content-Type ist text/plain

Die API selbst enthält noch einige Merkwürdigkeiten bzw. Inkonsistenzen. Dies fängt damit an, das JSON-Objekte zurückgegeben werden:

{
    "id": "cisco-sa-ata19x-multi-RDTEqRsy",
    "description": "Cisco ATA 190 Series Analog Telephone Adapter Firmware Vulnerabilities",
    "summary": "Multiple vulnerabilities in Cisco ATA 190 Series Analog Telephone Adapter firmware, both on-premises and multiplatform, could allow a remote attacker to delete or change the configuration, execute commands as the root user, conduct a cross-site scripting (XSS) attack against a user of the interface, view passwords, conduct a cross-site request forgery (CSRF) attack, or reboot the device.\r\n\r\nFor more information about these vulnerabilities, see the Details [\"#details\"] section of this advisory.\r\n\r\nCisco has released firmware updates that address these vulnerabilities. There are no workarounds that address these vulnerabilities. However, there is a mitigation that addresses some of these vulnerabilities for Cisco ATA 191 on-premises firmware only.\r\n\r\n",
    "datePublished": "Oct 16, 2024, 4:00:00 PM",
    ...
}

Der Content-Type seitens der API wird allerdings als text/plain;charset=UTF-8 definiert und entsprechend zurückgegeben. Dies führte unter anderem bei der Client-Generation zu Problemen, da der Text nicht standardmäßig in die bereitgestellten JSON-Objekte konvertiert wurde.

In den API-Objekten selbst wird mit Camel case gearbeitet, allerdings existieren aus Ausnahmen, wie die enisa_id, welche als Snake case geschrieben wird und die API an einigen Stellen etwas inkonsistent wirken lässt.

"enisa_id": "EUVD-2024-45012\n",
"assigner": "mitre",
"epss": 0.05,
"enisaIdProduct": [
...

An anderen Punkten wird wieder die Schreibweise in Camel case genutzt, wie z.B. beim enisaIdProduct-Feld. Auch eine Versionierung ist nicht zu erkennen, was die Frage nach dem genauen Updateprocedere der API aufwirft.

In Bezug auf digitale Souveränität fällt zudem auf, dass die API bei Azure gehostet wird, wie ein whois zeigt:

% IANA WHOIS server
% for more information on IANA, visit http://www.iana.org
% This query returned 1 object

refer:        whois.arin.net

inetnum:      20.0.0.0 - 20.255.255.255
organisation: Administered by ARIN
status:       LEGACY

whois:        whois.arin.net

changed:      1994-10
source:       IANA

# whois.arin.net

NetRange:       20.33.0.0 - 20.128.255.255
CIDR:           20.64.0.0/10, 20.128.0.0/16, 20.40.0.0/13, 20.34.0.0/15, 20.36.0.0/14, 20.33.0.0/16, 20.48.0.0/12
NetName:        MSFT
NetHandle:      NET-20-33-0-0-1
Parent:         NET20 (NET-20-0-0-0-0)
NetType:        Direct Allocation
OriginAS:       
Organization:   Microsoft Corporation (MSFT)
RegDate:        2017-10-18
Updated:        2021-12-14
Ref:            https://rdap.arin.net/registry/ip/20.33.0.0

Dies lässt strategische Autonomie vermissen, wenn solche Dienste auf einer Infrastruktur betrieben werden, welche unter ausländischer Rechtshoheit steht.

Um die API bzw. den Client in Rust zu nutzen, muss im ersten Schritt das Crate ins eigene Projekt eingebunden werden:

cargo add euvd

Anschließend können die einzelnen Ressourcen aufgerufen werden:

use euvd::apis::configuration::Configuration;
use euvd::apis::default_api;

async fn get_last_vulnerabilities() {

    // Preparation
    let config = Configuration::default();
    let result = default_api::get_last_vulnerabilities(&config).await;

    // Print result if successful
    if let Ok(response) = &result {
        println!("Response received:");
        for vuln in response {
            println!("• ID: {:?}, Description: {:?}", vuln.id, vuln.description);
        }
    }

    // Asserts
    assert!(result.is_ok(), "API call failed: {:?}", result.err());
}

Weitere Beispiele zur Nutzung der API finden sich im Integrationstest. Der Client ist unter MIT- und Apache-Lizenz lizenziert und auf GitHub und crates.io zu finden.

RAML in OpenAPI konvertieren

Bei der Entwicklung oder Nutzung von REST-APIs wird der eine oder andere schon von Beschreibungssprachen wie OpenAPI (respektive Swagger) gehört haben. Eine weitere solcher Sprachen ist RAML, was für RESTful API Modeling Language steht. Soll mit einer solchen Datei ein Client generiert werden, kann hierfür unterschiedliches Tooling eingesetzt werden.

Manchmal ist es allerdings nötig, eine solche RAML-Datei in eine OpenAPI-Spezifikation zu konvertieren. Hierfür kann unter anderem der OAS RAML Converter genutzt werden, welcher über das Terminal installiert werden kann:

yarn global add oas-raml-converter-cli

Alternativ ist auch eine Installation über NPM möglich:

npm install -g oas-raml-converter-cli

Nach der Installation kann die Applikation mittels:

oasraml-cli

gestartet werden. Folgend müssen einige Fragen zur Konvertierung beantwortet werden, anschließend wird diese vorgenommen und als Datei hinterlegt. Lizenziert ist der Konverter unter der MIT-License und damit freie Software.

Browser für Restic-Repositories

Für Backups nutze ich gerne Restic. Restic bietet neben dem Backup selbstverständlich auch eine Funktionalität zum Wiederherstellen eines Backups an. Allerdings gibt es mit dem Restic Browser ein grafisches Werkzeug zum Anschauen der durch Restic erstellten Repositorys.

Die Restic-Installation wurde nicht gefunden

Beim Start des Restic Browser kann es vorkommen, das dieser die Restic-Installation nicht findet. Dort muss dann der Pfad manuell definiert werden. Wurde Restic unter macOS, mittels Homebrew installiert, so lautet der Pfad:

/opt/homebrew/bin/restic

Der entsprechende Pfad wird sich leider nicht gemerkt, sodass er beim nächsten Mal wieder eingegeben werden muss. Nachdem die Installation definiert wurde, kann mit der Applikation ein Restic-Repository geöffnet und durchsucht werden.

Die Applikation in Aktion

Ordner als auch Dateien können anschließend über die Oberfläche wieder hergestellt werden. Während dies für lokale Repositorys gut funktioniert, sieht es bei Repositorys welche per SFTP eingebunden werden anders aus. Hier nimmt der Ladevorgang, zur Anzeige der Dateien in einem Snapshot, sehr viel Zeit in Anspruch.

Zu finden ist der Restic Browser auf GitHub. Lizenziert ist er unter der MIT-Lizenz und damit freie Software. Die Releases sind für Linux, macOS und Windows verfügbar.