Aug
23

MediaPreview.tv - televisão online de publicidade alimentada pelo SilverLight

O Microsoft Silverlight será a tecnologia base de um novo canal de televisão online a lançar oficialmente a 3 de Setembro - o MediaPreview.tv . Este é um canal para profissionais de publicidade criado pela OMD, ViaTecla e Microsoft, e pode ser acedido através de www.mediapreview.tv .

Media Preview

Estive a dar uma vista de olhos no projecto, e pareceu-me interessante. Fiquei contente de ver uma RIA produto nacional, até porque deverá ser a primeira RIA portuguesa publicamente conhecida. Sou da opinião que ainda tem várias arestas a melhorar (deparei-me com um ou outro bug), mas regra geral parece-me um produto bem conseguido.

Relativamente ao desempenho do Silverlight, na minha máquina/configuração parece-me bastante fluído - Windows Vista, CoreDuo T2300 com 2Gb de Ram, Firefox. Pedia por curiosidade aos nossos visitantes que testassem o site com outras configurações e que relatassem as suas experiências aqui nos comentários.

Não gostei de um pormenor na notícia disponível no site da ViaTecla. Citando:

e utiliza a nova framework tecnológica da Microsoft, o SilverLight, permitindo a criação de uma nova geração de interfaces Web.

Não quero ser tendencioso, mas esta afirmação dá a sensação que graças ao Silverlight surgiu uma nova geração de interfaces web. Algo que sabemos que não é propriamente verdade…

De qualquer forma, deixo aqui os meus parabéns à ViaTecla, OMD e Microsoft pelo produto conseguido. Esperemos continuar a ver mais bons exemplos nacionais!

Mais informações podem ser obtidas nesta notícia do Correio da Manhã.




Aug
22

Flash Player 9 com H.264 - Video na web em High Definition

Foi disponibilizado no labs uma nova versão beta do Flash Player 9 (updater 3 beta 2), nome de código MovieStar, que permite visualizar filmes codificados em H.264 com som em AAC.

Nesta versão beta que se prevê ‘final’ antes de 2008, foi incluida não somente a reprodução tanto a nível de progressive download como em Streaming como o suporte para aceleração por hardware para este formato em qualquer uma das plataformas (windows, mac e linux).

Foi incluido um decoder para H.264 suportando perfis Base, Mainline and High profile assim como para ACC que suporta AAC Main, AAC LC e SBR segundo as correspondentes especificações ISO.

Outros sub sets de implementação de H.264 não serão suportados (MPEG-4 Part 2 por exemplo).

Para utilizar estes novos ficheiros bastará recorrer à classe Netstream como se faz hoje em dia para ficheiros FLVs. Os ficheiros poderão ter as extensões .mp4,.m4v,.m4a,.mov e .3gp e o player não se queixará visto ele reconhecer o tipo de conteúdo pelo header do ficheiro.
Fica o aviso que ao utilizar download progressivo, convém mover o moov atom (que é o index dos ficheiros em mpeg 4), para o início do ficheiro para permitir saltar para um ponto específico do ficheiro.

Quanto ao audio, não só foi implementado o novo decoder mas também foi também implementado para a class Sound um resampling de todos os canais disponíveis para 2 canais a 44.1 KHz. Será portanto possível tocar um som audio com 5.1 canais mas estes serão reconvertidos para 2 canais.
O ressampling aplicar-se-à também a mp3 que não estejam em 44.1 KHz.
Quanto à questão de multi-canais, está previsto ficar disponível numa próxima versão do player(10?, 11?).
Para tocar audio em AAC terão também de recorrer ao Netstream como no video.

Para fazer stream neste novo formato terá de ser usado o novo Flash Media Server que estará brevemente disponível também em versão beta. Neste momento, nenhum servidor de streaming alternativo está autorizado a fazer stream neste novo formato para o Flash Player sem um devido licenciamento. Não se sabe ainda se a proibição é meramente de um ponto de vista de licenciamento ou a nível técnico.

A mailing list do Red5 já demonstrou que iria ficar atenta ao desenrolar deste tema.

É de salientar que o decoding de H.264 também estará presente na próxima beta do AIR mas infelizmente o encoding neste formato só será possível através do Flash Media Encoder.

Algumas demos em full screen usando H.264:
Flash dev
FlashComGuru
Adobe Labs




Aug
15

VoIP chegou ao Flash

Uma empresa com o curioso nome Ribbit está a trabalhar num componente em Flex para permitir a construção de aplicações que permitam fazer chamadas VoIP. Este componente será disponibilizado inicialmente num regime de pre-release através de candidaturas. Os resultados das candidaturas serão apresentados no dia 27 de Agosto, sendo o componente disponibilizado aos escolhidos a 3 de Setembro. A 3 de Outubro espera-se que o componente fique então disponível ao público em geral.
Já estou a imaginar as nossas aplicações Flex equipados com um sistema de suporte técnico a recorrer a VoIP. “Tem um problema? Clique aqui para nos telefonar!”

Mais informações no blog do Ryan Stewart.




Aug
12

FlexFuel: gerar código para aplicações Flex/Air baseadas em cairngorm

 

Introdução

Quem está habituado a recorrer a arquitecturas MVC saberá certamente o quão chato é ter que criar vários ficheiros (commands, delegates, vos, etc) e dezenas de linhas de código apenas para adicionar uma pequena funcionalidade à aplicação.
Sabendo isso, já algumas pessoas criaram aplicações para gerar o esqueleto de novos projectos baseados em Cairngorm (a mais utilizada framework MVC para Flex/Air), tais como o Cairngen, Cairngorm Creator, ou o Flex Builder Enterprise Plugin.

 

Responder às mudanças no levantamento de requisitos

Tendo investigado estas aplicações, cheguei à conclusão de que apesar de serem extremamente úteis, possuem uma falha grave: assumem que à partida, antes de se iniciar a implementação de um projecto, já todos os requisitos estão levantados, sendo aí gerado o código para todas as funcionalidades que o Information Architect considerou.
Porém, na realidade é sabido que os requisitos mudam ao longo do tempo. É sabido que em projectos de grande dimensão, é preferível dividi-los em fases. É sabido que cada vez mais a realidade está em constante mudança, e as aplicações têm que se adaptar rapidamente a essa mudança. Pelo que os geradores referidos acima são apenas válidos para uma fase inicial, tornando-se inúteis a partir daí. Se um cliente nos disser “quero uma nova funcionalidade que permita inserir produtos”, teremos que criar os VO’s, Commands, Delegates, etc, etc “manualmente”.

 

O FlexFuel

Insatisfeitos com isto, e com vontade de aumentar a nossa velocidade de resposta à mudança, na Webfuel decidimos criar uma aplicação que permitisse não só criar a estrutura inicial de um projecto, como também ir adicionando funcionalidades a projectos já existentes. E foi assim que nasceu o FlexFuel, uma aplicação em Adobe Air construída no espaço de uma semana.
Esta aplicação é muito específica e foi construída de acordo com a nossa realidade e método de trabalho. Resumidamente, permite:

  • Criar a estrutura de um projecto a partir do zero, tanto do código server-side (em PHP recorrendo a AMFPHP) como do código client-side.
  • Adicionar novos Value Objects
  • Adicionar novas propriedades a Value Objects existentes
  • Adicionar novos serviços ao projecto
  • Adicionar novos métodos a serviços já existentes.

 

Ecrân Configurações

O primeiro ecrân da aplicação - Config - permite-nos definir a configuração base do nosso projecto. Esta configuração é gravada num Local Shared Object pelo que sempre que abrimos a aplicação, a configuração criada na última execução é carregada.
Esta configuração resume-se a definir a directoria onde está o projecto e o nome do package do mesmo.

Flexfuel1

 

Ecrân Gerar Estrutura

Tendo isto feito, podemos então passar para o ecrân seguinte, Gerar.

Flexfuel2

Neste ecran temos apenas um botão “Gerar estrutura”. O objectivo é criar do zero:

  • a estrutura de pastas client-side e server-side
  • colocar no server side o amfphp 1.9b2 e alguns ficheiros da framework da Webfuel
  • criar o ModelLocator.as
  • criar o Controller.as
  • criar o Services.mxml
  • criar o services-config.xml

Assim, tendo inicialmente esta pasta:

Flexfuel3

Após clicarmos no botão obtemos:

FlexFuel4

É possível ver que os ficheiros criados vão de encontro à configuração que definimos no primeiro ecrân. Por exemplo, o Controller.as possui o package correcto:

FlexFuel5

 

Ecrân Criar Value Object

O ecrân seguinte, Criar VO, permite criar um novo Value Object. A estrutura é simples: o utilizador define o nome do Value Object, insere as propriedades, e clica em Criar.

FlexFuel6

Na caixa nova propriedade, a combobox permite escolher um tipo de dados, mostrando os tipos básicos e ainda outros Value Objects que existam no projecto, permitindo por exemplo criar um ClienteVO que além de um id:Number e um nome:String, possui também um ultimoProdutoVisto:ProdutoVO. Após se clicar em criar VO, é possível ver abaixo que são criados os ficheiros server side e client side:

flexfuel7

A imagem seguinte mostra o conteudo do ficheiro ProdutoVO.

FlexFuel8

 

Ecrân Alterar Value Object

Imaginemos que mais tarde o cliente se vira para nós e diz “queremos começar a enviar encomendas pelo correio, pelo que ter o peso dos produtos é importante”. Lá teremos que adicionar uma nova propriedade ao ProdutoVO.as e ao ProdutoVO.php . Para isso, utilizamos o ecran “Alterar VO”, mostrado seguidamente:

FlexFuel9

Após se carregar em Adicionar Propriedade, podemos constatar que os ficheiros ProdutoVO.as e .php foram devidamente actualizados:

FlexFuel10

 

Ecrân Criar Serviço

Temos seguidamente o ecrân Criar Serviço. Este possui apenas uma caixa de texto para definirmos o nome do serviço. Imaginemos que o cliente nos pede que a aplicação permita gerir produtos. Temos então que criar um serviço GestorDeProdutos:

FlexFuel11

Carregando em criar, é então gerado do lado do cliente o correspondente GestorDeProdutosDelegate.as, é criado o Services.mxml, e do lado do servidor são criados o GestorDeProdutosManager.php e o GestorDeProdutosService.php:

FlexFuel12

Nas imagens seguintes podemos ver o código gerado do GestorDeProdutosDelegate.as e do services.mxml:

FlexFuel13

flexfuel14

 

Ecrân Adicionar Método a Serviço

Chega então o último ecrân, que é talvez o mais importante - adicionar um método a um serviço. Imaginando que o GestorDeProdutosService precisa da funcionalidade de se inserir um novo produto. Temos então que criar o método adicionaProduto, que receberá um produto e devolverá um booleano indicando se este foi inserido com sucesso. Assim, temos então o seguinte ecrân:

flexfuel15

Onde podemos ver que foram criados o AdicionaProdutoCommand.as, o AdicionaProdutoEvent.as, foi adicionado o mapeamento de ambos no Controller, foi adicionado o método ao GestorDeProdutosDelegate, e do lado do servidor a assinatura do método foi criada no GestorDeProdutosService e no GestorDeProdutosManager:

Flexfuel16

O código gerado do AdicionaProdutoCommand.as:

flexfuel17

E o método adicionado ao GestorDeProdutosDelegate.as:

flexfuel18

 

Conclusões

A aplicação ainda não está terminada, tendo alguns pequenos bugs (por exemplo, constatei ao escrever este post que o nome da classe dos VO’s criados não está correcto - devia ser nomeVO), e como disse anteriormente é muito específica ao método de trabalho da Webfuel.

O FlexFuel foi criado no espaço de uma semana, por três dos nossos developers:

- Eu, João Saleiro
- Filipe Freitas
- Alberto Rodrigues

Ainda não foi decidido dentro da Webfuel se iremos de disponibilizar publicamente a aplicação (ou até o próprio código), no entanto quem se quiser candidatar a receber um beta privado da mesma, pode enviar-me um mail para joao|DOT|saleiro|AT|webfuel|DOT|pt apresentando-se e dizendo o que acha do futuro das RIAs em Portugal.
Os comentários melhor conseguidos receberão uma cópia da versão beta, e verão o seu comentário publicado num post no blog do riapt.

top