package.json: engines & engineStrict - and how to use them

I’m poking around quite a lot with io.js recently for reasons that soon will be revealed. When doing so I used my favorite Node version manager - Node Version Manager to manage different versions of Node and io.js.

Switching back and forth is simple and sometimes I end up running some code on a version of Node/io.js that the code does not support. For example running EcmaScript 6 let-statements in Node.

I was hoping that I’d get a warning or preferable even an error when doing that. But no. Or…

In this post I’ll show you how to use the package.json file to make sure that you get warnings and errors when using the wrong version of the framework


In the package.json there’s an optional node that you can set called engines. From the documentation we...

Read More

What the traffic in Jakarta taught me about slack

Like most cities in Asia the traffic in Jakarta is horrible. Especially the motorbikes that are plentiful is an interesting phenomena to observe.

Once you mange (took me a year to do) to look past the total disrespect for human life on display, the drivers own lives as well as other people, I saw patterns that have bigger influence on at least me.

In this short post I wanted to share those with you and maybe you can also get some thoughts that can help you.

My good friend Håkan Forss wrote an excellent presentation called What can traffic in stockholm teach you about queuing theory. That inspired me to write this post, at least a little.

They never stop

The first thing that we need to observe is that the motor bikes never stop....

Read More

Open letter: Management tips to Dr Lillian

I’ve just ended one of the hardest but also most rewarding gigs I’ve been part of. As often I was merely a coach, but this time I marveled at the result. We took a company (hospital) on the verge of dying to being self-sustaining and profitable in 7 months.

The leader of the hospital is called Dr Lillian, a young doctor that been very responsive to my tips and radical changes. I’m very grateful for her cooperative spirit and hard work. The same goes for many many people in the hospital. As I said; they are the people who made this possible. I just gave some hopefully helpful (although hands-on) pointers.

Last Friday (the 13th…) was my last official day at the hospital. Now, it’s ca 150 m from my house so I will keep it under close surveillance during my time here.

But I wanted to leave Dr...

Read More

A world without WHY

When I first arrived in Indonesia I didn’t think nor knew much about the difference in our cultures. This quite understandable, although in hindsight I should have read up on it a little bit more. Now, as I know more and more, I also get more and more interested and confused about some very basic things in the society.

To not come out as very prejudiced there’s some of disclaimers to be made and I’ll do that throughout the post, but here are few to get started:

  1. These are merely my observations after 15 months in the country. I’ve been working with quite a lot of people (met maybe ≈500) and in a few different companies.
  2. It’s very easy to jump to a conclusion that some behavior (mine, your or theirs) is stupid or wrong. I don’t want to do that, so in everything I write here I will...
Read More

Why I built page-logger... and how it made me money

I wrote a little application called page-logger for purely selfish and lazy reasons. It was fast, quite fun, I learned a lot and apparently I could make MONEY by using it. Which I didn’t thought of when I wrote it.

In this post I’ll take you through some code, point to some things that I learned and finally some thoughts about learning from your data. I hope you like it.

Why I built page-logger

I’ve been using Blogger for a very long time. From when I started to blog (2006… oh my) until early last year… OMG - I’ve been doing this for 9 years.

Oh, sorry… got lost in sentimentality there. Ok - last year I switched to Jekyll hosted on GitHub. That’s worked out very well.

However - there’s a nice feature of Blogger that I was missing. There’s a lightweight...

Read More

CoffeeScript - what I've should have done

The blog post I wrote yesterday was from my experience at the time. I even ended the post with a call out for better ways.

And sure enough, twitter to the rescue:

As a side, this why I hang out on twitter. There are brilliant people there that will push you towards ever better. Thanks Erwin for this.

So… what does that mean for my post yesterday… Let’s find out:

First of all - nothing I wrote will cause you problems but it’s a bit cumbersome and maybe not the CoffeeScript-way… I think.

What worked

All the things I wrote under the “Initialize project and more” and “Run tests” headings...

Read More

Get started writing NodeJs with CoffeeScript - not a piece of cake

For some reason I’m from time to time drawn to different languages that compiles to JavaScript. And then I’m drawn away again. Especially nowadays with ES6 coming up many ideas and needs for CoffeeScript or TypeScript goes away.

So the other day I found myself thinking again:

Hey - CoffeeScript. That's not such a bad idea. Maybe I should try to write some.

CoffeeScript and I have a dormant but warm relationship because this little language was the one that helped me understand not only JavaScript but also got grips of functional programming.

I thought I’d write a simple little kata in Node to fresh up my CoffeeScript-fu. How hard could it be?

Well… there’s quite a lot of setup and idiosyncrasies that you need to be aware of. This post tries to summary what I learned as I got my environment up and running....

Read More

What if money was not an issue?

In Indonesia there’s an interesting development going on right now in health care. A nationwide health insurance is being rolled out. For everyone. Until now health care has been paid for privately or via private health insurances, but with the advent of BPJS (that it’s called) everyone can now afford to go to the hospital… or at least there’s fixed tariffs.

Before we continue, imagine the effort to roll this out in the world 5th biggest population… 250-270 million people. Most of which is very poor. I think this is such a great thing and I applaud the Indonesian government for doing it.

However… I work for hospitals in Indonesia. On the “other” side of things. For us this is also an opportunity since this will bring more patients to our hospitals and we get to serve those in need. But there’s another side of the story that have very...

Read More

Config handling in Node and Heroku - with secrets

Once you’ve coded and tested a Node application we are anxious to deploy it and put in front of real users. I’ve blogged before on how you can do that very easily and fast with Heroku.

But one thing that trips me up a lot is the configuration and especially things that I want to vary per environment, like connection strings to databases or user names. Hey - some of those things I don’t even wanna check into source control at all. They might be secrets that I don’t want anyone else to get hold off.

In this post I’ll show you a little function / object that I’ve found plenty use of and that I now include in almost every project I deploy. I’ll finish up with a little discussion on how to handle secrets too.

I don’t know really where I picked this construct...

Read More

All the great teams

I reflected a little bit about the great teams I’ve had the honor to be part of. It’s just a few out of all the teams that I’ve been part of that I would call great. But they all shared some common traits.

My first ever scrum team was a great team, that I still think back on fondly. Gothenburg Brass Band was an orchestra that I had the opportunity to be part of for almost 2 years - total awesomeness. My “current” (since I don’t play with them now) band Vasa Band is another group that I hail as a great team. The prayer group we had 2006-2010 in our home was an amazing group too.

Looking back I remember these things that was common about them, in the very particular order that I remember the traits…:

Sat together

The great teams I’ve been part...

Read More