AC/DC Black Ice Tour 2009 – Brasil

Dia 27 de novembro de 2009 é o dia que marca o melhor show que eu já vi na vida. Sem palavras pra descrever o que é ver Angus Young tocando, ele toca como se o demônio estivesse encarnado nele. Um cidadão disse que se ele tocasse guitarra desistiria na mesma hora. O bom e velho blues com o melhor do rock n’roll saem das mãos de Angus com tanta paixão que emociona. A apresentação dele foi um show a parte.
Antes da banda entrar pontualmente as 21:30, Nasi se apresentou pra o Morumbi lotado mas nem um pouco empolgado por terem escolhido ele para abrir o show.
Na minha opinião quem deveria ter aberto o show tinha que ser Velhas Virgens, a única banda brasileira que tem o espírito AC/DC.
Esse é o video que eu gravei durante Hells Bells (o som não está uma maravilha)
Video de The Jack selecionado de algum maluco na pista
Minhas fotos do show estão no Flickr
Descobrindo código que cheira mal no seu projeto Flex

Baseado no PMD, ferramenta de auditoria de código bem conhecida dos javeiros,
FlexPMD é uma ferramenta de auditoria de código capaz de detectar más práticas comuns em código Flex (MXML/AS3) e ajudar a melhorar o nível da qualidade do código produzido pelo time. Exemplo:
Código não usado (functions, variáveis, etc)
Código duplicado
Código muito longo (classes, metodos, etc.)
Uso inapropriado do ciclo de vida de componentes Flex (ex. commitProperties, etc.)
O FlexPMD faz a auditoria automática do código baseado em regras escolhidas por você. Um relatório XML é gerado relacionado as violações de acordo com as regras configuradas. Existem várias regras prontas para serem usadas, mas é possível criar suas próprias regras para atender as necessidades de cada projeto. Você pode criar uma regra para forçar uma convenção de código ou para verificar se todos os métodos estão documentados por exemplo.
Esse é o FlexPMD Ruleset Creator, uma aplicação em Flex que facilita a criação dessas regras customizadas.
FlexPMD pode ser chamado via linha de comando, Ant, Maven ou até Automator do Mac OS. O relatório gerado pela ferramenta pode ser visualizado pelo viewer da Adobe, mas o ideal mesmo é integrar a alguma ferramenta de integração contínua como o Hudson.
Fica aí a dica pra quem, assim como eu, estava a tempos procurando um auditor de código automatizado para implantar no serviço de integração contínua.
Espero poder utilizar no meu próximo projeto Flex.
Playing for change
“A música é a linguagem universal” isso você com certeza já ouviu falar.
Essa cover de Stand By Me, que por sinal foi a melhor versão que eu já ouvi, foi gravada por artistas completamente desconhecidos nas ruas ao redor do mundo. Tudo começou a 4 anos com uma trilha de base – vocais e violão – gravada nas ruas de Santa Mônica, Califórnia, por um músico de rua chamado Roger Ridley. A faixa então foi levada a Nova Orleans, Louisiana, onde Grandpa Elliot – um cantor cego do French Quarter – adicionou os vocais e a gaita enquanto ouvia a trilha gravada por Ridley no headphone. Na mesma cidade, Washboard Chaz adicionou percussão metalizada.
E daí em diante a coisa foge do controle – no bom sentido: os produtores levaram a mixagem resultante para a Europa, África e América do Sul, adicionando novas trilhas com múltiplos instrumentos e vocais que foram inseridos na versão final que você assiste no vídeo. Tudo feito com um simples laptop e alguns microfones.
A partir disso criou-se o projeto Playing for Change que reúne diversos artistas desconhecidos ao redor do mundo.
Mas um trabalho fantástico que prova que graças a democratização da tecnologia, dos meios de comunicação e de distribuição tudo o que você precisa para fazer sucesso é talento.
O DVD está a venda na Amazon clique aqui
Adobe Flash Pro CS5 deve suportar desenvolvimento para iPhone

Adobe anuncia hoje no Adobe MAX que a próxima versão do Flash Professional CS5 vai permitir que desenvolvedores criem aplicações em ActionScript 3 e exportem o projeto para código nativo executável em iPhone OS.
Dessa forma desenvolvedores AS3 poderão desenvolver suas aplicações e publicar na AppStore.
Pelo menos essa é a promessa.
Pra Apple será uma aplicação como qualquer outra.
A Adobe não deve esquecer que esse código exportado pela Flash CS5 deve estar nos conformes para ser aprovado pela Apple para publicar na AppStore.
Beta da ferramenta deve ser liberado até o final desse ano.
É uma promessa arrojada.
Só acredito vendo. =)
Mais em http://adobe.com/go/iphone
Flex Builder Hot Tip – Blueprint plugin
Uma boa IDE, um browser e um link ADSL são ferramentas indispensáveis para qualquer desenvolvedor. Você já parou pra contar quantas vezes você faz pesquisas procurando uma luz sobre como utilizar uma determinada classe ou implementar algo novo pela primeira vez? As teclas Alt+Tab devem estar até gastas de tanto mudar o foco da IDE para o browser e vice-versa o dia todo.
Pensando nisso que o time do Flex Builder fez um plugin chamado Blueprint (é um codenome na verdade, ainda não tem um nome oficial).
Blueprint é um plugin pra Flex Builder (compatível com a versão 3 ou 4) que torna o trabalho de pesquisar exemplos de código Flex na internet tão fácil quanto um code complete. Você seleciona um texto e os resultados são mostrados direto na IDE.

A pesquisa é feita utilizando a engine do Google em sites de documentação, blogs e forums. O resultado é formatado e resumido, facilitando a leitura e a navegação.
Pra instalar o plugin siga as intruções passo a passo aqui
Como utilizar? Selecione um trecho de código e pressione o atalho padrão que no Windows é Alt+b e no Mac Control+b.
obs: Uma pena que funcione só pra código Flex.
enjoy it
AdvancedDataGrid with contained DataGrid
Essa semana nos deparamos com a necessidade de apresentar uma entidade hierarquica em forma de tabela.
Até aí tudo bem, o problema é que os itens filhos deveriam mostrar colunas diferentes do pai.

Eu sabia que era possível fazer com AdvancedDatagrid no Flex 3 sem apelar para gambiarras. Foi quando descobri os rendererProviders e do AdvancedDatagrid.
Os rendererProviders do AdvancedDatagrid permitem customizações bem avançadas.
No meu caso eu precisava renderizar um outro Datagrid no nível filho.
A documentação do AdvancedDatagrid não detalha bem esse recurso ficando apenas nos exemplos de gráficos dentro dos grids.
Encontrei um post no Flex Cookbook com um exemplo prático do .
http://www.riamaven.com/FlexSolutions/ADGwithContainedDGDemo.html
O código é realmente muito simples, mais do que eu esperava encontrar. No AdvancedDatagrid principal define-se um AdvancedDataGridRendererProvider em rendererProviders.
<mx:rendererProviders>
<mx:AdvancedDataGridRendererProvider depth="2" columnIndex="1"
renderer="SubDataGrid"
columnSpan="0" />
</mx:rendererProviders>
No atributo renderer define-se a classe a ser renderizada, nesse exemplo a classe criada se chama SubDataGrid e extende de AdvancedDatagrid. O único segredo está em fazer override do método “set data”.
<mx:Script> <![CDATA[ import mx.controls.Alert; override public function set data(value:Object):void { // set dataProvider dataProvider = value.service; // If using the array data source, use this instead: // dataProvider = value; // adjust rowCount this.rowCount = dataProvider.length + 1; } ]]> </mx:Script>
Normalmente não é algo que eu aconselharia, deve ser usado com moderação e como última alternativa pra não prejudicar demais a usabilidade e a focalidade das informações.
Flex Cookbook: http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&postId=12326&productId=2
Apple e Stanford vão oferecer curso gratuito de iPhone SDK
Apple e a Universidade de Stanford anunciam que vão produzir em parceria um curso gratuito de desenvolvimento de aplicativos para iPhone.
O material será produzido pela própria Apple e vai poder ser baixado pelo iTunes no canal da universidade Stanford.
As primeiras video-aulas devem sair ainda esse mês.
A Apple já deu um grande passo ano passado para a formação de uma comunidade de desenvolvedores quando retirou da licença do SDK um termo que proibia que os desenvolvedores compartilhassem qualquer coisa sobre a plataforma.
Por mais absurdo que pareça tal termo já proibiu por exemplo a publicação de livros sobre o SDK do iPhone.
Fonte: Wired Gadgetlab
Search Engine como componente mais vital para aplicativos empresariais
Search Engine se tornará o componente mais vital para aplicativos empresariais nos próximos anos.
The use of full text search will have a major impact on how the applications interact with the data. Instead of actively looking for information by digging for information with tons of drill downs and clicks, you just type what you want or highlight what matters to you.
Anatole Tartakovsky Search Engine as the most valuable enterprise application component
Anatole Tartakovsky atribui isso ao fato de que os usuários estão se acostumando a realizar buscas na internet que processam milhões de resultados dentro de poucos milisegundos e vão exigir cada vez mais que os aplicativos que utilizam nas suas empresas apresentem o mesmo nível de responsividade.
Ninguém quer ficar dando 79 cliques para chegar na informação que se precisa, estamos cada vez mais acostumados a digitar nossos desejos em uma caixinha e receber o resultado em milésimos de segundos.
Impressões sobre Certificação Flex 3 with AIR
Na última sexta-feira dia 27/fev/2009 tive a oportunidade de realizar a prova de certificação Adobe Flex 3 with AIR.
Quando comecei a me preparar para a prova logo percebi que estudar para uma certificação da Adobe não é como se preparar para fazer uma prova da Sun que possui toneladas de simulados pela internet e livros especializados no assunto.
O material para estudo é basicamente a documentação oficial do produto. Complete Flex 3 documentation (69 MB)
Encontrei talvez o único simulado de Flex disponível hoje. Attest é pago e por enquanto só conta com simulado da antiga certificação Flex 2. Vem com um teste trial de 35 questões que já dá pra ter uma noção da prova.
A prova foi remodelada e está um pouco diferente da Flex 2 especialmente por não contar mais com a sessão integração com Cold Fusion, mas em compensação questões sobre AIR foram incluídas. Os tópicos que caem na prova são os seguintes:
| Topic Area | % of Exam | # of Questions |
| Creating a User Interface (UI) | 22 | 11 |
| Flex system architecture and design | 18 | 9 |
| Programming Flex applications with ActionScript | 24 | 12 |
| Interacting with data sources and servers | 16 | 8 |
| Using Flex in the Adobe Integrated Runtime (AIR) | 20 | 10 |
Mais detalhes em Adobe Flex 3 with AIR Exam Preparation Guide (PDF, 56K)
Para meu azar 20% da prova é específica sobre AIR. Pelo fato de não trabalhar diretamente com AIR as perguntas mais complicadas pra mim foram justamente sobre essa sessão, Em uma prova de 50 questões e tendo que atingir 67% para passar 20% é muita coisa para arriscar sem estudar, tive que dar uma lida na documentação.
Para minha supresa não caiu pra mim nenhuma pergunta sobre o compilador do AIR, debugger etc, a pergunta mais estranha foi do tipo como desinstalar uma aplicação AIR no Mac OS.
Essa foi a minha preparação para o exame.
Resultado : SCORE 80%, GRADE: PASS
O voucher da Adobe custa 100 dolares e conta apenas com a versão em inglês por enquanto.
Marshall Plan – Sub-applications, não modules
Como já comentado anteriormente, eventualmente, pode ser que não seja possível manter todos os SWF sob a mesma versão do Flex.
Para resolver esse problema a Adobe entendeu que apenas Modules não resolveria o problema. Para isso criou o projeto Marshall Plan, que resultou em mudanças significativas no Flex 3.2.
A última versão do SDK do Flex 3.2 possui permitirá uma Application utilizar Sub-Applications compiladas em diferentes versões do Flex.
Atualmente o Flex 3.2 é o ponto de partida, esse recurso por enquanto ainda não suporta as versões anteriores 3.1, 3.0, ou 2.x, portanto você vai precisar migrar para 3.2 para usar esses recursos hoje.
Se sua aplicação já é compilada em Flex 3.2, aplicações compiladas em Flex 4, 5, etc poderão utilizar sua aplicação.
Refatorar o seu código vai dar trabalho, isso você pode ter certeza. Separar módulos e sub-applications em diferentes domínios de aplicação e ainda permitir comunicação entre eles dá trabalho. Esse refactoring para permitir que os SWFs de diferentes domínios continuem conversando entre si foi cunhado como ‘marshalling’.
Lição de história: o Plano Marshal original foi uma forma que os paises europeus encontraram para se reerguer em paz. O Marshall Plan da Adobe é uma maneira de fazer com que diferentes versões do Flex conversem em paz.
Como isso funciona?
Cada sub-application é carregada em um ApplicationDomain independente, possue seu próprio StyleManager por exemplo, o que significa que Application e Sub-Applications não compartilham nem estilos.
Todos os singletons do Flex Framework precisaram seu refatorados para suportar o Marshall Plan, portanto provavelmente você terá retrabalhos no seu código que usa Flex Managers como DragDrop, PopUps, ToolTips e Cursors.
Singletons não são mais tão “Singletons” assim
Exemplo:
MySubApp.mxml
ToolTipManager.toolTipDelay = 1000;
MyApp.mxml
trace(ToolTipManager.toolTipDelay); // 500 (default) not 1000
MySubApp’s ToolTipManager não é o mesmo objeto que MyApp’s ToolTipManager
Limitações do Marshall Plan
- Styles não são compartilhados. Cada aplicação tem seu próprio estilo, nem ao mesmo herda estilos da Application principal. Estilo de uma sub-application não interfere no estilo da application principal e vice-versa.
- ResourcesBundles também não são compartilhados da mesma forma que Styles. Cada sub-application deve carregar seu próprio ResourcesBundle.
- HistoryManager apenas para a Application principal.
- Use systemManager.getSandboxRoot() no lugar de systemManager para listening de eventos do Mouse e do Keyboard.
Utilizar esse recurso pode dar trabalho. Existem várias questões de segurança envolvidas nesse processo. Pretendo comentar sobre elas nos próximos posts.







