<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Comunidade Portuguesa de Rich Internet Applications &#187; Introduções</title>
	<atom:link href="http://www.riapt.org/category/introducao/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.riapt.org</link>
	<description></description>
	<lastBuildDate>Sun, 15 Jan 2012 15:48:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Porquê aprender Maven?</title>
		<link>http://www.riapt.org/2011/01/04/porque-aprender-maven/</link>
		<comments>http://www.riapt.org/2011/01/04/porque-aprender-maven/#comments</comments>
		<pubDate>Tue, 04 Jan 2011 19:56:21 +0000</pubDate>
		<dc:creator>João Saleiro</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Introduções]]></category>

		<guid isPermaLink="false">http://www.riapt.org/?p=815</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<h2>Prólogo</h2>
<p>Comecei recentemente a dar os primeiros passos na aprendizagem de <a href="http://en.wikipedia.org/wiki/Apache_Maven">Maven</a>, e apesar de ainda ser um novato achei por bem partilhar as razões pelas quais esta tecnologia é tão interessante.</p>
<p>Apesar de utilizarmos Maven há já algum tempo nos nossos projectos na <a href="http://www.webfuel.pt">Webfuel </a>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 (<a href="http://www.web-responsive.com">Web-Responsive</a>). Sou, portanto, tenrinho no assunto, mas sinto-me compelido a partilhar as razões pelas quais vale a pena aprender Maven.</p>
<p>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 <a href="http://code.google.com/p/flex-mojos/">flex-mojos</a> 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 &#8211; por exemplo, na configuração de um JAVA + <a href="http://www.springsource.org/">Spring </a>+ <a href="http://www.hibernate.org/">Hibernate </a>+ <a href="http://opensource.adobe.com/wiki/display/blazeds/BlazeDS">BlazeDS </a>+ <a href="http://www.springsource.org/spring-flex">Springflex </a>+ montes.de.outras.libs.</p>
<h2>O que é o Maven?</h2>
<p>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&#8230;</p>
<h2>(Mais prólogo) Esqueçamos o modelo de projectos gigantes&#8230;</h2>
<p>É importante compreender que existe uma maneira &#8220;à-la-Maven&#8221; para a estruturação de um projecto. Um &#8220;projecto físico&#8221; 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 &#8220;projectos Eclipse&#8221;.  Por outras palavras, o projecto &#8220;my-huge-crm-application&#8221; quando criado &#8220;à-la-Maven&#8221; deve ser dividido em &#8220;my-crm-users&#8221;, &#8220;my-crm-reports&#8221;, &#8220;my-crm-costumers&#8221;, &#8220;my-crm-commons&#8221;, &#8220;my-crm-config&#8221;, &#8220;my-company-lib&#8221;, &#8220;my-3rdparty-lib&#8221;, etc &#8211; 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).</p>
<p>À primeira vista, pode parecer mais confuso, mas na realidade resulta numa maior simplicidade &#8211; graças à elegância do Maven, como veremos adiante.</p>
<p>O Maven lida com uma simplicidade extrema com as dependências entre projectos e com o processo de build &#8211; 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 &#8220;acesso&#8221; 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.</p>
<h2>(Ainda mais prólogo) Algumas notas prévias</h2>
<div id="_mcePaste">
<ol>
<li> Para começar a usar o Maven, a única coisa necessária são os binários (executáveis) do Maven (<a href="http://maven.apache.org/download.html">http://maven.apache.org/download.html</a>, 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.</li>
<li>O Maven baseia-se na existência de um ficheiro de &#8220;configuração&#8221; chamado de &#8220;pom.xml&#8221;. Este ficheiro é um XML simples que o Maven irá analisar para executar os seus &#8220;objectivos&#8221; (&#8220;goals&#8221;). Existe um pom.xml para cada projecto / módulo / biblioteca, sendo que estes (os projectos.. ou módulos.. ou bibliotecas..) são chamados de &#8220;artefactos&#8221; no mundo Maven.</li>
<li>Quando se usa Maven, deve-se  evitar ao máximo usar o Eclipse para fazer o &#8220;setup&#8221; do ambiente de desenvolvimento. Sempre que possível, o Maven deverá ser responsável pelo setup do ambiente de dev. Os menus &#8220;Project &gt; Properties&#8221;, e &#8220;Create New Project&#8221; 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).</li>
</ol>
</div>
<h2>Caso 1: Configurar um projecto do zero é demorado e aborrecido</h2>
<p>O Maven resolve essa tarefa em dois segundos com um único comando, recorrendo a algo conhecido por &#8220;archetypes&#8221;. Como? Escrevendo:</p>
<pre>mvn archetype:generate</pre>
<p>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 &#8211; O Maven irá &#8220;automaticamente&#8221; encontrar os recursos necessários nos locais correctos, se as convenções forem seguidas &#8211; mas, claro, os developers podem fazer override às convenções, embora não seja recomendável.</p>
<p>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&#8230;, e depois fazer isto novamente em cada um dos postos de trabalho de uma equipa. Porém, graças ao <a href="http://maven.apache.org/plugins/maven-eclipse-plugin/">maven-eclipse-plugin</a>, basta um comando para gerar estas configurações. Fazendo:</p>
<pre>maven eclipse:clean eclipse:eclipse</pre>
<p>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 &#8220;Import Eclipse Project&#8221; 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.</p>
<p>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).</p>
<h2>Caso 2: O meu projecto tem 20 dependências, e cada dependência também tem 10 outras dependências&#8230; Além de ser confuso, perco imenso tempo à procura das bibliotecas, a descarregá-las e configurá-las</h2>
<p>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:</p>
<pre><span style="font-family: Verdana, Arial, Geneva, Helvetica, sans-serif; color: #1e1e1e;"><span style="line-height: 20px;">         &lt;dependency&gt;
             &lt;groupId&gt; org.springframework.flex &lt;/groupId&gt;
             &lt;artifactId&gt; spring-flex-core &lt;/artifactId&gt;
             &lt;version&gt; 1.5.0.BUILD-SNAPSHOT &lt;/version&gt;
         &lt;/dependency&gt;</span></span></pre>
<p>E aí basta correr:</p>
<pre>mvn install</pre>
<p>O Maven irá automaticamente encontrar a dependência (chamada de &#8220;artifact&#8221;) &#8211; pesquisando num conjunto de repositórios de dependências -, fazendo o download da mesma e &#8220;instalando-a&#8221; 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.</p>
<p>A integração com o Eclipse também é incrível &#8211; ao executar:</p>
<pre>mvn eclipse:clean eclipse:eclipse</pre>
<p>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&#8230;), é resolvido elegantemente em poucos segundos!</p>
<p>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.</p>
<h2>Caso 3: Build através da linha de comandos</h2>
<p>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.</p>
<p>Algo extremamente elegante no Maven, é a forma como ele compila vários projectos em &#8220;simultâneo&#8221;, recursivamente de acordo com a ordem das dependências. Algo que iremos ver posteriormente</p>
<h2>Caso 4: É difícil gerir diferentes versões dos meus projectos/bibliotecas e das suas dependências</h2>
<p>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.</p>
<p>Mas o que acontece com suas próprias bibliotecas (aliás artefactos) &#8211; como são geridas as versões? Sempre que é executado o &#8220;mvn install&#8221;, 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 &#8220;base de dados&#8221; de bibliotecas gerida automaticamente pelo Maven.</p>
<p>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.</p>
<p>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.</p>
<p>Ou seja, elegantemente conseguimos ir evoluindo as versões das nossas bibliotecas &#8220;sem termos que nos preocupar&#8221; 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&#8230;!</p>
<h2>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</h2>
<p>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:</p>
<div style="padding-left: 30px;">ProjectA</div>
<div style="padding-left: 60px;">ProjectA-server</div>
<div style="padding-left: 120px;">ProjectA-server-dao</div>
<div style="padding-left: 120px;">ProjectA-server-business</div>
<div style="padding-left: 120px;">ProjectA-server-shared</div>
<div style="padding-left: 120px;">ProjectA-server-adminconsole</div>
<div style="padding-left: 120px;">ProjectA-server-webapp</div>
<div style="padding-left: 60px;">ProjectA-flex-client</div>
<div style="padding-left: 90px;">ProjectA-flex-mainapp</div>
<div style="padding-left: 90px;">ProjectA-flex-moduleA</div>
<div style="padding-left: 90px;">ProjectA-flex-moduleB</div>
<div style="padding-left: 120px;">ProjectA-flex-moduleB-submodule1</div>
<div style="padding-left: 120px;">ProjectA-flex-moduleB-submodule2</div>
<div style="padding-left: 90px;">ProjectA-flex-shared</div>
<p>Cada um dos (artefactos) acima possui um pom.xml. Nos pom.xml &#8220;parent&#8221;, adiciona-se:</p>
<pre> &lt;modules&gt;
      &lt;module&gt;ProjectA-server&lt;/module&gt;
      &lt;module&gt;ProjectA-flex-client&lt;/module&gt;
  &lt;/modules&gt;</pre>
<p>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, &#8220;instalando-os&#8221; no repositório local. Mas claro, é sempre possível indicar ao Maven que queremos compilar só um projecto.</p>
<h2>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</h2>
<p>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).</p>
<p>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:</p>
<pre>mvn eclipse:eclipse</pre>
<p>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 &#8220;Import &gt; Eclipse project&#8221; 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.</p>
<h2>Mais possibilidades</h2>
<p>Este post podia alongar-se em muitas mais páginas. Como ainda estou a estudar maven, este é o ponto a que já cheguei:</p>
<div id="_mcePaste">
<ul>
<li>Criar a estrutura de projectos de raíz (archetypes), para diferentes tipos de projecto</li>
<li>Configurar projectos Eclipse fora do Eclipse, recorrendo ao Maven</li>
<li>Deixar que o Maven gira automaticamente as dependências dos projectos</li>
<li>Deixar que o Maven gira automaticamente as versões dos projectos</li>
<li>Compilar vários sub-projectos com um único comando, e receber feedback do maven dos resultados de cada um</li>
</ul>
</div>
<p>Mas ainda me falta:</p>
<div id="_mcePaste">
<ul>
<li>Unit Testing &#8211; executar automaticamente todos os unit tests de todos os projectos, analisar o code coverage, etc</li>
<li>Gerar relatórios (de qualidade de código, de resultado das compilações, etc)</li>
<li>Integração com sistemas de continuous integration</li>
<li>Dezenas de outras funcionalidades do Maven</li>
</ul>
</div>
<h2>Em resumo&#8230;</h2>
<p>Resumindo, qualquer pessoa numa equipa pode executar um único comando que irá:</p>
<div id="_mcePaste">
<ol>
<li>&#8220;Encontrar&#8221;, descarregar, e configurar as dependências do projecto;</li>
<li>Configurar o ambiente de desenvolvimento no Eclipse (ficheiros .project)</li>
<li>Fazer o build a todos os projectos relacionados;</li>
<li>Executar os unit tests de todos os projectos;</li>
<li>Criar o packaging correcto para todos os projectos;</li>
<li>Instalar cada projecto (artefacto) no repositório;</li>
<li>Gerar relatórios diversos;</li>
<li>Fazer deploy da aplicação localmente ou online;</li>
<li>Etc&#8230;</li>
</ol>
</div>
<p>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 <a href="http://m2eclipse.sonatype.org/">m2Eclipse</a> 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.</p>
<p>João Saleiro (<a href="http://www.webfuel.pt">Webfuel</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.riapt.org/2011/01/04/porque-aprender-maven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PerlinNoise (FlashCamp Portugal 2010)</title>
		<link>http://www.riapt.org/2010/10/09/perlinnoise/</link>
		<comments>http://www.riapt.org/2010/10/09/perlinnoise/#comments</comments>
		<pubDate>Sat, 09 Oct 2010 21:52:44 +0000</pubDate>
		<dc:creator>semmais</dc:creator>
				<category><![CDATA[Exemplos]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Introduções]]></category>
		<category><![CDATA[Showcase]]></category>

		<guid isPermaLink="false">http://www.riapt.org/?p=736</guid>
		<description><![CDATA[No FlashCamp 2010 a apresentação que levei conjuntamente com o Jorge Varandas recaiu sobre três temas sendo eles: Perlin Noise, SEO for Flash, Inverse Kinematics. Neste artigo vou escrever sobre o primeiro tema, Perlin Noise. O Perlin Noise é uma função matemática que gera uma pseudo-random textura que podemos descrever como um grandient noise. O [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.riapt.org/2010/10/09/perlinnoise/"><img src="http://www.semmais.com/blog/wp-content/perlinnoise.jpg" alt="" width="430" height="255" class="alignnone size-full wp-image-458" /></a></p>
<p>No FlashCamp 2010 a apresentação que levei conjuntamente com o Jorge Varandas recaiu sobre três temas sendo eles: Perlin Noise, SEO for Flash, Inverse Kinematics.<br />
Neste artigo vou escrever sobre o primeiro tema, Perlin Noise.<br />
<span id="more-736"></span><br />
O Perlin Noise é uma função matemática que gera uma pseudo-random textura que podemos descrever como um grandient noise.<br />
O autor desta função foi Ken Perlin, desenvolveu-a para o filme clássico TRON em 1982 e melhorou-a em 2002. Valeu-lhe uns prémios e merecido reconhecimento. (Por ironia do destino a nova versão do TRON, TRON Legacy está ai <a href="http://www.youtube.com/watch?v=a1IpPpB3iWI">trailer</a>)</p>
<p>No Flash o PerlinNoise é um método da classe bitmapdata e têm uma grande utilidade nas mais variadas situações, onde a nossa imaginação é o limite. É muito usada em efeitos como nuvens, fogo, água corrente,  backgrounds .. etc</p>

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_demoPerlinNoise_1521684873"
			class="flashmovie"
			width="700"
			height="500">
	<param name="movie" value="http://www.semmais.com/blog/wp-content/demoPerlinNoise.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.semmais.com/blog/wp-content/demoPerlinNoise.swf"
			name="fm_demoPerlinNoise_1521684873"
			width="700"
			height="500">
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object><br />
Os parâmetros da função:<br />
- baseX e baseY: permitem definir a frequência horizontal e vertical respectivamente.<br />
- numOctave: corresponde ao numero de funções individuais a aplicar, poderá ser visto como layers.<br />
- randomSeed: se todos os outros parâmetros forem iguais podemos ter um resultado diferente alterando este valor,<br />
- stitch: permite gera texturas para padrões tile, uma imagem emenda nela própria sem notarmos onde fica a união. Neste caso usei o sitch para criar uma imagem de background.<br />
-fractalNoise: true para um efeito mais suave, a false temos um efeito de turbulência. No exemplo se clicarmos em webcam pode-se visualizar a distorção da imagem e perceber o impacto do parâmetro fractalNoise.<br />
- grayscale: força uma textura a ficar a preto e branco (neste caso só poderemos usar o canal do alpha, os restantes serão ignorados), ou então se usarmos false, podemos escolher os canais de cor que pretendemos usar com o channelOptions (para combinar distintos canais ou somamos ou usamos o operador lógico or)<br />
- os offsets é um array de pontos que corresponde aos x,y para cada octave.</p>
<p>Dica: O perlinnoise é intensivo para o processador proporcionalmente ao tamanho do bitmap e aos parâmetros como por exemplo o numero de octavas etc.. para resolver este problema é usual usar um bitmapdata pequeno e depois fazer scale.</p>
<p>
<h1>Exemplos de aplicação profissional do perlinnoise em projectos:</h1>
<p>
<h2>NEVOEIRO</h2>
<p>Com meia duzia de linhas usando o alpha Channel e uma mascara criamos o efeito de nevoeiro<br />

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_player.swf?file=pn_nevoeiro_1544102789"
			class="flashmovie"
			width="400"
			height="322">
	<param name="movie" value="http://www.semmais.com/blog/wp-content/player.swf?file=pn_nevoeiro.f4v" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.semmais.com/blog/wp-content/player.swf?file=pn_nevoeiro.f4v"
			name="fm_player.swf?file=pn_nevoeiro_1544102789"
			width="400"
			height="322">
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
<h2>PAPAGAIO</h2>
<p>À mais ou menos 2 anos desenvolvemos um m-rec extensível para a Opel onde o utilizador podia interagir com um papagaio. Distorcemos as fitas do papagaio usando perlinnoise para dar uma sensação de vento.<br />

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_player.swf?file=pn_papagaio_1888763494"
			class="flashmovie"
			width="400"
			height="322">
	<param name="movie" value="http://www.semmais.com/blog/wp-content/player.swf?file=pn_papagaio.f4v" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.semmais.com/blog/wp-content/player.swf?file=pn_papagaio.f4v"
			name="fm_player.swf?file=pn_papagaio_1888763494"
			width="400"
			height="322">
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
<h2>JATO DE LIQUIDOS E EXPLOSÕES</h2>
<p>No caso do jato de líquidos existe uma animação simples de scale e alpha a um png onde é aplicado uma distorção, é o mapa da distorção que é gerado com o perlinnoise.<br />
Já nas explosões o perlinnoise serve de mapa de fluxo das partículas. </p>

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_player.swf?file=pn_livostin_138825028"
			class="flashmovie"
			width="400"
			height="322">
	<param name="movie" value="http://www.semmais.com/blog/wp-content/player.swf?file=pn_livostin.f4v" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.semmais.com/blog/wp-content/player.swf?file=pn_livostin.f4v"
			name="fm_player.swf?file=pn_livostin_138825028"
			width="400"
			height="322">
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
<h2>EXPLOSÃO NOME</h2>

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_player.swf?file=pn_explosao_1778039230"
			class="flashmovie"
			width="400"
			height="322">
	<param name="movie" value="http://www.semmais.com/blog/wp-content/player.swf?file=pn_explosao.f4v" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.semmais.com/blog/wp-content/player.swf?file=pn_explosao.f4v"
			name="fm_player.swf?file=pn_explosao_1778039230"
			width="400"
			height="322">
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
<h2>MAPA DE FLUXO</h2>
<p>O mapa de fluxo é um perlinnoise que é modificado de 5 em 5 segundos, dai a variação das partículas mais acentuada neste intervalo de tempo.<br />
Este mapa serve para encontrar o vector de deslocação de cada partícula, retirando-o através das informações do canais de cor. Com 4 canais (ARGB) podemos fazer corresponder 4 variáveis com variação entre valores inteiros de 0 a 255.<br />
Para termos reacção ao rato bastou desenhar no mapa de fluxo um circulo na posição correspondente ao Mouse.<br />

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_player.swf?file=pn_mapafluxo_370053809"
			class="flashmovie"
			width="400"
			height="322">
	<param name="movie" value="http://www.semmais.com/blog/wp-content/player.swf?file=pn_mapafluxo.f4v" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.semmais.com/blog/wp-content/player.swf?file=pn_mapafluxo.f4v"
			name="fm_player.swf?file=pn_mapafluxo_370053809"
			width="400"
			height="322">
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
<h2>APLICAÇÃO DO EFEITO NO SITE COFIDIS MOBILE</h2>

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_player.swf?file=pn_cofidis_1011010273"
			class="flashmovie"
			width="400"
			height="322">
	<param name="movie" value="http://www.semmais.com/blog/wp-content/player.swf?file=pn_cofidis.f4v" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.semmais.com/blog/wp-content/player.swf?file=pn_cofidis.f4v"
			name="fm_player.swf?file=pn_cofidis_1011010273"
			width="400"
			height="322">
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
<p>Se gostares deixa-me uma mensagem <img src='http://www.riapt.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Paulo Afonso<br />
<a target='_blank' href="http://www.semmais.com/">http://www.semmais.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.riapt.org/2010/10/09/perlinnoise/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>RiaPT meeting no Porto!</title>
		<link>http://www.riapt.org/2010/02/08/riapt-meeting-no-porto/</link>
		<comments>http://www.riapt.org/2010/02/08/riapt-meeting-no-porto/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 10:33:23 +0000</pubDate>
		<dc:creator>rduartes</dc:creator>
				<category><![CDATA[Adobe Air]]></category>
		<category><![CDATA[Amfphp]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Flash remoting]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Introduções]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Showcase]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.riapt.org/?p=632</guid>
		<description><![CDATA[No próximo dia 6 de Março de 2010 vai-se realizar uma reunião do RiaPT no Porto. Vai ser um evento do tipo stand-up and speak com comunicações de elevado interesse com 20 minutos de duração cada para garantir que apenas temos "sumo"...]]></description>
			<content:encoded><![CDATA[<p><strong>6 de Março de 2010 o RiaPT vai voltar ao Porto!</strong></p>
<p>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ó!</p>
<p>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!</p>
<p>O universo de desenvolvimento de aplicações web está em perfeita erupção! Não são só as tecnologias cliente, mas toda a &#8220;pilha&#8221; 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.</p>
<p>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.</p>
<p><strong>Não percam! Dia 6 de Março, no Edifício &#8220;Maus Hábitos&#8221;, às 14:00, e sim, no Porto!</strong></p>
<p>Inscreve-te em: <a title="http://riapt.stagehq.com/events/182/booking/new" href="http://riapt.stagehq.com/events/182/booking/new" target="_blank">http://riapt.stagehq.com/events/182/booking/new</a></p>
<h3>Agenda</h3>
<table width="100%">
<tbody>
<tr>
<td>14:00</td>
<td>Abertura</td>
<td>Rui Silva, Mauro Martins</td>
</tr>
<tr>
<td>14:10</td>
<td>Zend Framework com Flash</td>
<td>Miguel Pinto</td>
</tr>
<tr>
<td>14:35</td>
<td>Web &#8211; Construir é diferente de ver!</td>
<td>Mauro Martins</td>
</tr>
<tr>
<td>15:00</td>
<td>Flex Decoupled &#8211; Build Strong from the Foundation</td>
<td>Vítor Monteiro</td>
</tr>
<tr>
<td>15:25</td>
<td>Balsamiq Mockups e Napkee: A arte de &#8220;rabiscar&#8221;</td>
<td>Rui Silva</td>
</tr>
<tr>
<td>15:50</td>
<td>Papervision 3D</td>
<td>João Crispim</td>
</tr>
<tr>
<td>16:10</td>
<td>Coffee Break</td>
<td>Networking</td>
</tr>
<tr>
<td>16:25</td>
<td>Make Web not War: A plataforma Microsoft</td>
<td>Luís Martins</td>
</tr>
<tr>
<td>16:50</td>
<td>Silverlight 101: Anatomia de uma Aplicação</td>
<td>Ricardo Castelhano</td>
</tr>
<tr>
<td>17:15</td>
<td>Swiz e Flex</td>
<td>João Fernandes</td>
</tr>
<tr>
<td>17:40</td>
<td>&#8220;HYPE&#8221;: Voltar à criatividade em Flash!</td>
<td>João Gonçalves</td>
</tr>
<tr>
<td>18:05</td>
<td>HTML5: A realidade da utopia</td>
<td>Nuno Gomes</td>
</tr>
<tr>
<td>18:30</td>
<td>Encerramento &#8211; Prémios</td>
<td>Rui Silva, Mauro Martins</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.riapt.org/2010/02/08/riapt-meeting-no-porto/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Introdução ao seno e coseno com Actionscript</title>
		<link>http://www.riapt.org/2010/01/26/sin-cos-actionscript/</link>
		<comments>http://www.riapt.org/2010/01/26/sin-cos-actionscript/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 18:11:05 +0000</pubDate>
		<dc:creator>semmais</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Introduções]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cos]]></category>
		<category><![CDATA[coseno]]></category>
		<category><![CDATA[matemática]]></category>
		<category><![CDATA[maths]]></category>
		<category><![CDATA[seno]]></category>
		<category><![CDATA[sin]]></category>
		<category><![CDATA[trignometria]]></category>

		<guid isPermaLink="false">http://www.riapt.org/?p=602</guid>
		<description><![CDATA[Trigonometria Quando se fala em trigonometria geralmente é associada por grande parte a um &#8220;bicho daqueles maus&#8221; com cosenos, senos e mais um monte de fórmulas. A verdade é que nos mais variados problemas é constante termos que aliar o actionscript com este ramo da matemática. - PI: É um numero irracional, eu normalmente uso [...]]]></description>
			<content:encoded><![CDATA[<h1><strong>Trigonometria</strong></h1>
<p>Quando se fala em trigonometria geralmente é associada por grande parte a um &#8220;bicho daqueles maus&#8221; com cosenos, senos e mais um monte de fórmulas.<br />
A verdade é que nos mais variados problemas é constante termos que aliar o actionscript com este ramo da matemática.<br />
<span id="more-602"></span></p>
<h2>- PI:</h2>
<p>É um numero irracional, eu normalmente uso apenas a aproximação com duas casas decimais 3,14. O <a href="http://bellard.org/pi/pi2700e9/announce.html" target="_blank">record</a> actualmente do numero mais aproximado é de Fabrice Bellard — um programador, claro!</p>
<h2>Mas o que é visualmente este valor PI?</h2>
<p>Importa saber que se fizermos um circulo perfeito com um raio de 1 unidade usando por exemplo uma corda, se esticarmos essa corda numa linha recta vamos ver que ela mede 2*PI. Portanto, metade da corda mede PI — um valor aproximado a 3.14159 26535 89793 23846 26433 83279 50288 4197 &#8230;. unidades! É a mesma coisa que dizer que o <strong>raio</strong> cabe PI vezes no arco de meia circunferência (um arco de circunferência de 180 graus).<br />

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_pi-1_446122823"
			class="flashmovie"
			width="430"
			height="255">
	<param name="movie" value="http://www.riapt.org/wp-content/uploads/2010/01/pi-1.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.riapt.org/wp-content/uploads/2010/01/pi-1.swf"
			name="fm_pi-1_446122823"
			width="430"
			height="255">
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
<h2>- Está bem, pronto.. já gravei o que é o PI e agora o que faço com ele?</h2>
<p>As funções Math.cos, Math.sin e outras no actionscript aceitam como parâmetro uma variável em radianos, esta variável indicam uma amplitude, um ponto especifico do nosso circulo.</p>
<h2>A definição de Radiano</h2>
<p>&#8220;O ângulo definido no centro de um círculo por um arco de circunferência com o mesmo comprimento que o raio do círculo é 1 radiano&#8221;<br />
Ou seja, dizer que o raio do circulo &#8220;cabe&#8221; n vezes numa determinada parte do arco pode-se simplificar e dizer simplesmente que essa parte mede &#8220;n&#8221; radianos</p>
<p>Num sistema de coordenadas no plano cartesiano centrando um circulo com uma unidade de raio, fixa-se o ponto (a) mais à direita do circulo e mede-se o arco em sentido contrário ao sentido dos ponteiros do relógio obtendo um segundo ponto (b);<br />
- a medida do arco entre os dois pontos &#8220;n radianos&#8221; (a verde), corresponde o parâmetro que usamos no coseno e no seno (entre outras funções do actionscript).<br />

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_pi-2_507318534"
			class="flashmovie"
			width="430"
			height="255">
	<param name="movie" value="http://www.riapt.org/wp-content/uploads/2010/01/pi-2.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.riapt.org/wp-content/uploads/2010/01/pi-2.swf"
			name="fm_pi-2_507318534"
			width="430"
			height="255">
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
<h2>Seno</h2>
<p>- traça-se uma recta paralela ao eixo dos xx&#8217;s que passa pelo ponto b e vai interceptar o eixo dos yy&#8217;s obtendo o valor do seno para &#8220;n radianos&#8221; (a laranja)<br />

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_pi-3_1875200464"
			class="flashmovie"
			width="430"
			height="255">
	<param name="movie" value="http://www.riapt.org/wp-content/uploads/2010/01/pi-3.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.riapt.org/wp-content/uploads/2010/01/pi-3.swf"
			name="fm_pi-3_1875200464"
			width="430"
			height="255">
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
<h2>Coseno</h2>
<p>- traça-se uma recta paralela ao eixo dos yy&#8217;s que passa pelo ponto b e que vai interceptar o eixo dos xx&#8217;s obtendo o valor do coseno para &#8220;n radianos&#8221; (a azul)<br />

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_pi-4_347867830"
			class="flashmovie"
			width="430"
			height="255">
	<param name="movie" value="http://www.riapt.org/wp-content/uploads/2010/01/pi-4.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.riapt.org/wp-content/uploads/2010/01/pi-4.swf"
			name="fm_pi-4_347867830"
			width="430"
			height="255">
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
<p>Isto é a parte chata da coisa, mas é o suficiente para fazermos milhares e milhares de cenas espectaculares <img src='http://www.riapt.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .</p>
<h3>Problema 1:</h3>
<p>- Desenhar os pontos referentes às horas de um relógio analógico com raio de 80 pixeis e centro no ponto (200,122)</p>
<p>Resposta:</p>
<p>Sabemos que um circulo tem um arco de 2*PI, queremos dividir em 12 partes, portanto vamos ter 2*PI/12 como a medida de cada arco.<br />
A partir daqui podemos passar estes arcos para coordenadas x,y usando o coseno e o seno.<br />
Como queremos um raio maior que uma unidade temos que multiplicar os valores obtidos pelo novo raio desejado.</p>
<p><code>var arco_hora:Number=Math.PI*2/12;// simplificando Math.pi/6<br />
var raio:Number=80;//raio do nosso relogio<br />
this.graphics.lineStyle(4,0xff0000);//vamos por os pontos vermelhos</code></p>
<p>for (var i:int=0;i&lt;12;i++)<br />
{<br />
var posx:Number=Math.cos(arco_hora*i)*raio;<br />
var posy:Number=Math.sin(arco_hora*i)*raio;<br />
this.graphics.drawCircle(posx,posy,4);<br />
}</p>
<p>Ok, mas isto ficou no ponto (0,0), agora é necessário fazer uma translação para a posição final.</p>
<p><code>var arco_hora:Number=Math.PI*2/12;// simplificando Math.pi/6<br />
var raio:Number=80;//raio do nosso relogio<br />
var centro:Point=new Point(200,122);//posição central do relógio<br />
this.graphics.lineStyle(4,0xff0000);//vamos por os pontos vermelhos</code></p>
<p>for (var i:int=0;i&lt;12;i++)<br />
{<br />
var posx:Number=Math.cos(arco_hora*i)*raio+centro.x;<br />
var posy:Number=Math.sin(arco_hora*i)*raio+centro.y;<br />
this.graphics.drawCircle(posx,posy,4);<br />
}<br />

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_pi-5_1661926233"
			class="flashmovie"
			width="430"
			height="255">
	<param name="movie" value="http://www.riapt.org/wp-content/uploads/2010/01/pi-5.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.riapt.org/wp-content/uploads/2010/01/pi-5.swf"
			name="fm_pi-5_1661926233"
			width="430"
			height="255">
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
<h3>Desafio:</h3>
<p>- Desenhar os ponteiros</p>
<blockquote><p>Dica: Assim por alto podemos por um TIMER de 1000 e no evento TimerEvent.TIMER obtemos a hora e actualizamos os ponteiros.<br />
Os ponteiros podem ser desenhados com<br />
<code><br />
graphics.lineStyle(4,0xff0000);<br />
graphics.moveTo(centro.x, centro.y);<br />
graphics.lineTo(posx, posy);<br />
</code></p></blockquote>
<h3>Cuidados:</h3>
<p>O coseno e seno são funções pesadas, o processador queixa-se se quando os usamos intensamente como por exemplo em sistemas de partículas.<br />
Por isso uma leitura a este <a href="http://lab.polygonal.de/2007/07/18/fast-and-accurate-sinecosine-approximation/" target="_blank">post</a> do Michael Baczynski é recomendada.</p>
<p>Obrigado,<br />
Paulo Afonso (semmais)<br />
<a href="http://www.semmais.com/">http://www.semmais.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.riapt.org/2010/01/26/sin-cos-actionscript/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Slides da apresentação &#8220;Rich Internet Applications &#8211; Uma Visão Geral&#8221; no CTIC 2009</title>
		<link>http://www.riapt.org/2009/07/02/slides-da-apresentacao-rich-internet-applications-uma-visao-geral-no-ctic-2009/</link>
		<comments>http://www.riapt.org/2009/07/02/slides-da-apresentacao-rich-internet-applications-uma-visao-geral-no-ctic-2009/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 15:01:30 +0000</pubDate>
		<dc:creator>João Saleiro</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[Formação]]></category>
		<category><![CDATA[Introduções]]></category>
		<category><![CDATA[Tutoriais]]></category>

		<guid isPermaLink="false">http://www.riapt.org/?p=428</guid>
		<description><![CDATA[Deixo abaixo os slides da minha apresentação &#8220;Rich Internet Applications &#8211; Uma visão geral&#8221; no CTIC 2009 em Viseu a 13 de Maio. Esta apresentação é útil para quem está a entrar nesta coisa das RIAs e quer perceber exactamente o que são, e quais as diferenças e vantagens face às aplicações Desktop e Web. [...]]]></description>
			<content:encoded><![CDATA[<p>Deixo abaixo os slides da minha apresentação &#8220;Rich Internet Applications &#8211; Uma visão geral&#8221; no CTIC 2009 em Viseu a 13 de Maio. Esta apresentação é útil para quem está a entrar nesta coisa das RIAs e quer perceber exactamente o que são, e quais as diferenças e vantagens face às aplicações Desktop e Web. Espero que vos seja útil.</p>
<p><object style="width: 600px; height: 550px;" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="550" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.riapt.org/wp-content/uploads/2009/07/RIAs-Uma-Visao-Geral.swf" /><embed style="width: 600px; height: 550px;" type="application/x-shockwave-flash" width="600" height="550" src="http://www.riapt.org/wp-content/uploads/2009/07/RIAs-Uma-Visao-Geral.swf"></embed></object></p>
<p>Aceitam-se comentários <img src='http://www.riapt.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.riapt.org/2009/07/02/slides-da-apresentacao-rich-internet-applications-uma-visao-geral-no-ctic-2009/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Flash Platform</title>
		<link>http://www.riapt.org/2008/11/18/the-flash-platform/</link>
		<comments>http://www.riapt.org/2008/11/18/the-flash-platform/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 10:26:03 +0000</pubDate>
		<dc:creator>João Saleiro</dc:creator>
				<category><![CDATA[Adobe Air]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Introduções]]></category>

		<guid isPermaLink="false">http://www.riapt.org/?p=389</guid>
		<description><![CDATA[A Adobe publicou ontem uma imagem muito interessante e elucidativa para representar o ecosistema da Flash Platform. Na imagem é possível ver o universo das ferramentas Adobe, e a forma como se interligam. À esquerda, a azul claro, temos as ferramentas de design: After Effects, Adobe Illustrator, Fireworks e Photoshop. Com estas ferramentas os designers [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">
<p style="text-align: left;">A Adobe publicou ontem uma imagem muito interessante e elucidativa para representar o ecosistema da <em>Flash Platform</em>. Na imagem é possível ver o universo das ferramentas Adobe, e a forma como se interligam.</p>
<p style="text-align: center;"><a href="http://www.riapt.org/wp-content/uploads/2008/11/picture-11.png"><img class="alignnone size-full wp-image-391" title="The Flash Plattorm" src="http://www.riapt.org/wp-content/uploads/2008/11/picture-11.png" alt="" width="500" height="352" /></a></p>
<p style="text-align: center;">
<p style="text-align: left;">À esquerda, a azul claro, temos as ferramentas de design: After Effects, Adobe Illustrator, Fireworks e Photoshop. Com estas ferramentas os designers podem criar o aspecto gráfico das aplicações / sites / experiências / etc, sendo este exportado num novo formato, o FXG. O <a href="http://opensource.adobe.com/wiki/display/flexsdk/FXG+1.0+Specification">FXG</a> é um novo formato da Adobe baseado em XML para representar elementos gráficos, e que é compatível com o universo que circunda a plataforma Flash.</p>
<p style="text-align: left;">A azul escuro temos as aplicações de desenvolvimento: o Flash IDE, Flash Catalyst (anteriormente conhecido por Thermo), e o Flex Builder. O Flash IDE e o Flex Builder são os nossos já velhos conhecidos, sendo o primeiro mais virado para Interaction Designers que procuram um IDE visual, e o segundo para developers que procuram um IDE virado para código. O Flash Catalyst é uma ferramenta que ficará no meio, entre o Flash e o Flex Builder que permitirá a Interaction Designers utilizar um ambiente gráfico e intuitivo para importar layouts feitos nas ferramentas de design, e convertê-los através de alguns cliques para aplicações, podendo ser adicionada interactividade. O resultado o Flash Catalyst é MXML (bem formado, segundo dizem) que depois é entregue aos developers para implementarem toda a parte dura do código. Segundo se diz, o Flash Catalyst pode também carregar MXML já alterado pelos developers (corrijam-me se estiver enganado), pelo que permitirá que ambas as equipas &#8211; developers e designers &#8211; possam trabalhar ao mesmo tempo, recorrendo a um source control. O Flash Catalyst está ainda a um ano de ser lançado em versão final, pelo que durante este período serão certamente disponibilizadas versões beta e de preview.</p>
<p style="text-align: left;">A cinzento, em cima, temos o Flex SDK, a framework de eleição para desenvolvimento de RIAs. É composta por um conjunto de componentes, e ferramentas que assentam em Actionscript 3, para desenvolvimento rápido de aplicações. O Flex SDK está actualmente na versão 3, mas a versão que se segue (nome de código: <a href="http://opensource.adobe.com/wiki/display/flexsdk/Gumbo">Gumbo</a>) vai trazer novidades absolutamente estontantes. Sendo open-source, é possível acompanhar o desenvolvimento do Gumbo, e inclusivé, fazer já aplicações com a actual versão. As milestones do Gumbo são:</p>
<ul>
<li>lançamento do MAX preview agora durante o MAX;</li>
<li>versões Beta 1 e Beta 2 na primeira metade de 2009 (aposto em Fevereiro e Maio);</li>
<li>versão final na segunda metade de 2009.</li>
</ul>
<p>As ferramentas acima &#8220;não fazem mais&#8221; que gerar ficheiros SWF que são depois interpretados e executados nos devidos runtimes: o Flash Player, que corre dentro do browser, e com limitações de acesso à máquina do utilizador (obviamente por motivos de segurança), e o Adobe Air, que permite que os SWFs possam ser instalados nos computadores dos utilizadores e correr como aplicações desktop, com acesso à maquina do utilizador como qualquer outra aplicação (i.e. leitura do disco, clipboard, etc). O Flash Player está neste momento na versão 10 que introduz uma panóplia de <a href="http://labs.adobe.com/technologies/flashplayer10/">funcionalidades</a> fantásticas: suporte nativo a 3D, FileReference local, suporte a filtros avançados (Pixel Bender), suporte avançado a texto, melhor performance com suporte a aceleração pela placa gráfica, etc.</p>
<p>De referir que os runtimes acima são compatíveis com os principais sistemas operativos, nomeadamente Mac, Windows e Linux &#8211; e a grande novidades do Max: graças ao <a href="http://www.openscreenproject.org/">Open Screen project </a>temos também o Flash Player 10 em Symbian, Windows Mobile, Wii, Playstation, etc.</p>
<p>As aplicações (SWFs) que assentam sobre os runtimes acima serão fat clients descarregados para as máquinas dos utilizadores (pelo browser, ou instalados com Adobe Air), e que poderão posteriormente comunicar com um servidor para trocar dados. Essa comunicação pode assentar em diversos protocolos e formatos, tais como simples texto, XML, SOAP (web-services), JSON, e AMF &#8211; o formato de dados em que assenta o Flash Remoting. Estes formatos podem ser trocados sobre HTTP ou HTTPs, Sockets, RTMP, entre outros.</p>
<p>Esta panóplia de formatos de comunicação permitem comunicar com quase todas as tecnologias server-side existentes no mercado, pelo que aplicações feitas em Flash são facilmente integráveis com plataformas existentes, sejam elas Adobe ou de terceiros. Da Adobe, temos os servidores especificamente criados para Flash: BlazeDS e Flash Media Server que introduzem funcionalidades de Data e Multimedia Streaming, entre outras. Depois temos os servidores ColdFusion e LiveCycle ES, de onde a minha funcionalidade favorita deste último é de longe o facto dos servidores poderem tomar a iniciativa de contactar os clientes e empurrar dados (i.e. dados dos clientes sincronizados automaticamente com o servidor). Apesar da Adobe fornecer as suas próprias soluções server-side, como dito acima aplicações Flash podem ser facilmente integradas com outras soluções de backend de entidades terceiras, como, PHP, JAVA, .NET, etc, desde que implementem algum dos protolocos de comunicação acima referidos. Como exemplos de plataformas, temos BEA, SAP, salesforce.com, WebSphere, Zend, etc.</p>
<p>Vendo esta imagem, é inevitável sentir orgulho de ter acreditado e escolhido um dia o caminho da plataforma Flash. Aquilo que começou um dia como uma ferramenta para adicionar animações a páginas Web, é hoje em dia a mais poderosa plataforma para criar aplicações distribuídas e interactivas. As nossas amigas RIAs.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.riapt.org/2008/11/18/the-flash-platform/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Webcasts de Microsoft Silverlight 2.0 em Setembro</title>
		<link>http://www.riapt.org/2008/08/15/webcasts-de-microsoft-silverlight-20-em-setembro/</link>
		<comments>http://www.riapt.org/2008/08/15/webcasts-de-microsoft-silverlight-20-em-setembro/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 11:15:58 +0000</pubDate>
		<dc:creator>João Saleiro</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Introduções]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://www.riapt.org/?p=297</guid>
		<description><![CDATA[De 8 a 12 de Setembro decorrerá um ciclo de webcasts (sessões online) sobre Microsoft Silverlight 2.0. O ciclo é composto por 5 sessões: Desenvolvimento de soluções RIA (8 de Setembro) Num momento em que o Silverlight 2.0 se encontra em fase terminal de desenvolvimento e já com a licença Go-Live, é importante perceber qual [...]]]></description>
			<content:encoded><![CDATA[<p>De 8 a 12 de Setembro decorrerá um ciclo de webcasts (sessões online) sobre Microsoft Silverlight 2.0.</p>
<p>O ciclo é composto por 5 sessões:</p>
<ul>
<li><strong>Desenvolvimento de soluções RIA</strong> (8 de Setembro)</li>
</ul>
<p>Num momento em que o Silverlight 2.0 se encontra em fase terminal de desenvolvimento e já com a licença Go-Live, é importante perceber qual a real capacidade desta tecnologia. Com este WebCast iremos analisar a Arquitectura, Modelo e Ferramentas de Desenvolvimento, relação com o WPF, bem como uma utilização mais avançada com vista a desenvolver uma solução RIA de raíz utilizando esta versão do Silverlight, incluindo questões como gestão do Layout da solução e os controlos standard que são disponibilizados, como Button, Calendar, Listbox, Image, Grid, Slider, TextBox entre outros. Será também analisado o suporte de DataBinding disponibilizado por esta versão.</p>
<p style="text-align: left;"><a href="http://go.microsoft.com/?linkid=9364466">Inscrição</a></p>
<ul>
<li><strong>Desenvolvimento de soluções RIA -Tópicos avançados</strong> (9 de Setembro);</li>
</ul>
<p>Num momento em que o Silverlight 2.0 se encontra em fase terminal de desenvolvimento e já com a licença Go-Live, é importante perceber qual a real capacidade desta tecnologia. Ao longo deste WebCast iremos dar atenção a tópicos mais avançados do desenvolvimento de Soluções RIA como são os casos da customização da aparência de controlos utilizando técnicas de Templating e Skinning, análise do VisualStateManager, e muito importante o Streaming Adaptativo que permite analisar as capacidades do cliente de forma a adaptar a experiência de utilização tendo como base a largura de banda e a velocidade do CPU. Se o tempo permitir iremos também ter uma primeira visão sobre o que nos espera no Silverlight for Mobile.</p>
<p><a href="http://go.microsoft.com/?linkid=9364467">Inscrição</a></p>
<ul>
<li><strong>Introdução ao Deep Zoom</strong> (10 de Setembro);</li>
</ul>
<p>Num momento em que o Silverlight 2.0 se encontra em fase terminal de desenvolvimento e já com a licença Go-Live, é importante perceber qual a real capacidade desta tecnologia. Este WebCast tem como objectivo demonstrar como poderão ser melhoradas as soluções RIA desenvolvidas com suporte á utilização da funcionalidade Deep Zoom disponibilizada pelo Silverlight 2.0, e que tem por base a tecnologia SeaDragon criada pela Microsoft Research e que torna mais fácil e rápida a navegação em imagens de elevada resolução.</p>
<p><a href="http://go.microsoft.com/?linkid=9364468">Inscrição</a></p>
<ul>
<li><strong>Desenvolvimento soluções RIA distribuídas</strong> (11 de Setembro);</li>
</ul>
<p>Num momento em que o Silverlight 2.0 se encontra em fase terminal de desenvolvimento e já com a licença Go-Live, é importante perceber qual a real capacidade desta tecnologia. Através deste WebCast iremos demonstrar as capacidades inerentes a esta tecnologia e que permitem o desenvolvimento de soluções RIA distribuídas, sendo que em primeiro lugar iremos analisar a arquitectura de comunicação (Networking stack) e a robustês da mesma, fazendo uma demonstração do consumo de diversos serviços que utilizam diferentes formas de comunicação, como o Representational State Trransfer (REST), SOAP, WS*, HTTP e também comunicações cross-domain. Um dos pontos importantes será também a análise das restrições existentes ao nível da camada de comunicações presente na mesma.</p>
<p><a href="http://go.microsoft.com/?linkid=9364469">Inscrição</a></p>
<ul>
<li><strong>Framework de testes para Silverlight 2.0</strong> (12 de Setembro);</li>
</ul>
<p>Num momento em que o Silverlight 2.0 se encontra em fase terminal de desenvolvimento e já com a licença Go-Live, é importante perceber qual a real capacidade desta tecnologia. Com a disponibilização deste WebCasts pertende-se demonstrar que o desenvolvimento deste tipo de soluções também poderá e deverá ser efectuado utilizando Testes unitários de forma a garantir a qualidade do desenvolvimento efectuado ao longo de todo o ciclo de desenvolvimento do projecto, por isso mesmo iremos analisar um conjunto de testes built-in que abragem todos os elementos que foram disponibilizados com o Silverlight 2.0 e também a forma de criar novos ou extender os existentes pois todos eles são Open-Source.</p>
<p><a href="http://go.microsoft.com/?linkid=9364470">Inscrição</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.riapt.org/2008/08/15/webcasts-de-microsoft-silverlight-20-em-setembro/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Artigo sobre Rich Internet Applications na revista Invest</title>
		<link>http://www.riapt.org/2008/08/08/artigo-sobre-rich-internet-applications-na-revista-invest/</link>
		<comments>http://www.riapt.org/2008/08/08/artigo-sobre-rich-internet-applications-na-revista-invest/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 10:57:11 +0000</pubDate>
		<dc:creator>João Saleiro</dc:creator>
				<category><![CDATA[Adobe Air]]></category>
		<category><![CDATA[Exemplos]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[Flash remoting]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Formação]]></category>
		<category><![CDATA[Introduções]]></category>
		<category><![CDATA[RIAPT]]></category>
		<category><![CDATA[Tutoriais]]></category>

		<guid isPermaLink="false">http://www.riapt.org/?p=289</guid>
		<description><![CDATA[Há cerca de dois meses fui contactado pelo David Sousa da revista Invest para dar uma entrevista sobre Rich Internet Applications. Essa entrevista serviria de base para que construissem um artigo que saiu no número deste mês, e que passei a scanner e coloquei abaixo (clique para ampliar): Só tive acesso ao artigo após ter [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Há cerca de dois meses fui contactado pelo David Sousa da <a href="http://www.revista-invest.com">revista Invest</a> para dar uma entrevista sobre Rich Internet Applications. Essa entrevista serviria de base para que construissem um artigo que saiu no número deste mês, e que passei a scanner e coloquei abaixo (clique para ampliar):</p>
<p style="text-align: center;">
<p style="text-align: center;"><a href="http://www.riapt.org/wp-content/uploads/2008/08/invest.jpg"><img class="size-medium wp-image-290 alignnone" title="invest" src="http://www.riapt.org/wp-content/uploads/2008/08/invest-300x230.jpg" alt="" width="300" height="230" /></a></p>
<p style="text-align: center;">
<p>Só tive acesso ao artigo após ter dado entrada na gráfica, pelo que, na minha opinião, há algumas passagens que poderiam ter ficado mais precisas &#8211; nomeadamente, ser referida a Microsoft e não ser referida a Adobe (!!!), dar em alguns pontos a sensação de que as RIAs são gratuítas, e confundir-se algumas características que pertencem geralmente às Web Applications como características das RIAs. Ainda assim o artigo refere e bem a importância das RIAs para o negócio.</p>
<p>Coloco abaixo a entrevista original, que é mais específica e pormenorizada, podendo ser muito útil para elucidar algumas questões mais ligadas ao negócio que são feitas habitualmente por quem quer saber mais sobre o assunto. Curiosamente, estas são as questões que me são habitualmente feitas pelos clientes. Recordo que a entrevista não foi feita para publicação mas sim para ajudar o autor do artigo, pelo que poderão haver algumas &#8220;gralhas&#8221; de português.</p>
<p style="text-align: center;">
<h2 style="text-align: left;">A entrevista original</h2>
<p style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;"><span style="color: black;"><span style="color: #333333;"><span style="font-family: Tahoma,Helvetica,Sans-Serif;"><span style="font-size: small;"><strong>1- O que são as aplicações RIA?</strong></span></span></span></span></p>
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;">Rich Internet Applications são aplicações com um interface gráfico, funcionalidades e interacção semelhantes ao de uma aplicação desktop, tal como o Microsoft Word, mas que correm dentro do web-browser. Imagine que não precisaria de instalar o Microsoft Word, sendo que para o usar bastaria abrir um endereço no seu web-browser. O endereço <a class="EC_moz-txt-link-freetext" href="http://www.buzzword.com/" target="_blank">http://www.buzzword.com/</a> pode ser tomado como um exemplo de um processador de texto colaborativo no formato RIA.</p>
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;"><span style="color: black;"><span style="color: #333333;"><strong> </strong><span style="font-family: Tahoma,Helvetica,Sans-Serif;"><span style="font-size: small;"><strong>2- Porque surgiram estas aplicações?</strong></span></span></span></span></p>
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;">Este tipo de aplicações surgiu de uma evolução natural do software. Hoje em dia queremos aceder aos nossos dados e aplicações de qualquer local, dispositivo, e sistema operativo. Queremos simplicidade, não ter que passar pelo processo de instalação de software nem termos que nos preocupar com manutenção. Numa empresa, por exemplo, é penoso ter que instalar software em centenas ou milhares de computadores, dar manutenção, fazer actualizações, e por aí adiante &#8211; implica elevados custos, e demasiado tempo perdido. Daí as empresas hoje em dia terem convergido para o modelo de &#8220;Web-Application&#8221; &#8211; aplicações baseadas em html que correm remotamente sem terem que ser instaladas nos terminais. Infelizmente, as web-applications apesar de práticas possuem limitações a nível de interface gráfico e funcionalidades, sendo complicado imitar a interacção e objectividade do software desktop. As RIAs são no fundo o próximo passo: pegar no melhor das aplicações Web e das aplicações Desktop e juntar num único conceito.</p>
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;"><span style="color: black;"><span style="font-size: small; font-family: Tahoma,Helvetica,Sans-Serif; color: #333333;"> </span></span></p>
<p class="EC_MsoNormal" style="text-align: left;"><strong><span style="color: black;"><span style="color: #333333;"><span style="font-family: Tahoma,Helvetica,Sans-Serif;"><span style="font-size: small;">3- Quais os seus objectivos principais?</span></span></span></span></strong></p>
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;">As RIAs objectivam o mesmo que qualquer outra solução de software: resolver problemas. O cliente tem um problema, e precisa de uma solução. Essa solução pode ser desenvolvida no modelo &#8220;Desktop Application&#8221;, no modelo &#8220;Web Application&#8221;, e agora no modelo &#8220;RIA&#8221;. Portanto a nível de requisitos funcionais, os objectivos são os mesmos: resolver os problemas de negócio.<br />
Porém, no que toca aos requisitos não funcionais &#8211; que se prendem com as características tecnológicas das aplicações &#8211; pretende-se com as RIAs disponibilizar software acessível de qualquer local e computador com ou sem restrições de segurança sendo dado especial destaque ao Interface Gráfico e interacção com o utilizador com vista a que o software seja o tão fácil de usar quanto possível. Regra geral é desdenhada a importância do interface gráfico e simplicidade de utilização, sendo esse um dos primeiros pontos que os clientes cortam no investimento &#8211; porém, surge a questão: de que serve software que funciona se ninguém o souber usar eficientemente?<br />
Outra característica comum nas RIAs é que facilitam a colaboração: é possível que várias pessoas trabalhem sobre os mesmos dados ao mesmo tempo. Este é por exemplo o principal ponto forte do Buzzword: permite que várias pessoas estejam a trabalhar sobre o mesmo documento, algo que actualmente com o Microsoft Word não é possível.</p>
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;"><span style="color: black;"><span style="font-size: small; font-family: Tahoma,Helvetica,Sans-Serif; color: #333333;"> </span></span></p>
<p class="EC_MsoNormal" style="text-align: left;"><span style="color: black;"><span style="color: #333333;"><span style="font-family: Tahoma,Helvetica,Sans-Serif;"><span style="font-size: small;"><strong>4- Quem produz essas aplicações (empresas estrangeiras, portuguesas)? Há empresas a trabalhar exclusivamente nelas?</strong></span></span></span></span></p>
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;">Sobretudo empresas estrangeiras. Posso referir com convicção a Cynergy Systems (<a class="EC_moz-txt-link-freetext" href="http://www.cynergysystems.com/" target="_blank">http://www.cynergysystems.com/</a>), líder mundial na matéria, a Fantasy Interactive, mais dotada no lado criativo (<a class="EC_moz-txt-link-freetext" href="http://www.fantasy-interactive.com/" target="_blank">http://www.fantasy-interactive.com/</a>) e a EffectiveUI (<a class="EC_moz-txt-link-freetext" href="http://www.effectiveui.com/" target="_blank">http://www.effectiveui.com/</a>).<br />
Em Portugal o conceito ainda é recente, e só agora se começa a ver algum interesse &#8211; em parte, um pouco graças aos <a class="EC_moz-txt-link-abbreviated" href="../" target="_blank">www.riapt.org</a>. Sei que existem algumas consultoras interessadas em apostar na matéria devido a contactos regulares que tenho recebido com questões sobre as tecnologias de desenvolvimento, procurando por técnicos especializados, ou solicitando a minha disponibilidade para dar formação e prestar serviços.<br />
Enquanto estive em Madrid no Adobe onAir Tour &#8211; um evento sobre o assunto &#8211; conheci a Buzz-ID (<a class="EC_moz-txt-link-freetext" href="http://www.buzz-id.com/" target="_blank">http://www.buzz-id.com/</a>), uma PME portuguesa que começa a dar cartas interessantes nesta matéria. No meu caso pessoal, comecei em 2005 a reunir esforços para criar uma equipa especializada na matéria &#8211; a <a href="http://www.webfuel.pt">Webfuel</a>. Nestes dois anos estivemos essencialmente a reunir o know-how, a definir workflows e a preparar-mo-nos para o mercado. <span style="text-decoration: line-through;">Neste momento falta simplesmente o &#8220;clique&#8221; &#8211; os clientes e projectos certos &#8211; para o arranque definitivo.</span> (<em>Neste momento já demos o clique e já ninguém nos pára </em>)</p>
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;"><span style="color: black;"><span style="font-size: small; font-family: Tahoma,Helvetica,Sans-Serif; color: #333333;"> </span></span></p>
<p class="EC_MsoNormal" style="text-align: left;"><span style="color: black;"><span style="color: #333333;"><span style="font-family: Tahoma,Helvetica,Sans-Serif;"><span style="font-size: small;"><strong>5- A quem se destinam estas aplicações?</strong></span></span></span></span></p>
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;">Estas aplicações são como quaisquer outras aplicações, portanto o destinatário é simplesmente qualquer utilizador de software que precise de uma ferramenta para o ajudar em algo. As RIAs podem portanto destinar-se ao end-user &#8211; que precisa por exemplo de ferramentas de manipulação de imagem, de processamento de texto, de agregração de informação, colaboração, etc &#8211; ou ao negócio em si &#8211; qualquer aplicação de business intelligence. Obviamente que os principais interessados serão aqueles que querem tirar partido do facto de não terem que instalar as aplicações podendo usá-las a partir de qualquer local e dispositivo mas sem se quererem limitar à típica &#8220;web application&#8221; baseada em HTML. Muitas empresas estrangeiras que trabalham com SAP começaram a desenvolver a camada de front-end das suas aplicações em tecnologias de desenvolvimento de RIAs &#8211; como o Adobe Flex -, integrando com os backends SAP existentes. A título de curiosidade, a SAP disponibiliza um livro exactamente sobre a integração com o Adobe Flex, e aborda os conceitos de RIA: <a class="EC_moz-txt-link-freetext" href="http://www.sappress.com/product.cfm?account=&amp;product=H1951" target="_blank">http://www.sappress.com/product.cfm?account=&amp;product=H1951</a></p>
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;"><span style="color: black;"><span style="font-size: small; font-family: Tahoma,Helvetica,Sans-Serif; color: #333333;"> </span></span></p>
<p class="EC_MsoNormal" style="text-align: left;"><strong><span style="color: black;"><span style="color: #333333;"><span style="font-family: Tahoma,Helvetica,Sans-Serif;"><span style="font-size: small;">6- Quanto custa a sua criação?</span></span></span></span></strong></p>
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;">Em termos de negócio, a diferença de uma RIA para outra aplicação reside sobretudo na camada de front-end. O investimento no backend é exactamente o mesmo, sendo que este simplesmente irá expôr os seus serviços tal como anteriormente na forma de Web-Services ou outra solução de comunicação (como o Flash Remoting). O investimento adicional é feito sobre a camada de front-end que implica colocar na equipa de desenvolvimento especialistas em design, interaction design, usabilidade e user experience. Porém, face ao custo total das aplicações habituais, o investimento adicional é ligeiro, facilmente suportável e perfeitamente justificado.</p>
<p class="EC_MsoNormal" style="text-align: left;"><span style="color: black;"><span style="font-size: small; font-family: Tahoma,Helvetica,Sans-Serif; color: #333333;"><br />
</span></span></p>
<p class="EC_MsoNormal" style="text-align: left;"><span style="color: black;"><span style="color: #333333;"><span style="font-family: Tahoma,Helvetica,Sans-Serif;"><span style="font-size: small;"><strong>7- Qual o lucro/retorno que as empresas que criam estas aplicações obtêm ou esperam obter?</strong></span></span></span></span></p>
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;">O ROI não é sobretudo dirigido a quem desenvolve o software, mas a quem o usa. As empresas que criam estas aplicações não são diferentes das outras empresas de desenvolvimento de software. Simplesmente, investiram numa área de ponta, inseriram na sua equipa criativos e especialistas nas plataformas de RIAs, de forma a desenvolver software que resulta na satisfação do cliente pela sua simplicidade de adopção e utilização.<br />
Porém, empresas de desenvolvimento que criem as suas próprias aplicações genéricas podem usufruir de um novo modelo de negócio de distribuição de software denominado de &#8220;pay-per-use&#8221;. Ao invés de venderem um pacote que o cliente tem que comprar e instalar no seu computador, simplesmente disponibilizam a aplicação na Internet que pode ser usada através de um fee mensal, anual ou simplesmente pontual. (<em>Faltou referir o modelo de negócio <a href="http://en.wikipedia.org/wiki/Software_as_a_Service">Software as a Service</a></em>). A manutenção é feita simplesmente actualizando a aplicação no servidor central, sendo benéfico para quem desenvolve e para quem usa. Obtém-se um modelo de negócio mais fácil de gerir, e mais justo para ambas as partes. Uma vantagem que interessa realçar é que neste modelo não é possível piratear software. O que o utilizador compra é um acesso periódico à aplicação, pelo que a única hipótese para um pirata é roubar o acesso a outra pessoa.</p>
<p class="EC_MsoNormal" style="text-align: left;">Em certos casos específicos, também se pode adoptar um modelo de negócio de revenue-sharing, em que a empresa que desenvolve recebe parte dos lucros que a empresa que utiliza gera através do produto de software.<br />
Outro modelo de negócio que não acho tão interessante, é a remuneração por publicidade, em que são colocados anúncios no meio da aplicação. Porém, é uma solução que a meu ver apenas se justifica em aplicações relacionadas com redes sociais online, e que para o negócio em si não faz sentido nenhum.</p>
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;"><span style="color: black;"><span style="font-size: small; font-family: Tahoma,Helvetica,Sans-Serif; color: #333333;"> </span></span></p>
<p class="EC_MsoNormal" style="text-align: left;"><span style="color: black;"><span style="color: #333333;"><span style="font-family: Tahoma,Helvetica,Sans-Serif;"><span style="font-size: small;"><strong>8- Que género de aplicações vão ser reformuladas para o formato RIA?</strong></span></span></span></span></p>
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;">Quaisquer aplicações que não estejam dependentes das limitações da largura de banda actual, ou das restrições de segurança dos plugins das tecnologias em que se baseiam as RIAs. A título exemplificativo, podemos ir desde backoffices, CRMs, aplicações B2B, B2C às simples aplicações e ferramentas destinadas ao end-user, como processadores de texto, folhas de cálculo ou editores de imagem.</p>
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;"><span style="color: black;"><span style="font-size: small; font-family: Tahoma,Helvetica,Sans-Serif; color: #333333;"> </span></span></p>
<p class="EC_MsoNormal" style="text-align: left;"><span style="color: black;"><span style="color: #333333;"><span style="font-family: Tahoma,Helvetica,Sans-Serif;"><span style="font-size: small;"><strong>9- Quais as vantagens/desvantagens deste tipo de aplicações para as empresas clientes?</strong></span></span></span></span></p>
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;">O custo de instalação de software desktop em centenas ou milhares de computadores é alto. No caso das aplicações empresariais, temos uma redução drástica no custo de deployment, na medida em que basta colocar a aplicação num servidor HTTP, e a partir daí milhares de terminais ficam com a aplicação disponível através do web-browser.  Além de que, ao se eliminar o passo do deployment, também se obtém um time-to-market muito menor, diminuindo o gap desde o momento em que se fechou o desenvolvimento até ao momento de início da sua utilização em ambiente de produção.<br />
Na manutenção consegue-se novamente obter uma redução drástica de custos, visto que basta dar manutenção a um único ponto: o servidor HTTP onde é disponibilizada a aplicação. Ao actualizar essa aplicação, actualiza todos os clientes &#8220;em simultâneo&#8221;.</p>
<p class="EC_MsoNormal" style="text-align: left;">Quanto à sua utilização, o facto de regra geral serem dotadas de melhores interfaces gráficos resulta numa maior produtividade por parte dos seus utilizadores que se sentem mais confortáveis com a aplicação. Outra ponto que interessa realçar é que as RIAs são muito mais eficientes que as típicas web-applications no que toca à troca de informação com o servidor, obtendo-se tempos de espera muito menores.</p>
<p class="EC_MsoNormal" style="text-align: left;">Imaginemos por exemplo uma aplicação de B2B de gestão de stocks e encomendas. Um distribuidor pretende que os retalhistas com quem trabalha possam usar uma aplicação do distribuidor para fazer reposição de stocks. Se essa aplicação for uma RIA o distribuidor terá somente que entregar ao retalhista o URL da aplicação, com as respectivas credenciais de acesso. O retalhista simplesmente terá que utilizar o seu web-browser para abrir a aplicação, fazer o login, e utilizá-la. Isto é algo que acontece actualmente com as aplicações web, mas no caso das RIAs o retalhista irá usar algo que é realmente uma aplicação, com um interface gráfico e interacção em tudo idênticos ao software desktop, e não um conjunto de páginas HTML que se assemelham a uma aplicação.</p>
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;"><span style="color: black;"><span style="font-size: small; font-family: Tahoma,Helvetica,Sans-Serif; color: #333333;"> </span></span></p>
<p class="EC_MsoNormal" style="text-align: left;"><span style="color: black;"><span style="color: #333333;"><span style="font-family: Tahoma,Helvetica,Sans-Serif;"><span style="font-size: small;"><strong>10- Como é feito o controlo de acesso e a segurança às redes RIA?</strong></span></span></span></span></p>
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;">Os sistemas de controlo de acessos e a segurança são em tudo idênticas às actuais aplicações Web. Os paradigmas e preocupações são exactamente os mesmos, pelo que não há alteração nem no investimento nem no know-how necessário. Qualquer aplicação distribuída, seja ela desktop, web, ou ria, que troque dados num canal deverá garantir que esse canal é seguro através de algumas técnicas habituais &#8211; como o https.</p>
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;"><span style="color: black;"><span style="font-size: small; font-family: Tahoma,Helvetica,Sans-Serif; color: #333333;"> </span></span></p>
<p class="EC_MsoNormal" style="text-align: left;"><span style="color: black;"><span style="color: #333333;"><span style="font-family: Tahoma,Helvetica,Sans-Serif;"><span style="font-size: small;"><strong>11- Não há riscos acrescidos de pirataria informática e uma espécie de terrorismo financeiro (caso haja bases de dados financeiras disponíveis na rede)?</strong></span></span></span></span></p>
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;">Não mais que o risco actualmente existente quando utiliza um sistema de home-banking, como o CaixaDirecta. Porém, é natural que com a proliferação das aplicações RIAs surjam empresas com lacunas a nível de desenvolvimento e segurança e seja complicado para o utilizador distinguir se deve confiar nessa empresa/aplicação ou não. Mas como sabe que pode confiar no seu sistema de home-banking?  Os riscos dependem sobretudo da seriedade e experiência da equipa de desenvolvimento, e do investimento que foi feito em segurança.</p>
<p style="text-align: left;">No caso de aplicações críticas, estas podem e devem ser colocadas a correr em ambientes controlados, em que a aplicação está acessível somente dentro da rede da empresa. O acesso externo poderá ser concedido em condições especiais, como por exemplo, VPN&#8217;s, ou a partes limitadas do sistema consoante as credenciais do utilizador.</p>
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;"><span style="color: black;"><span style="font-size: small; font-family: Tahoma,Helvetica,Sans-Serif; color: #333333;"> </span></span></p>
<p class="EC_MsoNormal" style="text-align: left;"><strong><span style="color: black;"><span style="color: #333333;"><span style="font-family: Tahoma,Helvetica,Sans-Serif;"><span style="font-size: small;">12- Como irá funcionar a utilização destas aplicações? </span></span></span></span></strong></p>
<p class="EC_MsoNormal" style="text-align: left;"><span style="color: black;"><span style="font-size: small; font-family: Tahoma,Helvetica,Sans-Serif; color: #333333;"><br />
</span></span></p>
<p class="EC_MsoNormal" style="text-align: left;">Simples: abre o seu browser, que regra geral vem equipado com um plugin como o Adobe Flash Player ou Microsoft Silverlight e coloca o endereço da aplicação. Por vezes pode ser necessário fazer um login, mas a partir daí a utilização da aplicação será em tudo idêntica à utilização do seu software habitual. Existem algumas pequenas limitações nos plugins que raramente se notam, mas independentemente disso estou convicto que até ao final deste ano até essas limitações estarão completamente ultrapassadas. (<em>Falava do <a href="http://labs.adobe.com/technologies/flashplayer10/">Flash Player 10</a></em>)</p>
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;"><span style="color: black;"><span style="color: #333333;"><span style="font-family: Tahoma,Helvetica,Sans-Serif;"><span style="font-size: small;"><strong>13- É sabido que algumas das aplicações são open-source e outras são pagas. Como são definidas as que terão custos e o que as tornam pagas?</strong></span></span></span></span></p>
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;">Cabe a quem desenvolve tomar essa decisão. Tem exclusivamente a ver com o modelo de negócio escolhido, e com as vantagens e desvantagens dos modelos de licenciamento de software aberto ou fechado. Há casos em que o software open-source é completamente justificado. Por exemplo, a empresa decide disponibilizar gratuitamente o código fonte sendo as receitas geradas pelo suporte e formação. Ou ainda, porque desenvolveu um produto para optimizar o seu negócio (i.e. as receitas são resultantes do negócio e não da venda do software), e acha que se disponibilizar o código fonte do seu produto este irá melhorar com o tempo graças à participação de outras pessoas, resultando consequentemente numa mais valia para o seu negócio que se torna mais eficiente à medida que o software é melhorado.</p>
<p class="EC_MsoNormal" style="text-align: left;">Porém, está é uma questão que não é inerente às RIAs, mas a qualquer tipo de software.</p>
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;"><span style="color: black;"><span style="font-size: small; font-family: Tahoma,Helvetica,Sans-Serif; color: #333333;"> </span></span></p>
<p class="EC_MsoNormal" style="text-align: left;"><span style="color: black;"><span style="color: #333333;"><span style="font-family: Tahoma,Helvetica,Sans-Serif;"><span style="font-size: small;"><strong>14- O que se espera do mercado das aplicações desktop? Vai entrar em falência?</strong></span></span></span></span></p>
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;">Não acredito. Simplesmente vai ter que se adaptar a uma nova realidade, em que o destaque está nos dados e não na aplicação, e aprender a co-existir com as Rich Internet Applications. Começa a surgir um novo conceito, o de Rich Desktop Application. Uma Rich Desktop Application (RDA) consiste numa aplicação que é instalada no nosso computador, mas que regra geral é composta essencialmente por um interface gráfico. Os dados e a camada de negócio encontram-se num servidor remoto. E porque queremos instalar uma RDA no nosso computador, se podemos usar uma RIA? Porque podemos não estar sempre ligados à Internet, e não queremos deixar de usar as nossas aplicações quando a ligação está indisponível -  neste caso, quando a ligação é reposta, os dados são sincronizados com o servidor. Ou simplesmente porque as RDAs não estão limitadas pelas restrições de segurança das sandboxes dos plugins sobre as quais assentam as RIAs, permitindo uma maior integração com o sistema operativo.</p>
<p class="EC_MsoNormal" style="text-align: left;">Como disse atrás, o destaque hoje em dia está nos dados e não na aplicação em si. O que o utilizador quer é ubiquidade: manipular os seus dados a partir de qualquer local, independentemente do sistema operativo, dispositivo, ou meio de acesso. O que é criado pelas equipas de desenvolvimento são diferentes terminais: Desktop, Web, RIA, ou mesmo aplicações móveis, mas todos eles acedem e manipulam os mesmos dados. Tecnologias de desenvolvimento de RIAs como o Adobe Flex permitem facilmente criar uma RIA, e depois reutilizar o código para criar uma RDA (neste caso, assente sobre Adobe Air).</p>
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;"><span style="color: black;"><span style="font-size: small; font-family: Tahoma,Helvetica,Sans-Serif; color: #333333;"> </span></span></p>
<p class="EC_MsoNormal" style="text-align: left;"><span style="color: black;"><span style="color: #333333;"><span style="font-family: Tahoma,Helvetica,Sans-Serif;"><span style="font-size: small;"><strong>15- Existem problemas de compatibilidade entre máquinas e sistemas informáticos (ex: PC e MAC)?</strong></span></span></span></span></p>
<p class="EC_MsoNormal" style="text-align: left;">
<p class="EC_MsoNormal" style="text-align: left;">A compatibilidade de acesso a uma RIA é definida pelo suporte do plugin sobre o qual a RIA assente nos diferentes sistemas operativos.<br />
O Flash Player, por exemplo, é actualmente suportado em Windows (XP, Vista, 2003, 2000, ME e 98), Linux, Macintosh e Solaris, com uma penetração na ordem dos 95% (<a class="EC_moz-txt-link-freetext" href="http://www.adobe.com/products/player_census/flashplayer/version_penetration.html" target="_blank">http://www.adobe.com/products/player_census/flashplayer/version_penetration.html</a>) . A versão Lite do Flash Player pode ainda correr em dispositivos móveis, mas implica a criação de source code específico para essa versão.<br />
O Microsoft Silverlight é actualmente suportado em Windows (Vista,2003, XP) e Mac OS. Está a ser desenvolvido suporte para Linux, e para dispositivos móveis com Windows Mobile 6 e Symbian S60.<br />
A Adobe possui ainda uma tecnologia denominada Adobe Air que permite transformar uma RIA numa RDA dando-lhe funcionalidades adicionais de integração com o sistema operativo. O Adobe Air é compatível de forma idêntica em todos os sistemas operativos, tal como o Flash Player.</p>
<p style="text-align: left;">Em resumo, uma das vantagens das RIAs é efectivamente o facto de que não está dependente do sistema operativo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.riapt.org/2008/08/08/artigo-sobre-rich-internet-applications-na-revista-invest/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Slides da apresentação &#8220;Rich Internet Applications na plataforma Flash com Flex e Air&#8221;</title>
		<link>http://www.riapt.org/2008/06/06/slides-da-apresentacao-rich-internet-applications-na-plataforma-flash-com-flex-e-air/</link>
		<comments>http://www.riapt.org/2008/06/06/slides-da-apresentacao-rich-internet-applications-na-plataforma-flash-com-flex-e-air/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 11:58:51 +0000</pubDate>
		<dc:creator>João Saleiro</dc:creator>
				<category><![CDATA[Adobe Air]]></category>
		<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Introduções]]></category>
		<category><![CDATA[RIAPT]]></category>
		<category><![CDATA[Showcase]]></category>

		<guid isPermaLink="false">http://www.riapt.org/?p=273</guid>
		<description><![CDATA[Ontem decorreu no CCB um evento da Adobe onde eu e o João Fernandes fizemos a apresentação sobre RIAs na plataforma Flash com Flex e Air. Numa audiência com cerca de 250 pessoas, apenas umas 8 já tinham experimentado o Flex ou sabiam o que eram RIAs. Ah&#8230; não referi que o evento era destinado [...]]]></description>
			<content:encoded><![CDATA[<p>Ontem decorreu no CCB um evento da Adobe onde eu e o João Fernandes fizemos a apresentação sobre RIAs na plataforma Flash com Flex e Air. Numa audiência com cerca de 250 pessoas, apenas umas 8 já tinham experimentado o Flex ou sabiam o que eram RIAs. Ah&#8230; não referi que o evento era destinado a criativos.</p>
<p>Deixo <a href="http://www.riapt.org/wp-content/uploads/2008/06/riapt-1.pdf">aqui</a> os slides da nossa apresentação. São úteis para quem não sabe o que são RIAs, nem conhece Flex e Air.</p>
<p>O tempo da nossa apresentação era muito limitado (30 minutos), pelo que não houve espaço para questões. Estejam por isso à vontade de me contactar directamente para joao [dot] saleiro [at] webfuel [dot] pt , ou através da <a href="http://www.riapt.org/mailing-list/">mailing list</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.riapt.org/2008/06/06/slides-da-apresentacao-rich-internet-applications-na-plataforma-flash-com-flex-e-air/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Eventos nas próximas duas semanas</title>
		<link>http://www.riapt.org/2008/05/18/eventos-nas-proximas-duas-semanas/</link>
		<comments>http://www.riapt.org/2008/05/18/eventos-nas-proximas-duas-semanas/#comments</comments>
		<pubDate>Sun, 18 May 2008 13:40:35 +0000</pubDate>
		<dc:creator>João Saleiro</dc:creator>
				<category><![CDATA[Adobe Air]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Formação]]></category>
		<category><![CDATA[Introduções]]></category>
		<category><![CDATA[RIAPT]]></category>

		<guid isPermaLink="false">http://www.riapt.org/?p=266</guid>
		<description><![CDATA[As próximas duas semanas serão repletas de eventos relevantes. Aqui vai a &#8220;agenda&#8221;: Sapo Unplugged 08 &#8211; Usabilidade Dia: 21 de Maio Local: Reitoria da Universidade de Aveiro Mais informações: http://labs.sapo.pt/eventos/unplugged08/plugged.html Agenda: [14h] Abertura da conferência (Fernando Ramos e Celso Martinho); Henning Fisher da Adaptive Path; Oscar Mealha da Universidade de Aveiro; Pedro Branco da [...]]]></description>
			<content:encoded><![CDATA[<p>As próximas duas semanas serão repletas de eventos relevantes. Aqui vai a &#8220;agenda&#8221;:</p>
<h2>Sapo Unplugged 08 &#8211; Usabilidade</h2>
<p><strong>Dia</strong>: 21 de Maio</p>
<p><strong>Local</strong>: Reitoria da Universidade de Aveiro</p>
<p><strong>Mais informações</strong>: <a href="http://labs.sapo.pt/eventos/unplugged08/plugged.html">http://labs.sapo.pt/eventos/unplugged08/plugged.html</a></p>
<p><strong>Agenda</strong>:</p>
<ul>
<li>[14h] Abertura da conferência (Fernando Ramos e Celso Martinho);</li>
<li>Henning Fisher da <a href="http://adaptivepath.com/">Adaptive Path</a>;</li>
<li>Oscar Mealha da Universidade de Aveiro;</li>
<li>Pedro Branco da Universidade do Minho;</li>
<li>[16h] Coffee Break;</li>
<li>Ivo Gomes;</li>
<li>Bruno Figueiredo;</li>
<li>Pedro Custódio da <a href="http://www.sapo.pt/">Sapo</a>;</li>
<li>[18h30] Encerramento (Celso Martinho e Pedro Custódio);</li>
</ul>
<p><strong><br />
</strong><a href="http://labs.sapo.pt/eventos/unplugged08/plugged.html"></a></p>
<h2>BarCampFCT</h2>
<p><strong>Dia</strong>: 24 de Maio</p>
<p><strong>Local</strong>: Departamento de Matemática da FCT, UNL</p>
<p><strong>Mais informações</strong>: <a href="http://fct.enses.org/barcamp/app/">http://fct.enses.org/barcamp/app/</a></p>
<p><strong>Agenda</strong>:</p>
<p>A agenda é flexível, como é costume nos <a href="http://en.wikipedia.org/wiki/BarCamp">BarCamps</a>, mas conta com apresentações como:</p>
<ul>
<li>Social Experience for Newbies;</li>
<li>From applications to services, ending as infrastructure;</li>
<li>Empreendedorismo nas Universidades;</li>
<li>etc&#8230;</li>
</ul>
<p><strong><br />
</strong><a href="http://fct.enses.org/barcamp/app/"></a></p>
<h2>Encontro #2 do Adobe User Group</h2>
<p><strong>Dia</strong>: 31 de Maio</p>
<p><strong>Local</strong>: Faculdade de Engenharia da Universidade do Porto</p>
<p><strong>Mais informações</strong>: <a href="http://aug.riapt.org/">http://aug.riapt.org/</a></p>
<p><strong>Agenda</strong>:</p>
<ul>
<li>Rich Internet Applications na plataforma Flash usando Flex e Air (João Saleiro e João Fernandes);</li>
<li>Flash Platform na <a href="http://www.alert.pt/">Alert</a>: passado, presente e futuro;</li>
<li>[Tema em aberto - proponha o seu tema na <a href="http://www.riapt.org/mailing-list/">mailing list</a>].</li>
</ul>
<p><strong><br />
</strong><a href="http://aug.riapt.org/"></a></p>
<h2>Evento de criativos em Lisboa (by Adobe)</h2>
<p><strong>Dia</strong>: 5 de Junho</p>
<p><strong>Local</strong>: Centro Cultural de Belém</p>
<p><strong>Mais informações</strong> <a href="http://events.adobe.co.uk/cgi-bin/event.cgi?country=pt&amp;eventid=6815#datesAndLocations"><strong>aqui</strong></a></p>
<p><strong>Agenda</strong>:</p>
<ul>
<li>[9:30-10:00] Boas-vindas e Agenda: Os desafios do profissional criativo;</li>
<li>[10:00-10:30] Novas Tecnologias Adobe &#8211; Flash, Flex, AIR. Novas formas de chegar aos seus Clientes;</li>
<li>[10:30-11:30] Fluxo de trabalho num estúdio de design com o Adobe Creative Suite CS3 Design Premium;</li>
<li>[11:30-12:00] Coffee Break</li>
<li>[12:00-13:00] Mais possibilidades para a criação de páginas e aplicações interactivas com o Creative Suite CS3 Web Premium</li>
<li>[13:00-14:00] Creatividade em vídeo de alta qualidade. Monte a sua própria TV na web com o Adobe Creative Suite CS3 Production Premium</li>
<li>[14:00-14:15] &#8211; Encerramento do Evento</li>
</ul>
<p><strong><br />
</strong><a href="http://events.adobe.co.uk/cgi-bin/event.cgi?country=pt&amp;eventid=6815#datesAndLocations"><strong></strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.riapt.org/2008/05/18/eventos-nas-proximas-duas-semanas/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

