Decision making framework for Community of Practices (Draft 2)

“Empowering, open and well-managed”

Empowering

Everyone in the CoP and outside CoP must be able to demonstrate idea, opinions and thoughts. The CoP must respectfully accommodate individual thoughts and factor in thoughts of every participating individuals when making decision regarding a new idea or thought process.

If sufficient number of members are not present in the CoP to participate in the decision then the decision must be withheld until such people in required capacity are present. However, if required, due to a valid business reason, this can be overridden and an executive decision can be made with the number of members available at the time. Continue reading

Building a machine learning recommendation system in under a minute

Theoratically there are only two steps to this (well, three if you count the cd).
Clone GitHub repository available here.

Change to that directory using cd. Assuming you have gradle installed, run:

You should see output like:

The highlighted lines are the recommendations that have been generated. The training data set for this can be found in src/main/resources/dataset.csv file. You can also find it here.

From those highlighted lines, the item:12, item:13 and item:14 refer to the ItemId (second column in data set) and value:4.83, value:4.66 and value:4.33 refer to the recommendation strength. This range depends on the implementation.

Looking at the code in Starter.java file, the recommendation is made for UserId (first column in data set) 2. By providing 3 as the second argument we’re asking for 3 item recommendations for this user.

Well, so now that you have the basic framework in place, feel free to play with the UserId values for recommendation, recommendation sizes or even with the data set itself. The more training data you add to the data set, the more accurate its recommendations will be.

What I’ve learnt about writing Expressjs applications

There’s a lot of ways you could write an express application. If you searched for Express app generator, you’ll probably find at least five in the first page of search results.

In my opinion, most of these are designed for hackathons – to get you up and running as fast as possible but also as crudely as possible. While they are good when you want to try something out quickly, most of that code will turn into a big pile of mess as your application grows.

I’ve been in this situation before. I get my application up and running as fast as possible and in order to get my first MVP done but then quickly realise that the auto generated code that was meant to accelerate my development is now slowing me down. To remedy this, this is now how I develop my node.js applications. Continue reading