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.

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

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

A Collection of for a Improving the UX of Signup  and  Login Workflows

Independent UX designer Erik D. Kennedy recently published an article with 15 Tips for Better Signup / Login UX on Learn UI Design - a website through which he provides acclaimed courses on both UI and UX design. The article lists general suggestions such as autofocusing on the first field (i.e. the username, or rather: email, field), immediately validating form values, or making input labels clickable, as well as more specific - but no less expedient - ones like making password requirements explicit to ... Read more

CORS: What It Is and How It Works

Expanding on last week's article on best practices for REST API Design I'd like to point to a specific aspect working REST APIs frequently entails: A browser security feature called "Cross-Origin Resource Sharing (CORS)". This feature allows you to define which resources provided by a web application are supposed to be accessible from which origin, which in turn typically is comprised of protocol, host / domain name and port. This website's origin for example is https://bjoernkw.com:80 (port 80 is the default port ... Read more

Material-UI Builder: Generating a React / Material-UI Codebase

Material-UI is a widely used UI component framework for React based on Google's Material Design design system. These frameworks and systems simplify and streamline the development of consistent user interfaces for web applications. Material-UI Builder is drag & drop online editor that allows you to choose from a wide range of Material-UI components for your application, customise the CSS styles applied to them, and export a ready-to-use codebase based on those preferences. Read more

Five Articles on Software Quality and Design Patterns

This week I'd like to point you to five articles I previously posted on this blog and from which I think that they're as relevant as they were at the time. The first three are about general software design principles, software architecture and software quality while the final two refer to specific best practices and common design patterns for Angular: Writing Disposable Code, Not Reusable Code (November 06, 2016) What Causes Over-engineering and How Can You Prevent It? (April 16, 2017) Less Is More ... Read more

Image Compression Utility: Squoosh

When working with images on web applications and websites optimising images and reducing their download size is a quick win in terms of optimising page and app load times. There are plenty of image compression utilities out there - both web apps and tools for local installation. Recently, I've tried out several of those again because I wanted to reduce the overall load time of this website and according to website audit tools such as Lighthouse image sizes definitely was an area ... Read more

Tools for Working With CSS Grid Layouts and Flexbox

CSS Grid Layout and CSS Flexible Box Layout, commonly known as Flexbox, are powerful techniques for implementing flexible grid and column- or row-based layouts with CSS. These two techniques enable designers and web developers to accurately and fluidly position elements and content on web pages and web applications. While Flexbox (see A Complete Guide to Flexbox by CSS-Tricks) predominantly works along a single principal dimension, called the main axis or flex direction (either row or column), and therefore essentially is a one-dimensional ... Read more

Using GitHub Actions for Automating Angular Updates

I've published quite a few Angular applications under various open source (MIT and Apache License, respectively) licenses : GDPR Transparency PivotHelper TimeSheets3 Among other responsibilities, maintaining software comes with the task of regularly checking for dependency updates and applying them to the software in question. This first and foremost involves security updates but also bug fixes and new features for the frameworks and libraries used by the application. Fortunately, Angular CLI comes with a command that allows you to do just that: [crayon-61711526d45fa472840131/] However, while having a simple ... Read more

Musings of a Greybeard on the State of Software Engineering

Two days ago software engineer and fellow blogger Tom Hombergs asked on Twitter if software development had grown harder over recent years, to which I replied: "Incoherent ramblings of a greybeard (without a beard, which is weird; these words rhyme, which is even weirder ...), who has seen at least 3 fat-client-thin-client cycles (the standard time unit in software architecture): As usual it depends. Just a few examples:" For the purpose of this blog post I just deemed it more sophisticated to call ... Read more
Next Page »