A week ago I attended the annual Developer Open Space in Leipzig. As usual it was the same cocktail of familiar faces, new stuff and exciting stimuli.
On Friday I attended the AngularJS (1.4.7) workshop. As my Angular skills were a bit rusty it was a good way to refresh my knowledge about the AngularJS concepts and learn a few new techniques. Gregor Woiwode did a good job of teaching us and letting us code.
Saturday and Sunday were organized in open spaces – you can suggest a topic and go to the discussion which interests you most. I attended:
- Welcome-App: the challenges of making an app for refugees (Android App was developed with Angular and Ionic)
- Mob programming: under which circumstances there can be benefits when the whole team codes only on one computer (complex tasks, deadlines)
- Having a nice git history graph: commit often, perfect later, publish once (rebase, amend, squash)
- Remote working: make small talk in meetings, meet with video, meet and work in one place at least once a year
- Event sourcing / event store:
- a look at Greg Youngs event store
- a different type of database, in contrast to relational databases you store changes to objects, not the objects themselves
- not working with rows, but with streams
- accumulate events to represent the current state of an object
- WebRTC: how it works, how different protocols could communicate with one another
- Room presence service: how to set up and wire a raspberry pi with LEDs showing in what mood a person is, create app to change status
- async await in C#
- knowledge transfer:
- video lunch: show short educating video during lunch, discuss
- mob programming
- pair programming: change driver often (every 10 minutes or so), be sure to make breaks (pomodoro technique)
- developer days: developers present a topic to the other developers
- exploration days: experiment with new technologies, create something productive
- legal issues: what is needed in imprint, privacy protection
- development tools: I will take look at
- performance profiling:
It was a nice weekends with interesting conversations.
(This is a developer conference where all the participants speak German, that is why this article is in German.)
Wie (fast) jeden Herbst, so fahre ich auch dieses Jahr wieder nach Leipzig zum Developer Open Space. Er findet dieses Wochenende (16.-18. Oktober statt), anmelden ist noch möglich. Es ist ein schönes Event: Ich treffe andere Programmierer, mit denen ich mich über verschiedene Themen austauschen kann. Es ist super interessant außerhalb seines täglichen Arbeitsumfelds von anderen Themen und Neuheiten zu hören. Diese Gespräche und Präsentationen dienen uns als Inspiration um bei uns in der Firma Prozesse, Tools und Frameworks zu überdenken und zu verbessern. Das besondere am Developer Open Space ist sein informeller Character.

Weitere Fotos
Hier ein paar Worte der Organisatoren:
Das Besondere am Konzept Open Space ist der freie Tagungscharakter. Bis kurz vor Beginn existiert keine festgelegte Agenda. Die Teilnehmer bestimmen die Themen des jeweiligen Tages gemeinsam. Die konkrete Programmiersprache ist dabei weniger entscheidend. Der Grund für alles ist einfach erklärt: Gute Gespräche hat man häufig ohne Agenda, beim Kaffee und beim „du“.
Natürlich gibt es auch „Klassiker“, die jedes Jahr von den Teilnehmern als Themen festgelegt werden, nämlich vor allem der Erfahrungsaustausch wie „Git richtig einsetzen“, „Scrum ruinieren“, „PowerPoint zerstört Wirkung“, „NuGet ist kaputt“, „Telemetrie in Web-Apps“, „Gescheiterte Projekte – Was gelernt?“ oder „Warum ist die WCF nur so langsam?“. Daneben gibt es auch rein technische Themen wie etwa AngularJS, Docker, HTML5/CSS3 oder NoSQL.
Ergänzt wird der Open Space um einen Workshop-Tag, bei dem die Teilnehmer aus rund 20 Workshops auswählen können, beispielsweise zum Thema Agilität. Die Fotos von der Konferenz sprechen für sich. Alles ist soweit wie möglich selbst organisiert, das heißt, die Räume, die Infrastruktur, das Catering, aber eben auch nicht mehr.
In spring of this year Andréj and I were at the Spartakiade in Berlin. We heard a talk about Ionic, which was quite interesting. We are building an app for Android for Camping.Info by wrapping the web application in Cordova/PhoneGap, and wanted to see what alternative Ionic is offering.
With Ionic you can build Apps for your web applications as long as their frontends are build with HTML5, JS and CSS. Ionic is building on top of AngularJS, and will also be working with AngularJS 2. It replaces Angular directives to give the app more of a native feel. Ionic uses different layouts (for instance for tabs) according to the system the app is running on. One can customize the CSS styles. While developing the app, the preview is updating fast for immediate feedback. There is also an Ionic Creator online. Here is a talk at the ngconf of 2015.
We will probably try Ionic out. Alternatives to Ionic are Xamarin (comapartively expensive and Xamarin.Forms is said to be slow) and NativeScript (close to node.js).
Yesterday I went to a presentation by Manfred Steyer at the local .NET Developer User Group in Berlin. Manfred is a good speaker and talked engagingly about MVC 6 and AngularJS 2 over the course of 3 hours.
MVC 6 will be the successor to MVC 5, Web-API 2 and Web Pages. There will breaking changes, since the three predecessors are different. The syntax in MVC 6 will be close to MVC 5. Manfred showed us how to implement a small API with MVC 6, and modular ASP.NET 5 is working. It will be possible to deploy ASP.NET 5 applications to Linux and MacOS operating systems.
AngularJS 2 was to be said to be very different from AngularJS 1.X, but it seems in the end it will not be that different. AngularJS 2 promises better performance, better structure, better confirmability. AngularJS files can be written in TypeScript, which is based on the ECMAScript-6-Standard. I have not written code in TypeScript yet, but it looked promising - the code in the demo project which Manfred showed us was clear and concise.
There will be migration support from AngularJS 1.X to AngularJS 2 (tools, guides). I suppose we might rewrite our time tracking app. AngularJS 2 will probably become widely used.
Both MVC 6 and AngularJS 2 will probably be out of beta in the first half of 2016. Then it will be even more of a pleasure to develop web applications, services and single page applications :).
The concept of ‘undefined’ in JavaScript is not an easy one to fully grasp, especially if you read that in older versions of JavaScript you could overwrite this variable.
Today the question came up, whether an undefined variable would be equal (===) to another undefined variable. Turns out this comparison would yield true. Here are comparison tables for == and ===: JavaScript Comparison Table.