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.

sdras/awesome-actions: A Curated List of Useful GitHub Actions

As a follow-up to last week's post on automating software maintenance tasks with GitHub Actions I'd like to point you to Awesome Actions, a curated list of resources related to GitHub Actions. The list includes both predefined actions you can directly use and resources for getting started with building your own actions and workflows, as well as various utilities for testing, linting and security purposes. 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

Alternative Git Workflows

In his 2018 article "4 branching workflows for Git" software developer Patrick Porto outlines these four proven Git workflows and their respective advantages and downsides: Git Flow GitHub flow GitLab Flow OneFlow While Git Flow probably is the most well-known and most widely used one of those it's also received quite some criticism for being overly complex. Even Git Flow originator Vincent Driessen, has only just recently noted that when he originally conceived of this workflow more than 10 years ago he had explicitly versioned software packages ... Read more

Designing Delivery and Moving Beyond Products

I'm a frequent attendee at Lean DUS, a regular event organised by the fantastic folks of sipgate. Earlier this year at LEAN DUS #23 Jeff Sussna gave a talk on moving beyond products and unifying design and operations. Jeff runs a consulting company called Ingineering.IT, which aims to help businesses to establish a comprehensive, continuous service delivery process. He also condensed his expertise in a book called Designing Delivery, which outlines a continuous value creation process involving design thinking, agile software development and ... Read more

Varying Degrees Of Software Quality And What To Do About It

When working on client projects I come across copious amounts of source code, which sometimes is very well-maintained, sometimes less so. The various code bases are as diverse as their owners and respective stakeholders: A few come with an inherent sense of quality, lots of unit tests serving as the specification for the product. They're typically delightful to maintain and extend. Some though at times leave the impression of having been cobbled together in a rather haphazard, impromptu manner in order to solve ... Read more

Tracking Down Software Bugs, Automatically!

Last week MIT researchers published an article about an automatic bug-repair system called Prophet. Prophet is a machine-learning system that learns general properties and patterns of successful error corrections in software and applies those patterns to making new error corrections in other programs. While the possibility of having software track down and fix bugs automatically (which effectively would mean creating self-correcting computer programs) is exciting enough in its own right, Prophet possibly has far-reaching implications for verifying the general correctness of code ... Read more

Advice On Improving JavaScript Test Speed (by Shyp Engineering)

On their blog engineers of logistics service Shyp talk about how they improved the turn-around times of their JavaScript test suite by an order of magnitude of 3 (i.e. 1000x), which is no small achievement. In a modern software development process continuous integration and continuous deployment play a vital role. These ensure that your software always is in an deliverable, tested state and ideally is deployed to production systems in a timely manner when a change has been made. This process requires ... Read more

Houdini – Automatically Generated Web App Tests

Houdini is a new SaaS product - currently in private beta - that "watches you using your site and automatically generates end to end tests that run continuously in the cloud". After having added some JavaScript code to your web app Houdini will follow and record your clicks, inputs and actions. These recordings are then used for automatically generating tests that run continuously. So, if a code change breaks your app's front end behaviour you will be informed about this. This is a ... Read more

Being the build guy

Being the build guy, i.e being the one who is responsible for a smooth build and deployment process on a software project is a role that's usually disliked by developers: It means a lot of system administration rather than coding. If something breaks and development grinds to a halt the burden of getting the project on the road again usually is on the person who manages the continuous integration server. However, I think being the build guy on a project actually is ... Read more

Continous Integration with Circle or: Coming Full Circle

I've recently tried out Circle, a hosted continuous integration service, and I'm quite thrilled about it. Registration / login works via GitHub. Once logged in, Circle lets you choose a GitHub repository and starts the first build right away. Circle claims that setup is as easy as: Sign up to Circle, Give Circle permission to access GitHub on your behalf, Click on a project repository From my experience so far this claim is absolutely correct. Configuration is completely automatic. I've only tried it with Rails so ... Read more