Future Mobility Days 2017

After I visited my first barcamp (#SWEC16) in 2016 I wanted to participate in my first hackathon in 2017. I stumpled upon the Future Mobility Days #FMDNUE in Nuremberg, which offerd a bar camp, a design thinking jam and a hackathon all at once at on place within 36 hours. All in all for 99€ quite a bargain. And a additional motivation to get a new laptop for the hackathon.

Don’t count your chickens before they are hatched.

Of course I missed the early bird priced tickets so I had to pay the full 199€. And then there is this little topic called health. Becoming older is no walk in the park. The days before the event I realised that the conecpt of hacking for 24 hours with little to no sleep was not going to apply to me. Dang!

Nevertheless I was excited to go to this event! Continue reading “Future Mobility Days 2017”

Short Rewiew t3n magazine Q2-2017

Being sick at home can become quite boring after a couple of days so I was happy today as I opened the mail box: (Yes, the physical one?) the new t3n magazine! Yeah!

Nice cover!

First of all I remove all advertising garbage by shaking the magazine, but lo and behold, there are some nice stickers in it. Perhaps I share them with my daughter.

These are the topics I will definitely read:

Developer Toolbelt

Inspired by the Blog Post https://gingter.org/2016/12/15/my-developers-toolbelt-2016 I want to share what my tool set looks like in 2017:

  • PyCharm as main IDE for Python, JavaScript, CSS, HTML and SQL
  • Notepad++ for big files
  • Spotify Napster for getting into “the Zone”
  • WinSCP and Putty for Secure FTP and SSH / Telnet access to our servers
  • Total Commander for browsing the harddrive (Commander One on macOS)
  • Beyond Compare 3 for diffing
  • Firefox
  • yED for diagrams
  • Luxafor for distraction management
  • Perforce P4 Visual Client
  • Outlook / Skype for Business
  • Wire
  • Github OSS
  • Bitbucket for private Repos
  • Atom for educational purposes
  • iMacros / Greasemonkey for browser automation / optimization

I really love PyCharm and it gets better with every update. To get the same user experience for full stack web development You would need to configure Eclipse-based PyDev with a whole bunch of Eclipse plugins

Are You ready? / jQuery struggle

$(function() {
    console.log( "ready!" );

is the short form for:

$( document ).ready(function() {
    console.log( "ready!" );

Very unintuitive, this does not work:

$("input#myInput").bind("change", function(){

Instead of “change” You have to use “input”

$("input#myInput").bind("input", function(){

Inefficient jQuery Selectors

My PyCharm IDE warns me if I use inefficient jQuery selectors:

As I am a bit nosy I wanted to know “how” inefficient these selectors are. So I compared the inefficient

$("#items tbody");

with the optimized


Here is the test code:

window.onload = function () {
    test("unoptimized", function () {
        for(var i = 0; i < 100000; i++){
            $("#items tbody");
        assert(true, "Test finished");
    test("optimized", function () {
        for(var i = 0; i < 100000; i++){
        assert(true, "Test finished");

I used the little test framework from the book Adventures of the JavaScript Ninja

The results vary from run to run but the optimized version just takes around 55% of the time which makes it almost twice as fast. Though the single execution is in the nanosecond range, if you heavily rely on using jQuery, it might be worthwhile to optimize your selector statements.

Code on GitHub



Bringing AJAX to Flask – Part 1

Flask is a micro web framework which is really fun to use. With the following snippet You have a complete web app working within seconds.

from flask import Flask # 1
app = Flask(__name__)   # 2

@app.route('/')         # 3
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run()           #4

All this snippet does is

  1. Importing the Flask module,
  2. Creating the app,
  3. Defining an so called endpoint and finally
  4. Running the web app in a container.

Flask brings its own WSGI server called “werkzeug”. Please use it just for development purposes. It is not suitable for live applications. Continue reading “Bringing AJAX to Flask – Part 1”

Code Kata: Converting old ICQ chat logs to html

Enough about books for a while. Let’s do some coding finger exercise. When I migrated from my Windows XP machine to my MacBook I made a backup of my old ICQ chats. Because I wanted to read what my wife and I chatted about ten years ago I tried to convert the old logs into HTML.

First challenge: Files are not correctly sorted in directory

These files are stored as one XML file per month and conversation.

The naming convention is a bit odd, it reads conversation_1207, which means December 2007.

So let’s rename the files that they will be in correct order.

Second challenge: build a temporary file which contains the whole conversation

Third challenge: convert to HTML

  • Replace unnecessary tags
  • Replace tags with div tags
  • Convert UTC time stamp to readable time stamp
  • Wrap the output with HTML basic page

Fourth challenge: write a CSS file to make it look like a ICQ conversation


The code on github