<?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>TSW - That Should Work Blog</title>
	<atom:link href="http://blog.msdevstudio.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.msdevstudio.net</link>
	<description>Flash, Flex, Web e Aplicações Ricas para Internet!</description>
	<lastBuildDate>Tue, 07 Feb 2012 18:30:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Apache Flex &#124; Possivel interesse em novo projeto</title>
		<link>http://blog.msdevstudio.net/2012/02/07/apache-flex-possivel-interesse-em-novo-projeto/</link>
		<comments>http://blog.msdevstudio.net/2012/02/07/apache-flex-possivel-interesse-em-novo-projeto/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 18:30:10 +0000</pubDate>
		<dc:creator>Mário Santos</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA's Geral]]></category>
		<category><![CDATA[apache flex]]></category>
		<category><![CDATA[freelancing]]></category>
		<category><![CDATA[projeto]]></category>

		<guid isPermaLink="false">http://blog.msdevstudio.net/?p=2192</guid>
		<description><![CDATA[Caros Leitores, segue um comentário em meu blog que alguem que procura um desenvolver Flex para um novo projeto. Segue o comentário, &#160; Olá! Preciso de um profissional com experiência em Adobe Flex para um projeto de cliente. Precisa ter portfólio na área e já ter feito algum trabalho de edição de imagem com Flex. [...]]]></description>
			<content:encoded><![CDATA[<p>Caros Leitores, segue um comentário em meu blog que alguem que procura um desenvolver Flex para um novo projeto.</p>
<p>Segue o comentário,</p>
<p>&nbsp;</p>
<blockquote><p><em>Olá! Preciso de um profissional com experiência em Adobe Flex para um projeto de cliente. Precisa ter portfólio na área e já ter feito algum trabalho de edição de imagem com Flex.</em></p>
<p><em>Quem tiver interesse, acesse meu site e me mande um email.</em></p>
<p><em>Obrigado.</em></p>
<p><em>Site: <a href="http://www.mmsweb.com.br/">http://www.mmsweb.com.br/</a></em></p></blockquote>
<p>&nbsp;</p>
<p>Abraço.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.msdevstudio.net/2012/02/07/apache-flex-possivel-interesse-em-novo-projeto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2012 esta ai&#8230;</title>
		<link>http://blog.msdevstudio.net/2011/12/29/2012-esta-ai/</link>
		<comments>http://blog.msdevstudio.net/2011/12/29/2012-esta-ai/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 11:23:43 +0000</pubDate>
		<dc:creator>Mário Santos</dc:creator>
				<category><![CDATA[Notícias]]></category>

		<guid isPermaLink="false">http://blog.msdevstudio.net/?p=2185</guid>
		<description><![CDATA[Bom, o novo ano esta ai à porta e muita gente trata de deixar os seus pensamentos e projectos para o novo ano, é interessante ver chegar ao final do ano e perceber se todos os objectivos definidos para este ano foram atingidos, claro que isso não influencia em nada a nossa vida mas o sentimento de missão cumprida e desafio é sempre muito [...]]]></description>
			<content:encoded><![CDATA[<p>Bom, o novo ano esta ai à porta e muita gente trata de deixar os seus pensamentos e projectos para o novo ano, é interessante ver chegar ao final do ano e perceber se todos os objectivos definidos para este ano foram atingidos, claro que isso não influencia em nada a nossa vida mas o sentimento de missão cumprida e desafio é sempre muito saudável.</p>
<p>No final do ano passado tinha estipulado como metas o aumento de conhecimento de Java, C#, Postgress e claro, Flex 4. Em todos eles consegui alguns avanços o que me deixou com um otimo espectro de linguagens, mas infelizmente não consegui tempo para dar uma olhada  no FMS nem nas bases de dados Oracle mas quem sabe para o próximo ano o consigo fazer.</p>
<p>Este ano que passou, trouxe grandes novidades, muitas surpresas e algumas desilusões, desde o inicio da penetração do flash para mobile nos smartphones ate ao seu abandono. O grande avanço da plataforma Flash para mobile também marcou o mercado, como o deploy de aplicações em flash/flex para markets mobile, mas ao mesmo tempo mais uma triste noticia que deixou muita gente surpresa, a Adobe acabava por abandonar o desenvolvimento do Flex, concentrando-se nas tecnologias emergentes como o HTML5 e jQuery Mobile.</p>
<p>Sem esquecer da morte do visionário Steve Jobs, que apesar de não ser Apple fan, reconheço que ele foi um &#8220;game changer&#8221; tanto na própria Apple, como no mundo da tecnologia, principalmente mobile.</p>
<p>O final deste ano também me fez mudar de ambiente de trabalho, juntando-me a um amigo de longa data numa empresa onde acabei por iniciar-me no mundo mobile (HTML5/jQuery Mobile) mesmo ainda antes do abandono do Flash Mobile e do Flex SDK o que acabou por ser muito curioso. Claramente ainda muito pouco maduras, ambas as tecnologias (HTML5 / jQuery Mobile) ainda mostram muitos pontos fracos principalmente a fragmentação e as diferentes/próprias implementações de variados elementos não compatíveis com os padrões (w3) faz com que o desenvolvimento se torne mais dispendioso. Se contar com a falhas de performance em mobile, falta de componentes, fracos comportamentos, muitos problemas de compatibilidade cross-browser e conhecendo o Flex como conheço, dificilmente nos próximos 3 a 5 anos o flex será substituído pelo HTML5 como muitos o afirmam.</p>
<p>Bom, neste novo ano muitos desafios se avizinham nesta nova etapa do meu trabalho principalmente a nível de aprendizagem e desenvolvimento em outras tecnologias. Pensado que o HTML5 / Mobile vai ser um grande foco, será com certeza uma grande experiência e enriquecimento para mim.</p>
<p>Finalmente, 2011 também ficou marcado por cada vez menos tempo disponível para actualizar o blog, mas sempre que possível la fui colocando um ou outro artigo. Sera algo que também quero mudar no próximo ano, dedicando um pouco mais de tempo a ele.</p>
<p>Bom, resta-me apenas desejar-vos um otimo 2012 com muito sucesso pessoal!</p>
<p>Um grande abraço.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.msdevstudio.net/2011/12/29/2012-esta-ai/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SIGCOND, Gestão de forma inteligente. (Flex)</title>
		<link>http://blog.msdevstudio.net/2011/10/29/sigcond-gestao-de-forma-inteligente-flex/</link>
		<comments>http://blog.msdevstudio.net/2011/10/29/sigcond-gestao-de-forma-inteligente-flex/#comments</comments>
		<pubDate>Sat, 29 Oct 2011 07:08:13 +0000</pubDate>
		<dc:creator>Mário Santos</dc:creator>
				<category><![CDATA[Action Script & MXML]]></category>
		<category><![CDATA[Flash Builder 4]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Media Server]]></category>
		<category><![CDATA[red5]]></category>
		<category><![CDATA[RIA's Geral]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[condominios]]></category>
		<category><![CDATA[condominos]]></category>
		<category><![CDATA[gestão]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[sigcond]]></category>

		<guid isPermaLink="false">http://blog.msdevstudio.net/?p=2167</guid>
		<description><![CDATA[Olá caros leitores, infelizmente tenho andado meio afastado do blog devido a algumas mudanças na vida profissional, mas também por falta de tempo. Mas bom, hoje venho falar de um projecto que elaborei antes desta mudança profissional, e que foi bem interessante não só a nivel tecnológico, mas também a nivel funcional. O seu nome [...]]]></description>
			<content:encoded><![CDATA[<p>Olá caros leitores, infelizmente tenho andado meio afastado do blog devido a algumas mudanças na vida profissional, mas também por falta de tempo. Mas bom, hoje venho falar de um projecto que elaborei antes desta mudança profissional, e que foi bem interessante não só a nivel tecnológico, mas também a nivel funcional.</p>
<p>O seu nome é SIGCOND, um sistema de gestão de condomínios muito completo. Todo o sistema foi elaborado em Adobe Flex 4, com recurso ao ZendFramework, MySql e PHP mas não se limitou a estas tecnologias, já que também conta com um sistema interno de chat / conferencia feito com recurso ao Red5 Media Server / Java. Conta com variadas áreas, 4 niveis de utilização: Super Administrador, Administrador de Condomínio Master, Administrador de condomínio e Condómino. Cada um deles apenas pode aceder a algumas funções e menus da aplicação devido a um sistema de UAC implementado.</p>
<p>Foram também integradas algumas API&#8217;s que tornam a aplicação muito funcional, de entre as quais:</p>
<ul>
<li><a href="http://code.google.com/apis/chart/" target="_blank">Google Charts API</a>, permitindo assim criar relatórios de consultas com gráficos tornando os relatórios bem mais agradaveis.</li>
<li><a href="http://www.clickatell.com" target="_blank">Clickatell SMS API</a>, permite que o sistema possa enviar notificações por SMS para os telefones dos condóminios e administradores, tornando a troca de informação mais directa entre os administradores e o sistema. Esta API é implementada de uma forma totalmente automática, já que as notificações sao apenas configuradas (activas/inactivas) e o sistema encarrega-se de enviar as devidas notificações consoante várias operações iniciadas por parte do utilizador, ou automaticamente por parte do sistema. Estas notificações incluem falta de pagamentos, agendamentos, notas, reuniões de condomínios, lançamento de quotas / facturas, etc.</li>
<li><a href="http://www.easypay.pt/pt" target="_blank">EasyPay &#8211; Gateway MB</a>. Esta API torna o sistema ainda mais funcional, permitindo o lançamento em tempo real de Facturas com uma referencia MB / Home-banking que imediatamente fica disponível para pagamento. Sendo que os administradores podem pagar o aluguer da plataforma e os condóminos as suas quotas / facturas sem sair de casa. Assim que o cliente/condómino paga a factura numa caixa electrónica, ponto de pagamento ou home-banking o sistema é de imediato notificado e efectua o fecho do registo a pagamento.</li>
</ul>
<div>O sistema conta com vários recursos automatizados que são efectuados diariamente para criar e lançar quotas, criar relatórios, notificar faltas de pagamento e prazos, bloquear contas, lançar facturas, etc&#8230;</div>
<div>Internamente também poderá encontrar um sistema de agendas, troca de mensagens privadas, chat de texto, video e audio em tempo real em várias salas, além do chat privado entre a administração e um condómino ou com o proprio suporte da aplicação. Existe ainda um fórum interno para dúvidas, centro de documentos onde podem encontrar documentos pessoais, ou administrativos, calculadora, calendario / agenda, etc.. Bom, convido-vos a lerem um pouco mais sobre a parte comercial do sistema escrita pelo próprio proprietário do sistema, Fernando Mendes, aqui em baixo. De notar que ao fundo do artigo pode encontrar dados para acederem ao sistema em modo de teste.</div>
<div>
<p><img class="aligncenter size-medium wp-image-2168" src="http://blog.msdevstudio.net/wp-content/uploads/2011/10/sigcond-300x166.png" alt="" width="300" height="166" /></p>
<p align="center"><em><strong>Uma aposta na tecnologia </strong></em></p>
<p>&nbsp;</p>
<p><em>O presente projecto tem como principal objectivo a disponibilização na Internet de uma plataforma que contém um conjunto de recursos necessários para a gestão de condomínios. O público-alvo reporta-se a administradores de condomínio, condóminos e empresas de administração de condomínios.</em></p>
<p><em>O SIGCOND diferencia-se pelo facto de ser totalmente online, e desenvolvido de forma a dinamizar a relação entre condóminos / administrador. Com esta plataforma, procuram-se colmatar eventuais dificuldades de comunicação, transparência e rigor que, na maior parte das vezes, se manifestam entre a administração e os condóminos, proporcionando, simultaneamente, uma gestão simples, automatizada e integrada de todo o processo.</em></p>
<p><em>O SIGCOND permite realizar a contabilidade, controlo, suporte e automatização das tarefas inerentes à actividade referida, bem como motivar a uma maior participação entre os agentes envolvidos.</em></p>
<p><em>O desenvolvimento desta nova solução incorpora as questões político legais nacionais em vigor, referentes a este âmbito, e as que são possíveis de enquadrar na aplicação.</em></p>
<p><em>No sentido de uma melhor compreensão dos conteúdos contabilísticos, para além dos dados numéricos disponíveis, existem também painéis de bordo com a disponibilização gráfica dos valores mais pertinentes, o que permite uma consulta mais intuitiva da informação por parte dos condóminos.</em></p>
<p><em>Como referido, e para dinamizar a relação condóminos / administrador, foi criado um módulo de comunicação (um fórum e um chat interno ao condomínio), facilitando desta forma a interacção entre aqueles, o que representa uma mais-valia neste projecto.</em></p>
</div>
<div><em>O acesso é realizado através de um portal desenvolvido para o efeito e que permite ainda a colocação de publicidade de empresas relacionadas com esta actividade.</em></div>
<div>
<p><em>Com a utilização do SIGCOND, o público-alvo pode usufruir de benefícios relativamente à concorrência, em particular:</em></p>
<p>&nbsp;</p>
<ul>
<li><em> Disponibilização da solução totalmente online, sem necessidade de instalação de software adicional.</em></li>
<li><em>Pagamentos disponíveis por MB.</em></li>
<li><em>Notificações por SMS.</em></li>
<li><em>Possibilidade de escriturar toda a contabilidade do condomínio, permitindo ainda uma visão da variação de despesas ou receitas, através de painéis de bordo, sendo que os condóminos podem ter uma perspectiva dos dados “24 horas por dia”, o que se reflecte numa total transparência de processos.</em></li>
<li><em>Optimização de tarefas inerentes à actividade do administrador.</em></li>
<li><em>Envio automático de notificações de eventos (ex.: pagamentos de mensalidade em falta, convocatórias, entre outros).</em></li>
<li><em>Promoção da comunicação através de um conjunto de facilidades, nomeadamente, de um fórum de discussão para cada condomínio e da integração de chat / conferência em reuniões de condomínios.</em></li>
<li><em>Possibilidade de colocação de legislação referente aos condomínios num espaço partilhado online.</em></li>
<li><em>Custo reduzido de licenciamento.</em></li>
</ul>
<p>&nbsp;</p>
<p><em>Neste sentido, espera-se uma receptividade significativa da aplicação, dado que se oferece aos utilizadores uma alternativa que lhes possibilita uma redução de custos e de tempo na escrituração dos dados do seu condomínio com total transparência, o que se traduz, por outro lado, na possibilidade de retorno financeiro decorrente da exploração da solução.</em></p>
<p><em><strong>WebSite:</strong> <a href="http://www.sigcond.pt/">www.sigcond.pt</a>    <strong>Telf:</strong> +351 93 922 3808    <strong>Informações:</strong> <a href="mailto:info@sigcond.pt">info@sigcond.pt</a></em></p>
<p>Para acederem ao site em modo de demonstração, usem as seguintes informações:</p>
<p>http://gestao.sigcond.pt</p>
<p>User Condómino:<br />
USER: userdemo<br />
PASSWORD: demo</p>
<p>User administrador de condomínio:<br />
USER: demoadmin<br />
PASSWORD: demo</p>
<p>De notar que na versão demonstração muitas das opções estão bloqueadas, ou simplesmente nao estão visiveis. Para mais informações ou testar o sistema com dados reais e sem limitações entre em contacto com o email de informações:  <em><a href="mailto:info@sigcond.pt">info@sigcond.pt</a></em></p>
<p>Como o sistema ainda se encontra em fase inicial de testes podem encontrar alguns erros ou bugs, pelo que se encontrarem algum deixem os vossos comentarios.</p>
<p>Cumps.</p>
<p>&nbsp;</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.msdevstudio.net/2011/10/29/sigcond-gestao-de-forma-inteligente-flex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RedeRIA Android &amp; iOS (quase).</title>
		<link>http://blog.msdevstudio.net/2011/08/26/rederia-android-ios-quase-publicacao/</link>
		<comments>http://blog.msdevstudio.net/2011/08/26/rederia-android-ios-quase-publicacao/#comments</comments>
		<pubDate>Fri, 26 Aug 2011 08:58:31 +0000</pubDate>
		<dc:creator>Mário Santos</dc:creator>
				<category><![CDATA[Action Script & MXML]]></category>
		<category><![CDATA[Flash Builder 4]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[portfolio]]></category>
		<category><![CDATA[RIA's Geral]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[flash builder]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[publicação]]></category>

		<guid isPermaLink="false">http://blog.msdevstudio.net/?p=2152</guid>
		<description><![CDATA[Venho falar do projecto RedeRIA que se têm revelado um sucesso e conta já com mais de 50 autores e cerca de 2500 artigos sobre Ria&#8217;s. Devido a este sucesso decidi à algum tempo fazer uso da minha ferramenta de trabalho diária (Flash Builder) para criar uma aplicação para Android e iOS visto que já [...]]]></description>
			<content:encoded><![CDATA[<p>Venho falar do projecto <a href="http://rederia.net">RedeRIA </a>que se têm revelado um sucesso e conta já com mais de 50 autores e cerca de 2500 artigos sobre Ria&#8217;s. Devido a este sucesso decidi à algum tempo fazer uso da minha ferramenta de trabalho diária (Flash Builder) para criar uma aplicação para Android e iOS visto que já é possível isso muito facilmente. Vou falar um pouco da App criada tanto para Android disponível para download no market ou seguindo este link: <a href="https://market.android.com/details?id=air.com.msdevstudio.RedeRIA">https://market.android.com/details?id=air.com.msdevstudio.RedeRIA</a>, como para iOS. (Não publicada)</p>
<p>A aplicação foi criada com 2 layouts diferentes que são carregados consoante a plataforma (iOS e Android), e usa componentes nativos da framework flex, como o mobile view navigator e list, usando também um item render nessa lista, algo bem simples de fazer.</p>
<p>Para a listagem de artigos, carregados a partir do <a href="http://feeds.feedburner.com/msdevstudio/unxK">feed</a>, foi usada uma <a href="http://code.google.com/p/as3syndicationlib/">libraria</a> para ler e converter os feeds para objectos que são adicionados um arrayCollection  usado na lista. Já no caso dos autores, foi usada a <a href="http://msdevstudio.com/wpas3api/preview/">API AS3 do WordPress</a> que desenvolvi (podem ver a documentação <a href="http://msdevstudio.com/wpas3api/docs/">aqui</a>), que infelizmente ainda não consegui coloca-la publicamente disponível, mas em breve o farei. Usando apenas uma simples função: wpas3api.getAuthors() tive a listagem dos autores do blog e suas informações. Como o RedeRIA usa algumas plugins para gerir thumbnails e informações os autores, tive que fazer uma pequena alteração no &#8220;core&#8221; do XMLRPC Server do wordpress para devolver mais alguns campos já que por defeito o wordpress apenas devolve nome, id e login de cada autor.</p>
<p>De resto, foi só compilar a aplicação para ambos os markets.</p>
<p>Para o Android (muitooooo facil) foi só compilar com o certificado de assinatura de código, pagar os 25 USD para poder publicar e enviar o arquivo apk (ficando a conta de imediato activa) junto com uma pequena descrição e algumas imagens.</p>
<p>Já a brincadeira para a compilação par iOS foi bem mais complicada&#8230; alem de termos que gerar alguns certificados, temos que registar os nossos &#8220;testing&#8221; devices na area de developer da apple, criar os certificados de aprovisionamento, de aplicação e device para depois poder compilar o .ipa final com todos estes certificados para finalmente podermos testar a nossa aplicação no nosso device com drag-n-drop directo para o itunes (+syncronização). Complicado não? pois piora quando querem publicar a aplicação na apple store, pois precisam de repetir todo este processo de certificados, voltar a compilar a aplicação para terem o ipa final.</p>
<p>Voltamos ao site developer.apple.com (ah, pequeno detalhe, aqui pagamos 99 USD por ano para poder publicar app&#8217;s e que estive 2 semanas à espera da activação manual já que deu um erro na automática), fazemos o login no iTunes Connect e preenchemos os dados para publicar a nossa aplicação até que chegamos ao ultimo passo que é o envio do nosso ipa para aprovação; Uma estranha notícia: Não têm um mac? não pode publicar na apple store! WTF???<br />
Pois é, a única aplicação que permite o envio dos nossos ficheiros ipa para aprovação é o Application Loader que apenas têm uma versão para&#8230; MAC OS. Como no site não temos opção de fazer upload ficamos na mer**! Boa Apple!!</p>
<p>Resumindo, por enquanto menos uma app na apple store! (Engraçado que para pagar a anuidade pode ser feito até de um windows 95, agora publicar só com um MAC)</p>
<p>Seguem alguns screenshots da aplicação.</p>
<table width="100%" align="center">
<tbody>
<tr>
<td align="center" width="50%"><a href="http://blog.msdevstudio.net/wp-content/uploads/2011/08/ss-480-0-4.png"><img class="size-medium wp-image-2153 alignnone" title="ss-480-0-4" src="http://blog.msdevstudio.net/wp-content/uploads/2011/08/ss-480-0-4-180x300.png" alt="" width="180" height="300" /></a></td>
<td align="center" width="50%"><a href="http://blog.msdevstudio.net/wp-content/uploads/2011/08/ss-480-4-4.jpg"><img class="alignnone size-medium wp-image-2155" title="ss-480-4-4" src="http://blog.msdevstudio.net/wp-content/uploads/2011/08/ss-480-4-4-180x300.jpg" alt="" width="180" height="300" /></a></td>
</tr>
<tr>
<td align="center" width="50%"><a href="http://blog.msdevstudio.net/wp-content/uploads/2011/08/ss-480-5-4.jpg"><img class="alignnone size-medium wp-image-2156" title="ss-480-5-4" src="http://blog.msdevstudio.net/wp-content/uploads/2011/08/ss-480-5-4-180x300.jpg" alt="" width="180" height="300" /></a></td>
<td align="center" width="50%"><a href="http://blog.msdevstudio.net/wp-content/uploads/2011/08/ss-480-3-41.jpg"><img class="alignnone size-medium wp-image-2157" title="ss-480-3-4" src="http://blog.msdevstudio.net/wp-content/uploads/2011/08/ss-480-3-41-180x300.jpg" alt="" width="180" height="300" /></a></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>A aplicação foi bastante simples, não me demorou mais que umas horas a fazer e ficou bem agradavel, servindo como prova que o Flash Builder / Flex + AIR vieram para ficar na area do desenvolvimento mobile.</p>
<p>E você? ja testou algum projecto mobile feito em flex, e a aplicação RedeRIA Android, o que achou?</p>
<p>Abraço.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.msdevstudio.net/2011/08/26/rederia-android-ios-quase-publicacao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Qnap TS-210; Um tudo em 1!</title>
		<link>http://blog.msdevstudio.net/2011/08/17/qnap-ts-210-um-tudo-em-1/</link>
		<comments>http://blog.msdevstudio.net/2011/08/17/qnap-ts-210-um-tudo-em-1/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 14:16:39 +0000</pubDate>
		<dc:creator>Mário Santos</dc:creator>
				<category><![CDATA[Backup]]></category>
		<category><![CDATA[Media Server]]></category>

		<guid isPermaLink="false">http://blog.msdevstudio.net/?p=2136</guid>
		<description><![CDATA[Bom, de volta ao blog, venho falar de uma recente aquisição minha, o Qnap TS-210. Este pequeno dispositivo além de um grande aliado na hora de backups também um gadget fantástico. Quando procurava por um substituto para o NAS (Network Attached Storage, leia-se disco de rede) aqui da empresa que queimou a carta de rede, [...]]]></description>
			<content:encoded><![CDATA[<p>Bom, de volta ao blog, venho falar de uma recente aquisição minha, o <a href="http://www.qnap.com/pro_detail_feature.asp?p_id=135">Qnap TS-210</a>.</p>
<p>Este pequeno dispositivo além de um grande aliado na hora de backups também um gadget fantástico. Quando procurava por um substituto para o NAS (Network Attached Storage, leia-se disco de rede) aqui da empresa que queimou a carta de rede, dei de caras com os produtos da Qnap que vagamente me lembrava do nome de algum lado. Depois de ler um pouco sobre eles fiquei de boca aberta com as enumeras capacidades e acabei por recomendar a sua compra e fazer eu própria a compra de um.</p>
<p><img class="size-thumbnail wp-image-2137 alignleft" title="Qnap TS-210" src="http://blog.msdevstudio.net/wp-content/uploads/2011/08/668279-150x150.jpg" alt="" width="150" height="150" /><a href="http://www.qnap.com/pro_detail_feature.asp?p_id=135">Qnap TS-210</a>, mas o que é?</p>
<p>É uma caixa externa para montagem de até 2 discos duros com possibilidade de disposição em RAID fisico para redundancia de dados no caso de falha de um dos discos.</p>
<p>Mas esta pequena caixinha, que até se poderia chamar de mágica, é muito mais que isso. Além de uma ligação de rede (duh) ela possuí um sistema operativo baseado em Linux com muitas caracteristicas que até podem substituir um pc em muitos casos, vou apenas enumerar algumas. Se o principal objectivo era arranjar um sistema fiavel de backups, quem compra um Qnap ganha mais, muito mais do que isso, veja o que por defeito o sistema inclui:</p>
<p>- Servidor Web, com suporte a PHP 5.x e Mysql (possibilidade de personalizar o php.ini)<br />
- Servidor FTP<br />
- Servidor RSync<br />
- Servidor Multimedia DLNA / UPNP  (que permite com que as imagens/videos/audio possa ser lido por qualquer dispositivo com ou sem fios ligado à rede doméstica)<br />
- Servidor de shoutcast/Stremming com suporte a playlists e reencode<br />
- Servidor Squeezbox, permitindo controlar dispositivos logitech / compativeis DLNA permitindo por exemplo disponibilizar a libraria em players como o <a href="http://www.amazon.com/Logitech-930-000090-Squeezebox-Touch/dp/B002LARRDA/ref=sr_1_2?ie=UTF8&amp;qid=1313586652&amp;sr=8-2">SqueezeBox Touch</a>, o <a href="http://www.amazon.com/Logitech-Squeezebox-Network-Player-Internet/dp/B001DJ64D4/ref=sr_1_3?ie=UTF8&amp;qid=1313586652&amp;sr=8-3">Boom</a> ou o <a href="http://www.amazon.com/Logitech-Squeezebox-Radio-Player-Screen/dp/B002LARRDK/ref=sr_1_1?ie=UTF8&amp;qid=1313586652&amp;sr=8-1">Radio</a> podendo até controla-los remotamente. Isso, é possivel a partir do seu PC/Smartphone/TV na Sala iniciar uma musica e controlar o volume da mesma num Quarto ou Cozinha onde esteja instalado um dispositivo destes da logitech / DLNA. Permitindo montar sistemas de som ambiente en varios espaços, tal como o hardware <a href="http://www.sonos.com/">sonos</a> faz (compatível com o qnap também)<br />
- Web File Manager<br />
- Web &amp; Mobile Media Server<br />
- Servidores Replication, Itunes, Syslog, Radious, TFTP,  Backup &amp; Webdav<br />
- Possiu uma Download Station capaz de carregar torrents e links diretos para fazer o seu download incluindo a possibilidade de iniciar e gerir downloads remotamente. (já se tornou o meu cliente de torrents por defeito até porque foi baseado no utorrent)<br />
- Capaz ainda de receber e gravar imagem e som de até duas camaras de vigilancia ligadas à rede.<br />
- One-Touch USB Copy, permitindo, quando configurado, fazer backups de uma chave/disco usb para o QNAP ou do qnap para a chave/disco<br />
- Suporta multi-utilizadores, contas e home folders.<br />
- Antivirus, Print Server, USB Externo (2x), etc..<br />
- E o mais fantastico, suporte a plugins onde podemos facilmente encontrar dezenas de outros serviços, linguagens, servidores e aplicações como: WordPress, sugarCRM, vTiger, tomcat, asterisk, Magento, Mono, eyeOS, iSat, GLPI, openLDAP, python, Joomla, xDove, PS3 Media Server, java, piwik e muito mais&#8230; além da lista estar sempre a crescer&#8230;</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-2139" title="Video_Center" src="http://blog.msdevstudio.net/wp-content/uploads/2011/08/Video_Center.png" alt="" width="300" height="167" /></p>
<p>Podemos ainda gerir o nosso qnap via SSH. Conta também com<span id="more-2136"></span> um excelente utilitario de UAC/Partilhas e gestão de logs.</p>
<p>Um dos serviços também bem interessantes é que o proprio qnap se liga a um sistema chamado mycloudnas.com, que permite que o nosso QNAP e seus serviços possam ser acedidos via Web em qualquer parte do planeta!</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-2138" title="MyCloudNAS_450" src="http://blog.msdevstudio.net/wp-content/uploads/2011/08/MyCloudNAS_450.png" alt="" width="300" height="160" /></p>
<p>Ficaram surpresos com a lista? eu também&#8230;Resumindo, é um servidor All-in-one!</p>
<p>O desempenho é fantástico e apesar de pequeno não aquece muito devido ao cooler embutido que também se revelou extremamente silencioso. O design é bem limpo e agradável.<br />
Conta com um processador de 800 Mhz e com 256 MB DDR2 de memória&#8230;que apesar de parecer muito pouco são extremamente bem aproveitados pela optimização dos recursos&#8230; depois de um mês ligado a memória gasta raramente subiu acima dos 200 MB. Linux Power!</p>
<p>Dipoe de diversas aplicações para smatphones/tablets como o Qnap, Squeezbox, uPnP player, skifta e muito mais&#8230;</p>
<p>Agora o preço, que para o que é achei muito acessível&#8230; $226  USD, qualquer coisa como 170 € (<a href="http://www.amazon.com/TS-210-Desktop-Network-Attached-Storage/dp/B002SD71FO/ref=sr_1_1?ie=UTF8&amp;qid=1313588213&amp;sr=8-1">á venda na amazon</a> mais perto de si :p).</p>
<p style="text-align: center;"><img class="size-medium wp-image-2140 aligncenter" style="border-style: initial; border-color: initial;" title="photo_center" src="http://blog.msdevstudio.net/wp-content/uploads/2011/08/photo_center-300x163.png" alt="" width="300" height="163" /></p>
<div>
<p>Claro que a isto temos que acrescer o custo de 2 discos que devem ser os recomendados pelo fabricante: <a href="http://www.qnap.com/pro_compatibility.asp">http://www.qnap.com/pro_compatibility.asp</a> com suporte de discos SATA I, II e III até 6GB/s. Não é obrigatória a compra dos 2 discos já que o sistema pode funcionar apenas com 1 ou 2 isolados ou os 2 em RAID.<br />
E pronto, ligue a sua TV/PC/Smartphone à sua rede e tenha a sua musica e filmes à distancia de um &#8220;play&#8221;. Sem contar com um excelente servidor de dados e backups!</p>
<p>Na pagina oficial existem muitos outros sistema com mais ou menos caracteristicas e preços, incluindo um QNAP com preço mais acessivel com apenas um disco mas as mesmas funções.</p>
</div>
<p>Um produto que vale bem a pena o investimento.</p>
<p>Abraço.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.msdevstudio.net/2011/08/17/qnap-ts-210-um-tudo-em-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe Air; LiveGuardian</title>
		<link>http://blog.msdevstudio.net/2011/07/01/adobe-air-liveguardian/</link>
		<comments>http://blog.msdevstudio.net/2011/07/01/adobe-air-liveguardian/#comments</comments>
		<pubDate>Fri, 01 Jul 2011 19:35:46 +0000</pubDate>
		<dc:creator>Mário Santos</dc:creator>
				<category><![CDATA[Action Script & MXML]]></category>
		<category><![CDATA[Air]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[portfolio]]></category>
		<category><![CDATA[red5]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[Desktop]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[recorder]]></category>
		<category><![CDATA[stream]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://blog.msdevstudio.net/?p=2129</guid>
		<description><![CDATA[Conforme tinha falado no artigo anterior, aqui vai a preview da aplicação. Pode ver mais informações sobre este projeto no artigo que escrevi ontem. Clique aqui para o visitar. Em breve disponibilizo o LiveStreamer, visto que ainda estou a terminar alguns detalhes visuais nele. Abraço.]]></description>
			<content:encoded><![CDATA[<p>Conforme tinha falado no artigo anterior, aqui vai a preview da aplicação.</p>
<p>Pode ver mais informações sobre este projeto no artigo que escrevi ontem. Clique <a href="http://blog.msdevstudio.net/2011/06/30/red5-livestreamer-liveguardian/">aqui</a> para o visitar.</p>
<p><a href="http://blog.msdevstudio.net/wp-content/uploads/2011/07/preview.jpg"><img class="alignnone size-full wp-image-2130" title="preview" src="http://blog.msdevstudio.net/wp-content/uploads/2011/07/preview.jpg" alt="" width="554" height="473" /></a></p>
<p>Em breve disponibilizo o LiveStreamer, visto que ainda estou a terminar alguns detalhes visuais nele.</p>
<p>Abraço.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.msdevstudio.net/2011/07/01/adobe-air-liveguardian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Red5; LiveStreamer &amp; LiveGuardian</title>
		<link>http://blog.msdevstudio.net/2011/06/30/red5-livestreamer-liveguardian/</link>
		<comments>http://blog.msdevstudio.net/2011/06/30/red5-livestreamer-liveguardian/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 18:41:52 +0000</pubDate>
		<dc:creator>Mário Santos</dc:creator>
				<category><![CDATA[Action Script & MXML]]></category>
		<category><![CDATA[Air]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[portfolio]]></category>
		<category><![CDATA[red5]]></category>
		<category><![CDATA[RIA's Geral]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[Desktop]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[recorder]]></category>
		<category><![CDATA[stream]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://blog.msdevstudio.net/?p=2119</guid>
		<description><![CDATA[Olá a todos! Estou de volta à ativa, depois de alguns tempos longe do blog, volto com mais algumas novidades em breve, principalmente sobre as minhas novas investidas no Java e no ColdFusion 9 que estou agora a conhecer, mas que já me está a surpreender positivamente em muitos pontos e negativamente em outros&#8230; mas [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Olá a todos!</p>
<p style="text-align: justify;">Estou de volta à ativa, depois de alguns tempos longe do blog, volto com mais algumas novidades em breve, principalmente sobre as minhas novas investidas no Java e no ColdFusion 9 que estou agora a conhecer, mas que já me está a surpreender positivamente em muitos pontos e negativamente em outros&#8230; mas deixo isso para outro artigo.</p>
<p style="text-align: justify;">Venho aqui falar de 2 projetos que fiz ja a algmas semanas, tratam-se de 2 sistemas parecidos, mas com diferentes funcionalidades e de seus nomes LiveStreamer &amp; LiveGuardian.</p>
<p style="text-align: justify;">Vou falar-vos um pouco deles e mais à frente talvez coloque alguns screenshots e um video de seu funcionamento. Ambos partilham algumas características como a distribíção no desktop usando adobe AIR, necessidade de um servidor Red5 e ambos usarem captura de webcam.</p>
<p style="text-align: justify;"><a href="http://blog.msdevstudio.net/wp-content/uploads/2011/06/live_streamer1.jpg"><img class="alignnone size-full wp-image-2123" title="live_streamer" src="http://blog.msdevstudio.net/wp-content/uploads/2011/06/live_streamer1.jpg" alt="" width="300" height="150" /></a></p>
<p style="text-align: justify;">O LiveStreamer foi uma variação do projeto LiveGuardian (veja em baixo) que consiste num simples sistema de captura de webcam &amp; audio e envio para um servidor Red5 online. A principal caracteristica dele é que no caso de falha de internet ele não deixa de funcionar, simplesmente interrompe o stream, e fica a aguardar que a ligação à internet volte para iniciar novamente o stream.</p>
<p style="text-align: justify;">O sistema pode também iniciar junto com o sistema operativo (windows) e de imediato iniciar o stream&#8230; caso seja configurado pode ainda fazer isto tudo em modo silencioso, ou seja, o utilizador nem dá conta que a aplicação está a correr. Util para quem não quer estar sempre a chatear-se com a minimização do mesmo.</p>
<p style="text-align: justify;">O stream publico pode ser facilmente inserido em qualquer pagina, blog, aplicação web, desktop ou até mobile usando um player que suporte leitura de streams RTMP como no caso do JW player!</p>
<p style="text-align: justify;">Podem desde já imaginar enumeras utilidades para este dispositivo, principalmente de colaboração, vigilancia à distancia, captura de ecra (usando um driver &#8220;webcam&#8221; de captura), etc..</p>
<p style="text-align: justify;"><a href="http://blog.msdevstudio.net/wp-content/uploads/2011/06/live_guardian1.jpg"><img class="alignnone size-full wp-image-2122" title="live_guardian" src="http://blog.msdevstudio.net/wp-content/uploads/2011/06/live_guardian1.jpg" alt="" width="300" height="150" /></a></p>
<p style="text-align: justify;">Este foi um projeto super interessante, não pelo motivo de usar também red5, mas pelo desafio que apresentava. A principal função deste software é fazer sessões de gravação de video e audio (se configurado) para o computador local. A instalação do Red5 é feita localmente tal <span id="more-2119"></span>como o software, não precisando de ligação à internet.</p>
<p style="text-align: justify;">Pode ser programado para iniciar a determinada hora e parar a outra hora. Por exemplo, usando o caso de sistema de vigilancia num establecimento comercial, iniciar no horario de abertura: 08:00 e terminar no final do dia de trabalho: 19:00. Com esta configuração definida o sistema inicia a gravação automaticamente todos os dias às 08:00 da manha e termina às 19 horas criando um arquivo da gravação do dia com o datestamp do mesmo.</p>
<p style="text-align: justify;">No caso da aplicação ser acidentalmente encerrada ou ser iniciada pelo utilizador apenas, imaginemos,  às 10 da manha o red5 encarrega-se de comparar as horas e iniciar de imediato a gravação. Alem destas configurações ainda conta com algumas outras, tal como minimizar para o systray, tamanho, qualidade, framerate, audio, video, etc&#8230;</p>
<p style="text-align: justify;">E só por si um sistema completo de vídeo vigilancia, e engane-se que rapidamente ficará com o disco rigido do seu computador cheio, pois uma hora de gravação em qualidade media com 480&#215;360 a 12 fps ocupa &#8220;apenas&#8221; 150 mb no disco. Ou seja, teoricamente um disco de 300 GB suportaria cerca de 2000 dias de gravação, algo como 5 anos!! Se reduzir a qualidade e os fps&#8217;s, facilmente consegue colocar 10 anos de gravações num disco de 300 GB.</p>
<p style="text-align: justify;">De lembrar que o red5 é um sistema gratuito  e o encoding do video consome muito poucos recursos fazendo com que não precise de um computador topo de gama para usar o sistema. Apenas a instalação e o software tem custos, e imaginando que o preço final do mesmo seria, por exemplo 50 € e uma webcam media a cerca de 35€, voce teria um sistema de video vigilancia por 85 € (sem contar claro com os custos do pc).</p>
<p style="text-align: justify;">No caso da primeira solução, os custos de hosting red5 são um pouco elevados a longo prazo, no entanto também é um sistema bem util, principalmento no caso de vigilancia remota.</p>
<p style="text-align: justify;">Ambos os projetos foram feitos com recurso ao Flex 4 no front-end com export para Adobe Air (Desktop) usando o Red5 Media Server para gravação com as aplicações no backend feitas em Java. Usei ainda o photoshop para design dos logotipos que acabei por ter a liberdade de os fazer.</p>
<p style="text-align: justify;">Bom, venham esses comentários!</p>
<p style="text-align: justify;">Em breve mais detalhes,<br />
Abraço.</p>
<p style="text-align: justify;">&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.msdevstudio.net/2011/06/30/red5-livestreamer-liveguardian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dica Adobe Air &#8211; Drag &amp; Drop Ficheiros + Pastas</title>
		<link>http://blog.msdevstudio.net/2011/06/01/dica-adobe-air-drag-drop-ficheiros-pastas/</link>
		<comments>http://blog.msdevstudio.net/2011/06/01/dica-adobe-air-drag-drop-ficheiros-pastas/#comments</comments>
		<pubDate>Wed, 01 Jun 2011 11:20:29 +0000</pubDate>
		<dc:creator>Mário Santos</dc:creator>
				<category><![CDATA[Action Script & MXML]]></category>
		<category><![CDATA[Air]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA's Geral]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[arquivos]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[Desktop]]></category>
		<category><![CDATA[dra-n-drop]]></category>
		<category><![CDATA[drag & drop]]></category>
		<category><![CDATA[ficheiros]]></category>
		<category><![CDATA[folders]]></category>
		<category><![CDATA[pastas]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://blog.msdevstudio.net/?p=2093</guid>
		<description><![CDATA[O Adobe Air está cada vez mais evoluido, e no decorrer de um projeto que estou envolvido foi necessário criar uma area na minha aplicação que aceitasse o drag-n-drop de uma pasta da maquina do utilizador e que adicionasse os ficheiros que esta pode ter dentro. Nem todos os ficheiros seriam adicionados, apenas os ficheiros [...]]]></description>
			<content:encoded><![CDATA[<p>O Adobe Air está cada vez mais evoluido, e no decorrer de um projeto que estou envolvido foi necessário criar uma area na minha aplicação que aceitasse o drag-n-drop de uma pasta da maquina do utilizador e que adicionasse os ficheiros que esta pode ter dentro. Nem todos os ficheiros seriam adicionados, apenas os ficheiros com as extensões que eu seriam apresentados na minha lista.</p>
<p>Bom, esta é uma questão que muita gente têm, como ler recursivamente o conteudo de uma pasta da maquina do utilizador?</p>
<p>Pois então, a solução é bem simples, segue o exemplo (não vou mostrar como fazer o drag-n-drop, mas apenas como lidar com a pasta que foi largada na nossa aplicação)</p>
<p>Na função onDrop, vamos buscar o arquivo (uma pasta é considerada como arquivo tambem) da area de &#8220;transferência&#8221; do evento(clipboard), para isso fazemos:<br />
[coolcode lang='as3' linenum='off']<br />
var arr:Array = evento.clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT) as Array;<br />
[/coolcode]</p>
<p>onde o &#8216;<strong>evento&#8217;</strong>, é o nosso evento <strong>NativeDragEvent</strong> disparado pela area que recebeu o drop do arquivo/pasta.</p>
<p>Vamos agora buscar o arquivo e fazer o seu cast como File:<br />
[coolcode lang='as3' linenum='off']<br />
var arquivo:File = File(arr[0]);<br />
[/coolcode]</p>
<p>Temos então o File que pode conter um arquivo individual ou então uma pasta, vamos então identificar qual deles é:<span id="more-2093"></span></p>
<p>[coolcode lang='as3' linenum='off']<br />
if(arquivo.isDirectory) {<br />
//é uma pasta<br />
//vamos então percorrer esta pasta para encontrar todos os ficheiros dentro dela<br />
var pasta:Array = arquivo.getDirectoryListing();<br />
for each (var arquivoIn:File in pasta)<br />
{<br />
if (arquivoIn.isDirectory) {<br />
//é uma pasta, para buscar os arquivos dela basta repetir a operação<br />
//nesse ponto, o mais facil será separar a funcao para listar arquivos e chama-la a cada pasta encontrada<br />
}<br />
else {<br />
//é um arquivo<br />
meuDataProviderArquivos.addItem(arquivoIn);<br />
}<br />
}<br />
}<br />
else {<br />
//é um arquivo<br />
meuDataProviderArquivos.addItem(arquivo);<br />
}<br />
[/coolcode]</p>
<p>E pronto, no final disto têm a listagem de ficheiros da pasta no meuDataProvider. A partir daí podem então fazer o controlo dos arquivos que querem ou não no vosso data provider, usando uma simples comparação da extensão do arquivo (arquivo.extension).</p>
<p>Simples, eficaz e muito util.</p>
<p>Abraço.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.msdevstudio.net/2011/06/01/dica-adobe-air-drag-drop-ficheiros-pastas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash/Flex+PHP; Encriptação AES 256</title>
		<link>http://blog.msdevstudio.net/2011/05/24/flashflexphp-encriptacao-aes-256/</link>
		<comments>http://blog.msdevstudio.net/2011/05/24/flashflexphp-encriptacao-aes-256/#comments</comments>
		<pubDate>Tue, 24 May 2011 19:33:18 +0000</pubDate>
		<dc:creator>Mário Santos</dc:creator>
				<category><![CDATA[Action Script & MXML]]></category>
		<category><![CDATA[Air]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA's Geral]]></category>
		<category><![CDATA[Source Code]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[AES 256]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[cifrados]]></category>
		<category><![CDATA[crypto]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[protecção]]></category>

		<guid isPermaLink="false">http://blog.msdevstudio.net/?p=2085</guid>
		<description><![CDATA[Olá fieis leitores!! Deve ter reparado que tenho andado meio ausente, deve-se ao facto de andar com bastante trabalho e da minha pequena Luana estar cada vez mais crescida e não fica quieta Mas bom, não se pode ter tudo não é verdade??! Ela é Linda!! Bom, venho aqui escrever este artigo devido a uma [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Olá fieis leitores!!</p>
<div id="attachment_2086" class="wp-caption alignright" style="width: 160px"><img class="size-thumbnail wp-image-2086" title="Protection" src="http://blog.msdevstudio.net/wp-content/uploads/2011/05/Fotolia_17230394_Subscription_XXL-150x150.jpg" alt="" width="150" height="150" /><p class="wp-caption-text">Imagem: pt.fotolia.com</p></div>
<p style="text-align: justify;">Deve ter reparado que tenho andado meio ausente, deve-se ao facto de andar com bastante trabalho e da minha pequena Luana estar cada vez mais crescida e não fica quieta <img src='http://blog.msdevstudio.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Mas bom, não se pode ter tudo não é verdade??! Ela é Linda!!</p>
<p style="text-align: justify;">Bom, venho aqui escrever este artigo devido a uma dúvida que me foi colocada no fórum (http://forum.msdevstudio.com) onde me era perguntado como implementar uma encriptação 512 bits usando a conhecida libraria as3crypto. (<a href="http://code.google.com/p/as3crypto/">http://code.google.com/p/as3crypto/</a>)</p>
<p style="text-align: justify;">Apesar de achar esta libraria bem completa, também a acho demasiado complicada.. foi por isso que quando pensei em implementar uma solução destas no passado andei à procura de uma outra solução que não fizesse apenas a encriptação em Flex/As3, mas também que a mesma string pudesse ser desencriptada no PHP. Encontrei depois de algumas pesquisas uma implementação super interessante no blog (<a href="http://www.lostinactionscript.com/">http://www.lostinactionscript.com</a>) que faz precisamente isto. Ecriptação AES duas vias (Flex&lt;-&gt;PHP) e posso afirmar que até hoje não encontrei qualquer problema usando este mesmo método, apesar de ter que usar uma biblioteca diferente no php.</p>
<p style="text-align: justify;">No fórum, perguntavam-me como implementar encriptação 512 bits (não enumerava qual o algoritmo, no entanto sugeri o AES 256). Na minha humilde opinião, uma encriptação AES usando  256 bits é mais que suficiente visto que, caso não saibam, o AES é dos algoritmos mais seguros do mundo e que se bem implementado com as devidas preocupações com chaves, é teoricamente impossível de desencriptar. Este algoritmo é largamente conhecido e até usado para encriptar dados de documentos do Governo dos Estados Unidos.</p>
<p style="text-align: justify;">Esta implementação no flex e no php é bem simples, basta fazerem o download do arquivo usado no site lostinactionscript.com (<a title="AES" href="http://lostinactionscript.googlecode.com/files/AES.zip">download aqui</a>) e no nele (.zip) encontram a class/caminho:  AES/com/lia/crypto/AES.as. Esta class será a que vamos usar no Flex, para isso criem a mesma estrutura de pastas no vosso projeto flex e copiem esta class para lá. (com/lia/crypto/Aes.as).</p>
<p style="text-align: justify;">No php, as classes para download podem ser encontradas aqui: <a href="http://www.movable-type.co.uk/scripts/aes-php.html">http://www.movable-type.co.uk/scripts/aes-php.html</a> (Devem criar dois ficheiros .php com o conteúdo apresentado nesse artigo. AesCtr.php e Aes.php)</p>
<p style="text-align: justify;">Depois disto, basta no flex usar:</p>
<blockquote><p>protected function encripta() :void {</p>
<p>var stringEncriptada:String = AES.encrypt(&#8220;Texto a encriptar&#8221;, &#8220;chave&#8221;, 256); //Usamos 256bits</p>
<p>}</p></blockquote>
<p style="text-align: justify;">E no php para desencriptar:</p>
<blockquote><p>function desencripta() {</p>
<p>$stringDesencriptada = AesCtr::decrypt($stringEncriptada,&#8221;chave&#8221;, 256);</p>
<p>}</p></blockquote>
<p style="text-align: justify;">Para o processo inverso (encriptar no php e desencriptar no flex), temos no PHP:</p>
<blockquote><p>function encripta() {</p>
<p>$stringEncriptada = AesCtr::encrypt(&#8220;Texto a encriptar&#8221;,&#8221;chave&#8221;,256);</p>
<p>}</p></blockquote>
<p style="text-align: justify;">e no Flex:</p>
<blockquote><p>protected function desencripta():void {</p>
<p>var stringDesencriptada:String = AES.decrypt(stringEncriptada, &#8220;chave&#8221;, 256);</p>
<p>}</p></blockquote>
<p style="text-align: justify;">E pronto, temos o nosso sistema para encriptação / desencriptação em ambos os sentidos. Torna-se muito util quando têm que passar dados mais sensí­veis via AMF (zend, amfphp. weborb) já que ao enviar os dados cifrados tornasse muito mais seguro. Fica o aviso, este algoritmo é seguro o suficiente para grande partes das necessidades, mas não esqueça de usar uma chave segura visto que a segurança depende sempre da implementação. Não é o algoritmo que têm falhas, nós que que as causamos! <img src='http://blog.msdevstudio.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: justify;">Bom, espero que tenha seja util nos vossos projetos.</p>
<p style="text-align: justify;">Abraço.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.msdevstudio.net/2011/05/24/flashflexphp-encriptacao-aes-256/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe Air; Comunicação visual via TV</title>
		<link>http://blog.msdevstudio.net/2011/02/09/adobe-air-comunicacao-visual-via-tv/</link>
		<comments>http://blog.msdevstudio.net/2011/02/09/adobe-air-comunicacao-visual-via-tv/#comments</comments>
		<pubDate>Wed, 09 Feb 2011 08:55:36 +0000</pubDate>
		<dc:creator>Mário Santos</dc:creator>
				<category><![CDATA[Action Script & MXML]]></category>
		<category><![CDATA[Air]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Flash Builder 4]]></category>
		<category><![CDATA[Flash Catalyst]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[portfolio]]></category>
		<category><![CDATA[RIA's Geral]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[catalyst]]></category>
		<category><![CDATA[Desktop]]></category>
		<category><![CDATA[digital advertising signage]]></category>
		<category><![CDATA[flash builder]]></category>
		<category><![CDATA[flex4]]></category>
		<category><![CDATA[illustrator]]></category>
		<category><![CDATA[tv]]></category>

		<guid isPermaLink="false">http://blog.msdevstudio.net/?p=2068</guid>
		<description><![CDATA[Venho falar de um projecto que terminei em Janeiro, e que foi bem interessante de desenvolver visto que foram optadas algumas práticas de desenvolvimento focadas em display&#8217;s TV / LCD. O projecto trata-se de o desenvolvimento de uma plataforma de comunicação visual para apresentação publica em Televisores. Com certeza já passou num aeroporto, hotel, ginásio [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Venho falar de um projecto que terminei em Janeiro, e que foi bem interessante de desenvolver visto que foram optadas algumas práticas de desenvolvimento focadas em display&#8217;s TV / LCD.</p>
<p style="text-align: justify;"><a href="http://blog.msdevstudio.net/wp-content/uploads/2011/02/tv_air.jpg"><img class="alignleft size-medium wp-image-2076" title="tv_air" src="http://blog.msdevstudio.net/wp-content/uploads/2011/02/tv_air-300x223.jpg" alt="" width="210" height="156" /></a>O projecto trata-se de o desenvolvimento de uma plataforma de comunicação visual para apresentação publica em Televisores. Com certeza já passou num aeroporto, hotel, ginásio e viu alguns LCD&#8217;s espalhados por lá com as mais diversas informações, principalmente nos aeroportos com as chegadas / partidas, pois então, o projecto focou-se no desenvolvimento de uma plataforma dessas em Adobe AIR (Flex 4) que pudesse facilmente ser administrada pelo cliente, mas também que fosse facilmente personalizada para poder ser distribuída por vários clientes.</p>
<p style="text-align: justify;">O sistema baseou-se me duas aplicações, uma front-end para distribuição pelos clientes, apenas com controlo de chaves (Numero de série gerado pela administração) e que carregará toda uma playlist de vários módulos, bem como toda a skin (cores e logo). A segunda aplicação consiste numa area administrativa onde o cliente pode gerir a sua playlist, noticias, videos, animações, aniversariantes, noticias manuais, etc&#8217;s. Esta area administrativa também permite no caso do login de Super Administrador de gerir todos os clientes, skins e restantes informações.</p>
<p style="text-align: justify;">As playlists são ilimitadas, pelo que podem criar uma playlist completa para o dia!</p>
<p style="text-align: justify;">Todo o sistema do cliente, ao abrir-se  (na primeira apresentação pede a chave da aplicação) carrega todas as informações do servidor; Skin, playlist e logotipo e adapta-se em fullscreen ao ecrã. Dá-se então inicio ao processo de carregamento da playlists e seus elementos. Esta palylist consiste na apresentação de variados modulos e respectivas durações de apresentações.  (Vejam as imagens mais em baixo&#8230;)</p>
<p>Os módulos desenvolvidos foram os seguintes:</p>
<ul>
<li>Noticias; Vários modulos de noticias de varias categorias, quer com fonte num Feed RSS  ou na base de dados (Inserção manual). Categorias: Actualidade, Mundo, economia, tecnologia, inovação, desporto, cultura, saúde, país.</li>
<li>Tempo; Previsão de tempo para o dia e próximos 3 dias com a possibilidade de 1 ou mais locais na area central, e com os display das temperaturas para todas as grandes cidades no topo;</li>
<li>Informação financeira; Bolsa de valores (cotações em tempo real) e Cambios.</li>
<li>Aniversariantes; Possibilidade de apresentar aniversariantes e suas fotos /departamentos na area central para os próximos 7 dias.</li>
<li>Animações / Publicidade; Possibilidade de colocar animações em formato SWF para display apenas na area central ou em fullscreen.</li>
<li>Videos / Publicidade; Apresentação de videos em streamming na area central ou em fullscreen.</li>
</ul>
<p style="text-align: justify;">As noticias na area central podem conter também fotografias vindas de um feed RSS ou da base de dados. A playlist pode ser organizada com varios destes elementos / módulos, e facilmente gerida via &#8220;drag&amp;drop&#8221;.  O sistema ficou preparado para a qualquer hora poder criar um novo módulo e integra-lo na playlist; Novos módulos se adivinham como conferências, dicas, publicidade, classificações de jogos, programação de canais de televisão, etc&#8217;s&#8230;</p>
<p style="text-align: justify;">O sistema ainda conta com auto-update para se actualizar sem necessidade de intervenção do administrador, tal como a própria aplicação procura actualizações de noticias, skins, imagens, videos, playlist de 15 em 15 minutos para que desta forma apresentar sempre conteúdo actualizado.</p>
<p>Se eu ao inicio tinha algumas duvidas se o consumo de memória e processador da aplicação no <span id="more-2068"></span>PC do cliente poderia depois de uma longa utilização entrar num ponto crítico, essas duvidas foram desaparecendo depois de alguns dias de testes, que surpreendemente revelaram que o consumo de memória se mantinha praticamente o mesmo (em alguns casos mais baixo que o inicial) e que o consumo de processador apenas era mais elevado a quando do carregamento de videos em streamming.</p>
<p style="text-align: justify;">Tecnologias usadas:</p>
<p style="text-align: justify;">O pricipal &#8220;motor&#8221; do front-end e da skin foi o Adobe Illustrator que permitiu converter elementos vectoriais do corel draw facilmente para o Flash Builder, claro sempre com a ajuda preciosa do Flash Catalyst. Depois disto foi criar a skin no Flash Builder, definir os elementos, configurar as diferentes skins dos módulos e juntar tudo num só componente MXML.</p>
<p style="text-align: justify;">A partir daí o Flex encarrega-se de fazer o resto, usando so módulos necessários e ajustando a skin conforme as necessidades. A parte mais fantastica é que ao usar PATH&#8217;s (FXG) a skin faz o auto-resize sem perder qualidade e toda ela pode facilmente mudar de cor, o que permitiu criar diferentes skins configuradas no backend.</p>
<p style="text-align: justify;">Foi usado o ZendAMF (PHP) + MySQL como backend para gestão de dados.</p>
<p style="text-align: justify;">As informações de noticias são vindas quer da base de dados quer de varios feeds (que podem também ser alterados facilmente no backend), já as informações meterológicas para todas as cidades são do google e as financeiras (bolsa e cambios) do yahoo.</p>
<p style="text-align: justify;">Penso que é tudo, aqui fica mais uma prova que o Flex pode também servir para aplicações variadas, tal como esta. Como a própria aplicação está em adobe AIR, provavelmente num futuro próximo ela pode ser migrada para as próprias Televisões &#8220;Internet&#8221; com o sistema operativo Android, abolindo a necessidade de um PC para o trabalho <img src='http://blog.msdevstudio.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Abraço!</p>
<p>Deixo-vos com algumas imagens (Partes das areas foram ocultadas, como o logotipo e imagens dos aniversariantes para preservar os clientes).</p>
<p><img class="alignleft size-medium wp-image-2074" title="tv_7" src="http://blog.msdevstudio.net/wp-content/uploads/2011/02/tv_7-300x223.jpg" alt="" width="300" height="223" /></p>
<p><img class="alignleft size-medium wp-image-2072" title="tv_5" src="http://blog.msdevstudio.net/wp-content/uploads/2011/02/tv_5-300x223.jpg" alt="" width="300" height="223" /><img class="alignleft size-medium wp-image-2069" title="tv_1" src="http://blog.msdevstudio.net/wp-content/uploads/2011/02/tv_1-300x223.jpg" alt="" width="300" height="223" /><img class="alignleft size-medium wp-image-2071" title="tv_3" src="http://blog.msdevstudio.net/wp-content/uploads/2011/02/tv_3-300x223.jpg" alt="" width="300" height="223" /></p>
<p><img class="alignleft size-medium wp-image-2073" title="tv_6" src="http://blog.msdevstudio.net/wp-content/uploads/2011/02/tv_6-300x223.jpg" alt="" width="300" height="223" /><img class="alignleft size-medium wp-image-2070" title="tv_2" src="http://blog.msdevstudio.net/wp-content/uploads/2011/02/tv_2-300x223.jpg" alt="" width="300" height="223" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.msdevstudio.net/2011/02/09/adobe-air-comunicacao-visual-via-tv/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>

