Archive for: November 2012

Gamification and Reality

One great video with a possible future in these areas!

Sight from Sight Systems on Vimeo.

jBoss 7 – Web service client – popular exception “definitions”

In the process of migrating some J2EE Applications from Weblogic to jBoss 7 I’ve been found several issues that puts the popular java statement “Write once run everywhere” in cause. I will not start here any discussion about this, if the cause its j2ee, jboss, weblogic, axis, although you are free to do it so, and I will have arguments pro and con, but it was not so smooth as I was expecting it to be.

One of the last errors that toke me some time to figure it out, and I found the solution by intuition trial and error was when I had to generate a web service client for a jBoss j2ee appilcation that works great in weblogic but in jboss throws the following error when calling a web service:

… several stack trace lines but the main one:

… at some point in the stack trace

Caused by: javax.wsdl.WSDLException: WSDLException (at /html): faultCode=INVALID_WSDL: Expected element ‘{http://schemas.xmlsoap.org/wsdl/}definitions’.

So, I’ve tried every possible solution, from generating different kinds of web service clients, using Axis, jboss, CFX, to changing Jaxb versions on eclipse facets to 2.0, 2.1, 2.2.

About the solution:

In the construction of the web service call

MyWebService_Service service1 = MyWebService_Service(new URL(wsdl));
MyWebService port1 = service1.getMyWebServicePort();

In Weblogic a possible URL could be passed on the web service class constructor as :

– “http://10.192.33.93:8080/app/webservice

But In jBoss, the URL must use the “?wsdl” at the end of the url! like this:

– “http://10.192.33.93:8080/app/webservice?wsdl

I dont know why, maybe when I have time I can discover the reason, but for know it was the solution I’ve found for this kind of exception that apparently its a popular problem around forums.

Hope my solution can help you anyway, or if you find another reason for this exception, be my guest to put it on the comments area!

Gamificação: Mecânica, Estética, História e Tecnologia – Parte III

small_339901660 A Tecnologia é um dos componentes tecnicamente mais exigentes e que exige acima de tudo pessoas especializadas, engenheiros de software, hardware, etc. No caso de um Jogo tal como os conhecemos como Playstation, XBox, PC, poderá resolver-se com pessoas com skills em programação de software, pois os controlos remotos, aparelhos, televisões, etc já estão todos desenvolvidos. No entanto, não quer dizer que fiquemos por aqui, pois começa a surgir acessórios externos que tornam a experiência no Jogo muito mais enriquecedora, como animais de estimação mecânicos que são controlados por wireless após acções no jogo que é projectado na televisão, até à experiência de existir uma cãmara que identifica os nossos movimentos e transforma-os em acções na mecânica do Jogo, como no caso de Jogos desportivos e fitness. A tecnologia por si só não resolve nada, podem-se fazer Jogos com uma complexidade tecnologia enorme, com acessórios de tecnologia de ponta e o Jogo ser um fracasso, há que considerar sempre os outros 3 pontos (Mecânica, Estética, História). No entanto, este é um assunto que hei-de referir no futuro sobre o efeito holistico de juntar estes 4 elementos constituintes do Jogo e como juntamente com um Tema pode criar uma sinergia fantástica na experiência final.

Na Gamificação de um web site (tipicamente uso o web site pois é um exemplo que foge radicalmente ao conceito de Jogar tal como conhecemos num aparelho de jogos) o que é a tecnologia? Os conceitos dos jogos aplicam-se perfeitamente na Gamificação, o próprio nome o indica, e no caso da tecnologia isso não muda, no entanto, enquanto que quando compramos um Jogo a tecnologia já lá está, até para quem o faz metade já foi preparado (os aparelhos, comandos, acessórios) no caso de um web site, há que fazer ou mexer no web site e criar “o aparelho” e os comandos!

O “Aparelho” para o Jogo terá que ter vários componentes:

– um pacote de software que consiga monitorizar os “movimentos das jogadas” do utilizador, como que links visitou, que comentários fez, que rating deu nos comentários, que outros utilizadores recomendou e chegaram ao site, enfim, que jogadas anda a fazer na mecânica do nosso jogo.small_6105644516

– um pacote de software, que já foi definido previamente com a mecânica do jogo, que pega nas jogadas que estão a ser feitas, valida os movimentos (regras do jogo) e promove as consequências, como prémios, pontos, passagem de níveis, etc, que num web site poderão ser ofertas de assinaturas, distinção em homepages desportivas, de secções de notícias, aparecer em primeiro num grupo de comentários, leaderboards, badges, e outros virtual goods. (embora aqui já estou a entrar um pouco na estética e nos PBL – pontos, badges e leaderboards que pretendo discutir futuramente).

– as alterações ou definições no design e interacções com o site. O site além do seu design com a sua informação terá também que contemplar como se fizesse parte dele inicialmente os componentes da gamificação e por isso a tecnologia a escolher é uma peça muito importante, porque um site informativo poderia estar apenas em html/css/javascritpt, com gamificação terá que ter elementos mais dinâmicos e de programação mais avançada, afim de poder receber “as jogadas” dos utilizadores, e poder reagir ao avanços ou recuos consequentes dessas jogadas. Basicamente tem de estar preparado para se ligar ao “aparelho de jogo” falado atrás.

Assim, quando se quer gamificar um site, ou outro componentes de software, quer desde a sua criação ou alterar algo que já existe é necessária alguma consultoria técnica mais avançada como um consultor sénior de software. Sem ele poderão ser tomadas decisões acerca do Jogo que poderão não ser possiveis mais tarde implementar, tal como alguém quer um Jogo com um visual completamente real como o filme Avatar mas a tecnologia ainda não chegar lá! (No caso do filme Avatar demorou alguns ANOS para se conseguir! embora parecendo no produto final algo tão simples!)

O tema da Tecnologia, que é um tema que certamente voltarei a referir no futuro com mais profundidade, com exemplo não só de software, é muito importante, pois acima de tudo um projecto de software que queria ter elementos de Gamificação deve incluir como seus requisitos os requisitos da Gamificação no mesmo nível que os restantes requisitos do projecto, porque afinal de contas a Gamificação é um dos contribuintes para a melhoria do negócio!

photo credit: toughkidcst via photopin cc

photo credit: h.koppdelaney via photopin cc

WordPress Cache, Hyper Cache, Super Cache, W3 Total Cache

One of these days a customer asked me to improve the performance of his wordpress website. The first thing I’ve done was to measure the actual performance of the site. For that I started to search for firefox and chrome addons. I’ve already knew a few, bur after some googling I found that the usual suspects were enough: Firebug with YSlow and Google Speed Tracer. There were anothers but I couldnt find any reason to use them.

So my first metrics of the web site from the YSlow:

1) Homepage on first call without cache retrieves to client about 1800Kb
2) After first call, the most part of webpage elements stay on browser local cache, like 700Kb of images, 500 of Javascript and CSS and the rest was Html. So, to the client just comes 120Kb. Not bad at all! But not the 100Kb recomended pratice.

So, I want to reduce below the 100kb, and who knows the 1800Kb too, How?
I started to search for a wordpress cache plugin to compress (using http compression, which was one of the recomendations from the performance analysis tools) html, javascript, css. I want the website to respond faster instead of always using the access to the wordpress database to retrieve the same content (the posts arent always changing!). Besides these reasons, its helps for google SEO/rank faster webpage retievals. I found 3 plugins:

  • W3 Total Cache
  • Super Cache
  • Hyper Cache

Apparently the best one was suppose to be W3 Total Cache. Great reviews, very popular, but wih one biggest problem, doesnt work well in WordPress 3.4.x, just works until 3.2.x. Unfortunelly I had to put it aside.
So I had to find which one of the others I will choose.
Both are very similar, but after some search, reading, analysis of performance with cpu and memory charts the Hyper Cache was found the best, more lighty, works great in WordPress 3.4.x and its realy very easy to use, I just had to define Cache on wp-config.php.

So I’ve installed the Hyper Cache Plugin and tested the website performance and the quantity of kbytes transfered to the browser. Well, at first, the length was the same, but after reading the Hyper Cache Help I discovered that when I am logged as wordpress admin, the Hyper Cache its disabled, so any test will be with no use or conclusion. So I started a session with another browser without any website cookies for the site I was using the Cache and at the first test, even the 120Kbytes was reduced to 80Kbytes, and the 1800kb reduced at first attempt to 1600Kbytes (images are images, the wordpress cache cant do anything about it).

I hope this experience can help anyone struggling with ways to improve the wordpress performance in wordpress version 3.4.x.

Gamificação: Mecânica, Estética, História e Tecnologia – Parte II

Num dos meus últimos posts falei da relevância da História na criação de um jogo, seja ele para gamificar um site, criar realmente um jogo ou uma aplicação para um smartphone, tablet ou pc. Hoje irei abordar a Mecânica do Jogo.

chess O que é a Mecânica do Jogo? A mecânica do Jogo são as regras, surpresas, caminhos possiveis, acções, objectivos de vitória, ganhar vidas, conquistar, etc que vemos num jogo. São as restricções e ao mesmo tempo o nosso playground, ou seja, o espaço onde decorre o jogo segundo um conjunto de “regras”. Um exemplo simples: Xadrez! As regras são claras: pode ser jogado por 2 jogadores, um com peças brancas outro com as pretas. Cada jogador tem um conjunto de peças que se movem sob determinadas regras (num tabuleiro de 64 casas brancas e petras), e os seus próprios movimentos por vezes estão constrangidos à posição de outras peças (um peça não se pode mover se isso matar o seu próprio rei), do adversário ou da própria Estética(casas brancas e pretas. Num posto futuro falarei sobre a Estética do Jogo) do tabuleiro. O objectivo é ou dar mate ao rei adversário ou empatar quando não é possivel a vitória.bookstore

Um outro exemplo fora do âmbito dos jogos puros poderá ser um web site. Uma estratégia para atrair utilizadores a um site gamificado (ou não) é recompensa-los quando estes recomendam alguém e essa pessoa volta ao site. Esta estratégia é por exemplo usada pela Dropbox, que oferece mais X GBytes de espaço quando alguém vem por convite e mais ainda se essa pessoa comprar mais espaço. Vamos supor que o site é sobre compras de livros digitais, também serve para outros produtos, e estou quase a chegar ao nível 2 do site, onde me é dado 5% de desconto permanente, mas para isso preciso de mais 100 pontos que consigo com 10 novos registos de utilizadores no web site que comentem livros pelo menos 1 vez. Além disto, sou reconhecido no site quando atinjo X recomendações sociais! Toda esta descrição faz parte da mecânica do jogo no site, “obriga-me” a trazer clientes, fazendo-me progredir no “Jogo” que por sua vez me traz recompensa pessoal. (Espantoso como a Gamificação faz as coisas andarem para a frente e ajuda o marketing de uma forma sensacional!).

Trazendo de volta o post anterior, qual seria a história para um web site de venda de livros gamificado? Poderia ser contada juntando a missão da empresa na venda dos livros, algo como servir o livro certo para as expectativas dos clientes, e ao mesmo tempo criar “aventuras” sobre determinados temas dos livros para os quais os utilizadores/clientes gostassem de comentar e dar as suas opiniões sobre os mesmos. Possivelmente, o número de comentários, o número de recomendações e o número de comentários bem avaliados seriam possivel fontes de pontos para promoções, descontos, badges, recompensas, etc. Os níveis seriam os descontos, que seriam também rewards ou recompensas, e um leaderboard de especialistas sobre temas no site! (Acho que já entrei demais na estratégia do marketing para um web site, mas foi para o bem da mecânica!).

Se a história é a descrição do mundo do jogo, a mecânica é sem dúvida a criação “física” desse mundo e como podemos “jogar” nele.

photo credit: szeke via photopin cc photo credit: EricGjerde via photopin cc

Gamificação: Mecânica, Estética, História e Tecnologia – Parte I

Como é sabido, a Gamificação acenta sobre os mesmos conceitos de um Jogo. Num post anterior falei sobre a experiência que o utilizador final deverá ou irá viver durante e no final do Jogo. A experiência é realmente o factor mais importante para o sucesso de um Jogo, mas não se cria experiência do nada, ou porque sim, ou sem um planeamento devido.Para se chegar à experiência é necessário acentar o desenvolvimento do Jogo sobre um conjunto de blocos que servirão de base para a criação da experiência. Pretendo falar sobre 4 factores que constituiem o desenvolvimento do Jogo: Mecânica, Estética, História e Tecnologia. Hoje falaremos da História.

Todo o jogo deverá ter uma história. Mesmo que o jogo seja algo simples como o Tetris ou puzzles, ou corridas de carros, ou gamificar um site de vendas, há uma histórica. Está histórica não tem que ser contada ao utilizador, pois por vezes é ele que a vai criar, outras vezes continuar, outras vezes descobrir, mas é necessário criar uma linha condutora, um âmbito ao Jogo, tal qual como se faz com um projecto qualquer. O utilizador tem de perceber o que está a fazer e o porquê e acima de tudo ter um contexto. Esse contexto é a história.

Eu lembro-me quando era novo e jogava nas “máquinas” (como se dizia na altura) que existiam em cafés ou salas de jogos (hoje em dia o PC ou Playstation ou Wii, etc, serve perfeitamente!) antes de cada jogo, mesmo o tetris, surgia um pequeno texto a explicar o porquê da existência do jogo, por vezes era salvar uma princesa e por isso tinha que aplicar golpes de karaté sobre os inimigos, outras vezes era libertar um prisioneiro que estava cativo e por isso tinha que resolver puzzles, salta plataformas, entregar encantamentos, etc. Até o jogo Space Invaders, um dos primeiros para os computadores tinha por detrás uma história de aliens que queriam invadir a Terra!

small_1721982928 O utilizador, quando está a jogar, deverá sentir que está a cumprir algo, a viver algo acerca de um acontecimento, ou a provocá-lo. Num post anterior referi a experiência na gamificação e dei como exemplo uma aplicação sobre recuperação de lesões na saúde, aqui está a ser desenvolvida ou a criar uma histórica de uma recuperação na vida de alguém, a histórica da vida do utilizador que está a “Jogar” o jogo (quantos filmes há sobre isto?)!

Quando o Jogo não é assim tão sério, tão pessoal, uma história trás algo misterioso, gera um conjunto de pensamentos na nossa imaginação para “tapar” os buracos que faltam no texto da história, algo como quando estamos a ler um livro.

Assim, o primeiro passo para a inclusão da gamificação num sistema, seja ele um site, uma aplicação para o PC, no local de trabalho, ou outro modelo onde possam ser aplicados conceitos de jogos, deve-se primeiro criar a história, ou descobri-la. Depois contá-la ou introduzi-la ao utilizador (diga-se jogador) e com a ajuda de outros factores (nas seguintes partes deste artigo) desenvolver o jogo!

A História irá ser também um componente muito importante para a criação do Tema do Jogo, mas isso deixo para futuro post.

photo credit: Dunechaser via photopin cc

A Experiência na Gamificação

Um dos factores mais importantes para o sucesso da Gamificação num determinado ambiente, é a experiência.

small_3803517719 Há 2 tipos de experiência, a do Jogo que se está a implementar e a experiência pessoal que se adquire ao jogar o Jogo! A experiência que é o Jogo, é apenas o Jogo e as suas mecânicas, regras, elementos, design, facilidade de utilização e compreensão. Agora a experiência de jogar o Jogo é o que sentimos, antes, durante e depois de uma sessão(ões) no jogo! Para mim, esta última é a mais importante. (Embora não exista sem a primeira, a base!) Vamos ver um exemplo prático. Se for implementado um sistema gamificado que ajuda a ultrapassar problemas de saude, como lesões, doenças prolongadas, etc, (felizmente já há sistemas destes), qual é a experiência mais importante? O jogo e as suas regras, elementos, design, mecânica, ou o que a pessoa sente durante o decurso do Jogo? Eu acredito que será a alegria quando atinge um objectivo como conseguir dar 10 passos, se estava numa fisioterapia para andar após uma lesão grave! Creio que quando a pessoa consegue esse objectivo, motivado, acompanhado e orientado pelo Jogo (provavelmente com uma componente social de pessoas em situações idênticas ou que já estiveram nessas situações), a sua experiência vai ser fenomenal e vai com certeza recomendar o “Jogo” a outras pessoas em situações semelhantes! Não porque o Jogo era desafiante, bem desenhado, equilibrado, fácil de usar, com componente social,  mas sim porque a sua experiência com o Jogo a fez sentir-se muito bem em diversos níveis  e de encontro às suas expectativas, e acima de tudo, o Jogo ajudou-a numa situação real, da vida real, e isto não é mais que o objectivo da Gamificação!

photo credit: thephotographymuse via photopin cc

Bad Behavior has blocked 93 access attempts in the last 7 days.

Hyper Smash