Menú Principal

Friday, March 28, 2014

An Useful Resource for Engaging the End Users of the Application


Today, we are aware that certain web games are successful because their developers knew how to engage their target players. This is because they applied very well the human aspects when playing pastime and puzzles in the traditional way.

This book starts showing us why people plays and what purpose they want to get, so we need to identify what kind of users our application will have: Socializers, Explorers, Achievers or Killers? So, how can we develop web applications in a manner our end users can enjoy it while working with it, even if it is not a game?

This book is an introductory path for understanding the mechanics of how people gets motivated with playing a game again and again and extending those concepts to more varied fields like health, knowledge and customer support. Those core concepts are points, levels, leader boards, loyalty, rewards, badges, social experiences and game mechanics versus game dynamics. Chapter five is very valuable because it covers twelve game mechanics that we can adapt for our web application user experience like collecting, delight, gifting, leading and fame.

The book finishes showing us a programming project which applies many of the aforementioned gammification concepts for a forums web site.

This book is very good to start designing web applications with games metaphors. A drawback I found is: How to gammify an application intended for the internal enterprise staff? This question is not clearly answered or inferred.


Note 1 : By the time of writing this review the web site recommended by the authors http://GamificationU.com is not longer available. I think the new site is http://www.gamification.co/.

Note 2 : This book was reviewed as a part of the O'Reilly Blogger Review Program (http://www.oreilly.com/reviews/).

See Also:



Gamification Master Class with Gabe Zichermann



I review for the O'Reilly Reader Review Program

Saturday, January 18, 2014

Halo 2 para Windows 8, Control XBOX Genérico y Emulador x360ce

En esta oportunidad explicaré cómo pude utilizar un control para XBOX (360) genérico USB para jugar Halo 2 en Windows 8 estándar, también conocido como Windows 8 Single Language. Mi problema era que el control genérico USB marca Unitec (hecho en China) tiene los botones A y B y X y Y intercambiados, por lo que al jugar Halo 2, se producían las acciones incorrectas. Por ejemplo, lo normal es que con A se salte y con B se golpee o machaque, pero en mi caso, con A se daba el golpe y con B se saltaba. Igual pasaba con las funciones X y Y para recargar el arma y regocer segunda arma, respectivamente.
 En la siguiente imagen vemos que cuando presiono el botón A de mi control genérico Unitec, Windows Realmente indica que es el botón # 3 del control y se resalta en color verde, lo cual está mal porque normalmente ese sería el botón B. Esto seguramente fue por una falla de fabricación del control.
Al presionar el botón A de mi control genérico, Windows reconoce el botón incorrecto B.

Requisitos

Para emular correctamente el control genérico XBOX en nuestro computador deberíamos tener instalado lo siguiente:
1. Microsoft Windows 8/8.1.
2. Microsoft .NET Framework 4/4.5 (ya viene incluido con Windows 8).
3. Microsoft .NET Framework 3.5 activado. Simplemente, tienes que ir a Panel de Control → Programas → Activar o desactivar las características de Windows y activar la casilla .NET Framework 3.5 (Incluye .NET 2.0 y 3.0). No es necesario activar las casillas hijas de HTTP Windows Communication Foundation.
Activación de los paquetes .NET Framework 3.5, 3.0 y 2.0.
4. Microsoft DirectX Junio 2010:
5. Visual C++ Redistributable for Visual Studio 2012 última actualización. Como Halo 2 es un software de 32 bits debemos descargar el Visual C++ 2012 x86.
http://www.microsoft.com/en-us/download/details.aspx?id=30679
6. Cliente del Bazar de Games for Windows: Sólo se puede descargar con conexión activa, no existe instalador offline: http://www.xbox.com/es-CO/live/pc/DownloadClient.
7. Halo 2 for Windows Vista. (DVD original)

Procedimiento

 Ok, con todo este software instalado podemos descargar y descomprimir el emulador x360ce (XBOX 360 Controller Emulator 2.1.2.191):
http://code.google.com/p/x360ce/downloads/list?can=1&q=&colspec=Filename+Summary+Uploaded+ReleaseDate+Size+DownloadCount

Descarga el emulador x360ce.
¿Cuál versión del x360ce debemos descargar? A fecha de hoy, la última versión es la
x360ce.App-2.1.2.191.zip. Este debería ser tu primer intento, sin embargo, puede que no sea compatible para tu Windows 8/8.1 o tu control. Para saberlo, conecta tu control genérico en modo análogo (el botón redondo del centro) descomprime el archivo, y copia el ejecutable x360ce.exe en la carpeta de instalación de Halo 2. En mi caso, es
C:\Program Files (x86)\Microsoft Games\Halo 2
 
Ejecuta el x360ce con permisos de administrador y cliquea yes a los dos cuadros de pregunta que aparecen.
Cliquear Yes para crear el archivo de configuración x360ce.ini
Cliquear Yes para crear la librería xinput1_3.dll
Luego nos aparece un cuadro de diálogo indicándonos que se ha detectado un nuevo control. Pulsa Next.
El emulador dectecta el nuevo control XBOX genérico.
En la siguiente ventana, el emulador detectará el juego Halo 2 (porque está  en la misma carpeta), y se conectará a Internet para descargar la configuración de botones que el juego requiere. Cliquea Finish.
El emulador x360ce descargará de Internet la configuración de botones para el juego Halo 2 for Windows Vista
Luego, el emulador x360ce te mostrará la configuración actual de botones debes ensayarlos y configurarlos hasta que cada botón del control que presiones coincide con el botón que se ilumina en la pantalla. Si quieres un paso a paso de este proceso, puedes ver este video tutorial en Youtube: 



Luego, vas a la pestaña opciones y seleccionas la casilla xinput9_1.dll pues, y por alguna razón, hace que x360ce sea compatible con Windows 8/8.1.
Activar la casilla xinput9_1.dll para aseguarnos que el x360ce sea compatible con Windows 8/8.1
Luego, cierras la aplicación guardando los cambios, por supuesto. Luego, ejecutas Halo 2 y verificas que los botones funcionen de forma correcta.
Cerrar el x360ce pero guardando los cambios.
Para tu información, el emulador x360ce creó tres archivos dentro de la carpeta de tun juego Halo 2: x360ce.ini, xinput1_3.dll y xinput9_1.dll:
Los cuatro archivos del emulador x360ce que tendrás al finalizar el procedimiento
Sin embargo, como lo mencioné al prinicipio los botones A y B y X y Y estaban intercambiados pero además esta versión del x360ce, hacía que al girar el botón análogo de la mira también y extrañamente se activa el trigger izquierdo, que sirve para lanzar granadas. En Halo 2 esto hace que cada vez que mires hacia abajo lances una granada y probablemente mates a tus compañeros marines.
Un error de la última versión del emulador x360ce hace que al mirar hacia abajo también se lance una granada.
La única solución posible fue borrar los cuatro archivos del emulador x360ce y revisar cuál de las versiones anteriores del x360ce era compatible con mi control XBOX genérico USB y Windows 8/8.1. En mi caso, revisé la página de descargas, descargué uno por uno los archivos x360ce y seguí el mismo procedimiento una y otra vez hasta que encontré que la versión x360ce.App-2.0.2.163   funciona correctamente para el juego Halo 2. No había botones intercambiados ni simultáneos. Esto, dependerá de tu control y tu computador.
Búsqueda de una versión anterior del x360ce que sea compatible para el control XBOX genérico USB y Windows 8/8.1
El resultado final es que por ejemplo, al pulsar el botón A del control genérico, el emulador x360ce le envía la señal a Windows 8 para que se active correctamente la función asignada del botón A.
Resultado final de la configuración del emulador x360ce para Halo 2 en Windows 8/8.1




Wednesday, May 30, 2012

My Review of REST API Design Rulebook

Originally submitted at O'Reilly
REST API Design Rulebook
Designing Consistent RESTful Web Service Interfaces

An Attempt to Unify the REST APIs
By Eder Andres Avila Niño from Paipa, Colombia on 5/30/2012
4out of 5
Pros: Easy to understand, Concise
Best Uses: Novice, Intermediate, Student
Describe Yourself: Developer
This a good book for beginners willing to understand what a REST API is about, its characteristics, HTTP methods and media resources in a short, concise, panoramic way. This book is an attempt to collect the best practices to expose the external behavior that a client, web or mobile, expects from a REST API server for processing requests and returning responses. For beginners, it offers a foundational knowledge about what a REST API should provide; and for experienced developers it offers an implicit 'audit' checklist to evaluate if their APIs are REST compliant.

For those software and web developers that want to enter to the REST API development, 'REST API Design Rulebook' is a good starting point since it explains through five sets of rules the underlying knowledge of a REST API, their structures, methods, documentation and suggested exposure to client applications and other APIs. On my opinion, and keeping proportions, this book, as a design pattern does, gives to developers the common vocabulary to discuss, specify, design, develop and test RESTful APIs.

The book's chapters are easy, quick reading, except chapter 5 'Representation Design' which is the one that requires more intellectual effort because it explains how to structure well-formed formats for message body (i.e. JSON), hypermedia (i.e. links), media schemas and API errors. Be careful with this chapter since it introduces a new Internet format not yet approved (the WRML), but on author's opinion this new format will become the client–server more verbose with respect to the format of a returned document (i.e. resource).

However, experienced REST developers may already know and have implemented many of the rules defined in the book, and instead be more interested in how to design the back-end service layers that conform to a RESTful API avoiding RPC or RMI practices, if possible. Such inner workings are not covered, but I think they could benefit from this book by performing a 'REST API compliant test' by taking this rulebook as a checklist.

By taking that implicit checklist approach, this book also has the side effect of providing several criteria to evaluate if a software framework that claims to help to the development of REST APIs indeed offers a full set of features that compliant with REST behavior, much more than routing HTTP requests and isolating from user interface artifacts.

Finally, in chapter 7 'Final Thoughts' the author depicts the need to unify a methodology to design a REST API that decreases disparities between APIs and improves team communication. Author depicts his solution known as the WRLM, akin to, say UML and RUP. On my opinion, a more detailed example included in this chapter would have been useful to show us the WRML's full potential rather than visiting the official web page.

In conclusion, 'REST API Design Rulebook' is a good starting point to understand how a REST API is composed, to acquire the proper vocabulary and to apply a more planned API design process. As a side effect, this rulebook helps to evaluate the RESTfulness of an existing API or developer framework.

Note: This review is in exchange for the O'Reilly Bloggers Review Program (http://oreilly.com/bloggers).

I review for the O'Reilly Blogger Review Program

Wednesday, May 16, 2012

Node: Up and Running – Review




Node: Up and Running

Node: Up and Running is a book for JavaScript programmers who want to get started with the foundations of Node.js as a nonblocking runtime environment and web server, covering essential features, popular third-party APIs and programming suggestions for building web applications and services, this time using JavaScript as the programming language on the server side. Node: Up and Running is for the reader the starting point to understand the main components like servers, events, callbacks and modules from which a Node.js application is made of.

This is a short, concise book that explains how Node.js gives solution to support thousands of asynchronous requests through its event-loop mechanism and core functionality. In chapters 1 to 5, we can find the structure of a basic, raw HTTP Node.js server, what request callbacks mean, and how to organize these callbacks to obtain clarity and consistence. We can also find basic utility functionality dealing with IP addresses, clusters and child processes, and how to encrypt public and private application keys.

In chapters 6 and 7, this book explains briefly the most popular third party Node.js modules from which we can actually use for building useful web applications and services. We can briefly learn how to setup database connections, operations and queries, ho to build a basic, managed HTTP server with the Expressjs module for web page rendering; and how to work with WebSockets, the new feature found in recent version of web browsers for persistent connection with the server. Final chapter 8 explains to how to publish our own Node.js modules to share with the community.

What I liked most of Node: Up and Running is that it offers suggestions to avoid pitfalls when dealing with callback chaining, why a ‘try…catch’ block doesn’t catch an asynchronous exception and how to distribute the work load on several CPUs when possible (chapter 3). Programming good callback chaining and monitoring mechanisms is important to improve readability and maintainability, and to avoid possible hang-out conditions due that certain I/O events may take long time to be processed, like downloading a file and querying a database.

I think the benefit after reading Node: Up and Running is that the reader gets an initial understanding of how a Node.js HTTP server works and how to combine core with third-party functionality. That is, this book gives the reader an overview of how the Node.js world is structured and its possibilities becoming JavaScript available on both server and client sides. Yahoo! said this fact is a potential transformation in software architecture.

However, if the reader really wants to build a web server he/she should look for more information about Node.js frameworks like Expressjs, Restify and Mojito since this book only introduces the basics. But, Node: Up and Running opens the doors to understand how a Node.js HTTP server works so the readier will be able to understand the vocabulary, the mechanics and the good practices offered by each module and framework.

A negative point to this book is the absence of how to structure the different layers of a Node.js application like the business, data access and security layers. The book doesn’t show how to break functionality into several JavaScript files. I think a final chapter 'Putting it all together' would have been useful.

Finally, I want to say that there’s a difficulty to imitate some code examples because the directory structure was not specified. You’ll notice this when reading the Twitter App on chapter 2. That may change if O’Reilly Media publish the accompanying source code or a book update. Meanwhile, you can read the errata section at the publishers web site.

Note: This review is in exchange for the O'Reilly Bloggers Review Program (http://oreilly.com/bloggers).

I review for the O'Reilly Blogger Review Program

My Review of Node: Up and Running

Originally submitted at O'Reilly

This book introduces you to Node, the new web development framework written in JavaScript. You'll learn hands-on how Node makes life easier for experienced JavaScript developers: not only can you work on the front end and back end in the same language, you'll also have more flexibility i...


By from on 5/16/2012


out of 5

Thursday, May 3, 2012

My Review of Introduction to Tornado

Originally submitted at O'Reilly
Introduction to Tornado
Modern Web Applications with Python

Overcome your Fear to Try Tornado
By Eder Andrés Ávila Niño from Paipa, Colombia on 5/3/2012


4out of 5
Pros: Concise, Easy to understand, Helpful examples
Best Uses: Student, Novice
Describe Yourself: Developer
Introduction to Tornado is a rapid book for starting to get in touch with Tornado, an open source framework led by Facebook, Inc., for developing asynchronous web services in Python, covering topics like request handlers, forms, templates, MongoDB, initial authentication, OAuth, and Nginx.

With Introduction to Tornado you can learn and practice the fundamentals of the capabilities given by the Tornado framework to build web services that support hundreds of asynchronous requests, user authentication via cookies and OAuth, MongoDB document storage and retrieval, and deployment in an Nginx server environment. That is, some of the top leading technologies today to provide to end consumers fast, scalable, secure web applications that follow the RESTful architecture.

Without doubt, this book will help you overcome your fear to try this Python framework for starting to develop web applications, web services and web APIs that want to benefit of thousands of asynchronous accesses. And maybe, Tornado could be the technology you're looking for begin your startup business offering to your customers the same service quality provided by services like Twitter and Facebook.

The reader should be warned about his/her expectations, however. As I said, this book is helpful for overcoming the fear to try the Tornado web server, but not to master it. In fact, as you can see Introduction to Tornado is a short book of 136 pages divided in 8 chapters that cover the foundation of each Tornado's feature ranging from small web services and ending with the final deployment. So, after reading this book you won't be a Tornado's master chief, but a Tornado's recruit, I mean enthusiast. Besides, you need to read more about RESTful architecture, user authentication, and Nginx developing by your own.

But, I recommend Introduction to Tornado because each Tornado's feature is explained through a short, comprehensive application accompanied by a clear discussion which motivates the reader chapter by chapter and after finishing the book to continue exploring the different development possibilities by using Tornado as an asynchronous web server.

Personally, I'm delighted with this book because it has explains a little more the rationale about some features like classes, callbacks and settings that other tutorials I found on-line. I hope in the future we can get more complements to the book's contents and more extras from the authors.

Note: This review is in exchange for the O'Reilly Bloggers Review Program (http://oreilly.com/bloggers).

Friday, March 30, 2012

My Review of R Cookbook

Originally submitted at O'Reilly
R Cookbook
With more than 200 practical recipes, this book helps you perform data analysis with R quickly and efficiently. The R language provides everything you need to do statistical work, but its structure can be difficult to master. This collection of concise, task-oriented recipes makes you productive...

Useful R for Statistical Courses
By Eder Andrés Ávila Niño from Paipa, Colombia on 3/30/2012


4out of 5
Pros: Easy to understand, Well-written, Concise, Helpful examples
Best Uses: Student, Intermediate, Novice
Describe Yourself: Developer
This is a book about how to use the R programming language to solve several statistical problems like combinations, probabilities, frequencies, quantiles, means, correlations, regressions and ANOVA analysis, and as a plus, time series analysis. This cookbook is perfect to students and professors looking for a computing tool that helps them to understand and teach statistical courses, respectively. That's because many times it is important to solve complex exercises that shows the several applications that a statistical topic, like the normal distribution, has in surveys, engineering, manufacturing and commerce, which implies performing several activities related to data retrieval, storage, processing, analysis and visualization.

This cookbook explains the how-to of such activities providing a catalog of tasks to accomplish each of these, for example, how to read and write CVS files, prepare the data contained in those files, generate random samples, calculate the probability of X, test for normality, perform linear regressions and plot the histogram. Each task is described following this structure: Problem, Solution, Discussion and See Also, being the Discussion section the valuable resource of the R Cookbook, because this section explains the implications of using the given solution together with some tips and tricks. Those implications, tips and tricks makes the difference between the R Cookbook and a raw Internet search, so students and professors can learn about the rationale of a solving a statistical problem with R, not just the syntax of variables and functions.

However, it is important to clarify that the R Cookbook is not a book for learning the essence of statistics; instead the R Cookbook is a suggested companion resource for the course main textbook. The R Cookbook will help the explanation and understanding of the core topics, exercises and applications, and simulate different problem scenarios.

Finally and personally, I'd like to see a second edition, volume or update to include how to solve operations research problems using R, if possible. For instance, simplex method, duality, transport and network problems, and inventory and queuing systems are the most common ones in operations research.

Note: This review is in exchange of the O'Reilly Bloggers Review Program (oreilly.com/bloggers).