Agile HR

Der Kopf ist rund, damit das Denken die Richtung ändern kann
(Francis Picabia)

Zum Jahresende schweifen die Gedanken auch von HR gerne in die ‚gute alte‘ Zeit. Früher war doch alles einfacher – auch für die Personalabteilung: HR hat sich aus der Abteilung ein Bedarf melden lassen, ein Profil vom Abteilungsleiter angefordert, Anzeigen geschaltet, Bewerber in Gesprächen „gegrillt“, nur die Besten ins Töpfchen geworfen und dem eingeschüchterten Rookie zum Start mehrere Dokumente überreicht: die Unternehmenhistorie, das Organigramm („Sie kommen HIER hin“), die betriebsinternen Anweisungen („Abmahnungen gibt es bei …“) usw. Jeder weitere Kontakt beschränkte sich auf Verwaltungsangelegenheiten, meist unangenehmer Art wie der Streit um die Anerkennung von Überstunden oder den Eigenbeitrag zu Essensmarken.
Weiterlesen

Using GPIO on Raspberry Pi

Recently we started our first experiments with Raspberry Pi using GPIO. Inspired by the existing access libraries and extensions for GPIO functions, we wanted to write our own implementation for security reasons. This article will give you an insight on why we pursued our own implementation and how we finally realised it.
Weiterlesen

MongoDB – the pitfalls and how to avoid them

When we first thought about writing this post we were rather tempted to title it „MongoDB – 10 things I hate about you“, but that wouldn’t be fair after all.

We learned the hard way how painful it can be to replace a working MySQL installation with a mongoDB, especially in a large scale project environment, but blaming mongoDB for that would be like blaming a microwave for not being able to prepare an exquisite 3-course menu.
So we won’t (or at least we do not intend to) write your common mongoDB rent, especially because in the end we were able to make it work. But this won’t be a praise on the new hip database either.
Weiterlesen

HTML5 Canvas mit KineticJS

KineticJS ist eine JavaScript-Bibliothek, die den Funktionsumfang des HTML5-Canvaselements erweitert und es dem Entwickler erleichert, interaktive Desktop- und Mobileanwendungen zu schreiben. In diesem Artikel wird KineticJS vorstellt und die Möglichkeiten aufgezeigt, die von der Bibliothek geboten werden.

Weiterlesen

Nummer 5 lebt! Oder wie mein Arduino Board mit JavaScript gesteuert werden kann

Die Erfolgsstory von JavaScript geht seit geraumer Zeit weiter über den Browser hinaus- JavaScript auf dem Server ist längst nichts mehr neues, mobile Endgeräte wurden über HTML5 zur Plattform für JavaScript. Und auch die Spielzeug-Welt ist nicht vor JavaScript sicher, QuadroCopter lassen sich bequem mit JavaScript steuern (Stichwort NodeCopter). Doch was ist mit dem Rest der elektronischen Welt? Dieser Artikel zeigt, dass man auch mit JavaScript ein Arduino-Bord steuern kann.
Weiterlesen

Message Queues for web applications with STOMP

Just like human beings, machines need to communicate with each other – and they do this by passing messages around. The simplest form is to use a protocol like TCP and build some sort of API on top of it. But sometimes this just isn’t enough, especially if you want the connection to be reliable and you can’t afford to loose a single message.

Many people tend to implement it with the use of a database. They just save all messages to a table and let the other system fetch those messages and process them. But there are many pitfalls in such implementations and that’s why it’s considered an anti-pattern to use a database for these tasks. Better use a message queue system, these are particularly built for these types of tasks!

Weiterlesen

Guzzling web services out of the box…

Guzzle has come to a certain fame recently as the framework powering Amazon Web Services new SDK2 for PHP. But what exactly is Guzzle? Guzzle is a framework for building RESTful web service clients. As such it is obviously a very potent HTTP-client library, that presents us with an easy way to send subtly crafted HTTP requests of all flavours to a server and deal with the resulting responses.

But Guzzle is still more than that. Based on a service description file written in JSON – similar to a WSDL-file from the SOAP world – Guzzle builds entire web service clients from scratch and as such relieves us from tedious and repetitive tasks in their implementation.
Weiterlesen

Virtuosity – anders lernen mit System

„Organisations learn only through individuals who learn. Individual learning does not guarantee organisational learning. But without it no organisational learning occurs.“
(Peter M. Senge, The Fifth Discipline)

Unser Hirn ist ein komplexes und sensibles Organ, das unter besten Voraussetzungen außergewöhnliches Leisten kann, unter schlechten störrisch und verschlossen bleibt. Lernen wird als Kopfleistung betrachtet, obgleich weitere Faktoren wie körperliche Zufriedenheit – leicht erreicht durch Essen, Licht, frische Luft und bequemes Sitzen – ebenso entscheiden über Erfolg und Misserfolg. „Creating High Performance in Learning Communities“ – so ist das eBook von Diane und Willem Larsen, dem ich hier weitestgehend folge, untertitelt und es beschreibt das Lernen als freudigen Weg zu nichts weniger als Meisterschaft.
Weiterlesen

Spaß mit Node.js

Aus Spaß wurde Ernst und Ernst ist jetzt drei Jahre alt. Das gilt auch für die serverseitige JavaScript-Plattform Node.js. Und nein, dieser Artikel beschäftigt sich nicht mit der Einführung in Node.js und Sie werden auch keinen Webserver in Node.js im Verlauf dieses Artikels programmieren. Nein, dieser Artikel enthält keine einzige Zeile Quellcode. Vielmehr möchte ich darauf eingehen, was Node.js ist und was nicht und auch klarstellen, dass diese Plattform nicht die „Silver Bullet“ der Webentwicklung ist, mit der sich sämtliche Ihrer Probleme lösen lassen.

Weiterlesen

Alternative Bedienkonzepte für Webanwendungen

Die typische Webanwendung wird seit jeher über das Klicken auf Links gesteuert. Und vermutlich hat gerade das zur Popularität des Internets beigetragen, schließlich kann somit jeder ohne große Vorkenntnisse eine Website bedienen. Anders sähe es aus, wenn man Webanwendungen nur mit kryptischen Befehlen steuern könnte, wie beim Arbeiten mit einer Shell. Hier wäre dann wieder Expertenwissen gefragt.

Jedoch ist das Steuern einer Webanwendung mit der Maus auch noch nicht die schnellste Art, um zum Ziel zu gelangen. Je nach Zweck der Seite kann es durchaus Sinn machen sich alternative Möglichkeiten zu überlegen, um die Bedienbarkeit der Anwendung zu erhöhen und diese zu beschleunigen. Einige diese Möglichkeiten möchte ich im folgenden kurz vorstellen. Weiterlesen