Latest

Distribute Patches to many Git repositories with Patchbot

tl;dr Patchbot is a tool to automate the distribution of patches to your own Git repositories and helps to reduce technical debt. Technical debt Technical debt is a common problem in software development and just like financial debt there may be good or bad reasons for it, but an accumulation of technical debt may lead…

Read more…

PaaS for PHP microservices - Heroku, Dokku, AWS, DIY

tl;dr PaaS are great for rapid PHP app development, but not all are good fit for microservices. In the recent years I did more and more DevOps work tasks instead of purely PHP app development. I like to solve technical architectural challenges, and I like to automate things. That's why I don't mind…

Read more…

My personal paperwork setup

tl;dr I build myself a convenient and effectice setup to organize paperwork at home. During the current COVID-19 pandemic I reviewed my personal setup to organize paperwork at home. It is a combination hard- and software with allows me handle this rather boring task in a convenient and effectice way. Since I shared my…

Read more…

Minimal PHP request handler

tl;dr WaterPipe and Slim are effective request and response handlers for minimal PHP apps. Most PHP applications I work with either need a powerful API framework (like ♥️Symfony) or CMS (like ♥️TYPO3). A minimal PHP app however, which needs to react to two or three endpoints only, may not need more than a single…

Read more…

Awesome Open Source Badges for Git README files

tl;dr Badges are a pretty way to display concise project information in a README. Badges are a pretty way to display concise information about a project. They consist of a small image showing a topic and a status message and optionally linking to further information. Like tags they written in lowercase.…

Read more…

Install Redmine as Issue Tracking Service

tl;dr ITS tools help a lot to collect and organize tasks - I share a shortlist of self-hosted solutions and what to consider when installing Redmine To organize tasks and collect descriptions of errors and improvement requests the implementation of an Issue-Tracking-System (ITS) is a suitable option. ITS Software helps to digitalize this…

Read more…

Cookie consent

tl;dr The EU cookie law encourages website operators to reconsider how they use cookies. I created package with a standalone script to display a cookie consent according to EU cookie law. During the collection of all requirements I read about the cookie specifications written by the EU Commission. Preliminary considerations The most obvious reason for…

Read more…

Send JSON requests and get JSON responses with Guzzle

tl;dr Guzzle is great package to send and receive JSON data from a RESTful web service. Guzzle is powerful PHP HTTP client. It helps to send HTTP requests and work with the responses by provding a readable abstraction layer to the underlying HTTP transport. The documentation is extensive and even provides a Quickstart. I consistently look…

Read more…

Deploy a PHP app to Heroku cloud in minutes

tl;dr Use Git to deploy your app to Heroku and let the service provide the required server architecture automatically Now and then, when I build a small PHP app, I catch myself spending much more time on infrastructure tasks than on writing the actual code. Select a server, set up the right PHP…

Read more…

Run scripts & external tools in PhpStorm

tl;dr It is easy to execute any bash script or external tool within PhpStorm to enhance development. PhpStorm easens PHP development a lot with out-of-the-box features like autocompletion, code analysis, quick navigation to files & methods, visual debugging, and VCS & Composer support. More than 1.000 plugins are available to extend PhpStorm core functionality. Additionally, PhpStorm…

Read more…

HTML5 Example Template

tl;dr I made a single-serving site to get a simple HTML5 template wherever I want to. Whenever I need a valid HTML5 template on a machine I end up in crawling trough a list of search results for about 3 to 5 minutes. Again and again. Some blogs explain HTML5 in great detail,…

Read more…

Handle monolithic Git repositories with Composer

tl;dr Use the »path« type in Composer to handle monolithic Git repositories. Composer is able to fetch packages from various sources, as long as these packages are self-contained. Each package in a single VCS or ZIP-file. This improves reusability and distribution of packaged code a lot. It is also required to enable smart dependency…

Read more…

Flexible logging with TYPO3

tl;dr TYPO3 offers a simple API to create a flexible logging setup. Developers may write a log file with just two lines of code, and configure custom logging endpoints for individual classes. Sometimes it is necessary to write logs in an extension. For example if a script imports data periodically, the developer may want…

Read more…

Bulk compress images with commandline tools

tl;dr Bulk compress images with Trimage and TinyPNG to speed up page requests. Images usually have the largest share of the total size of webpages. Compressing them will lead to a significantly lower document size and therefore speed up the rendering of a website and saving the client's bandwith. Most CMS offer some plugins…

Read more…

Schedule backups for websites hosted on uberspace

tl;dr Use a cron and a shell script to backup a website hosted on uberspace automatically. One of the most important things to set up in a website project is a working backup strategy. If the project is static, without any user input, then it is sufficient to write a deployment script, which installs…

Read more…

Simple PHP script to test and use cURL

tl;dr I wrote a simple PHP script to test and use cURL while working with APIs. curl is a command line tool and library to transfer data with many different types of servers with many different types of protocols. The most basic curl request is done with curl example.com which triggers a HTTP request…

Read more…

Git Cheat Sheet

tl;dr I made a comprehensive cheat sheet for daily work with Git commands. Git is super cool to use and I prefer the commandline over any GUI. But some of the commands are confusing and non-descriptive. For example git pull is a shortcut for git fetch && git merge. But the shortcut for git…

Read more…

Git aliases for a better workflow

tl;dr I have a set of aliases which speed up and simplify my daily workflow a lot. Git offers to feature to add custom aliases. As I wrote in a previous post about bash aliases, I like not having to remember bulky commands. The regular Git configuration file includes aliases. So in order to…

Read more…

My favourite bash aliases

tl;dr My favourite bash aliases help me tremendously to shortcut commands I can't or don't want to remember. A bash alias is a shortcut to avoid the need to type or remember other commands. Instead of typing ls -alh to print a nicely readable list of files and directories, you could create the…

Read more…

Best practice commit message format

tl;dr Write useful Git commit messages by following an appropriate message format. Git requires messages for every commit. These are shown in the Git log. So whenever it is necessary to examine the history of a file, it is very painful if these messages don't contain any useful information, as this requires diving into…

Read more…