Saturday, March 30, 2013
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.
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:
Second step, open the server port for inbound communication:
Third step, install the Mindcraft server
Fourth step, running the server:
there are two options to run
directly running the server:
for this option, first install "Screen":
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)
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
- cd /var
- mkdir minecraft
- cd mincraft
- wget https://s3.amazonaws.com/MinecraftDownload/launcher/minecraft_server.jar
Fourth step, running the server:
there are two options to run
directly running the server:
- java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui
for this option, first install "Screen":
- sudo apt-get install screen
- screen -S "Minecraft server"
- ctl-a d
- 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
Tierx COO +Yakir Daskal gave a
brilliant presentation in the Gamification conference today at the HP
development center in Yahud.
Yakir was able to show in a simple but convincing way that gamification
is all around us in our every day lives, careers and entertainment.
It
stands to reason that the process of embedding game mechanics into
electronic services such as cellular services, banking and web sites is
clearly the next step in our technological evolution.
Its a well known fact that as applications become simple and human intuitive, the mechanics that facilitate them become more complex and elaborate. Gesture, voice recognition and machine learning are just the tip of the iceberg.
The same process is happening in the gamification platform industry as we move to accommodate experiences that are closer to what we are all used to in real life.
An example for this is the use of Markov chain modeling in the Tierx solution. This century old mathematical system is the basis of every complex behavioral model and it stands in the core of gamification solutions.
Although it is crucial to have a firm and robust implementation, its not enough to understand the math. As it is, comprehending the human factor is just as important for achieving the ultimate engaging experience for your product.
A gamification platform has to be able to mimic true life experience and fluency as provided by the Markov chain modeling, but its as important to be able to measure the success of every badge, trophy and incentive that are dealt by the system and understand the human impact of each on the users.
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.
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.
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.
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?
Subscribe to:
Posts (Atom)