Monday, March 25, 2013

Angular.js, a haven for the lazy developer

 
I've been acquainted with this framework in a JavaScript meetup I attended at the Google campus in Tel Aviv. 

The speaker, Shay Resnik was full of praise to this new infra that allows developers to be lazy and write so much less code. 

But as a supper lazy developer, I had to see for my self. So I did. and it does. The combination of RoR and Angular is especially nice because the code shrinks down to the essentials. 

I found a nice example for the workings of RoR and Angular, called angular_rails_demo on git and although it took a bit of working to actually get the app running on mac (nokogiri and rmagick are bitches) it is fantastically simple and easy to follow. 

After abandoning Adobe Flex in all my projects, I can finality say that there is something I like  in HTML and JavaScript.


Sunday, March 3, 2013

Minecraft server installation on Ubuntu

Installation instructions:

First step, prepare the system requirements:
  • sudo apt-get update [This updates all the packages on the server]
  • java -version [checks if you have Java installed on the machine]
  • sudo apt-get install default-jdk [installs the necessary Java executables]

Second step, open the server port for inbound communication:
  • sudo iptables -A INPUT -p tcp --dport 25565 -j ACCEPT

Third step, install the Mindcraft server

Fourth step, running the server:
there are two options to run
directly running the server:
  • java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui
or run it through a delegation software (this enables the console to be closed without shutting down the server)
for this option, first install "Screen":
  • sudo apt-get install screen
running the server through Screen:
  • screen -S "Minecraft server"
detach consule from server stdout:
  • ctl-a d
or, reattach the console to the Screen stdout:
  • screen -R

Server's world (level) and player manipulation

the minecraft server has several configuration files that define the game environment characteristics.
these files are saved in a proprietary format and zipped, so there is no use trying to open them in a text editor. the NBT spec is available at: http://wiki.vg/NBT

its possible to run a specialized editor for NBT formatted files available at: https://github.com/jaquadro/NBTExplorer

There are some libraries available for reading and writing to this format in an array of programming languages.

A ruby lib to read/write NBT format files: https://github.com/mental/nbtfile.git
(an extended list is available on the http://wiki.vg/NBT page)

Tuesday, February 12, 2013

Gamification is all around us



Thursday, November 15, 2012

Sprint and Shift

When resources are scarce the smartest thing to do is to share.

For so long, startup founders have been pitching about having a team of professionals who are one hundred percent dedicated to the job. For most of these enterprises in their infancy that was true. What was also true, and much less obvious, was that these dedicated teams were not 100% occupied in their work 100% of the time.

Much like in the military, start-up life is more in the sense of  hurrying up and waiting.

So you are Lean and Agile, Your team is sprinting, they are at their best, optimized, combined effort to get the feature out on time.

But then, they wait.

They wait for the new designs to come in, wait for the other guy to deliver his bit, wait for the analytics on the latest feature. Wait.
And while the team waits, you waste.

In a way, its like having a V12 engine, running full throttle without anything connected to it. burning money with no practical production.

So how does the sharing work?

The key for time efficiency is to always have a full stack of tasks to do for the development team. So, if one project is not enough, its time to share. combining efforts with more then one startup means that the developers, as any other expensive resource in the company can be pooled. while waiting on one task, a developer can shift to another. By the method of Sprint and Shift, resources are maximized.

Oh, this sounds so wonderful, but is this as good in practice as it is in theory?

For the past year I had the privilege of working with two teams, both independent companies but inter-dependent in resources.

By choosing to do so, we have been able to enjoy the best quality of manpower, without paying for lost time between sprints. This is "Sprint and Shift" in action.

Nothing can be leaner than this.


Friday, November 2, 2012

The Game Experience



Game mechanics (aka gamification) of sites has for some time become a necessity rather than a luxury. Everyone is talking about retention, engagement and acquisition, but are Points and Badges enough to give an answer?
Apparently it is not.

Gamification is all about manipulating the behavior of the on line users, in a way that would benefit both user and service provider. Effective behavioral influence requires subtlety and sophistication. Consumers need to be motivated and not lured. While trophies are nice to show, they need to represent a true achievement.

Game theories have long been addressing the issues of motivation and creating the economics of behavior.

The well-known prisoner’sdilemma addresses the economy of fidelity by imposing different rules of engagement; a reasonable player is bound to a particular behavior in order to climb up the ladder of success.

Equally celebrated, is the Nash Equilibrium used to analyze strategic interactions of a multitude of decision makers.

Both of the examples above assume the intelligence and reasonability of the players, and comprised of bona fide motivators.

Data services such as sites, telecommunication, enterprise applications etc. usually contain a range of challenges that flex and differ depending on the current situation of the participating user. In a way, much like board games, the rules of engagement differ in dependence of the state and history of the user.

To match such an elaborate engagement system, the Markov chain proves to be best accurate.

The Markov chain is a mathematical system that describes transitions between a finite (or countable) number of states. This implementation provides the robustness and flexibility of a multitude of challenges that are either with or without accumulation of memory.

Perhaps the best known implementation of the Markov chain is in google’s PageRank algorithm, although it can be manifested in as simple as a board game.

So can the Markov chain be used for site gamification?
Apparently it can. 


For more info: Tierx