Coding Ninjas

Coding Ninjas ist der Titel einer Webapplikation die ich auf dem diesjährigen Developer Camp in Würzburg am 09. und 10. März 2018 im Rahmen der Würzburg Web Week vorgestellt habe – und das ist die Geschichte hinter diesem Projekt.

Weiterlesen

Of Love and Hate: TypeScript, Redux and immutable.js

I love Redux. It’s such an elegant and simple concept that solves so many problems. But like every other solution, adding new concepts to your code base can also introduce the occasional headache.

One of these headaches is that Redux does not enforce a lot of it’s conventions, but when you don’t adhere to them, things start breaking further down the road in strange ways.

Today, I’m going refer to one of Redux‘ three principles: State is read-only
Weiterlesen

Three ways to create Word documents with PHPWord

Creating Microsoft Word documents in PHP can be a challenge. Word offers a multitude of options and settings and while creating a document in PHP you want do take advantage of those options to achieve a satisfying result. Perhaps you need to dynamically create documents for a client and the client will only know the capabilities of Mircosoft Word, but not the limitations of PHP libraries. This can result in an unsatisfied client.

In this article we will take a closer look at PHPWord and three different ways to create Word documents with it: basic easy templating, the creation of Word documents from scratch, and (going a little crazy there) the combination of both by merging existing templates with dynamically created documents. Hopefully, after reading through the text, you will have an idea of how to implement the perfect Word creator for your needs.
Weiterlesen

DreamFactory Intermediate Service

DreamFactory is a BaaS (Backend as a Service) that connects a multitude of data sources to APIs that apps can connect to. With our Agile Anti-Pattern App (MAPA), we wanted to move the patterns database out of the app, so that we did not have to publish a new version of the app every time we added or changed patterns. The simplest way for this was to put the complete data set (a tiered json file) on a webserver and tell the app to download from there. This would solve the problem, but be a pain to edit or version. The optimal solution would of course be a somewhat normalized database of patterns, their symptoms, their remedies, categories and a pattern-categories relation.
Weiterlesen

React gets Context & Suspense. Quo vadis, Redux?

Disclaimer: this article targets developers that are using Redux with React. If you are using Redux with another Framework, this article might not be important for you.

Last thursday, Dan Abramov gave a talk on JSConf Iceland called „Beyond React 16“. A few hours later, react-etc.net featured an article titled RIP Redux: Dan Abramov announces future fetcher API. While I agree with almost nothing that article has to say about Redux, the article got one thing right: Somewhere between 6 or 12 months from now, the way we are using Redux (at least when starting a new project) will be drastically different from the way we are using it today.

But before we take a gaze into the crystal ball, let’s take a step back and see what happened.

Weiterlesen

Symfony 3 vs. 4: Früher war alles besser … Wirklich?

Ich bin inzwischen in einem Alter, in dem ich – ähnlich wie meine Eltern früher – kopfschüttelnd die Kids von heute beobachte. Emojis, Sprachnachrichten über einen Textmessenger, … Früher war das doch nicht so, oder? Früher war alles besser!
Weiterlesen

So war es beim ersten Laravel-Meetup 2018

Im Februar fand das erste Laravel-Meetup der Laravel Usergroup Munich im noch jungen Jahr 2018 statt. Regelmäßig – meist im Turnus von ca. 3 Monaten – treffen sich Laravel-begeisterte Entwickler, um sich auszutauschen oder gegenseitig Projekte vorzustellen. Dieses Meetup wurde gesponsert und organisiert von Links der Isar  – vielen Dank an dieser Stelle!

Thema des Abends war ein Live-Q&A mit Taylor Otwell, dem Gründer des bekannten PHP-Frameworks Laravel. Nach einem Kennenlernen, kurzem Smalltalk und etwas Pizza ging es schließlich direkt los.

Weiterlesen

Open Source ist auch Bildung

Es bringt ja Nichts. Egal wie man das Blatt dreht und wendet – von staatlicher Seite scheint in den nächsten Jahren nicht viel zu kommen, wenn es um digitale Bildung geht. Jugendliche stehen mit Ihren Smartphones zwischen dem Verbot an der Schule und den Eltern, die die neue Technik womöglich noch nicht einmal ganz verstehen. Sie stehen der Welt, dem Internet und der Flut der Information beinahe allein gegenüber.

Der Ist-Stand

Es werden zwar aktuell Milliarden-Investitionen für die technische Ausstattung von Schulen für die Bildung besprochen, doch was nützt das alles, wenn weder der Lehrplan noch die Ausbildung der Lehrer die Welt von morgen – oder eigentlich von heute – beinhalten?

Weiterlesen

Unkonventionelles UX-Testing: The User is Drunk

„Don’t make me think“ – nach dem gleichnamigen Buch von Steve Krug – ist der Claim, der Usability und User Experience seit nun fast 20 Jahren bestimmt. Nutzer wollen nicht nachdenken, wenn sie tagtäglich Produkte verwenden. Die Bedienung soll „intuitiv“ sein und schnell zum gewünschten Ergebnis führen.

Intuitive Bedienung ist jedoch eine der größten Mythen der Produktentwicklung, da die vermeintliche Intuition bei der Verwendung von Produkten fast immer auf vorher erlerntes Verhalten zurückgeführt werden kann. „There really is no user interface metaphor that is truly intuitive“ proklamierte Scott Francis 1994 (The Only Intuitive Interface Is The Nipple). Es gibt keine intuitiven Bedienkonzepte – moderne User Interfaces sind immer eine Mischung aus gewohnter (und damit erwarteter) Methodik und der Anreicherung eben dieser mit neuen Ideen und Konzepten.

Weiterlesen

10 Lessons Learned für besseres Pair Programming

Es ist Zeit für Lessons Learned: Nachdem ich in meinem letzten Blogbeitrag eine Einführung in das Thema Pair Programming gegeben habe, möchte ich in diesem Artikel meine persönlichen Erfahrungen mit dieser Arbeitstechnik teilen. Hierzu stelle ich die wichtigsten Regeln vor, die man beim Pairing beachten sollte. Außerdem gebe ich Tipps, die sich im konkreten Doing bei Mayflower als Lessons Learned herausgestellt haben.
Weiterlesen