Development


SQL Server und RCSI

Jan 16, 2024

SQL Server Als erstes möchte ich das ganze bei SQL Server ausprobieren. Dazu starten wir eine Instanz in Docker: version: "3.8" services: sqldata: image: mcr.microsoft.com/mssql/server:2017-latest environment: - SA_PASSWORD=Pass@word - ACCEPT_EULA=Y ports: - "5434:1433" Danach erstellen wir eine Tabelle: CREATE TABLE master.dbo.Persons ( PersonID int NOT NULL PRIMARY KEY IDENTITY, LastName varchar(255) NOT NULL ); Anschließend fügen wir einen Datenatz ein: INSERT INTO master.dbo.Persons (LastName) OUTPUT INSERTED.PersonID VALUES('Mustermann'); Macht man nun in Transaktion 1:


Langzeitbackups machen

Jan 9, 2024

Die meisten Anbieter haben inzwischen Lösungen für Cloud-Drives (OneDrive von Microsoft, Google Drive, Apple iCloud). Doch ab und zu schläft man besser, wenn man noch ein zusätzliches Backup hat. Amazon Glacier Amazon Glacier ist kinderleicht zu bedienen und extrem kostengünstig. Das Anfordern des Inventars kann schon einige Stunden in Anspruch nehmen, aber ein Backup braucht man ja nicht jeden Tag. Wir reden hier von ca. 60cent pro Monat für 80GB.


DELL Precision 3660 vs. Techbold custom PC

Oct 27, 2023

Vorweg: es war nicht unbedingt notwendig. Aber ich habe mir vor 3 Jahren einen ThinkPad T14 gekauft – leider mit AMD. Aktuell habe ich auch einen T15 mit Intel und einen HP mite Intel und Nvidia (beides Arbeitslaptops). AMD bedeutet: USB mit externen Monitoren – kann funktionieren – muss aber nicht. Bluetooth reagiert nicht mehr? Kann passieren. TouchPad spielt verrückt (hat wahrscheinlich nichts mit AMD zu tun) – passiert – wurde dann gewechselt.


Entitäten und deren Identifier

Sep 9, 2023

Gedanken Identifier helfen dabei, manche Entitäten – eindeutig – zu benennen. Diesmal starte ich unten im Code-Model und mit einem technischen Detail: Wie gestalte ich die Tabellen am besten? CREATE TABLE schema.table ( id bigint PRIMARY KEY GENERATED ALWAYS AS IDENTITY meistens findet man sowas vor. Die erste Frage, welche sich stellt: Sollte man diese id nach außen hin zur Verfügung stellen? E.g. in einer API wie /persons/{id}? Meine Meinung dazu: nein.


Requirements-Management: From Domain to Code – Was ist Traceability?

Sep 2, 2023

Requirement Traceability “We just learned that the new union contract is changing how overtime pay and shift bonuses are calculated,” Justin reported at the weekly team meeting. “It’s also changing how the seniority rules affect priority for vacation scheduling and shift preferences. We have to update the payroll and staff scheduling systems to handle all these changes right away. How long do you think it will take to get this done, Chris?


Die Dosis macht das Gift – wieviel Logik soll in eine Datenbank?

Aug 22, 2023

Ich versuche meine Meinung mit folgender Definition zu beginnen: Object-relational impedance mismatch: Bezeichnet die Herausforderung, Objekte aus einer objektorientierten Programmiersprache in einer relationalen Datenbank zu speichern. Dafür gibt es ein oft verwendetes Hilfsmittel: ORM (Objekt-Relationales Mapping): Beispiele dafür sind Hibernate oder Entity-Framework. Es handelt sich um Libraries, die das Arbeiten mit relationalen Datenbanken – fast – transparent erledigen. Der Benutzer kann in seiner objektorientieren Welt bleiben und das Framework kümmert sich um Joinen, Change-Tracking, uvm.


Kafka and Redis Streams

Mar 3, 2023

General goal Kafka is used as source of truth it lots of projects - especially when the project is modeled around events. In lots of situations other technologies are needed to make the post-processing / allowing for queries / … easier. PostgreSQL for example can be used to make analytical queries. PostgreSQL can also act as a time series database (using the BRIN index and for in some situation also a B-Tree - influxDB may use less memory - but anyhow).


Der modulare Monolith

Feb 27, 2023

Ein Test Der modulare Monolith ist ein gängiger Architectural Style. Die Vorteile sind – was mir auf die Schnelle einfällt: Wiederverwendung von Funktionalität ist sehr einfach Änderungen, welche mehrere Komponenten betreffen, sind einfacher zu koordinieren Commincation Style ist sehr einfach und die Performance ist leichter vorhersehbar Das Deployment bzw. dessen Planung ist sehr einfach Das schöne bei diesem Stil ist: Architekturelle Unit-Tests sind möglich. Siehe dazu folgende Blog-Einträge:


Dual DELL U2722D mit ThinkPad T14

Jul 12, 2022

Die freie Wahl, Home-Office zu machen, finde ich genial. An manchen Tagen will man sich die Zeit von 1.5h, die man in Öffis verbringt, einfach sparen. Zeit, sich im Home-Office einzurichten. Da man als ITler rund 9h in einen Monitor schaut war mir eines wichtig: es muss etwas Hochwertiges sein. Ich habe bereits 2 DELL U2711D (11 Jahr alt – damals zu einem stolzen Stückpreis von 700 EUR) im Einsatz und bin sehr zufrieden.


Adresssuche in PostgreSQL

Mar 12, 2022

Ein interessantes Thema – vorallem, weil die Schreibweisen von Adressen oft nicht trivial sind. Auf die Schnelle habe ich folgende zwei Strategien gefunden: pg_trgm: Dieses Modul erlaubt es, die Ähnlichkeit von Wörtern zu messen. Durch das Anlegen eines Index, ist diese Methode extrem performant. Phonet: Erlaubt einen String auf einen „Aussprache“ String zu projizieren. Ähnlich klingende Strings mappen somit auf den gleichen String. Anschließend Abgleich mit pg_gtrm. Der Vorteil: Aussprachefehler werden „ausgebessert“ und führen zu einem besseren Match.