Skip to content

Keine Weihnachtsfeier in Zeiten von Corona

Ausgelöst durch die aktuelle Situation und untermauert durch die wohl kommende Corona-Verordnung im Saarland werden wir dieses Jahr auf unsere Weihnachtsfeier verzichten.

Ich hätte diese durchaus gerne - unter Zuhilfenahme des angekündigten Schnelltests - durchgeführt, aber vermutlich werden wir einerseits juristisch nicht sauber durchführen können, und vermutlich würde auch immer ein Rest-Unwohlgefühl bleiben.

Daher gilt: Aufgeschoben ist nicht aufgehoben.

Automobilhersteller vs. Paketdienst

Ob man es glaubt oder nicht: Für 5 Euro sagt einem DHL & Co. quasi in Echtzeit, wo ein Paket gerade ist, wann es voraussichtlich ankommt (und das klappt meiner Erfahrung nach recht gut - man beachte die Anzahl an Paketen, die jeden Tag umgesetzt werden!) etc. pp.

Da könnten sich deutsche Automobilhersteller bzw. deren Logistikpartner ein Scheibchen abschneiden.

Und jeder schiebt es auf Corona. Das dürfte wohl die meistgenutzte Ausrede im Jahr 2020 sein. :grrr:

Bei Schnupfen sofort Krankschreibung

Wenn ich mir die neuesten Ideen unserer Politiker so ansehe, stehen mir die Haare zu Berge.

Wenn jeder, der einen leichten Schnupfen hat, nicht nur zu Hause bleibt (was ich okay finde), sondern auch quasi standardmäßig krankgeschrieben wird, bin ich gespannt, wer demnächst die Räder in unserem Land am Laufen hält.

Ich habe ja noch die Hoffnung, dass in den diversen Presseartikeln der Part fehlt, dass die Krankschreibung nicht der Standard-Fall sein sondern dass das Homeoffice die erste Wahl bleiben soll. Denn beides zusammen wird arbeitsrechtlich schwierig.

REST vs. JSON vs. custom

Zwei eifrige Twitter-(aber noch-nicht Blog-)Leser hatten mich (privat) nach diesem Tweet nach ein paar Interna über unsere API gefragt - genauer gesagt, was wir intern als API-Format einsetzen. Gerne - Here we go.

Und da ich gestern ja schon meine Meinung über XML geschrieben hatte, tue ich das an dieser Stelle gerne auch für REST. So einfach eine REST-basierte API ja auf den ersten Blick ist, hat dieses "Format" in meinen Augen einige Schwächen.

Zum einen finde ich es gruselig, das Konzept von CRUD (Create, Read, Update, Delete) in http-Methoden (GET, POST, PUT, DELETE) zu packen. Auch wenn es für die meisten Fälle ausreicht, ist man dennoch irgendwie beschränkt. Und nicht alles lässt sich logisch matchen.

Das Ergebnis der API-Aktion in einen http-Fehlercode zu packen, finde ich ebenso unschön, um nicht wieder gruselig zu schreiben. Ich finde, man sollte klar zwischen Fehlercode auf Transport-Ebene (stimmt nicht ganz, aber nennen wir es mal so), und dem auf API-Ebene unterscheiden. Und demnach kann ein "200 OK" auf http-Ebene durchaus ein negatives API-Ergebnis enthalten.

Es gäbe jetzt durchaus bekannte Alternativen, eine davon ist JSON:API. Aber auch dieses Format halte ich für nicht wirklich praktikabel. Es bildet z.B. keinerlei Authorisation und Authentifikation ab. Und über das Layout kann man durchaus diskutieren, und evtl. auch schmunzeln.

Wir haben uns daher für uns intern für ein auf JSON basierendes Format entschieden, das Wert auf Praktikabilität und Sicherheit legt. Unter anderem war uns wichtig, interne API-Anfragen mit Keys zu signieren und diese gegen Replay-Attacken abzusichern.

Wie man nun die einzelnen JSON-Elemente nennt, ist dabei eher Geschmackssache. Wir haben uns hier intern etwas mit "auth", "action" und "payload" als Anfrage sowie "auth", "status" und "payload" als Antwort ausgedacht. Funktioniert sehr simpel, effektiv und ist dennoch sicher.

Vielleicht mag der ein oder andere, der auch etwas Eigenes implementieren möchte, sich ja daran orientieren.

e-Rechnung gemäß EN 16931 (Factur-X, ZUGFeRD)

Seit heute haben wir (noch rechtzeitig für die Deadline am 24.11.2020) automatisch für alle Rechnungen und Gutschriften die e-Rechnung gemäß EN 16931 (auch Factur-X oder ZUGFeRD) implementiert. Sprich alle PDF-Rechnungen enthalten eine Datei "factur-x.xml" mit den nötigen Angaben, wie sie öffentliche Auftraggeber etc. künftig zwingend erfordern.

Klingt ersteinmal unspannend, ist es vermutlich auch. Wäre da nicht dieses - und jetzt lehne ich mich einmal weit aus dem Fenster - dämliche XML-Format, was sich vermutlich nur viel zu gut bezahlte Berater ausgedacht haben können, die niemals auch nur eine Zeile Code erstellt haben.

Was die Ausgedenkt-Habenden sich da zusammengebastelt haben, mag zwar wie ein brauchbares und wunderbar auf hunderten Seiten dokumentiertes Format aussehen, es geht in meinen Augen jedoch an der üblichen Praxis vorbei. Nicht, dass ich XML nicht mag (ich mag es nicht!).

Aber dass man im Jahr 2020 (fast 2021), wo es nicht unbedingt auf ein paar Zeichen ankommt, z.B. Zahlungsweisen in Codes angibt, tut meinem Programmierer-Herz weh. Wäre eine Angabe wie "sepa_directdebit" statt "49" nicht vielleicht doch besser (aka intuitiver) gewesen?

Ganz zu schweigen von den vorhandenen Validatoren, die zwar inoffiziell sind, aber allesamt gerade bei Fehlern oft wenig aussagekräftig sind (eine Nennung der Verletzung des XML-Schemas bringt einen da selten weiter), und selbst nicht mit allem klarkommen, was sogar teilweise in der offiziellen Dokumentation als Beispiel-PDFs mitgeliefert wird. Hmpf.

Ganz zu schweigen davon, dass das Format bestimmte Spezialfälle (unterschiedliche MwSt-Sätze in einer Rechnung für mehr als 1 Land) so gar nicht abbilden kann. Aber das ist dann wohl Sorge des Empfängers, das verbuchen zu können.

Ich glaube, man hätte sich ein für den "Normal-Fall" einfacheres Format in einer zeitgemäßen Notation (ich präferiere ja JSON) einfallen lassen können, das im Endeffekt lesbarer und vermutlich nur halb so groß gewesen wäre. Aber das hätte ja den großen Playern der Branche, die Abrechnungs-Leistungen anbieten, nicht in die Hände gespielt.