Tag Archives: coffeescript

Several weeks ago young girl (not too young) asked me to implement simple solution to manage statistics on how much a person has read. Well, she has an idea to make the world better in the way of gamification of the reading process. So, people would be motivated to read more.


Let’s focus on the technical part of the problem. I used Angular.js framework to implement HTML5 solution integrated into VK social network as an application. I used CoffeeScript, mozilla’s pdf.js, LocalStorage, twitter bootstrap and VK API. As it’s pure client side solution, I hosted it on github pages.

Several weeks ago I was involved as software architect to optimize design/configuration/development process of our new social game. So, the configuration of the game is pretty huge JSON file. It contains several collections of entities types available in the game with all their parameters and relations. That JSON config then used on both the client and server side. The game designer prepare the data in the set of spreadsheets. It’s very handy. So, it needs to move the actual data from the spreadsheets to the config file. The best they to do it (to avoid copy-paste by hand) is to provide some automation like CI. Let’s call it Continuous Configuration.

Last year I provided solution for similar problem as transistor tool. I implemented it in python (last year the python was my “default language”). It loads data from CSV sources, process and included as static data right into the sources by appropriate templates. Better approach is to use loadable config file. We can provide changes without re-build. It doesn’t need to create the templates for any language we need to support.

I created Transistor 2.0 tool in CoffeeScript as nodejs application. The code looks like ruby/scala/erlang. Try CoffeeScript and you never back to ugly JavaScript (maybe).

Transistor 2.0 is a command line tool that needs just 2 things described in separate JSON config (one more to rule all of them): description of sources (CSV) and the structure of output JSON. There are 2 roles in this process: a game designer who prepare the data in spreadsheets and the game developer who needs that data as JSON config. Both of them are unchained of spending their time for producing typos during senseless copy-pasting.