Aug
03

Gerir projectos no Eclipse, Flash Builder, Zend, Aptana, etc

A versão 1.5 do Airgile – uma plataforma online de gestão de equipas e projectos -, lançada esta semana, suporta agora a interligação com IDEs baseados em Eclipse, como o Flash Builder, Zend ou Aptana, entre outros. Este conector permite que gestores de projecto e equipas de desenvolvimento possam colaborar de uma forma mais eficaz.

O gestor de projecto irá usufruir do conforto do Airgile para gerir e acompanhar a evolução dos projectos, delegando tarefas aos consultores e programadores. Estes receberão as tarefas directamente no Eclipse, a sua ferramenta de trabalho de eleição. À medida que completam as tarefas, os consultores podem fechá-las directamente no Eclipse, que irá sincronizar com o Airgile (automaticamente), actualizando os indicadores e notificando o gestor de projecto.

Este é o workflow de gestão que usamos na Webfuel, ligando o Eclipse antigamente ao Trac e actualmente com o Airgile – que é mais rápido e confortável. É relativamente fácil configurar a ligação, estando as instruções disponíveis aqui.

No vídeo abaixo, a partir dos 5:45 é possível ver o conector em acção.








Esta versão do Airgile, entre dezenas de novidades, possui agora um novo interface gráfico, ainda mais leve e intuitivo.
Desde a versão 1 foram adicionadas muitas novas funcionalidades ao Airgile, como a filtragem avançada, registo de actividade, ferramentas de planificação, criação/edição rápida de tarefas, e faseamento de projectos, entre outras. As próximas versões contarão com planeamento de Sprints e um Burndown-chart para projectos baseados em SCRUM.


Tarefas partilhadas entre o Airgile e o Eclipse






Apr
11

Airgile – Gestão de projectos em Português

O Airgile é uma Rich Internet Application de gestão de equipas, projectos e tarefas implementada pela Webfuel caracterizada pelo seu interface absolutamente delicioso e pela sua simplicidade e velocidade de resposta, sendo possívelmente a mais rápida aplicação do género no mercado.

O Airgile sincroniza automaticamente as alterações às tarefas entre todos os elementos da equipa automaticamente, o que permite que as equipas trabalhem a todo o gás e que os gestores de projecto acompanhem as evoluções ao projecto em tempo real através de um dashboard intuitivo. Pesquisas e filtragens a milhares de tarefas demoram menos de meio segundo, tal como adicionar ou editar tarefas – através do Quick-Add e Quick-edit.

Feito a pensar em equipas espalhadas em redor do mundo, suporta multi-linguagem (por agora em Português e Inglês) e lida automaticamente com o fuso horário. Isto é,  uma tarefa introduzida a uma determinada hora em Portugal, aparece com a hora correcta para os elementos da equipa localizados no Brasil sem qualquer configuração necessária.

Além da informação detalhada que é possível colocar numa tarefa – como o tipo, estado, importância, data de início, fim, orçamento, entre outras -, é ainda possível anexar múltiplos ficheiros de uma só vez sem que tenha que esperar que o envio termine para continuar a trabalhar. Isto é, a aplicação não bloqueia em tarefas assíncronas, tudo com o objectivo de aumentar a produtividade! O sistema de preview inline permite visualizar imagens e ficheiros de texto dentro da aplicação, sem ter que os descarregar para o seu computador.

O sistema de comentários associado a cada tarefa reforça a comunicação entre os elementos da equipa – ou mesmo com o cliente -, incentivando a troca de ideias ou pedidos de esclarecimento.

O Airgile encarrega-se de enviar automaticamente emails a todos os utilizadores ligados a um projecto sempre que há alterações  (nova tarefa, tarefa editada, novo comentário, etc), podendo o gestor de conta activar a opção de subscrição por tarefa, permitindo que cada pessoa opte individualmente por receber mails só nas alterações das tarefas que escolher.

O sistema de permissões permite ligar utilizadores a projectos, sendo definido projecto a projecto se determinado utilizador pode somente consultar, inserir tarefas, e deixar comentários; se pode aceder às tarefas confidenciais; ou ainda se terá permissões de gestor de projectos que lhe permitem manipular todas as tarefas.

Como cada projecto e negócio é diferente, o Airgile permite-lhe configurar projecto a projecto os tipos, estados e níveis de importância das tarefas. Isto é, é fácil adaptar os projectos a áreas completamente distintas, como a consultoria em IT, ou a advocacia.

Os pormenores de usabilidade do Airgile são deliciosos, com vista não só a aumentar largamente a produtividade da equipa e assegurar o cumprimento de prazos, como também a permitir a utilização por diferentes pessoas com níveis de conhecimentos informáticos completamente díspares: a sua simplicidade tornam o Airgile na ferramenta de gestão de projectos ideal tanto para utilizadores experientes, como para utilizadores inexperientes.

Estando alojado numa Cloud, a plataforma está acessível a partir de qualquer computador em qualquer local do mundo com ligação à Internet, sendo compatível com todos os sistemas operativos e web-browsers usando o Flash Player 10.2. Não existem incompatibilidades entre web-browsers e sistemas operativos, sendo o desempenho e robustez da aplicação sempre ao mais alto nível.

O Airgile está disponível no modelo Software-as-a-service, isto é, mediante o pagamento de uma mensalidade muito baixa (a começar nos 6€/mês!), mas possui também uma conta gratuíta limitada a um projecto. Ao longo do tempo, o Airgile continuará a crescer com novas funcionalidades sempre com vista a aumentar a produtividade dos utilizadores.

O site do Airgile está disponível em http://airgile.com e possui não só vários vídeos de demonstração, como lhe permite testar uma conta de demonstração com dados fictícios antes de poder criar a sua conta.

A aplicação foi desenvolvida pela Webfuel, sendo completamente nacional. Assenta na Cloud, e corre em qualquer browser, tendo sido implementada em Flex usando o Adobe Flash Builder 4.5.  Planeamos lançar uma versão instalável com suporte a OCC (trabalhar offline) e uma versão para Android e iOS através de Air 2.6.

Experimentem o Airgile, forneçam-nos feedback usando o fórum e ajudem-nos a divulgar este produto de origem nacional! :)





Jan
04

Porquê aprender Maven?

Prólogo

Comecei recentemente a dar os primeiros passos na aprendizagem de Maven, e apesar de ainda ser um novato achei por bem partilhar as razões pelas quais esta tecnologia é tão interessante.

Apesar de utilizarmos Maven há já algum tempo nos nossos projectos na Webfuel e de conhecer os seus benefícios, nunca tinha investido tempo na sua aprendizagem visto que a configuração dos projectos com Maven estava a cargo de uma empresa nossa parceira (Web-Responsive). Sou, portanto, tenrinho no assunto, mas sinto-me compelido a partilhar as razões pelas quais vale a pena aprender Maven.

Este post não é um tutorial a explicar como se usa, mas sim uma descrição de alguns dos problemas (use cases) que o Maven resolve em projectos complexos. De notar ainda que o Maven não é específico ao desenvolvimento de RIAs, mas sim aplicável ao desenvolvimento em qualquer tecnologia que tenha um plugin para Maven. Para Flex existe o flex-mojos que cobre grande parte dos tópicos referidos neste post, mas não todos (ainda). Diria que no mundo J2EE, aí sim, o Maven se porta brilhantemente – por exemplo, na configuração de um JAVA + Spring + Hibernate + BlazeDS + Springflex + montes.de.outras.libs.

O que é o Maven?

O Maven é uma ferramenta poderosa para gestão de projectos, gestão de dependências, gestão de versões, automatização do processo de build (compilação, unit tests, reporting, etc), configuração de ambientes de desenvolvimento, entre outras. É uma ferramenta com cerca de 3 megas que se utiliza através da linha de comandos (ou através de alguns plugins para Eclipse, como o m2eclipse), para executar diversas tarefas sobre um (ou vários) projecto(s), regra geral associadas à sua compilação, mas sobretudo manutenção. Bem, o ideal é mesmo ver os exemplos mais abaixo…

(Mais prólogo) Esqueçamos o modelo de projectos gigantes…

É importante compreender que existe uma maneira “à-la-Maven” para a estruturação de um projecto. Um “projecto físico” deve ser separado em vários sub-projectos/componentes/bibliotecas (artefactos), com dependências entre eles. A noção de um projecto, com Maven, pode resultar em 10 ou mesmo 100 “projectos Eclipse”.  Por outras palavras, o projecto “my-huge-crm-application” quando criado “à-la-Maven” deve ser dividido em “my-crm-users”, “my-crm-reports”, “my-crm-costumers”, “my-crm-commons”, “my-crm-config”, “my-company-lib”, “my-3rdparty-lib”, etc – podendo-se atingir com facilidade 10 ou 20 projectos diferentes, com dependências uns dos outros (isto é, o my-crm-commons.jar é usado pelo my-crm-costumers, etc).

À primeira vista, pode parecer mais confuso, mas na realidade resulta numa maior simplicidade – graças à elegância do Maven, como veremos adiante.

O Maven lida com uma simplicidade extrema com as dependências entre projectos e com o processo de build – por exemplo, ao compilar um projecto que depende de outro, o Maven irá descarregar o outro projecto de um repositório onde possa estar instalado, ou se não o encontrar, mas tiver “acesso” ao código fonte, compilar o outro projecto -, e graças a esta arquitectura de gestão de dependências, torna-se relativamente fácil acoplar, desacoplar e substituir projectos/módulos/dependências num projecto.

(Ainda mais prólogo) Algumas notas prévias

  1. Para começar a usar o Maven, a única coisa necessária são os binários (executáveis) do Maven (http://maven.apache.org/download.html, cerca de 3 MB). O resto das dependências necessárias ao Maven serão descarregadas automaticamente da primeira vez que um comando Maven (mvn) for executado.
  2. O Maven baseia-se na existência de um ficheiro de “configuração” chamado de “pom.xml”. Este ficheiro é um XML simples que o Maven irá analisar para executar os seus “objectivos” (“goals”). Existe um pom.xml para cada projecto / módulo / biblioteca, sendo que estes (os projectos.. ou módulos.. ou bibliotecas..) são chamados de “artefactos” no mundo Maven.
  3. Quando se usa Maven, deve-se  evitar ao máximo usar o Eclipse para fazer o “setup” do ambiente de desenvolvimento. Sempre que possível, o Maven deverá ser responsável pelo setup do ambiente de dev. Os menus “Project > Properties”, e “Create New Project” no Eclipse são ferramentas que devemos evitar, pois o Maven consegue (pelo menos em projectos JAVA) criar e (principalmente) actualizar os ficheiros de configuração do Eclipse automaticamente de acordo com as configurações do projecto (veremos isto adiante).

Caso 1: Configurar um projecto do zero é demorado e aborrecido

O Maven resolve essa tarefa em dois segundos com um único comando, recorrendo a algo conhecido por “archetypes”. Como? Escrevendo:

mvn archetype:generate

O Maven irá fazer algumas perguntas (tipo de projecto, package, etc) e irá então criar uma estrutura de directorias base com alguns ficheiros necessários (ou dummy) tipicamente necessários nesse tipo de projectos, utilizando uma estrutura de pacotes pré-definida, e criará um ficheiro pom.xml de base. A estrutura de directorias usada pelo Maven obedece a uma *convenção*, normalmente muito bem definida, que torna permite que developers que estejam a analisar um projecto  pela primeira vez entendam rapidamente a sua estrutura, e onde encontrar todos os recursos. Além disso, a convenção usada pelo Maven reduz em *muito* a complexidade dos arquivos pom.xml do Maven (especialmente quando comparando ao Ant), pois não é necessário adicionar configurações extra ao pom.xml – O Maven irá “automaticamente” encontrar os recursos necessários nos locais correctos, se as convenções forem seguidas – mas, claro, os developers podem fazer override às convenções, embora não seja recomendável.

Outro dos desconfortos na criação de um projecto a partir do zero, é a configuração do projecto no Eclipse. Descarregar as dependências, adicioná-las à classpath no Eclipse, etc…, e depois fazer isto novamente em cada um dos postos de trabalho de uma equipa. Porém, graças ao maven-eclipse-plugin, basta um comando para gerar estas configurações. Fazendo:

maven eclipse:clean eclipse:eclipse

serão criados automaticamente os ficheiros de configuração do Eclipse (.project, e restantes), de acordo com as dependências e tipo de projecto definidos no pom.xml. A partir daí, basta que em cada posto de trabalho se faça um “Import Eclipse Project” no Eclipse, onde regra geral fica tudo maravilhosamente configurado. Graças ao pom.xml o Maven saberá o suficiente para criar correctamente os ficheiros de configuração do Eclipse. Claro que existem centenas de diferentes tipos de projectos no eclipse com configurações diferentes, e o maven-eclipse-plugin não conhece todas. Mas para JAVA, tem-se portado suficientemente bem para 90% dos meus casos. Os outros 10% são resolvidos facilmente adicionando algumas configurações adicionais no pom.xml.

Em resumo, a utilização de archetypes permite criar a estrutura e configuração de projectos a partir do zero, e o maven-eclipse-plugin permite criar e *actualizar* os ficheiros de configuração do Eclipse, sem ser necessário configurar projecto a projecto cada um dos projectos em cada um dos postos de trabalho à mão (isto, para JAVA, regra geral).

Caso 2: O meu projecto tem 20 dependências, e cada dependência também tem 10 outras dependências… Além de ser confuso, perco imenso tempo à procura das bibliotecas, a descarregá-las e configurá-las

Com o maven, é bastante simples. No pom.xml basta adicionar o seguinte XML para especificar que o projecto tem uma dependência do spring-flex, por exemplo:

         <dependency>
             <groupId> org.springframework.flex </groupId>
             <artifactId> spring-flex-core </artifactId>
             <version> 1.5.0.BUILD-SNAPSHOT </version>
         </dependency>

E aí basta correr:

mvn install

O Maven irá automaticamente encontrar a dependência (chamada de “artifact”) – pesquisando num conjunto de repositórios de dependências -, fazendo o download da mesma e “instalando-a” no seu repositório local. Irá fazer o mesmo para todas as dependências de cada dependência recursivamente, pelo que não temos que perder tempo com isso. E a partir daí, sempre que compilar com Maven, este irá adicionar cada uma das dependências ao classpath do compilador automaticamente.

A integração com o Eclipse também é incrível – ao executar:

mvn eclipse:clean eclipse:eclipse

o maven irá actualizar (na verdade, irá recriar) os ficheiros de configuração do Eclipse e adicionar as dependências correctamente ao classpath do projecto. Por outras palavras, algo que regra geral pode ser um autêntico pesadelo (definir as dezenas de dependências de um projecto, descarregá-las da internet, configurá-las, e por sua vez fazer o mesmo para as dependências de cada dependência…), é resolvido elegantemente em poucos segundos!

Esta simplicidade na gestão das dependências não só facilita a configuração das bibliotecas externas necessárias aos nossos projectos, como fomenta a separação dos nossos projectos em dezenas de módulos e bibliotecas, visto que com Maven se torna relativamente simples organizar todas as relações entre projectos.

Caso 3: Build através da linha de comandos

Com Maven, iremos utilizá-lo inevitavelmente para compilar.  A compilação é feita através de plagins, que invocam os compiladores com as directrizes de compilação apropriadas, de acordo com o pom.xml. Isto é, não definimos os argumentos dos compiladores; definimos sim a configuração do projecto, e o maven trata de definir os argumentos, regra geral automaticamente! Além da compilação, o Maven irá utilizar o resultado desta para executar tarefas adicionais, como a execução de unit-testing, geração de relatórios, envio de emails quando ocorrem erros de compilação, etc.

Algo extremamente elegante no Maven, é a forma como ele compila vários projectos em “simultâneo”, recursivamente de acordo com a ordem das dependências. Algo que iremos ver posteriormente

Caso 4: É difícil gerir diferentes versões dos meus projectos/bibliotecas e das suas dependências

Artefactos (módulos, bibliotecas, etc) possuem sempre um número de versão que lhes é inerente. Isto é, a biblioteca log4j poderá existir na versão 1.1, 1.2, etc. Isto significa que se o nosso projecto precisar do log4j 1.3, basta abrir o pom.xml, localizar a zona onde a dependência é definida (ver o caso 2), e mudar a versão para 1.3. O Maven irá descarregar automaticamente a versão 1.3 e actualizar as definições do projecto. Posteriormente, ao correr mvn eclipse:clean eclipse:eclipse, o Maven vai ainda reconfigurar o Eclipse com a nova versão da dependência. Agora imagine-se que por alguma razão é preciso voltar à versão 1.1 do log4j. Simples. Basta mudar no pom.xml a versão da dependência para 1.1, e o Maven trata do resto.

Mas o que acontece com suas próprias bibliotecas (aliás artefactos) – como são geridas as versões? Sempre que é executado o “mvn install”, o maven faz o build ao projecto, vai criar o package correspondente (i.e. Jar, War) e vai usar o número da versão definido no pom.xml para instalar o artefacto compilado no repositório local (ou online). Um repositório não é mais que um género de “base de dados” de bibliotecas gerida automaticamente pelo Maven.

Imagine-se que estamos a implementar o projecto A v1.0, que depende do projecto B v0.5. Temos ainda o projecto C v0.2 que também depende do Projecto B v0.5. Quando se faz o build install do projecto A v1.0, como este depende de B v0.5, o Maven vai primeiro fazer build, (package), e instalar o projecto B v0.5 e só depois o mesmo ao projecto A. Por sua vez, ao fazer build install ao projecto C v0.2, como o artefacto B v0.5 já existe e está instalado, o Maven não recompila o projecto B (excepto se houverem mudanças no código), usando a versão do projecto B v0.5 instalada no repositório.

Agora imaginemos que evoluimos o projecto B, actualizamos a versão para v0.6 no pom.xml. Estas alterações são necessárias ao projecto A, pelo que mudamos também o versão na dependência definida no pom.xml do projecto A. Porém, o projecto C ainda depende da versão v0.5 do projecto B, e não quer as novas alterações. O maven gere isto confortavelmente, pois irá simplesmente usar a versão do artefacto necessária, já previamente instalada no repositório.

Ou seja, elegantemente conseguimos ir evoluindo as versões das nossas bibliotecas “sem termos que nos preocupar” com quebrar a compatibilidade com projectos que dependem das mesmas, visto que o número de versão toma aqui um papel muito importante, facilmente gerido pelo Maven. Na realidade, é tão fácil, que quase nos esquecemos de porque é que era tão complicado lidar com diferentes versões das bibliotecas…!

Caso 5: O meu projecto consiste em 20 projectos de Eclipse, dependendo uns dos outros e é preciso compilá-los na ordem correcta para que tudo funcione

Esta é uma tarefa aborrecida no Eclipse, para a qual normalmente usamos o Ant. Mas que o Maven gere de uma forma muito simples, e confortável. Relembrando, cada projecto tem um ficheiro  pom.xml. Os projectos podem ser organizados em níveis. Por exemplo:

ProjectA
ProjectA-server
ProjectA-server-dao
ProjectA-server-business
ProjectA-server-shared
ProjectA-server-adminconsole
ProjectA-server-webapp
ProjectA-flex-client
ProjectA-flex-mainapp
ProjectA-flex-moduleA
ProjectA-flex-moduleB
ProjectA-flex-moduleB-submodule1
ProjectA-flex-moduleB-submodule2
ProjectA-flex-shared

Cada um dos (artefactos) acima possui um pom.xml. Nos pom.xml “parent”, adiciona-se:

 <modules>
      <module>ProjectA-server</module>
      <module>ProjectA-flex-client</module>
  </modules>

Quando o maven é executado no projecto base, irá analisar a configuração dos módulos, e tentar executar primeiro o build em cada um dos módulos definidos, e por sua vez, em cada um dos sub-módulos, recursivamente na ordem correcta de dependência, “instalando-os” no repositório local. Mas claro, é sempre possível indicar ao Maven que queremos compilar só um projecto.

Caso 6: O projecto está a ser implementado numa equipa, mas é penoso configurar todos os projectos no Eclipse um a um em cada um dos postos de trabalho

Os ficheiros de projecto (.project) do Eclipse são específicos da máquina em que estão (i.e. um .project configurado no meu computador provavelmente não funcionará no computador do lado), e portanto não é boa prática colocá-los no SCM para partilhar com a equipa. Isto quer dizer que normalmente todos os elementos da equipa têm que criar à mão um novo projecto no Eclipse, configurar as dependências, definir a build path, etc, etc. Por vezes, estas configurações são até um pouco complicadas e demoradas, e algo corre mal, pelo que alguém tem que andar a saltar de estação em estação a ajudar a configurar o ambiente de desenvolvimento. E o pesadelo repete-se sempre que há uma alteração à configuração (novas dependências, novas versões, etc).

Com o Maven, como já foi referido anteriormente, queremos evitar de mexer com nas configurações de projecto do Eclipse. Por outras palavras, o Maven irá, regra geral, tratar desta tarefa automaticamente por nós. Quando escrevemos:

mvn eclipse:eclipse

O Maven irá ler o pom.xml, e usá-lo para criar os ficheiros de configuração do Eclipse para esse projecto, e para todos os sub-módulos desse projecto (ver Caso 5). Depois basta fazer um “Import > Eclipse project” no Eclipse, e já está, pronto a trabalhar. Naturalmente, já tinha referido isto no caso 1, mas voltei a repeti-lo aqui para reforçar o quão útil é este comportamento no desenvolvimento em equipa, especialmente na configuração inicial do ambiente de desenvolvimento de um novo projecto.

Mais possibilidades

Este post podia alongar-se em muitas mais páginas. Como ainda estou a estudar maven, este é o ponto a que já cheguei:

  • Criar a estrutura de projectos de raíz (archetypes), para diferentes tipos de projecto
  • Configurar projectos Eclipse fora do Eclipse, recorrendo ao Maven
  • Deixar que o Maven gira automaticamente as dependências dos projectos
  • Deixar que o Maven gira automaticamente as versões dos projectos
  • Compilar vários sub-projectos com um único comando, e receber feedback do maven dos resultados de cada um

Mas ainda me falta:

  • Unit Testing – executar automaticamente todos os unit tests de todos os projectos, analisar o code coverage, etc
  • Gerar relatórios (de qualidade de código, de resultado das compilações, etc)
  • Integração com sistemas de continuous integration
  • Dezenas de outras funcionalidades do Maven

Em resumo…

Resumindo, qualquer pessoa numa equipa pode executar um único comando que irá:

  1. “Encontrar”, descarregar, e configurar as dependências do projecto;
  2. Configurar o ambiente de desenvolvimento no Eclipse (ficheiros .project)
  3. Fazer o build a todos os projectos relacionados;
  4. Executar os unit tests de todos os projectos;
  5. Criar o packaging correcto para todos os projectos;
  6. Instalar cada projecto (artefacto) no repositório;
  7. Gerar relatórios diversos;
  8. Fazer deploy da aplicação localmente ou online;
  9. Etc…

Interessa também realçar que os ficheiros pom.xml acabam por se tornar em manuais/guias valiosos para novos developers entenderem muito rapidamente a organização de um sistema complexo. Outro facto de realce, é que o plugin m2Eclipse possui um interface gráfico para editar e gerir os ficheiros pom.xml, simplificando em muito a vida na fase de configuração do projecto.

João Saleiro (Webfuel)




Feb
08

RiaPT meeting no Porto!

6 de Março de 2010 o RiaPT vai voltar ao Porto!

Marca desde já essa data na agenda e prepara-te para passar uma tarde bem disposta juntamente com pessoas que partilham contigo interesses e paixões pela Internet e não só!

Vamos ter speakers a abordar temas de elevado interesse da actualidade que te vão deixar com água na boca para aprender, explorar e procurar as inovações para o design e desenvolvimento das tuas aplicações!

O universo de desenvolvimento de aplicações web está em perfeita erupção! Não são só as tecnologias cliente, mas toda a “pilha” de desenvolvimento com as suas diversas tecnologias, linguagens e ferramentas está a ser posta em causa e cada um quer encontrar o seu nicho nesta realidade. Não perca esta oportunidade de ouvir alguns experts  portugueses na área do desenvolvimento de Rich Internet Applications.

Como se isto não fosse suficiente ainda vamos ter prémios para distribuir pelo pessoal que estiver a assistir que vão desde licenças de software a vouchers de cursos de formação e outros.

Não percam! Dia 6 de Março, no Edifício “Maus Hábitos”, às 14:00, e sim, no Porto!

Inscreve-te em: http://riapt.stagehq.com/events/182/booking/new

Agenda

14:00 Abertura Rui Silva, Mauro Martins
14:10 Zend Framework com Flash Miguel Pinto
14:35 Web – Construir é diferente de ver! Mauro Martins
15:00 Flex Decoupled – Build Strong from the Foundation Vítor Monteiro
15:25 Balsamiq Mockups e Napkee: A arte de “rabiscar” Rui Silva
15:50 Papervision 3D João Crispim
16:10 Coffee Break Networking
16:25 Make Web not War: A plataforma Microsoft Luís Martins
16:50 Silverlight 101: Anatomia de uma Aplicação Ricardo Castelhano
17:15 Swiz e Flex João Fernandes
17:40 “HYPE”: Voltar à criatividade em Flash! João Gonçalves
18:05 HTML5: A realidade da utopia Nuno Gomes
18:30 Encerramento – Prémios Rui Silva, Mauro Martins



Jan
21

Keynotes Evento RIAPT

Espero que todos tenham apreciado nosso evento de dia 16 de Janeiro, quero aqui deixar mais uma vez e publicamente o nosso Muito obrigado à: Novabase, FLAG, Microsoft e Adobe, pelo magnifico evento que nos proporcionaram.

Além dos patrocinadores, quero deixar também o meu agradecimento a todos os oradores, que se esmeraram na qualidade das apresentações, para aqueles que não estiveram presentes no evento deixo aqui as apresentações , excepto a do João Saleiro que já fez o favor de nos disponibilizar a sua.

Estamos também a contar ter esta semana os vídeos da apresentação assim que tiverem na nossa posse disponibilizaremos aqui no blog.

Apresentação do Luis Martins:

luis

 

Apresentação Enrique Duvos:

enrique

 

Apresentação Nuno Godinho:
nuno

Apresentação Ricardo Castelhano e Ricardo Fiel:

ric

 

Mais uma vez obrigado pela participação de todos, e quero desde já deixar aqui uma noticia em primeira mão, se gostaram deste evento preparem-se porque vêem ai novidades, como por exemplo a presença do Joshua Davis, num próximo evento nosso, além de muitas outras que estão na manga, acreditem este ano irá ser o ano da nossa RIAPT.

top