Valentin Backofen

CEO at Studio Qi

NodeJs Ansible Role

An Ansible role that installs nodejs and runs default or your application on Ubuntu 12.04 - 15.10. If you just want to test Node, this role got you covered, it comes with a simple Hello World app NodeJS is added as service (using NPM packages) allowing you to service start|stop it


Jeto is the web interface to several APIs(nginx-api, vagrant-worker and htpasswd-api) .With Jeto you add and manage (start/stop/provision) vagrant projects on the fly without connecting via SSH.

Virtual League of Hockey

VHL is a 100% virtual hockey game where you create and manage your team. Improve your stats, compare your performance with friends, and face off against other passionate hockey fans as you fight your way to the top. As GM and coach, you get to put your hockey knowledge to the test and win!

Kickoff Legends

A small (for now) football multiplayer game that aims to be fast and fun. Quick games can be played against your friend in real time.


Kickoff Legends is getting awesome

21-01-2016 20:00:00

Development is flying along, The fun thing is, users are starting to show too. With what we learnt from The Virtual League of Hockey we really are ready to hit it big now. We know what the people want, more then anyone. 

Features are too many to enoumerate, but there's one tidbit that I'd like to share. The reverberating question "yeah, but is there an app?" is being addressed. 

When we moved out of closed Beta in early December there was. Though admitedly it was not really an application per se. It was essentially loading the webapplication into a webview.

Well I am happy to announce, we're past that stage now. Over the last month I've been working double time to throw off the web-view shackles and make the application a true native experience. The initial learning was...and is...steep, but the reward speaks for itself. Given that the Dev Team did some absolute magic when it comes to the core of the game, making it completely API driven. So plugging a native application to it through Volley JSON Requests is a breeze. 

So without any furher ado, go have a look, and tell me what you think. 


It's coming

05-12-2015 22:00:00

It's been so long in the making, I can't even tell the beginning anymore. The end is nowhere in sight, but there's a milestone at least. 

Won't talk much this time, but Kickoff Legends is finally taking shape. 

The goal is to have ready for action for the week of December 21st. Primarily designed with Tablets in mind, it can be played on 





and web...

... For now. More platforms coming soon.

go check it out




CKEditor Inline Save and Express

25-11-2015 22:00:00

CKEditor has quickly become the standard online web text editor par ecellence. For me inline editing particularily caught my eye. It's just damn sexy, to click anywhere and start editing. In that ilk the Inline Save Addon became interesting, so I started playing around with it the other night. The goal, to ensure that I can inline edit my Express driven site, and save as I go. The example tells you to create an empty PHP file. each their own...I guess. At any rate, I created my post route and off I went. I wrapped my entire content into an edit. So title, date and all just became one big editable zone. The inline save button then shot off the content to my route. Inside my wrote, with some RegEx darkmagic I ended up with a nice array, which I could now save in my mongo database. The one trick it didnt' say anywhere though was that the Addon wasn't really made to post to a function. 

One little edit to the plugin.js simply grabs the content of the editor and fires it off to your route. If you want it to send the content to an express route, you must modify it slightly.

Change line 13 from

var data = editor.getData();


var data = editor.getData();

var payload = JSON.stringify({editabledata:data})

 Then inside the jQuery Ajax call add the header

contentType: "application/json",

You're now all set to post from your inline editor to your express app.

Pretty neat...


NodeJS development all the way to production on Chrome OS

24-11-2015 22:00:00

In my everyday-life I am heavily dependent on LXC containers. I use them with Vagrant. The latter the core component  of to Jeto. At Studio QI we use Jeto as our turnkey solution to bring goodness, because we too, are making the world a better place. Given Chrome OS quirks, using LXC is, for the time being, out of the question it seems. Vagrant on the other hand works perfectly fine, and there's quite a few ready made providers available. 

I have been using Digital Ocean since quite a while and off course there's a vagrant provider for that. 

So this isn't a how to. It's just a statement, plain and simple. You can develop on ChromeOS (see tooling setup in previous post).

What you need in adition are 

  • Vagrant
  • Vagrant-digital ocean provider
  • Ansible. Well I am using ansible for provisioning, choose your poison for this. I can tell you ansible works, and it works great

So I do all my development for my own stuff on my ChromeBook and push to production with a simple

#ENV=prod vagrant up

 Pretty sweet....


Android Development on ChromeOS

15-11-2015 23:30:00

So earlier this year I went down the road of so many. I decided to give Chrome OS a whirl. With my new role in the start-up, though still a developer at heart, my time spent in code has become much less frequent. As long as I have a terminal and VIM to check in every now and then all was well.


My daily routine was more spent in emails, Hangouts etc. But this post is not about this evolution of my own everyday life, so enough about that part.


I did spend Two full months exclusively working on a 2013 Chrome Book Pixel. Now, people can say what they want about the utility of this overpriced marvel, but remains just that, a marvel. Even when two years old, the Laptop still felt great to work on. In short Chrome OS is an awesome operating system, mostly because is crazy fast to load and when you install an App, it’s synced with your Google Account, so when you go on your office Windows, Mac or Linux PC, as long as you have Chrome 99% of the application works and gets downloaded automatically. I am digressing, this post is not about Chrome OS.


What I did want is to continue to be able to code, and work locally, when needed. My normal dev toolset revolves a lot around Vagrant/Ansible ( and Python, PHP and Node.js. Having VIM and Some Sublime Text like editor around is really all I need.


Whilst I am back on my regular Ubuntu Laptop when at the office now, I have continued with Chrome OS when at home. And since a couple of weeks I wanted to see if I couldn't push this a little further.


I have been playing a bit with Android Development as of late. More specifically, using Cordova to do so.


So last night I wondered, can I do this on my Chrome OS laptop as well. And it turns out, I can. So here it goes.


The first thing you need to do is to switch your Chromebook to Developer mode it depends on the Chromebook your on, but it's a pretty straight forward operation, which I won't get into now.


First Chrome App pre-requisites

Secure Shell
Crosh Window


Next you want to head over to install Crouton ( Once crouton is ready I run sudo sh crouton -r trusty -t cli-extra to install the Linux basebox you will need. “Give a developer apt-get and the world is his or her oyster”.


Fire up the Crosh window and access your linux box (#shell, then #sudo enter-chroot).


I can’t recommend TMUX (or something like it) more then enough, as multiple Terminals are your friend throughout your life in the Crosh Window. VIM is again my own preference you choose your poison for your favorite editor here.


So my first command installs some base tools and a few packages we’ll be needing later on.

#sudo apt-get install tmux vim software-properties-common wget curl ant libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1 lib32z1-dev git


Next we need to prep the machine to work with Android. That requires Java, I’ll go for version 8, again choose your poison here…

#sudo add-apt-repository ppa:webupd8team/java

#sudo apt-get update

#sudo apt-get install oracle-java8-installer

#sudo apt-get install oracle-java8-set-default


make sure you’re all set with

#java -version


Ok, the base work is done, now let’s go get the Android SDK. Head over to to get the latest URL to the SDK. To download it run

#cd Downloads



Next up unpack the package

#sudo tar zxf android-sdk_r24.4.1-linux.tgz -C /opt/


Now, to be able to make use of the Android goodie bag, you need to add it to your .bashrc

#vim ~/.bashrc


and append this to the end of the file:


export ANDROID_HOME="/opt/android-sdk-linux"
export PATH=$PATH:$ANDROID_HOME/platform-tools

Save and Exit


For the changes to bashrc to take effect run

#source .bashrc


To make sure that root can run android and adb functions, install the all important sdks etc

#sudo chmod 0766 -R /opt/android-sdk-linux


I know that this last part isn’t very pretty but it made my life easier, might want to change this at some point though, given time.


Congratulations you are now ready to run Android commands on your Chromebook. Have a Debug Enabled Android device floating around, go ahead and connect to your Chromebook USB port, and you will find that adb devices will see it. So now you can already sideload, install, flash and all the glorious Android Hackery you expect. Not all bad, but for not quite what we want. We want to build and deploy our own Android apps, so let’s continue...


Next up we need to install the SDKs and Tools we’ll be using, to create a basic hello world cordova Android App we’ll be needing Android 5.1.1 (API 22) platform SDK, Android SDK Build-tools version 19.1 or higher and the Android Support Repository (Extras). To list all available packages run

#android list sdk --all


Woooha, that’s a load of packages to read through in the console, so let’s filter them like so, respectively

#android list sdk --all | grep "5.1.1"

#android list sdk --all | grep "19.1"

#android list sdk --all | grep "Support "


Now that we know our IDs, we’re ready to install

#android update sdk -u -a -t 16,27,144


Next up, installing Cordova. First things first, let’s go get a nice and fresh Node.js install

#curl -sL | sudo -E bash -

#sudo apt-get install -y nodejs


We’re now ready for Cordova

#sudo npm install -g cordova


And that’s pretty much it. From here on in, is your friend, but for the TL;DR; crowd.


Inside your working directory run

#cordova create hello com.example.hello HelloWorld

#cd hello

#cordova platform add android

#cordova build


or if you have an Android device attached

#cordova run

Or you can run the apk with this chromeos-apk 


And how the cookie crumbles.


As a wrapup, a chrome book, definitely is worth a try if you're looking for machine that is fast, and if you’re good wtih hacking every now and then. Containers, for one, are something that is just not happening anytime soon it seems. But there’s always a way….


But that will maybe be another article, on how this very site found it’s way on to this very server….


Hello World

14-11-2015 23:30:00

Hello world, literally. I am exploring. I am building. I am dreaming. And this, just might, become my playground. Brief intro, on your left you see a little info on me. My digital footprint if you will. Below the links you'd expect, I also added a couple projects that I work on and feel like sharing.