Está o redeRIA mais rápido?
Está o redeRIA mais rápido?
Palestra: Produção de jogos e aplicativos para celular usando a plataforma Flash: Flash e Flex Builder
Para se inscrever e saber mais é só acessar este link.
Pretendo ir e você?
Como foi o 1º #HoraExtra Ágil Curitiba
Ontem, 1º de Setembro de 2010, foi realizado o 1º #HoraExtra Ágil de Curitiba.
Primeiramente quero agradecer a todos que foram ao #HoraExtra, e dizer para você que não foi, “PERDEU”!
No #HoraExtra foram discutidos vários temas onde o foco central ficou sempre em “PESSOAS” e como melhor gerenciar o maior ativo das empresas.
![]()
Como essa foi a primeira edição, lógico que algumas coisas foram esquecidas, como por exemplo câmera fotográfica, e bloco de anotações para os papos relevantes, epic fail, mas vou tentar lembrar de alguns.
![]()
Começamos conversando sobre o conceito ágil em Desenvolvimento de Software, Scrums e afins, o papo evoluiu para o Kanban, e comparamos com o Kanban de fábrica, a origem do Kanban em software.
| X |
Passado um tempo o papo foi para o lado das métricas de velocidade de times ágeis, com a seguinte pergunta: Você, gerente ágil recém chegado para facilitar um time que você desconhece, quais métricas você pediria para conhecer de modo geral a capacidade do time?
![]()
Depois aproveitamos a experiência internacional de vários participantes para discutir a diferença cultural entre os profissionais brasileiros e europeus.
E o encontro encerrou com o debate sobre a Geração Y e a liberdade de internet para os funcionários, os gerentes comando-controle, como treinar os colaborados para utilizar com consciência os recursos fornecidos pela empresa ao invés da punição pura e simples.
Desenvolvendo games para Nintendo Wii com Adobe Flash
O Nintendo Wii é um dos consoles mais populares da atualidade, com seu controle até então inovador para época de seu lançamento, se tornou um video game “para família” e para varias utilidades. Hoje o Nintendo Wii é usado em varias partes do mundo não somente para diversão, mas também em aréas como fisioterapia para recuperação de pacientes
Hoje o Nintendo Wii é usado em varias partes do mundo não somente para diversão, mas também em aréas como fisioterapia para recuperação de pacientes
![]()
Bom, sabemos que é possivel desenvolver em Flash para o Nintendo Wii, mas precisamos observar alguns detalhes primeiro. Vejamos a especificação do Flash Player para o Nintendo Wii que consta no Adobe Device Central CS5.
Note que teremos que trabalhar com o Flash Player 7, mas no site da Nintendo consta que pode ser atualizado para o Flash Player 8, e o aplicativo rodará pelo browser do Wii, seu browser é uma versão do Opera feita exclusivamente para o Wii.
Wikipedia diz que o Flash Player foi atualizado para o Adobe Flash Lite 3.1, que corresponde ao Flash Player 8 com algumas features do Flash Player 9. Mas eu criei um arquivo Flash Player 9 com ActionScript 2.0 e funcionou, criei um arquivo Flash Player 9 com ActionScript 3.0 e não funcionou, criei um Flash Lite 3.1 e funcionou. Fiquei com Flash Player 9 e ActionScript 2.0 para meus testes.(System.capabilities.version mostra AFL 9,1,122,0)
Vamos fazer um primeiro exemplo para ver como fica o funcionamento do Flash Player com o Wii Remote.
- Crie um novo arquivo do tipo ActionScript 2.0 e logo em seguida, coloque o filme para compilar no Flash Player 8 ou 9. Ou pode fazer isso diretamente pelo Adobe Device Central CS5, que deixa tudo configurado para você, inclusive com o tamanho ideial para rodar no navegador do Wii.
- O objetivo desse exemplo é avaliar o funcionamento dos botões do Wii Remote, criaremos um simbolo do tipo MovieClip.
- Insira o seguinte código no MovieClip para que nosso simbolo possa ser arrastado pelo Wii Remote:
ACTIONSCRIPT:
-
onClipEvent(mouseDown)
-
{
-
this.startDrag();
-
}
-
onClipEvent(mouseUp)
-
{
-
this.stopDrag();
-
}
-
Pelo que pude perceber, somente nos eventos de mouse que podemos utilizar no Nintendo Wii, não foi possivél usar os outros botões e o direcional pad.
Você pode testar o exemplo abrindo a seguinte URL no navegador do Wii http://www.leonardofranca.com.br/wii ou veja no video abaixo.
Apesar da limitação de só usar eventos do mouse, dá pra fazer aplicativos bem interessantes em Flash para Nintendo Wii. Deixo um link com alguns games para Nintendo Wii feitos em Flash. ![]()
http://www.eiksoft.com/wii/index.htm
Para saber mais:
Documentação ActionScript 2.0
Aproveite e compre seu Nintendo Wii ![]()
Nintendo Wii com Jogo Wii Sports
Capturando imagem da webcam no Flex
Fala, galera #soudev.
Estou preparando um post ensinando como criar relatórios no iReport e exibi-los no Flex através do componente xViewer ou Java (estou avaliando ainda), mas enquanto isso, segue uma dica de como capturar imagem da webcam.
[AS3]
creationComplete=”initCam()”
width=”358″ height=”212″>
import flash.media.Camera; import mx.collections.*; [Bindable] [Bindable] private function initCam():void { private function Capture():void { private function Limpar():void { ]]>
import mx.controls.*;
import mx.events.*;
import mx.graphics.ImageSnapshot;
import mx.graphics.codec.JPEGEncoder;
import mx.rpc.events.ResultEvent;
private var imagemBase64:String;
private var imagemWebcam:ImageSnapshot;
var camera:Camera = Camera.getCamera();
Webcam.attachCamera( camera );
}
imagemWebcam =ImageSnapshot.captureImage( Webcam, 0, new JPEGEncoder( 100 ));
imagemBase64=ImageSnapshot.encodeImageAsBase64( imagemWebcam );
foto.source = imagemWebcam.data;
foto.graphics.clear();
}
foto.unloadAndStop(false);
}
[/AS3]
Veja a aplicação funcionando:
Seu navegador não suporta iframe, lamento!
Divirta-se.
Até a próxima!
Book – Getting Real (Caindo na Real)
Estive lendo este genioso livro, que fala sobre o impacto da metodologia Getting Real (Caindo na Real, traduzindo) que descreve os métodos de produção utilizada pela equipe da 37signals, empresa responsável por iniciativas como o Ruby on Rails e Writeboard, entre outros.
Os autores falam, de forma incisiva, que alcançaram altos índices de produtividade na construção de softwares para web pulando todas as etapas que representam a realidade (como wireframes, documentos de especificação, gráficos etc.) e partindo direto para o que é a realidade.
A metodologia prega a filosofia do menos é mais levada ao extremo. A 37signals defende que os softwares devem iniciar enxutos, que a equipe deve ser pequena e ágil, que o código deve ser o mais simples possível e que tudo deve ser lançado logo e aprimorado sempre.
Bem, vou citar aqui alguns trechos importantes, mas recomendo claro, a boa leitura do mesmo, se você identificou com a metodologia.
Como Escrever Software Vigoroso
Escrita vigorosa é concisa. Uma sentença não deve conter palavras desnecessárias, um parágrafo não deve conter sentenças desnecessárias, pela mesma razão que desenhar não deve ter linhas desnecessárias e uma máquina não deve ter partes desnecessárias. Isso requer não que o escritor torne todas as sentenças curtas ou evite todos os detalhes e trate os assuntos apenas em ítens, mas sim que cada palavra fale.
—De “Os Elementos de Estilo” de William Strunk Jr.
Faça menos que sua competição
O senso comum diz que para vencer seus competidores, você precisa estar um passo a frente. Se eles possuem quatro funcionalidades, você precisa de cinco (ou 15, ou 25). Se eles gastam X, você precisa gastar XX. Se eles têm 20, você precisa 30.
Este tipo de estratégia, a Guerra Fria de estar um passo a frente, leva a uma briga sem fim. Trabalhar assim é caro, defensivo e paranóico. Empresas defensivas e paranóicas não pensam para frente, eles pensam apenas no passado. Elas não lideram, elas seguem.
Se você quer construir uma empresa que segue, este livro não é para você.
Construa software para você mesmo
Uma grande maneira de escrever software é começar resolvendo seus próprios problemas. Você será o público-alvo e saberá o que é importante e o que não é. Isso lhe dá um bom adiantamento na entrega de um produto fora de série.
Dois caminhos
[Jake Walker começou uma companhia com dinheiro de investidores (Disclive) e um sem (The Show). Aqui ele discute as diferenças entre os dois caminhos.]
A raíz de todos os problemas não foi conseguir dinheiro, mas tudo que veio junto com ele. As expectativas são simplesmente mais altas. As pessoas começam tomando salários e a motivação é para construir e depois vender, ou encontrar outra maneira para os investidores iniciais terem seu dinheiro de volta. No caso da primeira empresa, simplesmente começamos a agir como se fôssemos muito maiores do que realmente éramos – sem necessidade …
[Com The Show] percebemos que poderíamos entregar um produto muito melhor com menos custo, apenas com mais tempo. E apostamos com um pouco de nosso próprio dinheiro que as pessoas iriam esperar por mais qualidade em vez de velocidade. Mas a empresa se manteve (e provavelmente continuará sendo) uma operação pequena. E desde esse primeiro projeto, estamos totalmente auto-financiados. Com apenas um pouco de criatividade de nossos fornecedores, nunca mais realmente precisamos colocar muito de nosso próprio dinheiro na operação. E a expectativa não era de crescer e vender, mas de crescer por crescer e continuar se beneficiando disso financeiramente.
—Um comentário de Signal vs. Noise
Desenhe a interface antes de começar a programar
Muitos aplicativos começam com a mentalidade de programar primeiro. Isso é uma má idéia. Programação é o componente mais pesado de construir em um aplicativo, significando ser o mais caro e mais difícil de mudar. Ao invés disso, comece desenhando primeiro.
Enfim pessoal, estes são apenas alguns ‘trailers’ do livro, recomendo lerem com calma, o mesmo encontra-se gratuito para download no site da Signal em http://gettingreal.37signals.com/GR_por.php
Até a próxima.
Recuperando valores passados por QueryString em Silverlight
Uma ótima maneira de recuperar dados da aplicação onde o Silverlight está hosteado é através da QueryString. Estou publicando aqui um pequeno bloco de código responsável por realizar essa operação.
// faça aqui a verificação de querystring nula string val = HtmlPage.Document.QueryString["idDaQueryString"].ToString();
Espero que tenha sido útil.
Um forte abraço.
Blog do Curso de Engenharia de Software Ágil
O curso de pós graduação em Engenharia de Software Centrada em Métodos Ágeis ganhou um novo blog. Um espaço aberto, transparente, onde todos poderão expressar sua opinião, elogios e criticas. Vamos aproveitar para reunir material do curso, apresentações de trabalhos, fotos, eventos, etc. Compartilharemos práticas, conhecimentos e assuntos pertinentes ao curso, com foco na transparência e sobretudo na agilidade.
Panorama Geral do Curso:
Teremos bastante desenvolvimento no curso. Trabalharemos com Java, Ruby on Rail e Adobe Flex. O objetivo é que, no final, o aluno saia apto a integrar, liderar e implantar processos ágeis em equipes de desenvolvimento de softwares. Nas disciplinas de programação tentaremos introduzir Coding Dojo. Uma forma de interação muito maior, guiado por TDD. Um Coding Dojo é um encontro onde um grupo de programadores se reúne para trabalhar em conjunto em um desafio de programação. Eles estão lá para se divertir, e, através de uma metodologia pragmática, melhorar suas habilidades de programação e de trabalho em grupo. Nesse primeiro semestre tentaremos introduzir o Dojo nas disciplinas de Programação Orientada a Objetos e Padrões de Projeto.
O coding dojo surgiu da motivação que os programadores não treinam. Tipicamente eles estão preocupados apenas em resolver problemas de produção em projetos reais. O objetivo de coding dojo é criar um ambiente de treinamento, um ambiente de contínuo aprendizado e compartilhamento de experiências, independente do nível de habilidade dos participantes com o intuito de aplicar o aprendizado obtido nas reuniões para aplicar em situações reais de desenvolvimento.
A primeira disciplina “Métodos ágeis de desenvolvimento de software”, gosto de dizer que é uma disciplina de evangelização. Nela o aluno irá compreender os princípios e valores de equipes ágeis que pregam: auto-gerenciamento, multidiciplinaridade, TDD, programação em par, software funcionando, interação entre indivíduos, colaboração com cliente, resposta rápida a mudanças etc. Ou seja, essa será uma disciplinas para “quebrar” conceitos.
No decorrer do curo, o aluno irá ter contato com várias outras disciplinas que entrarão com mais cuidado em itens abordados na referida “evangelização”.
A última disciplina: “Laboratório de Engenharia de Software Ágil”, na verdade não será a última, ela ocorrerá em paralelo durante todo o segundo semestre do curso. Será nessa disciplina que o aluno terá a oportunidade de montar uma equipes agil, gerenciada com Scrum, aplicando técnicas de XP para construir um software (do início ao fim) utilizando as técnicas, processos e ferramentas estudadas durante o curso. No final, o aluno terá tido a sua primeira experiência em construir um software do zero seguindo metodologias ágeis.
Veja grade completa do curso aqui ou a grade oficial no site da UNA
Lazy Loading com Adobe Flex e BlazeDS
BlazeDS é uma implementação feita em Java para se trabalhar com o protocolo AMF(Action Message Format) e facilitar a comunicação entre o swf e seu server-side em Java.
Quando você começa a utilizar um recurso diferentemente da maioria das pessoas, pode achar algums problemas dificeis de resolver. Com Java e Flex o velho problema é o Lazy Loading, que ja foi assunto de varias discurssões entre eu e o Wenderson. Eu deixei esse assunto de lado para focar em outras coisas. No entanto o Wenderson conseguiu achar uma solução, veja o artigo completo com a solução.
Adobe Flex, BlazeDS, Gilead, LazyLoading Resolvido(LazyLoading Solved)
Livros recomendados:
Flex 3 em Ação
Adobe Flex 3 Treinamento Direto da Fonte
Imersão Ruby on Rails

Este ano, na Egenial, foram abertos vários cursos voltados ao mundo Ruby.
Um destes cursos foi Imersão Ruby on Rails. Como já trabalho em parceria com a e-Genial a mais tempo, o Carlos Eduardo (proprietário da empresa) me convidou para ser o responsável por criar este novo curso e a partir de então ficar apenas com esta nova turma.
Depois de pensar bastante, cheguei a conclusão que a melhor opção seria eu ministrar tanto o curso do básico ao avançado como o imersão. Apenas desta forma eu teria controle total de tudo que é necessário para um interessado em Rails entrar com pé direito na tecnologia e em seguida entender com precisão as internas da linguagem Ruby

Como é um curso intensivo com apenas 4 dias com 4 horas por dia (nos sábados), depois que o material estivesse pronto, eu não ficaria sobre-carregado administrando duas turmas e os iniciantes de Rails poderiam seguir a mesma linha de aprendizado deste o início, com o primeiro curso, e se aprofundarem nas internas da linguagem com este segundo. Por estes motivos, atualmente, sou instrutor do curso do Básico ao Avançado e do Imersão.
Durante a preparação da grade e do material eu tentei agrupar todos os temas que considero essenciais para um Rubista. Mas temas que não são tão triviais de se aprender.

Tentei compilar o conhecimento que não aprendemos em blogs ou palestras de 50 minutos. Assuntos como Object Model da linguagem que não vemos em muitos livros mas que são fundamentais para aplicar da forma correta metaprogramação ou para entender, de verdade, técnicas simples como “class << self”.

Outros temas importantes que tentei abordar neste novo curso são por exemplo a influência de dsls no cotidiano (e como criar dsl’s), refactoring (na prática melhorando um pequeno projeto em Ruby puro coberto com MiniTest), boas práticas de Rails como arquitetura rest para organização ao invés de criar API’s, design SOLID e criação de Gems.

Grade com detalhes
É bem provável que esta seja a última turma deste curso para 2010 então corra e faça sua matrícula. A grade do curso detalhada você pode ver abaixo (ou no próprio site do curso):
- Ruby Object Model
- A verdade sobre programação orientada a objetos
- Os segredos para identificar o “self”
- Method Lookup
- Superclass e Metaclass
- Eigen Class ou Ghost Class
- A verdade sobre o que são classes
- Métodos de classe não existem
- A verdade sobre os módulos
- Usando módulos da forma correta
- Metaprogramação
- Mágica é para os fracos, entenda o que é metaprogramação
- Importância da reflexão
- Compreendendo o que são e as diferenças entre blocos, proc e lambda
- Entendendo corretamente o escopo e como alterar o self
- Família “eval”
- Classes Abertas
- Criando métodos em runtime
- Criando classes em runtime
- method_missing
- Hooks do Ruby
- Exemplos reais sobre metaprogramação
- Ruby DSL’s
- Entendendo o que são DSL’s
- DSL’s internas em Ruby
- Importância de DSL’s para melhor o design do software
- Técnicas mais comuns para criação de DSL’s
- Exemplos práticos de DSL’s (ex.: Whenever, rotas do Rails, delayed_job e etc)
- Ruby best pratices
- Como diferenciar um bom design e de um ruim
- Evitando erros comuns em manutenção
- Aprendendo conceitos de um design S.O.L.I.D)
- Refactoring na prática (usando Ruby 1.9 e MiniTest)
- Forwardable
- Delegate
- Comparable
- Enumerable
- Parâmetros nomeados
- Expressões condicionais
- Convenções do Ruby
- Rails Best Pratices
- Boas práticas em desenvolvimento Rails
- Como organizar sua aplicação pensando no futuro
- Restful como ferramenta de design e não apenas para API’s
- Refatorando controllers
- Refatorando Views
- Refatorando Models
- Rails Best Pratices
- Controllers magros
- Models gordos
- Single Responsibility em Models
- Princípio do menor conhecimento
- R.E.S.T para arquitetura de software
- Rotas saudáveis
- DRY com metaprogramação
- Módulos para repetição
- Composição
- Callbacks em Observers
- Índices em Migrations
- Alimentação do banco com Seeds
- Sempre mantenha um rollback em Migrations
- Separação de lógica das views
- Técnicas avançadas com partials e layouts
- Refatorando forms com FormBuilders
- Gems
- O que são realmente Gems
- Erros graves ao escolher uma Gem
- Como ler uma Gem
- Importância de se criar Gems
- Criando uma Gem na prática
Tá barato pra caramba!
Não, isso não é um anúncio da Embratel. Estou me referindo ao Curso de Mockup da e-Genial, confiram só: http://www.egenial.com.br/mockup
Todo mundo sabe que eu não tenho aptidões para design (essa arte de escolher cores, bordas, etc) não é minha praia, definitivamente. Sou um #soudev “nato” que gosta de código, mas reconheço a importância do papel de um Designer na nossa área e, também, do Arquiteto de Informação (aquele que é responsável em projetar as áreas que irão compor nossa view, além de outras coisas).
Como nem todos tem condições de dispor desses profissionais em suas equipes – ou ainda assume ‘broncas’ como freelancers – acabam apelando para o estilo MacGyver (o faz tudo), é importantíssimo que você faça esse curso!
Esse curso não irá te ensinar a usar o Balsamiq muito menos irá te ensinar a usar o Fireworks, o que esse curso irá te auxiliar no processo de desenvolvimento de produtos desde a concepção da ideia até o lançamento.
Portanto, se você é um #soudev – ou até mesmo um empreendedor – que está cheio de idéias legais mas não sabe como preparar o lançcamento dela na rede, aproveita esse curso e faça sua matrícula, porque vamos falar sério né?! Tá barato pra Caramba!
PS: Se vc não tem idéias legais, faça o curso também, quem sabe não aparece uma depois, heim?!?! =)
[]s









