Thomas Uhrig
Thomas Uhrig
www.tuhrig.de
Skip to content
  • About
  • Privacy Policy
  • Impressum

Deutsche Schachnotation zu PGN Konverter

Ich habe über die Weihnachtszeit mal wieder Schach gespielt – mehr schlecht als recht. Zusammen mit meinem Schwager bin ich auf Schacharena.de gelandet. Er hatte dort über viele Jahre Schach gespielt und nun also gegen mich. Zur Analyse der Partie wollte ich gerne Lichess.org verwenden. Allerdings spuckt Schacharena.de kein gültiges PGN (Portable Game Notation) aus […]

in Coding | January 4, 2021 | 121 Words | Comment

My Logging Best Practices

If you are a backend developer like me, logging is the window to your application. Unlike in the frontend, there’s not much to see except from some logging messages. Here are some of my personal guidelines I use when I write logs. Log after, not before Back in the days, a logbook was written on […]

in Coding | January 16, 2020 | 879 Words | Comment

Idempotent events with revision numbers

In an event-based system (possibly according to DDD) you will be notified about changes. For example, if the price of a product has changed, a PriceUpdatedEvent will be thrown. Any system interested in price updates can listen and react to those events. In most cases the reaction triggered by an event should be idempotent. This […]

in Coding | July 12, 2019 | 512 Words | 2 Comments

Concrete vs Generic – The story of a data model

The story of a project In the last project I was working on, we struggled a lot with our data model. The task was to replace an old product service with a new one. The old system has grown over time, was hard to maintain and the guys who made it have been gone a […]

in Academic, Coding | February 21, 2019 | 1,064 Words | Comment

DynamoDB with Kotlin and Spring Boot (Part 2)

About a month ago I published a short article about Kotlin, Spring Boot and DynamoDB. The post shows a basic setup for DynamoDB with Kotlin and Spring Boot. However, it doesn’t show a lot of aspects related to typical database implementations such as auditing or migrations. To fill this gap, I prepared an example project […]

in Uncategorized | December 18, 2018 | 88 Words | Comment

DynamoDB with Kotlin and Spring Boot (Part 1)

During the last week I implemented my first persistence layer with DynamoDB using Spring Boot and Kotlin. As I stumbled over a couple of obstacles, I decided to summarize what I did and how my final implementation looked like. Dependencies The dependencies are pretty straight forward. I decided to use Spring Data for DynamoDB and […]

in Coding | October 15, 2018 | 788 Words | Comment

Event Sourcing with Kotlin

Some weeks ago I published a demo project on GitHub showing a Domain Driven Design with Kotlin. You can find the original blog post right here. Now I took the approach one step further and added Event Sourcing to the demo. Here’s what I did. Event Sourcing The basic idea of Event Sourcing is to […]

in Coding | August 1, 2018 | 486 Words | 2 Comments

Don’t depend on details – an example

I recently read Clean Architecture by Robert C. Martin. The book gives a simple advice: don’t depend on details! For Uncle Bob details are things like the database or message broker. Your architecture shouldn’t depend on the actual used implementation of those details. Whether your are using Oracle, MySQL or DynamoDB, whether it’s ActiveMQ, Kinesis […]

in Coding | June 27, 2018 | 285 Words | 2 Comments

find vs. get

Three years ago I wrote a blog post with the provoking title “Don’t use Optionals for data repositories“. The post received a couple of critical comments and I had the feeling that I didn’t made my point clear. This week I stumbled over the same topic again, but from a slightly different point of view. […]

in Coding | June 4, 2018 | 579 Words | 1 Comment

Testing @ConfigurationProperties in Spring Boot

I recently worked on a library for using AWS Kinesis in Spring Boot. As many other libraries, this particular one provided a powerful configuration. To implement the configuration, we used Spring Boot’s @ConfigurationProperties (as described here). This article gives some insights on how we did our testing. You can find the source code on GitHub: […]

in Coding | May 30, 2018 | 828 Words | 4 Comments

Post navigation

Like my blog?
Buy me a coffee

Tags

Academic ActiveMQ AI AngularJS Architecture Blogging Book CI/CD Cloud Data-Mining DB Design Pattern Docker Download Eclipse ERASMUS Google HdM HTML Informatica Java Java 8 JavaScript JMS JUnit Kotlin Linköping Linux LiU OSGi Personal Picture Programming Python Security Slides Spring Sweden TechTrends Testing Travel UI Web Windows Wordpress

Archives

  • January 2021
  • January 2020
  • July 2019
  • February 2019
  • December 2018
  • October 2018
  • August 2018
  • June 2018
  • May 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017
  • November 2017
  • June 2017
  • May 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • May 2016
  • February 2016
  • January 2016
  • December 2015
  • November 2015
  • August 2015
  • June 2015
  • May 2015
  • March 2015
  • February 2015
  • January 2015
  • July 2014
  • June 2014
  • May 2014
  • April 2014
  • March 2014
  • February 2014
  • January 2014
  • November 2013
  • October 2013
  • August 2013
  • July 2013
  • June 2013
  • May 2013
  • March 2013
  • February 2013
  • January 2013
  • December 2012
  • November 2012
  • October 2012
  • August 2012
  • July 2012
  • June 2012
  • May 2012
  • April 2012
  • February 2012
  • October 2011
  • July 2011
  • March 2011
  • September 2010
  • August 2010
  • July 2010
  • June 2010
  • May 2010
Independent Publisher empowered by WordPress
I use cookies to ensure that I give you the best experience on my blog. If you continue to use this site I will assume that you are happy with it.Ok