my blog. for you.

Let’s talk digital.

I’m an independent IT consultant and entrepreneur in the Internet and software business. I’m interested in design, enterprise applications, web apps and SaaS products. I design and develop business solutions and applications. I help companies in terms of software quality and knowledge transfer, e.g. with Angular and Spring Boot.

Inversion of Control vs Dependency Injection

Dependency injection is one way of implementing inversion of control - a programming principle that allows for better modularity and extensibility. Dependency injection is commonly achieved via constructor injection, field injection, or setter injection. Inversion of control is an abstract concept, which dependency injection is a realisation of. Other methods of implementing inversion of control for example include the template pattern, service discovery, delegates, events, and currying (when applying a functional programming paradigm). Read more

Stratospheric – Version 1.1 Released

Last week, we released the first update of "Stratospheric - From Zero to Production with Spring Boot and AWS" after our 1.0 release in August. Thanks a lot to GitHub users anthony-be, skhurram, alrawas, mygordienko, and lealceldeiro, who contributed to our sample Todo app by creating issues and pull requests. The code changes resulting from these contributions in turn are reflected in our latest update for the eBook, in which we clarified some aspects about scaling out / sticky sessions and added a ... Read more

Guest Post on the AWS Open Source Blog: Using PostgreSQL with Spring Boot on AWS

Last week, another two-part article by Tom Hombergs, Philip Riecks, and me was published on the AWS Open Source Blog. Thanks a lot to Ricardo Sueiras for making this possible. This time around we wrote about how to use a PostgreSQL database with Amazon RDS and Spring Boot: Using PostgreSQL with Spring Boot on AWS — Part 1 Using PostgreSQL with Spring Boot on AWS — Part 2 These articles draw upon the chapter Connecting to a Database with Amazon RDS from our eBook Stratospheric ... Read more

Currying in JavaScript

A reference to logician Haskell Curry, currying is a technique for converting a function that takes multiple arguments into a chain of abstract functions that each take a single argument (see Currying). Besides its significance for studying functions in the context of theoretical computer science and its relevance to lambda calculus both in the context of mathematics and linguistics, currying has very practical applications in functional programming. In a way, it's one possible approach for following the inversion of control design principle and ... Read more

Using SQLite on a Static Website Without a Back-end Server

GitHub user phiresky recently published an interesting blog post on Hosting SQLite databases on Github Pages. Using SQLite - or in fact any kind of SQL database - in the browser? Why should one want to do this? Now, while it's certainly true that in the context of web applications SQL databases and RDBMS generally are relegated to the realm of back-end servers, depending on the requirements, a database in a front-end application or a self-contained application that doesn't even have or ... Read more

Now Available as a Kindle Edition, Too: “Stratospheric – From Zero to Production with Spring Boot and AWS”

Stratospheric – From Zero to Production with Spring Boot and AWS is now available as a Kindle edition on Amazon, too. Read more

Hexagonal Architectures: @Column(nullable = false) vs @NotNull in Java Applications

Recently, I came across a small and common, but all the more interesting, hands-on example of why a hexagonal architecture can help with making both the architecture and the code of an application more understandable, approachable, and maintainable. I won't be going into any details about the concept of and ideas behind hexagonal architecture here. The gist is summarised quite nicely in this quote from Tom Homberg's article on Hexagonal Architecture with Java and Spring: The main feature of “Hexagonal Architecture”, as opposed ... Read more

A few random thoughts on the development of software development in recent years

Last year, I replied to Tom's question "Has software development grown harder over the last years or have I just grown sluggish?" on Twitter with these incoherent ramblings of a greybeard, who has seen at least 3 fat-client-thin-client cycles: As usual it depends. Just a few examples: Spring Webflux and the "Everything has to be reactive even if the requirements don't demand it." fad is a bane. Just recently, I've been helping a client with getting Spring 5's WebClient to work with a ... Read more

Excalidraw: Shapes for UML & ER Diagrams

Excalidraw is a fairly new (having started in January 2020) virtual whiteboard software for creating diagrams with a hand-drawn aspect. I really like the aesthetics of diagrams created with Excalidraw. They have a natural feel and elegance to them. However, when recently revising some of the diagrams for Stratospheric – From Zero to Production with Spring Boot and AWS I found Excalidraw to be lacking shapes for UML & ER diagrams. I know, not everyone is fond of those, but if you keep ... Read more

Recording of the Stratospheric Release Party

The recording of the release party for the content-complete version 1.0 of Stratospheric – From Zero to Production with Spring Boot and AWS is available here: Read more
Next Page »