Notícias/ Pessoal

Retrospectiva 2007

Seguindo a idéia de vários outros sites/blogs, falando sobre todo o ano 2007 que para eu faltam 4 dias para terminar. Em 4 dias pode ficar ocultos, serei breve sobre toda a retrospectiva.

Primeiramente falando em números o site que você ler agora teve em 2007 até dia 26/12/2007:

Visitantes únicos: 365.491 visitantes únicos .
Pageviews (páginas impressas): 1.076.000.
Quantidade de posts feitos: 278 posts .

Estatísticas de viagens:

Total em vôo e aeroportos: 490 horas.
Total de vezes em São Paulo: 23 vezes.

Estatisticas Flex:

Palestras: 28 palestras presenciais e 6 palestras on-line.
Posts no Flex-Brasil.
Mensagens trocadas em lista: 1891 mensagens.
Total de dúvidas respondias pelo igorcosta@igorcosta.com – 487 mensagens.

Fora os dados acima, minha anoteções.

O ano foi bem ocupado, pelo que posso dizer na soma de todos os itens, valeu a pena cada hora dentro do avião, nas filas, no trânsito entre uma palestra e outra. Esse ano foi ótimo.

Uma passada bem rápida, no que aconteceu no ano: Foi realizado o primeiro Derby Brasil, distribuido algumas licenças Flex, a Flex-Brasil triplicou o número de usuários e surgiu mais uma lista a listaflexdev. O Blog da Flex-Brasil foi lançado e inúmeros outros blogs foram anunciados no site, blogs que falam sobre Flex.
O grupo Capivate-Brasil que criei junto com o Fábio Oliveira agora é administrado por ele, transformou-se em grupo de usuários oficial Adobe para tecnologia.
Fui dar treinamento em Belém do Pará e foi uma das cidades que mais gostei, o pessoal é bem hospitaleiro, tirando sendo o lugar mais quente que já vi em toda minha vida.
Conheci o pessoal da ideavalley uma Start-up no Rio de Janeiro, só que acabei saindo por outros compromissos que tavam me tomando mais tempo que nunca.
Consegui finalizar, em andamento e esquecido 8 projetos em Flex para grandes players. Muitos dos quais já ganharam prêmios como o da DemandBase, no DreamForce evento.

Fiz inúmeros amigos uma lista básica( Ricardo Gonçalves, Bruno Stefano, Zé Fernando, Mike Potter, James Ward, David Mendels, Glauco Schef, Claudio, Esaúl, Fábio Oliveira(em pessoa), Marcelo Galina,Júlio Petters, Carlos Eduardo, Beck Novaes, Felipe Andrade, Equepe da i2Tecnologia, Equepe da Logicway, Equepe da MundoLivre, Equepe da Formosa, Equepe da Elotech, Equepe da DataSul, Equepe MidiaWeb, Equepe do Bancoob, etc etc). Desculpe os demais que esqueci foi muita gente.

Me envolvi em alguns projetos open-source como o framework ASWing, onde comecei a fazer a portagem pra o Flex, passei a bola para outro chará meu. Criei alguns exemplos para o framework do Zé Fernando usando Tweener mais Flex.
Postei alguns componentes no site em inglês, lancei o projeto Margherita. Uma coleção completa de exemplos para novos desenvolvedores Flex.

Muita coisa boa aconteceu, obrigado a todas pessoas que se relacionaram comigo, que conheci, novos amigos, novos desafios postos, novas fronteiras a serem quebras e no aspecto geral estou bem feliz com todo o balanço geral. Flex cresceu muito esse ano e é só o começo.

Desejo a todos um Feliz Natal (atrasado) e um próspero e feliz Ano Novo. É época de curtir a familia e sair fora da frente do computador.

Vejo vocês ano que vem.

Comunidade/ Notícias

Flex-Brasil está crescendo como nunca

Desde a marca dos 1 mil usuários registrados eu nunca mais vi o status da lista e o número de participantes. Hoje fui ver e me impressionou é uma média de 12 novos registros de usuários todos os dias.
Alcançando uma média de 1.305 cadastrados. E rapidamente fiz uma pesquesa para saber em que ranking estávamos em relação ao mundo. O Brasil só perde para os Estados Unidos onde tem a FlexCoders, mais se for contar isso tem gente de todo lado do mundo.

Outra lista que cresceu bastante foi a Lista Flexdev, as coisas por lá estão bem quentes também, tem mais de 600 usuários registrados.

Será que o Flex realmente tá dominando o Mercado de RIA no Brasil?

Associe-se na Flex-Brasil, e também na lista Flexdev.

Actionscript/ Actionscript Frameworks/ Flex/ Flex 2 Charts/ Flex 2 Open-source/ Flex Componentes/ frameworks/ Open-source

Flex 2 : Brincando e aprendendo com Flex Charts Framework

Exatamente, o titulo já diz tudo, se você quer dá aquile toque especial sem seus gráficos na internet, você precisa usar o Flex Charts Framework que é parte integrante do Flex Builder 2 ou que pode ser comprado separadamente. Quando se usa os gráficos do Flex, os resultados são surpreendentes.
Nas próximas linhas eu espero que você já consiga criar aplicações com gráficos de forma inteligente. Vamos Brincar.

Quais são os gráficos disponíveis no Flex Charts?

São ao total de 11 controles de charts dentre eles (Área,Barra,Bubble,Candlestick,Coluna,HighLowOpenClose,Linha,Pizza, Plot, Multiplas séries, Múltiplos eixos.
Todos são extremamente fáceis de serem implementados em uma aplicação. Para facilitar sua vida, vamos tomar por base o aprendizado por exemplo. O primeiro exemplo é o preenchimento de um datagrid por um XML interno, onde este datagrid vai provê os dados para a construção do gráfico de Coluna.


Exemplo1: Gráfico Básico populado de um datagrid.

Requer o Flash Player

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
< ?xml version="1.0" encoding="utf-8"?>
<mx :Application creationComplete="montarAplicacao()" xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="460" height="256">
 
</mx><mx :XML id="ficticios" xmlns="">
	<root>
		<banco>
			<cliente nome="José" saldoMais="300" saldoMenos="100"/>
			<cliente nome="João" saldoMais="400" saldoMenos="150"/>
			<cliente nome="Maria" saldoMais="600" saldoMenos="60"/>
			<cliente nome="Antonio" saldoMais="900" saldoMenos="40"/>
		</banco>
	</root>
</mx>
 
<mx :Script>
	< ![CDATA[
 
		// chamo pela propriedade creationComplete no tag mx:Application
		public function montarAplicacao():void
		{
			// leitura de atributos no XMl é feita pelo prefixo @
			ExemploDG.dataProvider = ficticios.banco.cliente;
			// copio os valores do DataProvider do DataGrid  assim monto meu Gráfico
			// nao esqueca de coloca o yField para desenhar.
			ExemploColuna.dataProvider = ExemploDG.dataProvider;
		}
	]]>
</mx>
 
 
	<mx :HDividedBox x="0" y="0" width="100%" height="100%">
		</mx><mx :ColumnChart id="ExemploColuna" width="50%" height="100%">
			</mx><mx :series>
				<mx :ColumnSeries displayName="Ficticios" yField="@saldoMais"/>
			</mx>
 
		<mx :DataGrid width="50%" height="100%" id="ExemploDG">
			</mx><mx :columns>
				<mx :DataGridColumn headerText="Cliente" dataField="@nome"/>
				<mx :DataGridColumn headerText="Saldo +" dataField="@saldoMais"/>
				<mx :DataGridColumn headerText="Saldo -" dataField="@saldoMenos"/>
			</mx>

Explicando o exemplo.

No exemplo acima foi usado o gráfico de Coluna, quando se trata de gráficos em colunas você deve se prender o detalhe que os gráficos crescem ignorando o valor X no eixo cartesiano, já que é através das posições em Y que o gráfico será desenhado.
Uma das principais propriedades do gráfico de coluna é o yField=”” que vai desenhar todo o gráfico baseado nos dados que foram inseridos.
O valor que o yField está associando ao gráfico é o valor dos atributos @saldoMais.
Foi usado uma função para setar configurações básicas de setamenteo de dataProviders entre bind de componentes e bind de fonte de dados. No caso da comparação de igualdade entre o ExemploDG e o ExemploGrafico, feito pelo dataProvider, significa dizer que tudo que tiver como base de informações existentes no datagrid serão repassados para o gráfico de coluna.

Exemplo 2: Usando gráfico de linhas e múltiplas linhas com DataGrid

Requer o Flash Player

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
< ?xml version="1.0" encoding="utf-8"?>
<mx :Application creationComplete="montarAplicacao()" xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="510" height="344">
 
</mx><mx :XML id="ficticios" xmlns="">
	<root>
		<banco>
			<cliente nome="José" saldoMais="300" saldoMenos="100"/>
			<cliente nome="João" saldoMais="400" saldoMenos="150"/>
			<cliente nome="Maria" saldoMais="600" saldoMenos="60"/>
			<cliente nome="Antonio" saldoMais="900" saldoMenos="40"/>
		</banco>
	</root>
</mx>
 
<mx :Script>
	< ![CDATA[
 
		// chamo pela propriedade creationComplete no tag mx:Application
		public function montarAplicacao():void
		{
			// leitura de atributos no XMl é feita pelo prefixo @
			ExemploDG.dataProvider = ficticios.banco.cliente;
			// copio os valores do DataProvider do DataGrid  assim monto meu Gráfico
			// nao esqueca de coloca o yField para desenhar.
			ExemploLinha.dataProvider = ExemploDG.dataProvider;
		}
	]]>
</mx>
 
	<mx :VDividedBox x="0" y="0" width="100%" height="100%">
		</mx><mx :LineChart id="ExemploLinha" width="100%" height="50%">
			</mx><mx :series>
				<mx :LineSeries displayName="Ficticios" yField="@saldoMais"/>
				<mx :LineSeries displayName="Ficticios" yField="@saldoMenos"/>
			</mx>
 
		<mx :DataGrid id="ExemploDG" width="100%" height="50%">
			</mx><mx :columns>
				<mx :DataGridColumn headerText="Column 1" dataField="col1"/>
				<mx :DataGridColumn headerText="Column 2" dataField="col2"/>
				<mx :DataGridColumn headerText="Column 3" dataField="col3"/>
			</mx>

Explicando o exemplo.

Não tem muita diferença entre o primeiro exemplo, neste segundo exemplo foi usado apenas mais uma série que no outro não havia sido usada. O que não impede de você alterar o código fonte do anterior e adicionar mais uma coluna a cada série nova. A série é o que me refiro ao eixo X, já que o Y é o que define os desenhos do gráficos.

Exemplo 3: Exibindo Legendas para os gráficos

Requer o Flash Player

O exemplo acima é o mesmo deste, a única diferença é que neste eu instanciei o tag mx:Legend, assim, agora posso ter uma legenda baseada no que está exibido nos gráficos.

1
2
3
4
5
6
7
8
		<mx :Canvas width="100%" height="50%">
		</mx><mx :LineChart id="ExemploLinha" width="100%" height="100%">
			</mx><mx :series>
				<mx :LineSeries displayName="Ficticios" yField="@saldoMais"/>
				<mx :LineSeries displayName="Ficticios" yField="@saldoMenos"/>
			</mx>
 
			<mx :Legend dataProvider="{ExemploLinha}" x="384" y="19"/>

Parte 2 por vim. bateu ligeiramente o sono da manhã.

Adobe CS3.0/ AS 3.0/ Dicas e truques/ Flash CS 3

#1 – Planejando uma aplicação RIA de sucesso, cuidados que deve-se tomar.

De ontem para hoje eu me deparei em um projeto interno que está sendo desenvolvimento onde o principal objetivo é otimizar a aplicação Flex. E um dos laços que faz isso melhorar a aplicação, são loops, tamanho de swf, hardware envolvido, etc. Os loops sejam eles for, for each, while, do while, for in, timer. E por incrível que possa parecer, os resultados podem não deixar muita gente contente, mais é uma pura verdade quando você faz uma aplicção para ser usada em quaisquer circunstâncias, sejam elas ótimas ou muito más, de todo jeito tem que ser testada e funcionar.

Qual equepamento foi usado?

Geralmente quando faço um aplicativo eu procuro testar em qualquer hardware que vocês imaginar, sejam máquenas excelentes e tops de linhas até maquinas com 8 anos de vida como um K6 da AMD, lembram?

O equepamento foram 2, seguem abaixo:

AMD K6 com 256mb de memóri processador de 550Mhz, placa de video de 32bits e resolução máxima de 1024×768, com sistema Operacional Windows 2000.

Intel core 2 duo com 4Giga de memória, placa de video 32bits resolução de 1280×800 com sistema operacional Vista Home Premium.

Primeiro problema: Compatibilidade

Flash Player 9 não é compatível com Windows 2000, a versão do último build a 0.75 não pode ser instalada. já a versão 9.045 roda tranqüilamente. Problema resolvido, vamos ao segundo teste.

Segundo Teste: Performance de Frames Rates

No AMD K6-II com uma taxa de 24fps em uma aplicação Flex o consumo da memória chega a picos entre 17mb e 23mb, consideravelmente alto, já que essa versão do build tem esse bug, então a pergunta do tal “você quer interromper esse script ou continuar” aparece sempre. Então diminuímos para 16fps e problema resolvido o aplicativo começa a executar tranqüilamente perfeito.

No Intel core 2 Duo com o FPS em 24 o aplicativo chega a consumir entre picos de 3mb até 4mb de memória, com o FPS, chega aumentar cerca de 40% ‘a mais o uso de memória.

Resultados
Em todas as vias use o padrão de 40fps caso sua aplicação for usada nessas poderosas máquenas, se não sabe use o fps do K6-II com toda certeza vai rodar em qualquer máquena.
Como no meu caso eu não sei quais máquenas isso vai ser executado como por exemplo eu posso saber se for usado internamente em uma intranet e peço ao pessoal de infra para me passar uma auditoria. Então publicamente onde todo tipo de PC se conecta na internet, então preferir levar o resto da aplicação em 16fps.

Terceiro teste: Intervalos de chamadas de métodos

Testando chamada de métodos por intervalos de tempos cheguei a conclusão que é impossível alcançar uma perfeição no caso de uso de intervalos por for. Tem até um documento no LiveDocs que reforça meu pensamento, como a aplicação é feita colaborativa, o uso de loops como os citdos no título deste artigo, faz com que a dependência do hardware seja um fator descritivo entre qual delas irá rodar mais rápido, como eu preciso controlar isso e executar no mesmo intervalo de tempo, então eu preciso realmente usar Timer e não for or do while.

Timers, são ótimos nisso, qualquer aplicativo multi-usuário e colaborativo que se preze usa Timers para despachar eventos. O que em minha super máquena potente não sentirá isso nem tampouco a AMD K6-II. Ambas farão a tarefa no mesmo tempo.

Quarto teste: Tamanho do SWF

Como já cheguei a uma conclusão e que muitos dizem que me preciptei, você não espera pelo futuro próximo para saber que naquile dia eu previ o futuro.
Usar módulos não funciona, o que eu usei? o MASAPI, não preciso nem explicar o por que do uso, ele por sí só se explica.
Separo todas as partes por swf do tipo (Application), e carrego no Main Application todas as dependências dos arquevos externos e o framework por RSL, o que resulta para eu um SWF com 30kb e o MASAPI cuida do resto.
Então feito, tamanho de SWF não será problema. Eu vi que um conhecido meu o Arthur lançou um chamado Bulk Loader . Sem dúvida pelo que já li é promissor para caramba, não testei, mais comparando com a capacidade dos criadores e colaboradores, eles não faz besteiras.

Quinto teste – Arquetetura usada para Design Patterns: MVC

Tem gente que ainda acredita no Carningorm da Adobe, eu desaconselho usar, o Carningorm teve seu imporante papel na evolução do Flex e é inquestionável seu uso na versão do Flex 1.5. Já não tenho o que dizer na versão 2.0. No Flex 2, o SDK ganhou tanta maturidade que o que eu vi e vejo por ai é gente usando seu próprio framework para MVC, não faz sentindo usar um framework que para você no campo real não agrega valor tanto do lado do desenvolvedor para treinar sua equepe em aprender Carningorm quanto para quem está pagando por ele.
Por que não focar sua equepe em desenvolver seu próprio framework particular?
Foi e é o que faço sempre em meus projetos específicos e em consultoria. Focar a empresa em desenvolver seu próprio framework para MVC, assim eu tenho de imediato do lado do desenvolvedor uma certa intimidade no que foi feito, a conversa flui mais rápida do que algo que já está pronto no mercado e você tem que adaptá-lo até o máximo para rodar.

Porém nesse específico caso como já havia-se feito parte do software em PureMVC, tive que continuar com o PureMVC. Quem não conhece vale a pena e muito, o PureMVC tem menos idade que o Carningorm, mais é estilo completão, uma de suas características que batem o Carningorm é a documentação completa, coisa que até hoje Carningorm não definiu nada além de tutorial defasado e sem perspectiva de sobrevivência.
O que mais gostei e estou enamorado com o PureMVC são o Facade (extrutura singleton para MVC), Observer(provê encapsulamento do objeto na notificação do callback) .

No meu pessoal, eu copiei essa idéia, facilita muito deixa a complexidade de lado, deixa livre a dependência de versões do Flex SDK.

Sexto teste: Trabalho em equepe de duas pessoas acima.

Sem dúvida um controle de versão é ótimo nestes casos, use o SVN, ele tem se comportado bem com o Flex Builder tanto plug-in quanto Stand Alone. CVS é bom mais não tem comandos que o SVN possui. Já que todos dizem que o SVN é usado em grande maioria e será a substituto do CVS.
Para trabalhar com o Flex Project e SVN, você pode marcar todos os diretórios do seu projeto menos é claro da pasta BIN, não faça isso, caso contrário seu swf terá comportamentos que só o voodoo poderá explicar.

No caso de trabalho solitário, você sozinho pode controlar o histórico local de seu .mxml ou .as, pois o Flex Builder 2/3 já vem o History Local que por padrão guarda até 10x o arquevo salvo. É uma boa quando você quer voltar as alterações de arquevos independentes.

Sétimo teste: Internacionalização.

Eu já vi e desaconselho, se a sua aplicação for vista ou usada apenas por brasileiros, por que usar Multi-Idiomas? Isso é um trabalho de trouxa que quer impressionar o chefe ou à sí mesmo em dizer que tal aplicativo é visualizado em vários idiomas. Lembre-se do alvo, não esqueça que o propósito fundamental do Flex é focado no usuário. Se ele fala só português e será usado só por quem domina o idioma, esqueça essa questão.
Agora no caso de aplicações para américa latina ou mundo, ai sim o uso da internacionalização ( Resource Bundle) é obrigatório, constando neste caso não use traduções dentro do MXML ou actionscript, por favor use o compilador para isso.

Conclusão desta primeira parte.

A segunda parte está vindo por ai.

Flex/ Flex 3/ Flex 3 SDK/ Flex Builder 3/ Labs/ Notícias/ Open-source

Flex Builder 3 beta 3 disponível no Labs

Para quem ainda não viu, já está disponível o novo Beta 3 do Flex Builder 3 codename Moxie. Esta será a última versão pública e beta do Flex Builder 3. Ano que vem sairá a versão final.

Antes que você saia instalando já o Flex Builder 3 Beta 3, por favor leia o Release Notes.

Dica: Atualize sua última versão do Flash Player para a 9.0.115 caso você tenha a 9.0.60, Aplicações Flex que usem RSL vão precisar desta última versão.

Link para visitar o Release Notes.

Veja os kwon Issues que a Adobe já está providenciando para consertar.

Dicas/ Flex/ Flex 2 e Java 5/ Flex 3/ Flex 3 Open-Source/ Live Cycle/ Notícias/ Open-source

BlazeDS alternativa open-source da Adobe para o LiveCycle DataServices

O BlazeDS é uma alternativa que a Adobe está liberando hoje para criar aplicações com push de dados e remoting itens fundamentais que existem no LiveCycleDS via RMTP.

Porém o BlazeDS não faz uso do RTMP mais sim um protocolo específico foi criado para ele já que o grande segredo de produtos como LiveCycleDS e FMS são vindos do RMTP.

Esta é uma das grandes notícias para a comunidade Flex mundial, já que temos visto outras alternativas open-source não pró Adobe sendo lançadas como é o caso do WebOrb e GraniteDS.

O BlazeDS é licenciado pelo LPGL v3. e terá seu código fonte disponível no primeiro trimestre de 2008.

Quem já tem uma versão developer do LiveCycle vai poder usar o BlazeDS gratuitamente para projetos comerciais usufruindo do poder do Remoting e do DataServices para push de dados de forma que é 10x mais rápido que qualquer SOAP ou XML.

Alguns já até testaram com o EventGateway do ColdFusion 8 standard e funciona bem rápido.

Para quem queser baixar a versão gratuita do BlazeDS, só ir na página do Labs da Adobe.

Christophe Coenraets, publicou sua visão sobre o novo lançamento da Adobe e os futuros planos.

Hoje o BlazeDS é distribuído apenas para a plataforma Java, a Adobe espera que depois que o código fonte estiver disponível, BlazeDS possa suportar outras linguagens.
Atualmente ele tem distribuições que foram testadas e funcionais para o Tomcat.

Caso você achar algum bug use o JIRA bugbase para reportá-lo.

Uncategorized

3 cópias do livro Flex solutions

Para quem queser comprar o último lançamento em matéria de livros de Flex para versão 2/3. Estou com 3 cópias para serem vendidas aqui no Brasil. O livro é em inglês, você pode ter mais noção do conteúdo por aqui. Lembre-se não adianta pedir por comentário para reservar uma cópia. Apenas tenho 3, levando-se em conta o número de visitantes do site provavelmente faltará livros.

Quem queser garantir uma cópia envie um e-mail para eu contato@igorcosta.com o valor do livro já com frete incluso é de R$150,00 reais.

Mais detalhes sobre o livro aqui.

Eventos/ Labs/ Notícias/ Pessoal

Conversas e BRIO participe

Estou convidando a todos que visitam este site para participar de um bate-papo sobre flex e coisas afins agora até as 11:00AM, o bate-papo é usando o nova versao do connect que está em beta.
Participe, clique aqui e entre como guest.

O chat vai funcionar para testes com a plataforma e ver se está tudo nos conformes.

Link para entrar.

[atualização]

Já acabou quem participou obrigado pela visita, quem não conseguiu, próximos virão.