»
S
I
D
E
B
A
R
«
Ambiente de estudo para o LiveCycle
23/12/09

Tenho estudado o LiveCyle Enterprise Suite 2 nos últimos meses, e a criação do ambiente foi bem mais simples do que imaginava. O LiveCycle roda sobre um aplication Server Java, requer um ligeiro processador e no mínimo 4GB de RAM (só pra ele). Ou seja, ficaria inviável utilizar meu laptop ou ter um desktop/servidor para estudo.

Eis que surge uma opção, o Amazon Elastic Compute Cloud (EC2), serviço de cloud computing da Amazon WebService, que em questão de minutos é possível criar uma instância do Windows Server e já usá-la.

Segue uma estimativa de custo, dependo do consumo há descontos:

  • large Instance 7.5 GB of memory, 4 EC2 Compute Units (2 virtual cores with 2 EC2 Compute Units each), 850 GB of local instance storage, 64-bit platform: $0,48 hora
  • Data transfer in: de graça até junho/2010
  • Data tranfer out: $0,17 GB
  • Armazenamento: $0,10 GB/mês

Dicas:

  • Através do AWS Console é possível configurar as instâncias facilmente. Porém alguns conceitos de cloud computing podem parecer estranhos, a documentação não é muito esclarecedora, recomendo tirar dúvidas com alguém que já usa (como eu) ou usar métodos de tentativa e erro. Por hora, a única dica que dou, é não esquecer instâncias rodando se não for utilizá-las, senão a tua conta vai pro espaço!
  • Instalar o LiveCycle ES2 é muito simples, há a versão turkey, onde instala app+JDK+MySQL e next-next-finish. Para estudo, não é necessário mais que isto!
  • Baixe daqui o instalador, o download direto da instância demora 30min.
  • Considerando instalar o Workbench na máquina local, é necessário um bom link de internet, pois para toda e qualquer ação é disparada várias requisições ao servidor.

Estou desbravando o LiveCycle, já aprendi bastante e consegui fazer coisas realmente interessantes, mas ainda há muito a ser descoberto. Um bom inicio é assistir os vídeos do Adobe TV.

Eu só queria atravessar a rua
23/12/09

Além de caoticamente congestionado, o trânsito paulistano é um tanto desorganizado. Não é raro encontrar motoristas perdidos, sem noção nenhuma de como chegar a seu destino. E as vezes ter que dar voltas e voltas para chegar num lugar que geograficamente é tão perto.

Morei por um tempo na av. Rio Branco nos Campos Elíseos, o primeiro bairro planejado da capital. Tinha dificuldade enorme para atravessar a avenida de carro, onde logo na esquina há um posto de combustível. Considerando o canteiro central, é necessário fazer retorno, sendo que estou no centro da cidade isto não deveria ser tão complexo comparado a uma rodovia.


Exibir mapa ampliado

Exatamente isto, para atravessar a rua, a menor distância é 3,1 km, 8 semáforos e 1 viaduto. Arquitetura de tráfego talvez não seja o forte da CET!

Baixa usabilidade dos sistemas bancários
21/12/09

Dias atrás enfrentei um problema bastante comum de usuários de internet banking, eu tinha dinheiro mas não conseguia pagar uma conta pois o valor excedia o limite.

No caso do Bradesco, a orientação que recebi pelo próprio sistema foi ir até a agência e conversar com meu gerente. Considerando que minha agência é na esquina do trabalho, não achei tão ruim.

Não é preciso entender muito de programação para saber que há um parâmetro no sistema onde é possível aumentar tal limite. Após alguns minutos vasculhando um sistema com tela branca/preta, conclui que meu gerente não sabia onde estava o parâmetro. Ele deve ser um usuário sênior, pois conhecia de cor todos os códigos de todas as funcionalidades que tinha acesso no sistema. Neste tempo fiquei sabendo que há vários parâmetros de limite, para boletos, contas de consumo, tributos e até um global. E não teve jeito, meu gerente teve que ligar para o suporte pra encontrar o parâmetro. Pois bem, meu problema estava resolvido, podia ir.

Read the rest of this entry »

Inovação e Diversão
08/12/09
Desde sempre o mercado de tecnologia esta em alta, não é difícil para um profissional razoavelmente qualificado arrumar uma oportunidade de trabalho.  Não só isto, cada vez mais se requer especialistas, e um breve conhecimento da “necessidade do momento” pode ser diferencial para se destacar.
Mas o que atrai tanta gente para este mercado?
Estudei computação porque gosto de inovações, em resolver desafios da vida que só a tecnologia resolve, e até mesmo cria. Gosto de me divertir programando, em buscar nas novidades a solução dos problemas da vida moderna.
O que mais me chateia no trabalho é encontrar colegas não dispostos a mudança, acomodados e avessos a inovação. Não estou me referindo às especialistas de determinadas tecnologias, mas aqueles que sempre querem fazer algo do mesmo jeito, sem pensar no melhor. Um amigo meu, desenvolvedor COBOL, plataforma mais antiga e usada do setor bancário, se destacou pelas novidades introduzidas na maneira de conceber um programa. Isto sim é inovação!
A luta, a qual faço parte, é contra o mesmismo. A grande inovação começa na transformação pela renovação da nossa própria mente!

Desde sempre o mercado de tecnologia esta em alta, não é difícil para um profissional razoavelmente qualificado arrumar uma oportunidade de trabalho.  Não só isto, cada vez mais se requer especialistas, e um breve conhecimento da “necessidade do momento” pode ser diferencial para se destacar.

Mas o que atrai tanta gente para este mercado?

Estudei computação porque gosto de inovações, em resolver desafios da vida que só a tecnologia resolve, e até mesmo cria. Gosto de me divertir programando, em buscar nas novidades a solução dos problemas da vida moderna.

O que mais me chateia é encontrar colegas de profissão não dispostos a mudança, acomodados e avessos a inovação. Não estou me referindo às especialistas de determinadas tecnologias, mas aqueles que sempre querem fazer algo do mesmo jeito, sem pensar no melhor. Um amigo meu, desenvolvedor COBOL, plataforma mais antiga e usada do setor bancário, se destacou pelas novidades introduzidas na maneira de conceber um programa. Isto sim é inovação!

A luta, a qual faço parte, é contra o mesmismo. A grande inovação começa na transformação pela renovação da nossa própria mente!

Frameworks Arquiteturais
26/06/09

Confesso que antes mesmo de aprender Flex eu já queria usar Cairngorm, simplesmente porque os caras que eu admirava usavam ou porque isto era sinônimo de melhores práticas, e eu queria fazer o melhor. E muito me intrigou quando um de meus mentores disse que primeiramente precisa enfrentar os problemas que o Cairngorm se propõe a resolver, e hoje posso dizer que já os dolorosamente enfrentei.

Cairngorm, PureMVC, Mate e Swiz são os mais usados, discutidos e criticados frameworks arquiteturais para Flex, estes provem uma coleção de design patterns, soluções para problemas recorrentes de programação orientada a objetos, que define um problema, implementação, quando aplicar e suas conseqüências. De forma bem sucinta, Jeremy Wischusen escreveu o artigo Choosing a Flex framework, onde compara estes frameworks entre si e o cenário que melhor se encaixa, relacionando prós e contras de cada um.

Podemos dizer que design patters é um conjunto de regras que lhe forçam a implementar soluções conhecidas para problemas recorrentes, a fim de se obter um padrão. Cabe aqui citação direta ao post do Beck Novaes na FlexDev sobre o assunto:

Não há problema algum em dois programadores terem soluções distintas. Isto é, de fato, a regra e não a exceção. Agora, o que acontece quando vemos uma determinada solução e pensamos: “eu jamais faria assim”; “esta solução é tão distinta da minha que não consigo ver sentido algum em fazer deste modo”. Pior, o que acontece quando não entendemos porque aquela solução que jamais imaginaríamos é a melhor? É aqui que entram as Conceptual Constraints.

Conceptual Constraints são conceitos que você mantém na mente e que lhe obrigam a procurar alternativas para resolver um problema, pois você sabe que as soluções que lhe ocorreram num primeiro instante irão violar estes conceitos.

Basicamente, se dois programadores tem em mente as mesmas Conceptual Constraints, ou seja, se eles sabem principalmente as coisas que eles NÃO DEVEM fazer, isto irá permitir que, no mínimo, um entenda a solução do outro – não descarto a hipótese que estes dois programadores cheguem a soluções semelhantes graças ao fato de ambos saberem o que NÃO DEVE ser feito.

Exemplos de Conceptual Constraints do Cairngorm:

  • O ModelLocator não deve saber nada do Command nem da View;
  • O Command não deve saber nada da View;
  • A View não deve saber nada do Command;
  • O ModelLocator é possível manter o estado no cliente, mas os dados nele armazenados devem ter um significado semântico. No lugar de preço, nome e descrição, devemos ter um objeto Produto no ModelLocator. Além disto, estes objetos, muitas vezes devem encapsular lógica de negócio – o que possibilita a realização de testes unitários;
  • Os Commands são as Worker Classes do Cairngorm, como tal, elas devem prover a funcionalidade de negócios do seu aplicativo e nada impede que o Command tenha apenas um método “execute”.

Aplicar fundamentais design patterns sem adotar um framework arquitetural é correr o risco de inventar a roda. Tenho experimentado Cairngorm e PureMVC, e o que mais me agradada é o primeiro, principalmente porque se baseia em técnicas importantes da arquitetura do Flex, com o DataBinding e Event Driven Programming. Por outro lado, o PureMVC é muito interessante para programadores que possuem ótimo conhecimento em orientação a objetos.

Os benefícios são grandes, mas nunca nos atende completamente, motivo que não deve ser usado para não usar framework algum. Talvez seja muito mais fácil construir uma aplicação orientada a gambiarras (POG), desde que seja o único programador e se lembre depois o que aprontou!

Design Patterns num Mundo Real
15/06/09

Este é o primeiro de uma série de posts que pretendo abordar as boas práticas de programação em Flex. A intenção é discutir Orientação à Objetos e Design Patters, deixando de lado a “beleza” da Interface de Usuário que o Flex proporciona, e pensar em questões técnicas de desenvolvimento de RIA, como performance, manutentabilidade e escalabilidade.

Uma das grandes mudanças do Flex 4 é o conceito “design in mind”, que define caminhos diferentes no workflow de designers e desenvolvedores. Volto a atenção neste posts ao desenvolvimento, não se esquecendo da importância do design para as aplicações ricas, mas procurando resolver problemas drásticos que muitas vezes são ocultados através de aplicações “bonitas”.

Boas práticas envolvem uma série de conceitos e padrões, que muitas vezes não precisamos nos preocupar em inventar algo, e sim seguir recomendações e regras muito bem descritas. Inicialmente quero apresentar os frameworks arquiteturais que julgo interessantes, explanar suas concepções e como podem nos ajudar no dia-a-dia. Depois quero mostrar implementações de design patterns que resolvem problemas recorrentes e estudar a arquitetura do Flex SDK.

Aqui escreverei sobre a ótica da minha experiência, e não quero fazer dela a verdade. Toda discussão sobre o assunto será muito bem aceita e importante para amadurecermos como desenvolvedores de software.

Flex 4 e pt_BR
09/06/09

Uma das novidades do Flex 4 é que já vem incluído na instalação do SDK as bibliotecas de internacionalização dos componentes nativos. Antes era necessário baixar a biblioteca (ou criar) e copiá-la para o diretório locale do framework ({install dir}sdks\{version}\frameworks\locale).

Porém, parece que conhecidos erros de pt_BR (português – Brasil) persistem.

  • No SharedResources.properties do framework_rb.swc, ao invés de dateFormat=DD/MM/YYYY está dateFormat=DD/MM/AAAA. Isto impede o bom funcionamento do DateField, por exemplo;
  • No datavisualization_rb.swc, ao invés do diretório ser pt_BR está ja_JP.

Estou disponibilizando o locale pt_BR com estas correções. Vale destacar que nem todas as chaves estão traduzidas, uma sugestão para a comunidade brasileira se unir e tomar conta desta biblioteca.

Estes bugs foram notificados a Adobe através desta e esta Bug Issue.

Flex 4 e AIR Update Framework – Error #1007
04/06/09

Já estou utilizando em novos projetos o Flex 4 SDK e o Flash Builder 4 (FB4), ambos em versão beta lançados no início desta semana pela Adobe. As novas features são surpreendestes e um tanto diferentes da versões anteriores, que demanda estudo da documentação e provas de conceito para certificarmos que não teremos problemas com estes por estarem ainda em homologação.

Ao desenvolver uma POC (prova de conceito) do update framework do Adobe AIR, seguindo todo passo-a-passo do artigo de Mihai Corlan, me deparei com um erro assustador ao chamar o método initialize de uma instância de ApplicationUpdaterUI.

Read the rest of this entry »

Desenhando Telas
25/05/09

Estou participando de dois projetos de software com características diferentes, um reúne algumas boas práticas de desenvolvimento ágil, por se tratar de um projeto interno e simples, e em outro adotamos a metodologia RUP, por ser mais formal e complexo. Mas em ambos temos inovado na elaboração da interface dos aplicativos, procurando definir as telas enquanto pensamos nas tarefas do usuário.

É muito natural no desenvolvimento de aplicativos a concepção das interações de usuário logo que mapeamos o processo de negócio, mas não tão simples forçar analistas de negócio das mais diferentes áreas a pensar em como o usuário utilizará a aplicação. Vejo que muitos analistas estão mais preocupados em fazer com que o aplicativo cubra todos os requisitos de negócio, do que proporcionar ao usuário agilidade ao seu dia-a-dia, pensar em suas tarefas e torná-las agradáveis.

No meu caso, não tenho tido problemas com analistas de negócios, pelo contrário, partiu deles a iniciativa de pensar nas telas enquanto se levanta caso de uso. E nesta atitude surgiu a necessidade de documentar tudo aquilo que pensamos, da forma mais rápida possível, afinal não estaríamos desenvolvendo telas, e sim elaborando um protótipo para ser jogado fora mais tarde, mas de grande valia na modelagem do projeto.

Testamos alguns aplicativos de especificação de interface, como Axure e Pencil, mas nenhum fez tanto sucesso quanto o Balsamiq Mockups, muito bem comentado na comunidade de Design de Interação, com certeza pela agilidade e diversão que proporciona. O Balsamiq foi concebido para desenhar telas, sua simplicidade faz que qualquer um que tenha idéias prospecte interfaces de usuário.

É fato que cada vez mais todos têm voltado sua atenção as interfaces de usuário, resultando aplicativos que vão além das necessidades de negócio, produtos desejáveis, que fazem a diferença.

SAP: Primeiras Impressões
24/03/09

Entrar no Mundo SAP é uma experiência interessante, principalmente pra quem já trabalha com tecnologias ditas “novas”, como Flash Plataform, Java e .Net. São outros desafios, clientes grandes, linguagem e metodologia sem igual, um tanto não comum para quem lida com o sofisticado mundo da internet.

Faço parte do time de “novas tecnologias” da SYSone Consulting, uma consultoria focada em negócios e soluções SAP, que vem se especializando em integrações e outras tecnologias como meio de servir seus clientes em suas mais variadas necessidades. Mais especificamente atuo com aplicativos ricos para apoio a sistemas de gestão, uma tarefa revolucionária num mundo extremamente focado em processo de negócios.

Uma de minhas tarefas é entender o meio o qual o produto está inserido, para melhor arquitetar a interface e interação de usuário, e construir algo surpreendente que atenda requisitos que vão além do processo. Bonito isto, hein?!

E fui descobrindo que este novo mundo é muito diferente daquilo que estava acostumado, parecia o que aprendi até então não servia pra muita coisa. Após um tempo convivendo neste ambiente, aprendendo por osmose jargões e metodologia, fiz um curso introdutório de ABAP que resultou numa experiência melhor que a esperada. As coisas começaram fazer sentido, sempre fui um crítico dos movimentos tecnológicos, e a SAP tem conquistado minha opinião positiva cada vez mais.

Faço aqui meus apontamentos daquilo que julguei interessante para futura lembrança e talvez poder ajudar aqueles que estão nesta mesma situação, e querem entender um pouco do ERP da SAP, seu principal produto. Muitos destes foram retirados da apostila do curso (reprodução permitida) de Renê Zaidan.

Read the rest of this entry »

»  Substance: WordPress   »  Style: Ahren Ahimsa