Color Orbs no Windows Phone Marketplace

Após a nossa presença no Windows Phone App Code Camp no final de 2011, o jogo que fizemos não ficou esquecido. O David Jardim passou as férias de Natal a retocar a aplicação e ficou bastante melhor do que aquilo que tínhamos feito anteriormente. O resultado foi o primeiro lugar na competição final do Code Camp, que valeu um par de Nokias Lumia 800, para além dos LG Quantum que já havíamos ganho! Decidimos também colocar o jogo que produzimos à venda no Windows Phone Marketplace, tendo ficado disponível no final do mês de Janeiro. Em baixo ficam algumas informações, imagens e links para comprar o jogo (0.99€). Está também disponível uma versão trial totalmente gratuita. Se quiserem seguir o lançamento de jogos do David (quem sabe eu não esteja envolvido nalguns deles), podem seguir a White Rooster Games. Daqui a alguns meses faço um balanço da experiência de vender para o WP7!

Testa a tua memória e capacidade de reação, memorizando uma sequência de esferas coloridas! Toca nas esferas para enviá-las para o vórtice enquanto tentas recriar a sequência que surgiu no início do nível.

Color Orbs Home Screen

Comprar o Color Orbs no Marketplace

MemorizeGame2Game2LevelCompleted


read more

Lego Neo vs Smith (projecto de Animação por Computador)

Uma das cadeiras deste semestre consistia em criar uma pequena animação 3D. Optámos por recriar uma das famosas cenas do Matrix em que o Neo se desvia das balas do Agent Smith, mas com um pequeno twist. O projecto foi desenvolvido no Blender 2.5 e 2.6 e deu-nos conhecimentos em diversas componentes da animação em 3D. Desde modelação, passando por efeitos de partículas e simulação de tecidos, até à animação propriamente dita, ultrapassámos vários desafios para conseguirmos ter uma animação com cerca de 1 minuto. Pode parecer pouco, mas é um processo extremamente trabalhoso. Ganhei um novo respeito pela malta da Pixar e da Dreamworks! Aqui fica o vídeo (aconselho a visualização em 720p):

read more

Windows Phone App Code Camp 2011

Windows Phone App Code Camp

Para grande surpresa minha, recebi no final de Novembro um convite da Microsoft para um evento que ia decorrer no Palmela Village Golf Resort, o Windows Phone App Code Camp. A premissa era um fim-de-semana em condições de luxo para desenvolvermos uma aplicação para Windows Phone 7 e, como não sou de recusar desafios, decidi candidatar-me. Para além de nunca ter desenvolvido aplicações para Windows Phone 7 ou em Silverlight, a minha experiência com C# era muito limitada, mas era a situação ideal para aprender a trabalhar com estas tecnologias.

Candidatei-me ao Code Camp com o Carlos Lima e o David Jardim. Os nossos projectos eram uma app para gestão de despesas/finanças pessoais (Carlos) e um jogo para testar a memória e o tempo de reacção do jogador (eu e o David). Felizmente, fomos todos aceites para o evento, juntamente com mais 57 participantes num total de 32 projectos.

Windows Phone Code Camp no Palmela Village Golf Resort

No dia 16 de Dezembro, dirigimo-nos para o Resort prontos para criar uma aplicação mobile com tecnologias Microsoft. Fomos recebidos por uma pequena equipa developers, que nos deram algumas informações de como iria decorrer o evento. Para além de algumas sessões técnicas, iriam estar experts on-site para nos darem todo o apoio que precisássemos. Estava também planeada uma entrega de prémios no final para as 5 melhores apps.

As condições que tínhamos eram fantásticas: existia uma sala comum para desenvolvimento, denominada “App Factory”, com mesas para todas as equipas, uma divisão onde estavam os experts que podíamos abordar a qualquer altura, e até uma “cloud” de snacks redundantes que eram repostos automaticamente! A única falha foi a ligação à internet, que era bastante fraca, mas tenho noção que os organizadores fizeram tudo o que podiam para melhorar este aspecto.

Relativamente aos alojamentos, havia um apartamento T1 para cada equipa com belíssimas condições. O cenário envolvente era relaxante, visto que estávamos em pleno Golf Resort do Palmela Village. Estarmos rodeados pela Natureza nas pequenas caminhadas que fazíamos entre a área de refeições e a App Factory eram uma boa maneira de limpar a cabeça dos bugs e dos algoritmos, de forma a voltarmos à carga mais tarde com mais energia. Por falar em refeições, estas foram das melhores que já tive o prazer de degustar. Desconfio que era o  Chef Gordon Ramsay na cozinha!

A primeira sessão foi uma introdução ao desenvolvimento de WP7 com Silverlight, pelo Nuno Silva. Foi uma excelente maneira de saber o que nos esperava, principalmente para quem não conhecia nada, como eu. Desde a criação de layouts por XAML, até à manipulação dos mesmos com C#, ficámos com todas as bases necessárias de Silverlight para começarmos a trabalhar. Acabei por não assistir a mais nenhuma sessão visto que não estavam directamente relacionadas com o que precisávamos para desenvolver o jogo, para além de haver uma grande limitação de tempo.

Coding at Windows Phone Code CampÀ medida que as horas iam passando e estávamos mais perto da deadline para o final do evento, começámos a perceber que seria muito difícil concluirmos o jogo. Ainda faltavam algumas funcionalidades básicas para que ficasse jogável, mas continuámos a insistir. Os vencedores iriam ser escolhidos por votos dos restantes concorrentes no Facebook entre as 15h e 17h. Apenas conseguimos submeter o jogo para votação às 16h30, e tivemos que pensar rapidamente numa maneira de o divulgar. Carregámos o jogo para um dos dispositivos WP7 que tínhamos à nossa disposição e começámos a mostrar o jogo a quem nos aparecia à frente. O feedback que obtivemos foi muito positivo, e acabámos por ficar em 2º lugar na competição, o que nos valeu um par de telemóveis LG Quantum! Um dos pontos fortes do nosso jogo era o aspecto gráfico, que tinha sido desenhado pela Ana Jesus. Um grande obrigado a ela, porque o look and feel da aplicação fez toda a diferença. Aqui fica um pequeno vídeo do jogo:

Um grande obrigado também à organização, que esteve muitíssimo bem neste evento: Nuno Silva, Pedro Lamas, Miguel Vicente e André Malico. Só conseguimos terminar a nossa aplicação devido à vossa incansável ajuda durante os 3 dias! Espero que continuem com estas iniciativas, pois mostra um lado da Microsoft que não estamos habituados a ver no nosso dia-a-dia e dá-nos a oportunidade de experimentar tecnologias muito interessantes. Fiquei muito bem impressionado pelo Silverlight e pela experiência de desenvolvimento para o WP7 em geral.

Até um próximo evento!

UPDATE: Ficámos em primeiro lugar na competição final, que englobava apps desenvolvidas dentro e fora do WP App Code Camp! O prémio foi um Nokia Lumia 800.

Grupo no WP Code Camp

read more

Passatempo API Sapo Mapas

Logotipo Weekend Planner

No início do ano soube da existência de um passatempo promovido pela equipa do Sapo Mapas vocacionado para estudantes universitários que consistia em criar um site que utilizasse a API deles. Normalmente costumo ter bastantes dificuldades em encontrar uma ideia interessante para este tipo de concursos (confesso que a criatividade não é o meu forte), mas desta vez a coisa encarrilou. A ideia partiu de um problema com o qual já me deparei algumas vezes: dou por mim com um fim-de-semana para passear com a namorada, mas é sempre uma carga de trabalhos escolhermos o destino e os locais a visitar.

Comecei a pensar em como é que isto poderia ser resolvido por uma aplicação ou um site e cheguei a um conjunto de funcionalidades básicas que seriam interessantes. Primeiro, seria necessário escolher uma zona do país que gostássemos de visitar, e depois era importante saber o que é podemos visitar nessa região. Expliquei a ideia à equipa e começámos a iterar sobre ela. Acabámos por adicionar mais funcionalidades, como a possibilidade de criação de um roteiro que calculasse a melhor rota entre os vários pontos de interesse a visitar. Assim surgiu o Weekend Planner.

 

Esboço inicial do Weekend PlannerEsboço inicial do Weekend Planner

Esboços iniciais do Weekend Planner

 

Fechámos o planeamento com 3 etapas importantes para a interface do utilizador: 1) Escolher a zona de Portugal, 2) Escolher os pontos de interesse (Restaurantes, Hotéis, Cultura e Turismo), e 3) Ordenar os pontos de interesse e criar o roteiro. Também identificámos alguns pontos chave nos quais queríamos apostar: para além de um design limpo, simples e baseado no look and feel dos restantes serviços Sapo, era importante ter um interface dinâmico. O objectivo era não existirem refreshes nas páginas, por isso escolhemos basear tudo em Javascript em vez de optar por PHP, por exemplo. Isto revelou-se um desafio bastante grande porque nenhum de nós tinha experiência em Javascript.

Usámos o planeamento Weekend Planner na cadeira de Gestão de Projectos do Mestrado e fomos avançando na implementação no pouco tempo livre que nos sobrava e chegámos à data da deadline com um conjunto interessante de funcionalidades implementadas. Apesar disto, ficaram algumas coisas por fazer, que, na minha opinião, trariam bastante valor ao projecto. Seria importante poder adicionar o mesmo ponto de interesse ao roteiro mais do que uma vez, porque no caso de um hotel ou restaurante, será um ponto pelo qual passaremos várias vezes ao longo de um fim-de-semana. Também era muito importante ter um mecanismo de interacção com redes sociais para partilhar roteiros e até criar um ranking para os melhores roteiros em determinados pontos do país, para além de existir uma forma de exportar facilmente o roteiro para ser possível imprimir. Um ponto com o qual fiquei bastante satisfeitos foi o mapa em SVG/Raphaël.js que está na página inicial do projecto. Começámos com uma versão em Flash, mas rapidamente mudámos para esta solução, que é muito melhor.

 

Weekend Planner

 

Submetemos o site para aprovação do júri do passatempo com convicção que tínhamos feito um bom trabalho. Foi necessário aguardar até Novembro para sabermos os resultados: o nosso projecto ficou em 1º lugar, com direito a um portátil Sony Vaio e um estágio remunerado no Sapo para cada um dos elementos. Fiquei mesmo muito orgulhoso, tanto da nossa ideia como da nossa implementação. A implementação ainda tem algumas arestas que precisam de ser limadas, para não falar no esventramento completo da biblioteca de Javascript usada na página do Sapo Mapas (temos desculpa, estávamos a aprender :) ), mas acho o projecto bastante interessante e com potencial para estimular o turismo dentro de Portugal.

Se quiserem dar uma vista de olhos na implementação, está disponível no seguinte link: http://maps.miguelduarte.org

Para além de agradecer à equipa (Carlos Lima e Patrícia Mateus) pelo empenho, queria agradecer ao Sapo pela oportunidade e ao nosso “consultor” de Javascript e UX, o Luís Nabais :)

read more

Codebits V (2011)

Codebits V Header

Mais um ano, mais um Codebits. Na minha estreia do ano passado fiquei viciado neste evento organizado a pensar na comunidade tecnológica (vulgos geeks). Aqui juntam-se centenas de participantes para 3 dias de programação, concursos, talks e convívio. As minhas expectativas estavam bastante altas, mas alegro-me em dizer que foram superadas.

Ao chegar ao Pavilhão Atlântico, fomos brindados com um welcome pack cheio de goodies. Fiquei surpreendido ao encontrar, entre eles, uma Yubikey! Para além disso, haviam alguns componentes de arduino, uma mala muito discreta e prática, um voucher para um e-book da O’Reilly, um sigg, uma t-shirt, and on, and on, and on… Após descermos as escadas começamos a ver a luminescência verde, a cortina de fumo com o logo do Sapo, os palcos, os puffs, as mesas… Ao entrar no Codebits, entramos noutro mundo.

O dia começou com as habituais keynotes. O Celso Martinho e o Zeinal Bava deram-nos as boas vindas com discursos particularmente interessantes. Ver o CEO da PT a dirigir-se de maneira impecável para aquele público alvo tão específico, falando sobre a sua carreira e sobre as escolhas que tomou ao longo da mesma, foi algo que não estava à espera. Esperava ouvir propaganda empresarial, mas saí de lá com uma lição de vida. CEOs out there, take notes! É assim que se cativa quem está a ouvir.

Após o almoço começámos a dar os primeiros toques no projecto. Depois de ter usado uma guitarra do Guitar Hero para tocar músicas reais na edição passada, este ano mantivémos o tema musical. A ideia era utilizar o Kinect da Microsoft para criar uma bateria virtual, sem nunca termos programado a sério em C#, XNA ou com o Kinect. Tinhamos cerca de 48h para aprender tudo e ter um produto acabado. Ficámos na mesma mesa que pessoal porreiro de Mafra, que também tinham um projecto relacionado com o Kinect e nos deram alguma ajuda preciosa.

Cortina de fumo Codebits VA night of coding

Entre os primeiros stresses com o Visual Studio e algumas falhas de energia na nossa mesa, eu e o Carlos Lima decidimos ajudar o Luís Nabais na sua quest de sair do Codebits com um puff. Para isso, desenhámos um QR-code à mão em ponto grande no white board da nossa mesa. Foi engraçado ver muita gente a aproximar-se com o telemóvel para descodificar o QR-code e ir parar à página do Luís, onde ele fazia um choradinho por um puff. Até o Celso Martinho passou por lá para ver do que se tratava! Também achámos piada que a zona da PT Inovação também apareceu com uns QR-codes desenhados à mão, posteriormente.

Mais uma vez assisti ao Presentation Karaoke, onde um grupo de participantes tem que pegar em apresentações completamente disparatadas e inesperadas e apresentá-las como se as tivessem feito. Desde zombies, gatinhos e assassinos em série, viu-se de tudo. Deu para mandar umas belas gargalhadas em algumas das apresentações.

Depois de uma noite bem dormida em casa, voltámos ao ataque no nosso projecto. Estava tão focado em avançar que não fui ver nenhuma talk. Na próxima edição do Codebits não volto a cometer este erro. Apesar de todas serem gravadas e estarem disponíveis online, estar lá ao vivo é bastante melhor.

Pela segunda vez participei no “The Amazing Quiz Show”. É o “Quem Quer Ser Milionário” para informáticos, com perguntas do género “qual é o código hexadecimal da cor fuschia” ou “qual é o significado do código HTTP 305″. Estávamos na liderança até à última pergunta da nossa eliminatória, quando fomos ultrapassados numa pergunta sobre o jogo Second Life (#fail). Tivemos também a oportunidade de ver o episódio piloto da série “Capitão Falcão”, que é a coisa mais awesome que eu alguma vez vi na minha vida. Em principio irá estrear em televisão em breve.

Capitão FalcãoUm cocktail cientifico

A segunda noite já foi passada no recinto, tendo ficado com a equipa a programar até as 5h. Nessa altura já estávamos de rastos e fomos descansar 2 ou 3 horas para aguentar o último dia. Utilizámos a manhã para finalizar os preparativos e a aplicação ficou pronta quando faltavam apenas 2 horas para o início da sessão de apresentação. Devido ao alto risco de apresentarmos uma demonstração ao vivo, gravámos um vídeo que acabou por ser útil: a aplicação “explodiu” quando estávamos em cima do palco… O resultado final teve muito menos impacto do que o que pretendíamos, e o nosso projecto acabou por passar bastante despercebido. Mesmo que tivéssemos conseguido fazer a demonstração, não sei se teríamos hipótese de estar entre os finalistas. Haviam muitos projectos interessantes e cujas apresentações arrebataram o público.

Apesar de não termos pontuado, saí satisfeito do evento. Aprendemos tecnologias novas e convivemos com pessoal fixe num ambiente totalmente geek. O Codebits é um local onde se junta muito talento, e de forma a estarmos entre os melhores é necessário uma ideia, uma execução, e uma apresentação brilhantes. Agora temos um ano para pensar numa ideia para voltar à corrida aos prémios.

Queria agradecer ao Carlos Lima, à Teresa Futscher e ao Luís Teófilo por se terem dedicado ao projecto. Graças a vocês ficámos com uma aplicação terminada em 48h e aprendemos a lidar com tecnologias muito porreiras. Também queria agradecer ao Professor Miguel Dias e à ADETTI-IUL por nos terem cedido um Kinect. Sem ele não teríamos podido executar a nossa visão.

Até Novembro de 2012, Codebits!

read more

Encontro Português de Inteligência Artificial (EPIA) 2011

EPIA 2011

O EPIA existe desde 1985, ocorre de 2 em 2 anos, e tem como objectivo divulgar trabalhos na área de Inteligência Artificial em Portugal. A conferência, que teve lugar na Faculdade de Ciências de Lisboa (FCUL), durou 4 dias e contou com apresentações bastante interessantes. Houve uma grande afluência de investigadores nacionais, mas fiquei surpreendido com a grande quantidade de estrangeiros que compareceram para expor o seu trabalho.

Este evento teve uma grande diversidade de áreas, entre as quais Artificial Life and Evolutionary Algorithms (na qual eu apresentei um paper), Artificial Intelligence Methodologies for Games, Intelligent Robotics, e Social Simulation and Modeling. Assisti a várias sessões de robótica e deu para ter uma ideia que existem muitas equipas a focar a sua investigação na Robocup. Esta é uma temática muito interessante e gostava de, um dia, participar numa equipa que fosse disputar o campeonato mundial.

A área da robótica evolucionária, onde actualmente me insiro, foi a que mais me interessou. Um dos aspectos positivos deste tipo de conferências é a possibilidade de nos colocarmos actualizados quanto às práticas actuais das várias áreas e absorver algumas ideias, de forma a adaptarmos o nosso próprio trabalho. Destaque para o Cristiano Castelfranchi, com uma talk fascinante sobre a temática da “Confiança”, onde explicou a sua teoria de como o nosso cérebro funciona quando avaliamos a nossa confiança numa determinada pessoa ou entidade, e como agimos dependendo dessa avaliação.

Foi a primeira conferência na qual fui orador e gostei bastante da experiência. O trabalho apresentado, desenvolvido com o Professor Anders Christensen e o Professor Sancho Oliveira, foca-se na evolução de controladores (redes neuronais) para robots, de forma a emularem comportamentos que são normalmente observados em insectos. Alguns exemplos são a sincronização (ex: pirilampos com emissões luminosas síncronas), atribuição de tarefas (ex: abelhas que procuram pólen enquanto outras ficam a cuidar da colmeia) e comunicação (ex: abelhas que indicam a localização de pólen com uma dança, ou formigas com feromonas). A motivação para este trabalho relaciona-se com a descoberta de condições que levem ao aparecimento deste tipo de comportamento, bem como a possibilidade de desvendar a evolução deste tipo de comportamento complexo na natureza.

Houve bastante discussão sobre o trabalho, o que é positivo pois mostra interesse por parte de quem ouve. Existem sempre pessoas que não concordam com algumas decisões que são tomadas, mas é normal. É difícil agradar a todos. Não sei se estive à altura de todas as perguntas, mas temos que começar por algum lado. Agora aguardo pela experiência de ir a uma conferência internacional. É melhor começar a adiantar a tese para ver se surge algo de interessante!

read more