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.

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: ng update However, while having a ... 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

Debugging for Mobile Browsers

Occasionally, web developers need to debug a web app's behaviour in a specific browser on a specific device or class of devices. For desktop devices this usually isn't a problem because every modern browser nowadays provides a console, where application errors and custom console.log statements pile up. However, on mobile browsers there's usually no browser console, or browser development tools, for that matter. Analysing browser logs is still possible via vendors' development tools like Apple's Xcode, for example. Still, that process often ... Read more

GDPR Transparency: Web App for Managing GDPR-related Activities in Your Company

GDPR Transparency is a web app for managing the record of processing activities (see https://gdpr-info.eu/art-30-gdpr/) and technical and organisational measures (seehttps://gdpr-info.eu/art-32-gdpr/) as required by GDPR. Since I didn't feel comfortable with the common - rather makeshift - solution of managing GDPR-related processing activities (see https://gdpr-info.eu/art-30-gdpr/) in a spreadsheet table I've created this web app called GDPR Transparency that allows you to manage that kind of information for your business: https://bjoernkw.github.io/gdpr-transparency/ The source code is available here: https://github.com/BjoernKW/gdpr-transparency GDPR Transparency is a PWA based on Angular ... Read more

My Curated Collection of Angular Design Patterns, Best Practices, and Other Resources

This is my personal, non-exhaustive collection of Angular design patterns, best practices, and otherwise useful Angular resources: General Angular Coding Style Guide Angular Cheat Sheet Top 15 Angular INDEPTH articles of 2019 JSON Schema to TypeScript declarations: Keeping Client and Server Models in Sync with Spring Data REST and Typescript Angular ng-template, ng-container and ngTemplateOutlet - The Complete Guide To Angular Templates The Missing Introduction to Angular and Modern Design Patterns Custom Validators in Angular Testing Dependency Management for Angular Unit Tests Using TestModuleMetadata Using Page Objects with Protractor and Cucumber in ... Read more
Next Page »