Friday, September 23, 2011

Kaya Open-sourced?. Deployment soon.

One thing frequently asked is if we are going to be open sourced.

Just to clarify for anyone what that usually means, Open-source is that the code used to run the server is readily available for anyone to read it. It doesnt necesarily mean its licensed to be used, or that it would make any sense to do so.

There are many degrees on open-sourcedness, and releasing the code has ups and downs.

The main advantage with open-source code is visible and hence improvable by foreign developers. That means that someone other than the core Kaya development team can fix bugs, add features, and increase overall functionality. This is the biggest upside to open-source as it can vastly increase the development power of the team.

However that advantage doesn't come for free. The code-controllers (Polly and I) have to review everything outside developers do with scrutiny. We have to set out a system and guidelines and policies to make such a thing work, which take time & effort that would otherwise go directly to development.

There is always the fear that "someone else" will copy the code and run their own version of the system. That, however, is not a big fear for us. There arent many players outhere with the will and capacity to do such a thing, which would be very disadvantageous, because we will probably move faster than any single other person can do.
My main concern with releasing all code is security. People being able to read the code directly can find vulnerabilities much easier and hence exploit them systematically in a vicious manner.

That is why in our plans, we are most likely going to open source client-side features which dont hold this security concerns at all. When? not soon, because before that happens, a lot of milestones have to be achieved: a moderately stable version, production/development servers have to be set up, and more.

However before that stage is reached, something before can be achieved regarding this matter. We are in the latest stages of Board design, and the key missing component right now are the counting algorithms. A friend of mine, Emiliano, (ex-coworker) had done an algorithm and i wanted to give Polly a helping hand on the remaining Board features so i wanted to ask Emiliano for the algorithm.

He didn't have it anymore but wanted to write it again. So i asked him what is a vital question for me as the CTO of Kaya. Was the algorithm tested?. In development, tested doesn't really mean it was "checked out by hand" but systematically verified by another piece of code.
He hadn't done that so i opened up a github project ( https://github.com/conanbatt/OpenKaya ) and wrote a first series of tests in Javascript for what will be the counting algorithm for Kaya.

Emiliano might do a first version, or in the end we will do it from scratch. In anycase, it felt really good for me to write test cases, and let someone foreign to us give it a try and see if it passes. We consider this a good practice for when the real thing happens :).

This brought to my attention something i had neglected lately in favour of delicious features, which was the rating system. I will soon upload something similar , albeit its a much harder test case to build, and make some public announcement looking for implementatinos of different rating systems. The point of building a test case is that we will be able to compare different systems by accuracy and performance.


On the other hand, great news today, Polly finally got his credit-card. Next week i will start working emphatically on deploying Kaya in Amazon, the biggest roadblock so far to make the first beta for Founders to check it out.
Beware! After that happens, Founder Accounts will not be given anymore! so if you know hesitating friends, tell them about that :)

1 comment:

  1. Cant wait to get my hands on the Beta and start playing!

    ReplyDelete