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

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

Stratospheric – In Orbit Now: Content-complete Version 1.0

Last week, we released version 1.0 of our eBook "Stratospheric - From Zero to Production with Spring Boot and AWS"! We hope you like this now content-complete release version of Stratospheric. Thanks to everyone who showed their trust in this project during its early stages! Here are some key facts about this project and the application we built as part of the book: 445 pages eBook with practical hands-on advice for running production-ready Spring Boot applications on AWS three main modules: "Deploying with AWS", "Spring ... Read more
Next Page »