Bonn, GermanySun, 08 Sep 2019 23:45:50 +0200 
At the last WebTech meeting in #Bonn was a very interesting talk about ReactPHP with many fascinating examples for Streams, Redis, SSE, Websocket, etc. Pushing the limits of #PHP

#^Pushing the limits of PHP (WebEngAc19)
by Christian Lück on Speaker Deck


 Tue, 02 Apr 2019 23:04:08 +0200 
Good article about #PHP development in general.

#^Help! My tests stopped working.

Sebastian Bergmann provides guidance on how to avoid frustration when upgrading to a new major version of PHPUnit.


 Thu, 20 Dec 2018 22:37:51 +0100 
#^Martin Fowler: "Refactoring ist heute relevanter als vor zwanzig Jahren"

Martin Fowler hat als Autor das Thema Refactoring einer breiten Öffentlichkeit vermittelt. Im Gespräch mit heise Developer erklärt er, warum er für die frisch erschienene Neuauflage seines Buchs zum Thema auf JavaScript statt Java setzt.

The Birthday Paradox mit Python erklärt

 Mon, 03 Dec 2018 17:32:31 +0100 
#^Gemeinsame Geburtstage unter Partygästen
Dass auf einer Geburtstagsparty mit 23 Gästen in mehr als 50 Prozent der Fälle zwei Gäste mit dem gleichen Geburtstag weilen sollen, hört sich für Mathe-Laien abenteuerlich an. Mit statistischen Bordmitteln macht sich Partylöwe Mike Schilli daran, die Behauptung zu beweisen.
Bei dem Problem kommt es auf die genaue Formulierung an. Niemand kann erwarten, auf eine Party mit 23 Leuten zu gehen und dort mit 50 Prozent Wahrscheinlichkeit jemanden mit dem gleichen Geburtsdatum zu treffen.

Trunk based development

 Fri, 22 Jun 2018 16:37:23 +0200 
Quite interesting reading this overview

#^Trunk Based Development - Game Changers
Since the early 80’s a number of things have pushed best practices towards Trunk-Based Development, or away from it.

The language in use to describe such things has changed over time. Software Configuration Management (SCM) is used less today than Version Control Systems (VCS) is. A simpler still term - “Source Control” - seems to be used more recently, too.

Similarly, ‘trunk’ and ‘branch’, have not always been used as terms for controlled code lines that have a common ancestor, and are eminently (and repeatably) mergeable.


 Fri, 19 Jan 2018 00:13:59 +0100 
- $dsn = $this->driver_dbtype . ':host=' . $server . (intval($port) ? '' : ';port=' . $port);
+ $dsn = $this->driver_dbtype . ':host=' . $server . (intval($port) ? ';port=' . $port : '');

It took me three evenings to find out why some database unit tests just did not want to work. :facepalm

supporting PHP versions

 Fri, 10 Nov 2017 23:45:25 +0100 
There are libraries that drop PHP <= 7.0 support in a minor release. ;-) But pretend to still "follow" semver in conjunction with composer. This makes it even more problematic shipping just one release source for all supported PHP versions or include vendor folder.

On the one hand I can understand their point. The libraries API is still semver and the platform requirements are transparently handled through composer. But PHP5.6 and PHP7.0 have officially EOL in end of 2018, so still over a year.


 Bonn, GermanyThu, 21 Sep 2017 00:05:20 +0200 
Unsere Mission ist es, jeder Schülerin und jedem Schüler in Deutschland ab der 3. Klasse einen spielerischen Zugang zur digitalen Welt mit Hilfe der Calliope mini zu ermöglichen.

Our mission is to give pupils from year 3 onwards a playful approach to the digital world.

With Calliope mini you have countless creative options right at your fingertip. You want to build a robot or transmit messages? With just a few clicks you can create a program for the microprocessor and make things move.

Besides 25 red plus one RGB LED and two programmable buttons the board contains a combined position sensor with motion sensor and compass as well as a bluetooth module that allows the Calliope mini to communicate with other devices. The board can't only be programmed with your computer: you can use an app to transfer apps you created yourself to your mini computer.

Monotree, not Monorepo

 Wed, 09 Aug 2017 17:29:03 +0200 
Interesting blog post.

#^Why Github can't host the Linux Kernel Community
A while back at the awesome maintainerati I chatted with a few great fellow maintainers about how to scale really big open source projects, and how github forces projects into a certain way of scaling. The linux kernel has an entirely different model, which maintainers hosting their projects on github don’t understand, and I think it’s worth explaining why and how it works, and how it’s different.


 Wed, 28 Jun 2017 21:44:56 +0200 
Finally!!! Really looking forward to the included #PHPUnit support.

#^Eclipse Oxygen
Eclipse is probably best known as a Java IDE, but it is more: it is an IDE framework, a tools framework, an open source project, a community, an eco-system, and a foundation.


 Mon, 17 Apr 2017 23:40:29 +0200 
#^Composition over inheritance - Wikipedia

Composition over inheritance (or composite reuse principle) in object-oriented programming is the principle that classes should achieve polymorphic behavior and code reuse by their composition (by containing instances of other classes that implement the desired functionality) rather than inheritance from a base or parent class.[2] This is an often-stated principle of OOP, such as in the influential book Design Patterns.

Thou Shalt Not Depend on Me

 Mon, 13 Mar 2017 13:12:14 +0100 
#^Thou Shalt Not Depend on Me: Analysing the Use of Outdated JavaScript Libraries on the Web
Web developers routinely rely on third-party JavaScript libraries such as jQuery to enhance the functionality of their sites. However, if not  properly maintained, such dependencies can create attack vectors allowing a site to be compromised.

In this paper, we conduct the first comprehensive study of client-side JavaScript library usage and the resulting security implications across the Web. Using data from over 133k websites, we show  that 37% of them include at least one library with a known vulnerability; the time lag behind the newest release of a library is measured in the order of years. In order to better understand why websites use so many vulnerable or outdated libraries, we track causal inclusion relationships and quantify different scenarios. We observe sites including libraries in ad hoc and often transitive ways, which can lead to different versions of the same library being loaded into the same document at the same time. Furthermore, we find that libraries included transitively, or via ad and tracking code, are more likely to be vulnerable. This demonstrates that not only website administrators, but also the dynamic architecture and developers of third-party services are to blame for the Web’s poor state of library management.

The results of our work underline the need for more thorough approaches to dependency management, code maintenance and third-party code inclusion on the Web.


 Wed, 08 Mar 2017 22:57:30 +0100 
From the DICs I have looked at so far I like Dice the most. Especially it's documentation is one that you understand what to use it for and how. This feeling I didn't have with most of the other documentations I have read from other DICs.

#^Dice - PHP Dependency Injection Container
Dice is a minimal, lightning fast PHP Dependency Injection Container with a focus on being easy to use.

Dice allows developers to move object creation logic out of their application logic. This has many advantages when it comes to OOP theory, but also makes the developers life easier. It tries to be as minimal and unobtrusive as possible. Everything is done to minimise and simplify application code, making the application developers job easier and making the learning curve as shallow as possible.

Maybe should take a look at the PSR-11 wrapper for Dice.


 Mon, 02 Jan 2017 12:20:50 +0100 
This looks good.

#^Ende des Supports für PHP 5 | heise online

Support-Schema für PHP

Use content element relations in TYPO3 extensions

 Mon, 05 Dec 2016 16:15:15 +0100 
Use content element relations in TYPO3 extensions
Wouldn’t it be cool to enable editors to use standard or custom content elements in your extensions? The consequence is that you do not have to develop each and every functionality again. In this post I will show you, how you can use all available content elements of your installation.

PHP 7.1.0 Release Announcement

 Sat, 03 Dec 2016 14:46:16 +0100 
#^PHP: PHP 7.1.0 Release Announcement
The #PHP development team announces the immediate availability of PHP 7.1.0. This release is the first point release in the 7.x series.
PHP 7.1.0 comes with numerous improvements and new features such as
  * Nullable types
  * Void return type
  * Iterable pseudo-type
  * Class constant visiblity modifiers
  * Square bracket syntax for list() and the ability to specify keys in list()
  * Catching multiple exceptions types

What’s a change log?

 Thu, 10 Nov 2016 10:02:19 +0100 
Don’t let your friends dump git logs into CHANGELOGs™

What makes a good change log?
I’m glad you asked.

A good change log sticks to these principles:
    It’s made for humans, not machines, so legibility is crucial.
    Easy to link to any section (hence Markdown over plain text).
    One sub-section per version.
    List releases in reverse-chronological order (newest on top).
    Write all dates in YYYY-MM-DD format. (Example: 2012-06-02 for June 2nd, 2012.) It’s international, sensible, and language-independent.
    Explicitly mention whether the project follows Semantic Versioning.
    Each version should:
        List its release date in the above format.
        Group changes to describe their impact on the project, as follows:
        Added for new features.
        Changed for changes in existing functionality.
        Deprecated for once-stable features removed in upcoming releases.
        Removed for deprecated features removed in this release.
        Fixed for any bug fixes.
        Security to invite users to upgrade in case of vulnerabilities.


 Mon, 17 Oct 2016 20:11:17 +0200 
#^Chris Wilson - Progressive Web Apps is the new Ajax.
This is a transformative moment for the web. The revolution that is happening now is no less revolutionary than what happened a decade ago with Ajax - we can finally build reliable, fast and engaging apps on web technologies. In this talk, I'll dive into the what, why and how of Progressive Web Apps - describe what a "Progressive Web App" really is, show the opportunities in building them, and point you on your way to becoming a Progressive Web App developer.

Need a Dependency Injection?

 Sat, 15 Oct 2016 11:28:25 +0200 
Any experiences with dependency injection containers like PHP-DI, Pimple, Dice, Aura.Di, Orno/Di?

#Service Container #Dependency Injection #Lacy Loading #DI
 Fri, 14 Oct 2016 19:28:44 +0200 
The more I read about "best practices" for testable code the more I believe they don't exist, or are just a pita.