Archive for junho \30\+00:00 2009

FISL 10 – Visão geral do terceiro dia – 25/06/2009 – por Antonio

junho 30, 2009

Bom o terceiro dia começou bem conturbado, pois a organização do FISL havia restringido algumas áreas do evento e cancelado algumas palestras para poder organizar a recepção do presidente Lula que confirmou a sua presença no evento, por conta destas mudanças 3 palestras (Jingle Cookbook, Empreendedor com Software Livre, e Performance Tuning the OpenJDK Garbage Collectors) que eu havia marcado para assistir foram transferidas para o dia 27/06/2009, mas espero que seja possível assistir as 3 amanhã.

Palestra Novidades do Open JDK 6 e 7: O futuro da tecnologia por Bruno Souza da Sun Microsystems

A palestra visava explicar o porque a Sun resolveu tornar o JDK Opensource, e qual o atual status do projeto OpenJDK, o Bruno Souza é um palestrante bem eloquente que fala muito bem, abaixo seguem os principais pontos da palestra:
Segundo Bruno a Sun demorou para tornar o OpenJDK um projeto Opensource com medo de perder a compatibilidade da máquina virtual em determinados S.O., o OpenJDK é licenciado sob GPL v2 mas com uma exceção chamada de “Classpath Exception” e é exatamente esta exceção que permite desenvolver aplicações proprietárias em Java e embarcar o JDK dentro da aplicação sem infringir a licença GPL, um dos principais fatores para a abertura do código fonte foi angariar mais colaboradores, pois a comunidade Open source chegou a criar 20 máquinas Virtuais Java só por que o Java não era Open Source, então a Sun queria que estas comunidades que são formadas por programadores excepcionais passassem a contribuir com o OpenJDK pois ao invés de fazer a mesma VM Open Source a idéia é canalizar os recursos para fazer a VM já existente melhor.

O processo de abertura do código fonte não foi fácil pois várias partes do fonte não eram de propriedade intelectual da Sun, então a Sun teve que comprar o fonte de muitas empresas para poder abrir o mesmo, e mesmo assim teve 4% do fonte da VM que era de uma empresa que não cedeu, e nem vendeu, então a Sun teve que reescrever 4% da VM para poder abrir a mesma.

O OpenJDK6 nasceu do Sun JDK7 b20 (como pode ser visto a figura abaixo):

IMG_3043

Bruno deixou muito claro que o processo de definição das futuras implementações do Java não mudou, continua sendo o JCP que determina, a única coisa que mudou é que agora não são mais só engenheiros da Sun que implementam, existem comitters da comunidade. As empresas que mais colaboram com o Java atualmente são: Sun, Red Hat, Google, e AMD, atualmente a comunidade OpenJDK conta com 165 comitters, sendo que 38 deles são da comunidade, o número pode parecer baixo mas contando que tem apenas 1 ano que o JDK foi aberto e que o mesmo conta com 6.500.000 linhas de código 23% de comitters já ser da comunidade é um número bem significativo.

As fotos de quase todos os slides da apresentação do Bruno podem ser vistas no seguinte link.

Palestra Integração continua com Hudson – Configuração, Extensão e Diversão! por Eron da própria comunidade Hudson

Esta palestra eu entrei um pouco atrasado, mas a mesma foi bem interessante pois deu uma visão geral sobre o Hudson, oque e como ele pode fazer, o Eron deu alguns números da comunidade Hudson, a mesma conta atualmente com mais de 50 plugins, e uma pesquisa feitas com desenvolvedores Java levantou-se 3 soluções de integração continua: (Atlassian Bamboo, Cruise Control, e Hudson) a pesquisa era para saber qual destes softwares os desenvolvedores estavam utilizando, e o Hudson foi avaliado com praticamente o dobro de usuários que o Cruise Control que foi o segundo colocado.
IMG_3088

Outro ponto que foi bem abordado na palestra foi sobre Build Distribuído, o Hudson é capaz de trabalhar em um modelo de um Master e vários Slaves, neste modelo o Master é responsável por delegar as tarefas para os múltiplos slaves, eles acreditam que o Hudson Master seja capaz de gerenciar até 100 slaves, eles já tem cases com 45 slaves, para a instalação de slaves em massa o Hudson conta com o plugin PXE que permite você instalar os slaves através de boot remoto, sendo que o Hudson master com o PXE Plugin que provem esta facilidade na rede.
IMG_3098

Bruno Souza que estava fazendo tradução simultânea desta palestra fez questão de ressaltar a importância da integração continua, apresentando um case onde uma amiga dele utiliza um plugin do Hudson para criar uma competição saudável dentro da equipe de desenvolvimento, a idéia é que a cada comit feito que não quebrou nada o programador ganha 1 ponto, e a cada commit feito que quebrou algo o programador perde 1 ponto, ao final do mês é computado os pontos, e quem tiver menos ponto paga um almoço para quem tem mais pontos, e o interessante desta míni competição é que é um plugin do Hudson que faz todas esta contabilização de pontos.

Palestra Criando e sustentando uma empresa livre por Paulino Michelazzo proprietário da Fabricalivre

Esta palestra com certeza foi uma das melhores que já ví até então, pois o Paulino é um palestrante muito didático, brincalhão, e tem uma experiencia muito grande neste mundo de software livre.

Ele começou apresentando as diferenças entre uma empresa tradicional e uma empresa livre, onde fez questão de mostrar que uma empresa livre também tem organograma, paga impostos, tem departamentos, e acima de tudo quem que ganhar dinheiro para sobreviver, mas as diferenças entre uma empresa livre e uma empresa tradicional logo começaram a aparecer, primeiro ponto de diferença segundo ele é o modelo 1 manda todos obedecem que existe nas empresas tradicionais não funciona nas empresas livres, pois por definição uma empresa livre necessita ser colaborativa, então o modelo 1 manda todos obedecem não fuciona, outra diferença que Paulino ressaltou foi no processo de seleção, normalmente uma empresa tradicional procura profissionais formados, com várias certificações, etc. já uma empresa livre normalmente procura pessoas que tenham vontade de crescer e agreguem diversidade a o ecossistema, pois certificação de diploma não são atestados de competência, e uma empresa livre quer competencia, pois se baseia muito na meritocracia assim como as comunidades, outra diferença grande é relacionada as formalidades normalmente uma empresa tradicional existem muitas formalidades horários, trajes, etc. já uma empresa livre normalmente a única coisa formal é o compromisso com o objetivo definido, o resto fica a critério de cada um.

Outra parte da palestra foi focada em mostrar como uma empresa livre pode ganhar dinheiro, segundo Paulino o momento nunca foi tão propicio para empresas livres, pois ninguém mais torce o nariz ao falar de software livre, por mais que um CIO nunca tenha utilizado um software livre, ele sabe o que é, que funciona, e que acima de tudo representa normalmente uma redução de custo significativa, aproveitando o gancho da redução de custo o segundo motivo para o momento propicio é a crise, pois todas as empresas em momentos de crise precisam otimizar seus recursos e isto implica em redução de custo. Paulino deu um exemplo de uma empresa livre criar um produto de software baseado em software livre e vender o mesmo a única restrição para isto é que o código fonte do software deve ser distribuído juntamente com o produto, mas este mesmo produto poderia também ser vendido no modelo SaaS como serviço, em nenhum destes dois modelos a empresa livre estaria infringindo uma licença, istó é totalmente normal no mundo livre.

Mas como tudo na vida o difícil está não em fazer o software mas sim em como chegar até o cliente, e ser conhecido, neste ponto Paulino ressaltou muito a importância de a empresa ser especialista em algo, não dá para abraçar o mundo, então você tem que focar onde você é diferenciado, e para se tornar conhecido normalmente é necessário muito trabalho junto a comunidade pois primeiro você se torna referencia na comunidade e depois conhecido no mundo externo. O mais difícil é emplacar um primeiro case de sucesso depois de ter um cliente de referencia as coisas ficam um pouco mais fáceis pois se o serviço foi bem feito este cliente será seu cartão de visita para os demais.

O governo brasileiro não ajuda em nada as empresas principalmente as startups, pois praticamente tudo neste país exige que sua empresa tenha 1 ano de vida até os financiamentos de bancos públicos.

Paulino deu uma aula de empreendedorismo, ele trabalha com desenvolvimento web a mais de 15 anos, sua empresa conta com clientes como USP, FGV, MBA FGV, IBMEC, dentre outros, no ano passado teve um crescimento de 1000%, ele é uma pessoa muito carismática, já trabalhou como programador no Timor Leste por 1 ano e meio, já viajou por mais de 20 países dando palestras sobre software livre.

Tenho o áudio da palestra full, quem estiver interessado em escutar posta um comentário que envio o arquivo o arquivo por email.

Link para apresentação:
* Apresentação criando e sustentando uma empresa livre.

Por fim pretendo fazer o resumo dos outros dias do FISL10 logo mais.

FISL 10 – Booth Babes

junho 26, 2009

Irei fazer um post diferenciado, comparado com o Rodrigo e o Antonio. Nada dessas coisas nerds ai de programação, qualidade de software.. o que interessa eh…. Mulher!
Dei um giro pelos stands das empresas, colhendo material para o deleite de vocês!

Apesar da incrivel quantidade de expositores, sabe como é né? Internet is a serious business. Os stands não tem a mesma “Qualidade” das exposições de carros ou de video-games. Mas mesmo assim, as grandes empresas nao decepcionaram! Quase todas as garotas foram bem simpaticas em posarem para as fotos (exceto a mais bonita la, que estava no stand da SENAC, que ficou acanhada e não quis…).

BoothBabes Globo.com

BoothBabes Globo.com

O stand da Globo.com estava show, com um visual bem moderno, fora do tradicional, seguindo as novas tendencias de design. Tá certo que eles não tinham muita coisa para falar sobre novas tecnologias, mas a abordagem deles foi show! Com apresentações bem legais, e chamaram atenção do público, mostrando que a globo também está por dentro do universo OpenSource!

BoothBabe Locaweb

BoothBabe Locaweb

Infelizmente na FISL 10, a locaweb, que é famosa por investir bem no “material” de exposição, decepcionou… Estava apenas com uma única expositora, bem comportada, mas não era de se jogar fora! Super acanhada, me deu trabalho para convencê-la a tirar uma foto!

P240609_11.23O stand da Oracle é do estilo mais tradicional. Infelizmente eles nao estavam com nada de super interessante a mostra (Ao contrário da globo.com), Mas afinal, Oracle é Oracle! Eles precisaram de apenas com um singelo balcão, uns banquinhos, uma máquina de café e a booth babe gatinha!

BoothBabe Solis

BoothBabe Solis

A SOLIS (Empresa de consultoria de soluções de gestão), estava com um stand simples, porém fui bem atendido, inclusive todos que estavam lá quiseram aparecer na foto… Mas é claro que eu só deixei a parte mais interessante para vocês 😉

BoothBabe Senac

BoothBabe Senac

E por ultimo, o stand da SENAC, que estavam distribuindo brindes e fazendo apresentaçoes e concursos com a sua lousa multimidia. E é claro, uma minazinha delicinha!

Bom pessoal.. Termino este post cercado por essa mulherada! Logo logo postarei sobre a palestra de IPTables!

Abraços!

Primeiro Ensina aí! Cursos Grátis

junho 26, 2009

Pessoal,

No banner principal de nosso blog desde sua criação consta a frase “Compartilhando Conhecimento”. E é isto que temos tentado humildemente fazer nos últimos tempos. E é justamente para dar mais um passo neste caminho, iremos fazer nos meses de julho e agosto, o primeiro Ensina aí!

O Ensina aí! é uma sequência de cursos e palestras feitas por amigos e funcionários da Voice Technology. O público destinado é qualquer pessoa que deseje participar. O calendário de cursos do Ensina aí! ainda está em fase final de preparação.

Todos os cursos estão relacionados a algum conhecimento que é utilizado na empresa.

O professor, é alguém da nossa empresa que conheça e trabalhe com o assunto abordado. Como não somos professores / instrutores profissionais, chamaremos de “Ensinadores”…

Os cursos já confirmados são:

1. Scrum: Gerenciando e planejando projetos de software (10 horas).

Data: 20, 21 e 22 de julho. Das 19:00 às 22:30

Ensinador: André Pantalião

2. Introdução ao Teste de Software: uma abordagem prática (10 horas).

Data: 27, 28 e 29 de julho. Das 19:00 às 22:30

Ensinador: Fabrício Campos

3. Linux

Data: a ser confirmada

Ensinador: Adelson Junior

Ainda colocaremos mais palestras e cursos, se quiser participar de algum curso ou dar uma palestra.

Nesta primeiro evento, os participantes serão colabores e amigos da Voice Technology e pessoas indicadas por eles. Quer participar, mande e-mail para ensinaai@voicetechnology.com.br.

Quer participar do próximo Ensina aí? Mande e-mail para ensinaai@voicetechnology.com.br com o assunto “[Segundo Ensina aí!]”

Até mais,

André

Palestra sobre SIPP no FISL

junho 26, 2009

Pessoal,

Na quarta-feira o Antonio fez a palestra sobre SIPP lá no FISL.

Quem quiser saber um pouco mais sobre esta palestra, quiser elogiar, criticar ou só comentar mesmo, visite o post no blog do Antonio! Lá temos os slides da palestra e os vídeos.

Até mais…

André

MegaNão – Diga não ao AI-5 Digital

junho 25, 2009

Caros colegas,

Estou aqui no FISL 10 (Porto Alegre – RS), na palestra do Richard Stallman (FSFLA: Fundación Software Libre América Latina) e achei muito interessante o site citado pelo pessoal, sobre o MegaNao. Alguns dos ativistas do movimento estiveram presentes e houve um debate esclarecedor sobre a PL 84/99, a famosa “lei azeredo”, que priva a liberdade de compatilhamento de conteúdo, em uma maneira geral. Não deixe de se informar sobre a questão.

Outros muitos palestrantes, em cima do tema do FISL 10 desse ano (“liberdade”) citaram a liberdade de expressão por código como indispensável.

Entre no site do MegaNao e faça o apoio ao movimento, mas antes de tudo: fique esclarecido dos projetos de lei que afetam Open Source.

Até mais!

P.S.: Também publicado no Templário da Tecnologia.

Retrospectivas

junho 25, 2009

Pessoal,

Seguindo a linha de posts relacionados ao Scrum Gathering, coloquei no InfoQ um outro post sobre a palestra de Restrospectivas do Boris Gloger.
Pessoal,

Temos que sempre tentar executar retrospectivas após o sprint, segue um artigo que fala bem sobre esta sessão do Scrum.

http://www.infoq.com/br/news/2009/06/6-segredos-executar-sucesso

Confiram lá !

Até mais

FISL

junho 25, 2009

O FISL começou e nosso pessoal esta lá.

Palestras, bate-papo e muito frio.

O Antonio fez sua palestra sobre testes de performance com SIPP ontem e colocou suas primeiras impressões em seu blog. Rafael Morita e Rodrigo Ribeiro deverão colocar também as suas impressões aqui em breve.

Pena que não fomos com nossa equipe completa que estava prevista, o Marcos Hack ficou devido a uns imprevistos com o projeto. Mas como ele disse, todo ano tem FISL… e tomara que dê para ele ir no próximo hehe…

Até mais,

André

Impressões 3º Encontro Mensal da ALATS São Paulo

junho 24, 2009

Pessoal,

Ocorreu nesta terça-feira (23/06) o 3º encontro mensal da ALATS. E tive o prazer de participar deste encontro que teve como tema “Teste de Performance”, palestrado por Fábio Martinho Campos.

Abaixo, segue as minhas impressões do evento.

Palestra

Como vocês podem já ter pensado, o tema deste encontro não é nada fácil, afinal os testes de performance são um dos mais difíceis de serem executados, e ainda não é muito aplicado no mercado brasileiro.

O Fábio começou sua palestra apresentando alguns conceitos de teste de performance e apresentando as diferenças entre teste de performance, que é do tipo não-funcional, e o funcional. Logo de cara, ele deixou bem claro que ele não é igual ao teste funcional e é bem mais complexo, e que o responsável pela sua execução precisa um bom e variado conhecimento sobre todo o sistema (BD, aplicação, rede, etc).

Os testes de performance agrupam vários outros testes, como por exemplo:

  • Teste de Carga: o teste de carga simula muitos usuários acessando um servidor ao mesmo tempo, a fim de verificar diversos contadores de performance (ex.: tempo de resposta);
  • Teste de Stress: leva o sistema ao caos, por exemplo: deixar a aplicação rodando por 2 meses com uma alta carga. Seu objetivo é identificar os limites do sistema.

Esse tipo de teste tem três percepções gerais: teste de tempo e resposta, teste de throughput (taxa de transferência) e teste de capacidade.

Alguns pontos interessantes levantados pelo Fábio:

  • É preciso ter um profissional especializado para executar o teste de performance, geralmente, é um profissional sênior. Há até um cargo específico para o profissional que realiza testes de performance, o de Analista de Performance;
  • O Analista de Performance é um profissional muito ativo e amigo de todos, afinal precisa da ajuda de outros profissionais (DBA, Analista de Redes, Arquiteto, etc) para desempenhar o seu papel de uma forma mais efetiva;
  • Um dos principais objetivos do teste de performance, senão o principal, é identificar onde está o gargalo, e essa é uma tarefa não muito fácil, pois há uma séria de fatores que devemos analisar, por isso o profissional deverá ter bastante atenção, saber interpretar gráficos, entender das métricas e ter um conhecimento do sistema e da maneira que ele está arquitetado;
  • Os testes de performance são essenciais em qualquer programa de Qualidade de Software, pois podem revelar falhas bem graves e impactar diretamente no negócio do cliente. Um exemplo dado, foi de um site de uma companhia área que ao realizar promoções, não resistiu a carga de acessos e ficou fora do ar. Imagine o tanto de clientes que desistiram da tal promoção, e como a credibilidade da companhia pode ter diminuído, perante os consumidores;
  • Ao realizar testes de performance você necessita de número, os resultados são baseadas em dados quantitativos e não qualitativos (sem números não tem como saber onde chegar);
  • O Analista de Performance pode ajudar o cliente na definição dos requisitos não-funcionais;
  • O testador deverá realizar os testes muitas vezes, analisar e gerar relatórios;
  • As melhores ferramentas para teste de performance são pagas;
  • É uma que tem bem poucos profissionais capacitados e que deverá crescer no Brasil;
  • Para aqueles que se interessam nessa área e gostariam de ingressa nela, uma boa é aprender alguma ferramenta de teste de performance (ex. LoadRunner, Rational Performance Tester e SilkPerformer)entender bem o funcionamento dela e depois busca uma certificação na ferramenta estudada.

O Fábio apresentou os ciclos do teste de performance, que ainda podem ter algumas variações dependendo do tipo de teste de performance que está sendo realizado.

Atividades principais do teste de performance
Atividades principais do teste de performance

Ainda foi comentado que há uma série de fatores que podem influenciar a performance de um sistema, desde da linguagem de programação escolhida até como está arquiteturada a rede de dados. E também alguns mitos existentes sobre o teste de performance, como por exemplo: se tudo está funcionando perfeitamente de forma funcional, estão está tudo certo.

E no final o Fábio apresentou duas ferramentas de forma prática:

  • O PerfMon, ferramenta gratuita da Microsoft para monitoração do sistema;
  • WebLOAD, ferramenta para geração de carga focada em Web.

Conclusão da Palestra

Como puderam perceber a palestra abordou de forma bastante ampla o tema, e o Fábio conseguiu aprofundar e dá mais informações sobre alguns pontos. A palestra foi muito boa, a forma como o assunto foi abordado fez com que todos conseguissem assimilar as informações e saírem com um conhecimento mais maduro sobre teste de performance.

Com certeza é um assunto muito interessante e pertinente, afinal uma hora você irá precisar fazer testes de performance (isso se já não deveria está fazendo), pense nisso.

Encontro

Durante a palestra do Fábio, houve bastante espaço para perguntas, todos puderam tirar dúvidas e trocar experiências. Foi bem legal! E ainda teve o coffee break, onde pudemos conversar mais sobre os assuntos de palestra e também conversar com os amigos. 🙂

Conclusão Final

Foi mais uma excelente oportunidade de falar sobre Teste de Software num ambiente agradável, com um pessoal participativo e palestra e palestrante de altíssimo nível. 🙂

Próximo Encontro

E como é de praxe, foi divulgado as informações do próximo encontro. E o encontro de número 4º terá como tema “Automação: Mitos e Verdades” e será palestrado por um tal de Elias Nogueira, alguém sabe quem é esse cidadão? Ouvi falar que é um cara que veio do Sul e que torce pro Internacional…rsrs…brincadeira. O Elias Nogueira, autor do blog Sem Bugs, é um dos melhores e mais participativos profissionais da nossa área. E irá compartilhar um pouco do seu vasto conhecimento nesse encontro.

Ou seja, será mais uma ótima oportunidade para aprender e discutir sobre Teste de Software, e lógico que também para zoar com a cara desse Colorado (rsrs…infelizmente tô achando que o “Curinthia” [Ronaldo!] já ganhou a Copa do Brasil, espero que eu esteja enganado).

Então pessoal, se programem e divulguem na sua empresa, bairro, associação, buteco, etc o encontro. 🙂

Abraços!

Ahhh…para aqueles que acham que o Fábio Martinho Campos é o cara, o “monstro”, eu descobrir dois defeitos nele (hehe): ele é corinthiano e ama o IE (Internet Explorer). Bem o primeiro até é justificável, afinal a probabilidade de ser corinthiano é grande, já para o amor ao IE eu realmente não entendi (deveria até te perguntado), o IE é muito ruim comparado aos outros navegadores, mas fazer o que, gosto é gosto, não se discute. Ninguém é perfeito.

P.S.: Assim que estiver disponível a apresentação no site da ALATS, eu atualizo o post e coloco aqui o link. É um rico material, são mais de 60 slides bem elaborados.

Fonte:

J.D. Meier,  Carlos Farre,  Prashant Bansode,  Scott Barber,  Dennis Rea. Performance Testing Guidance for Web Applications – patterns & practices, Microsoft, 2007. (link download)

Hadoop – Introdução

junho 16, 2009

Pessoal,
Começa aqui uma série de posts sobre o Hadoop.

logo_hadoop

Farei este primeiro post no formato de perguntas e respostas, para tentar deixar mais dinâmico e facilitar o entendimento sobre o assunto, espero que gostem. 🙂

O que é esse tal de Hadoop?

O Hadoop é um framework open source desenvolvido em Java, para rodar aplicações, que manipulem uma grande quantidade de dados, em ambientes “clusterizados”.

Nossa! Não entendi nada, você poderia explicar de novo?

Normal, eu também demorei um tempo para entender o que realmente é o Hadoop (já que entrei de gaiato e curioso nesse novo mundo).

Bem, então para explicar melhor, vou te apresentar o problema que motivou o desenvolvimento do Hadoop:

Você está desenvolvendo um site de busca (alá Google) e as informações que você irá buscar estão dispersas em várias máquinas diferentes, como você irá realizar esse processamento?

  1. Vou comprar um supercomputador e processar localmente;
  2. Vou consultar o Larry Page e o Sergey Brin;
  3. Vou distribuir o processamento entre várias máquinas, utilizando o Hadoop.

Essa foi fácil hein!

Lógico que você irá utilizar o Hadoop (alternativa 3), afinal das contas, ele foi criado justamente visando suprir essas necessidades:

  • Oferecer um framework que possa auxiliar o desenvolvedor no desenvolvimento de sua aplicação;
  • Processar uma grande quantidade de dados;
  • Processar de forma distribuída esses dados, utilizando clusters.

Legal! Mas quais são as características do Hadoop?

Segue abaixo as principais características do Hadoop.

  • Escalável: ele pode armazenar e processar petabytes sem problemas;
  • Econômico: o Hadoop distribui os dados e o processamento através dos clusters. Estes clusters podem ter milhares de nós (máquinas);
  • Eficiente: Por distribuir os dados, o Hadoop pode processar eles em paralelo por meio dos nós, onde os dados estão alocados. Isto é feito de forma extremamente rápida;
  • Confiável: ele automaticamente mantém múltiplas copias dos dados e automaticamente  remaneja as tarefas em caso de falhas.

O Hadoop tem alguma coisa haver com o MapReduce?

Sim, aliás, ele é baseado no modelo de programação MapReduce, que foi desenvolvido pelo Google.

Fluxo conceitual do processo MapReduce (fonte)

Fluxo conceitual do processo MapReduce

Ele o responsável por dividir os dados de entrada em blocos independentes, que são processados de forma completamente paralela, pelas chamadas map tasks (traduzindo ao pé da letra, tarefas de mapeamento). Ele ordena as saídas das map tasks, que são os dados de entrada das reduce tasks (traduzindo ao pé da letra, tarefas de redução). Normalmente tanto a entrada quanto a saída da tarefa são armazenadas no sistema de arquivo. O MadReduce se encarrega de agendar as tarefas, monitorar e “reexecutar” em caso de falha.

Você falou sobre o sistema de arquivo, como ele funciona, já que os dados são processados e estão distribuídos?

Quem cuida dessa parte é o HDFS (Hadoop Distributed File System), que foi baseado no GFS (Google File System).

Como o próprio nome já sugere, ele é um sistema de arquivo distribuído. O interessante é que quando fosse for desenvolver a sua aplicação você não precisa se preocupa com isso, o próprio Hadoop se encarrega dessa tarefa, ou seja, para a sua aplicação, isso é transparente, seria como se os dados estivessem armazenados localmente.

O HDFS é focado em garantir alto gerenciamento, confiabilidade, usabilidade e desempenho. Para se ter idéia, por default a replicação dos dados ocorre em dois nós: uma no próprio nó (ou seja, são duas: dado original + o replicado) e outra em um diferente.

Show de bola! Como posso aprender mais sobre ele?

Pretendo escrever mais sobre o Hadoop, em um futuro breve. Mas enquanto isso você pode se aventurar por esses sites (todos em inglês) abaixo:

http://hadoop.apache.org/

Site oficial do Hadoop.

http://www.cloudera.com/

Tem muita informação sobre o Hadoop, destaque para os vídeos explicando sobre ele e a VM (Virtual Machine) que é disponibilizada gratuitamente com o Hadoop já instalado e configurado no Ubuntu.

http://wiki.apache.org/hadoop/

Wiki do Hadoop.

http://www.ibm.com/developerworks/linux/library/l-hadoop/index.html

Introdução do Hadoop feita pelo Ken Mann e pelo M. Tim Jones.

Fonte:

http://hadoop.apache.org/

www.sprace.org.br/Twiki/pub//Main/SergioLietti/future_hadoop.pdf

http://wiki.apache.org/hadoop/

http://hadoop.apache.org/core/docs/current/hdfs_design.html

http://www.ibm.com/developerworks/linux/library/l-hadoop/index.html

Pessoal,

Começa aqui uma série de posts sobre o Hadoop.

E farei este primeiro post no formato de perguntas e respostas, para tentar deixar mais dinâmico e facilitar o entendimento sobre o assunto, espero que gostem. 🙂

O que é esse tal de Hadoop?

O Hadoop é um framework open source desenvolvido em Java, para rodar aplicações, que manipulem uma grande quantidade de dados, em ambientes clusterizados.

Nossa! Não entendi nada, você poderia explicar de novo?

Normal, eu também demorei um tempo para entender o que realmente é o Hadoop (já que entrei de gaiato e curioso nesse novo mundo).

Bem, então para explicar melhor, vou te apresentar o problema, que acredito que seja o que motivou o desenvolvimento do Hadoop:

Você está desenvolvendo um site de busca (alá Google) e as informações que você irá buscar estão dispersas em várias máquinas diferentes, como você irá realizar esse processamento?

1. Vou comprar um supercomputador e processar localmente;

2. Vou consultar o Larry Page;

3. Vou distribuir o processamento entre várias máquinas, utilizando o Hadoop.

Esse foi fácil hein!

Lógico que você irá utilizar o Hadoop (alternativa 3), afinal das contas, ele foi criado justamente visando suprir essa necessidade:

· Oferecer um framework que possa auxiliar o desenvolvedor no desenvolvimento de sua aplicação;

· Processar uma grande quantidade de dados;

· Processar de forma distribuída esses dados, utilizando clusters.

Legal! Mas quais são as características do Hadoop?

Segue abaixo as principais características do Hadoop.

· Escalável: ele pode armazenar e processar petabytes sem problemas;

· Econômico: o Hadoop distribui os dados e o processamento através dos clusters. Este clusters podem ter milhares de nós (máquinas).

· Eficiente: Por distribuir os dados, o Hadoop pode processar eles em paralelo por meio dos nós, onde os dados estão alocados. Isto é feito de forma extremamente rápida.

· Confiável: ele automaticamente mantém múltiplas copias dos dados e automaticamente remaneja as tarefas em caso de falhas.

O Hadoop tem alguma coisa haver com o MapReduce?

Sim, aliás ele é baseado no modelo de programação MapReduce, que foi desenvolvido pelo Google.

É ele o responsável por dividir os dados de entrada em blocos independentes, que são processados de forma completamente paralela, pelas chamadas map tasks (traduzindo ao pé da letra, tarefas de mapeamento). Ele ordena as saídas das map tasks, que são os dados de entrada das reduce tasks (traduzindo ao pé da letra, tarefas de redução). Normalmente tanto a entrada quanto a saída da tarefa são armazenadas no sistema de arquivo. O MadReduce se encarrega de agendar as tarefas, monitorar e re-executar em caso de falha.

Você falou sobre o sistema de arquivo, como ele funciona, já que os dados são processados e estão distribuídos?

Quem cuida dessa parte é o HDFS (Hadoop Distributed File System), que foi baseado no GFS (Google File System).

Como o próprio nome já sugeri ele é um sistema de arquivo distribuído. O interessante é que quando fosse for desenvolver a sua aplicação você não precisa se preocupa com isso, o próprio Hadoop se encarrega dessa tarefa, ou seja, para a sua aplicação, isso é transparente, seria como se os dados estivessem armazenados localmente.

E o HDFS é focado em garantir alto gerenciamento, confiabilidade, usabilidade e desempenho. Para se ter idéia, por default a replicação dos dados ocorre em dois nós: uma no próprio nó (ou seja são duas, dado original + o replicado) e outra em um diferente.

Nossa show de bola! Como posso aprender mais sobre ele?

Pretendo escrever mais sobre o Hadoop, em um futuro breve. Mas enquanto isso você pode se aventurar por esses sites (todos em inglês) abaixo:

http://hadoop.apache.org/

Site oficial do Hadoop.

http://www.cloudera.com/

Tem muita informação sobre o Hadoop, destaque para os vídeos explicando sobre ele e a VM (Virtual Machine) que é disponibilizada gratuitamente com o Hadoop já instalado e configurado no Ubuntu.

http://wiki.apache.org/hadoop/

Wiki do Hadoop.

http://www.ibm.com/developerworks/linux/library/l-hadoop/index.html

Introdução do Hadoop feita pelo Ken Mann e pelo Author photo - Ken MannKen Mann is an embedded software developer in the Denver metro area. He has over 20 years experience in software development ranging from simulation and numerical analysis in Fortran 77 to embedded software for wired and wireless telecommunication applications.M. Tim Jones.

Minhas impressões – OpenTDC 2009 – 17-05-09

junho 15, 2009

Amigos e leitores,

Vou escrever por meio deste post as minhas impressões do OpenTDC 2009, evento ocorrido no dia 17-05-09 na Universidade Anhembi Morumbi, local que está virando ponto de referência para os eventos organizados pela Globalcode. O evento foi voltado para desenvolvedores e entusiastas do Open Source e das tecnologias Java.

NOTA: Desculpem-me mais uma vez pela demora de publicação das informações (quase um mês…rs. E o mesmo se aplicará para a publicação das impressões do evento “Java@TVDigital“).

NOTA 2: Também postado no blog Templário da Tecnologia.

Panorma Geral

OpenTDC 2009

Presenciei o OpenTDC desse ano juntamente com o colega de empresa Joemir Luchetta, que também esteve no evento do ano passado. É importante ressaltar que o evento foi gratuito (como o evento Java@TV Digital ), com sorteio de muitos brindes e coffee-break. A presença de palestrantes que eu já havia visto apresentar trabalhos me deixou seguro de que o evento seria em bom nível. E não foi diferente: palestras claras, algumas com conteúdo bem técnico, outras não, e interação dos palestrantes com o público fizeram do evento um sucesso. Abaixo irei passar os pontos mais importantes dos temas abordados nas palestras. Espero que gostem.

Palestras

Abertura: Java, Open Source e a Comunidade – Yara Senger e Bruno Souza

Abertura: Java, Open Source e a Comunidade - Yara Senger e Bruno Souza

Como de praxe nos eventos organizados pela Globalcode, Yara Senger fez a vez na abertura do evento, expondo os dados relacionados a comunidade Java ( JUG’s, SOUJava, divulgação e participação em eventos e número de profissionais ). Citou também os novos canais da Globalcode, Open4Education e do evento no twitter, por onde irão circular depoimentos e promoções relâmpago relacionadas a cursos da instituição, além de anúncios de novos eventos.

Após isso adentrou ao palco Bruno Souza, o “Java Man“, trazendo uma visão do que é o Open Source, baseada em sua larga experiência com o “ecossistema” Java. A frase base de sua apresentação foi: “Open Source é a forma natural de desenvolver software em um ambiente de rede”. A “rede” no caso pode ter contatos, membros de comunidade, projetos Open Source, networking, entusiastas e etc. É desenvolvendo software em rede que se aprende e evolui-se.

Ele fez um paralelo entre o Java e o Open Source com um fotógrafo: “Como se tornar um excelente fotógrafo? O que isso tem a ver com Java”. Vendo fotos de outras fontes e tirando muitas fotos é provável que se vire um grande fotógrafo. O mesmo acontece no Java: é preciso ver muito código de outras fontes e desenvolver muito código próprio. No mundo são apenas 1/4 de 1% da população que entende software. Para ser um bom desenvolvedor, fotógrafo ou outra coisa é preciso muito estudo e dedicação. De acordo com Bruno são cerca de 10000 horas ( cerca de 8 horas por dia, todos os dias, durante 3 anos e meio! ) para formar um bom profissional. É por meio do Open Source e da relação com o usuário, que é quem mais conhece o software, que o desenvolvedor pode inovar e evoluir. O software é arte e engenharia, e não fabricado, manufaturado, ou aprendido por SW privado.

Finalizando, Bruno deixou uma dica para as pessoas que irão participar do FISL10: ocorrerá no dia 23 de junho, um dia antes do evento oficial, o Javali FISL, organizado pelo SOUJava e que irá apresentar as palestras e o conteúdo presente no JAVA ONE ( 2 a 5 de Junho ), maior evento relacionando a Java no mundo. Deixo os meus parabéns ao trabalho feito pela Yara e pelo Bruno, “universalizando” o Open Source e unindo a comunidade Java e entusiastas, cada vez mais presentes nos eventos.

Robótica Open Source – Vinícius Senger & Paulo Carlos dos Santos

Robótica Open Source - Vinícius Senger & Paulo Carlos dos Santos

Essa era uma das palestras que me interessava, pois gosto bastante de hardware (já tinha ouvido falar de Arduino pelas minhas leituras da Revista INFO; em Fevereiro foi a primeira vez que ouvi falar). No caso, a palestra se deu em ritmo de “bate-papo” (diálogo), onde o Vinicius fez o papel do interessado (aluno) e o Paulo de facilitador da informação (professor). Paulo aliás que já foi aluno e professor do CEFET-SP, lugar onde fiz minha graduação (!).

O Arduino foi apresentado como “Hardware Open Source” ligado a “Physical Computing“, ou seja, trabalhando-se com o Arduino podemos introduzir, aplicar e aperfeiçoar conceitos de eletrônica (hardware, físico) e programação (seja do microcontrolador ou de uma linguagem específica aplicada).

O Arduino trabalha em cima de progração C (para gerenciamento de bibliotecas, I/O de informações sensorias, etc.) e é auxiado pelo Processing (linguagem de programação baseada em Java com IDE, para criar ambientes gráficos e facilitar a integração com projetos eletrônicos).

Assim, fazemos a programação da placa ( via C, com uso de USB, porta serial, WiFi, ethernet…) e visualizamos o resultado por meio de um conjunto de leds, pinos de saída ligados a motores ou sensores (pressão, ultrasom, etc.), auxiliados por interface gráfica (Processing). Portanto podem ser feitos os mais diversos tipos de projetos (sensoriamento de presença, controle de motor, automação residencial, telas touchscreen…), ficando a cargo do projetista a abrangência. “Arduino na mão e uma idéia na cabeça!”.

No Brasil já existe venda de kits do Arduino (saem por volta de 50 a 100 reais os kits mais básicos), sensores (por volta de 50 reais) e “shields” (placas de extensão – breadboards, que podem dar suporte a leitura de cartões SD, rede ethernet…). Geralmente são achados no MercadoLivre. Outros projetos realcionados a Arduino estão sendo criados, como o Arduino Nano, Arduino Severino e Paperduino.

Paulo ao decorrer da apresentação foi mostrando exemplos práticos, apresentados via vídeo no telão, mostrando a aplicabilidade de projetos usando o Arduino, como robôs, acelerômetros, sensores de presença, automação residencial com protocolo X10, entre outros.

Você me pergunta: “Ué, porque todo esse lobby de hardware em um evento de programação?”. Eu particularmente gostei e torço para que mais iniciativas sejam feitas (rs). Mas, o Arduino foi apresentado porque ambos os palestrantes iniciaram um curso intitulado “Academia do Programador” na Globalcode. Usarão o Arduino como instrumento de aprendizado na programação (uso de if, else…) , mas pretendem também criar mais cursos, incentivar a criação de projetos e aumentar a comunidade Arduino. No final das contas foi uma boa iniciativa, pela introdução do tema “desconhecido e voltado para hardware” para os presentes no evento.

Arquiteturas com JSF, JBoss Seam e Spring – Vinicius Senger e Alberto “Spock” Lemos

Arquiteturas com JSF, JBoss Seam e Spring - Vinicius Senger e Alberto "Spock" Lemos

Vinicius Senger e Spock fizeram um teste do que seria apresentado por eles no JavaOne 2009, sendo assim não tinha como não ser bastante técnico o conteúdo apresentado, fora o “show de siglas”. A mesma palestra apresentada no OpenTDC foi apresentada no JavaOne, portanto vemos que o conteúdo dos eventos só vem crescendo.

A idéia principal era mostrar as muitas opções que a plataforma Java EE apresenta para elaboração de projetos, e como montar opções de solução, seja com Struts, Shale, JSF, Wicket, EJB, Spring, Seam, entre outras. Para as empresas há muitos pontos importantes a serem levados em conta, geralmente  os “+ades” (escalabilidade, disponibilidade, manutenabilidade, etc.). Se a empresa busca um projeto de cunho experimental, a arquitetura assim pode também ser; se o projeto é corporativo a arquitetura deve ser conservadora. Frameworks devem ser acoplados a um projeto com inteligência, pois “o simples é bonito e fica bom com Java EE 5”, de acordo com Vinicius.

Uma coisa importante a ser pensada é que o preço de uma arquitetura não deve ser medido apenas com o trabalho do DEV, mas também com equipes de infra, manutenção, gerenciamento, QA e aprendizado. Os principais desafios para se criar arquiteturas corporativas são:

  • Fazer Java EE componentizado, visando reuso. Isso não é fácil;
  • Ter especificação “perfeita” é sonho. Ferramentas não (em termos de uso e aplicação);
  • Usar “+AR’s” é definitivamente difícil (JAR‘s, WAR‘s, EJB-JAR‘s, EAR‘s, etc.). Procure dosar;
  • Mudanças durante o projeto, mesmo que pequenas, aumentam o custo.

O Java EE hoje está OK em muitos pontos (EJB 3.0, JSF, JMS), mas em outros não (questões de modularidade e alguns frameworks). Partindo desse princípio tivemos o nascimento de dois frameworks, Spring e JBoss Seam. O Spring nasceu como alternativa ao Java EE, e o Seam nasceu como modelo de integração dos próprios componentes Java EE. O Seam tem foco em Web 2.0 e promove alguma integração com framework; o Spring tem foco em integrar com outros frameworks e algum com Web 2.0. O antagonismo continua quando falamos de uso em servidores: muitas empresas rodam Spring em diferentes servidores. Poucas empresas rodam Seam em servidores diferentes de JBoss.

Após esse panorama bem abrangente e técnico Spock começou a abordar as soluções envolvendo Java EE, componentes e frameworks, sendo o centro da apresentação. Foram 5 modelos apresentados, com suas vantagens e desvantagens:

  • Java EE básico;
  • Java EE + EJB;
  • Spring;
  • Seam;
  • Seam + Spring.

Como a palestra era prevista para 50 minutos (tempo oficial que eles teriam no JavaOne), e eles só tinham 45 minutos disponíveis (fora 10 a 15 minutos de atrasos de palestras anteriores) fora o horário de almoço atrasado, ficou um pouco “corrido” o conteúdo apresentado nos tópicos de soluções e alguns pontos foram omitidos. Gostaria de especificar melhor os itens acima, mas o tempo e a abrangência não possibilitou. A apresentação não foi ainda disponibilizada no site da Globalcode, nem no site do JavaOne. Quando estiver disponível atualizo este post com a informação.

Para finalizar, o panorama do futuro do Java foi dado com base no Java EE 6, usando JSF 2.0, Web Beans e EJB 3.1. A especificação do Java EE 6 e as próximas serão cada vez mais “puras” e o uso de Spring com Java EE 6 será maior. Fora a omissão de alguns pontos relacionados as soluções, muito pelo tempo disponível, o conteúdo e desenvoltura dos palestrantes agradou.

Adotando Agile: o caminho das pedras – Cláudio Teixeira

Adotando Agile: o caminho das pedras - Cláudio Teixeira

Cláudio Teixeira trouxe um panorama bem legal das metodologias ágeis, muito pela sua experiência com desenvolvimento e arquitetura de projetos em Londres, onde a “onda ágil” está atuante a muito mais tempo. Para se entender melhor porque há novidades em termos de metodologia, foi feita a seguinte pergunta: “Qual a motivação para um novo approach?”. Resposta: “Projetos falham” (em todos os níveis). Com base nisso, e sabendo que o cliente é exigente, é imprescindível fazer com que os projetos sejam rápidos (em termos de tempo), pois a reposta do cliente é rápida e as chances de errar diminuem.

Peguemos como exemplo o RUP. O RUP busca a “perfeição no processo” (o bom é inimigo do ótimo). Onde era implementado RUP? Em sistemas governamentais e exército dos EUA (alto custo e baixa tolerância a falhas), sendo fortemente apoiado a contratos. Para esse cenário não poderia ser diferente.

Com o “boom da Web” e os “Startups! de empresas” houve uma alta demanda de software, mudando o foco para confiança na empresa e menos em contrato e “burocracias”. Se o RUP fosse adotado teríamos planejamentos proféticos e “quadrados” (muitos manuais e cronogramas de processos). Fora que as “metodologias tradicionais” não mostram a “saúde” do projeto (Gráficos ROI e Waterfall não são suficientes). Nesse panorama pensou-se em dois confrontamentos:

  • Funcionalidades X Utilização: quanto mais rápido o feedback do cliente final melhor (faz-se apenas o necessário);
  • Desenvolvimento de software X Manufatura: custo e tempo são essenciais. Podem ser iguais ou não.

Todo esse cenário motivou algumas pessoas (do meio empresarial) a criarem algo novo, mas que fosse compatível com a situação do mercado e desse opção de aproveitar a demanda deste. Daí nasceu a expressão “ágil”, o manifesto ágil e a criação da Agile Alliance. Em nível de metodologia ágil temos 3 tipos de aplicação do processo:

1. Extreme Programming (“XP – O processo dos geeks”):

  • Feedback rápido e simples;
  • Entregas incrementais;
  • “Abraça” mudanças;
  • Código de alta qualidade.

2. SCRUM (“O processo da sala de guerra”):

  • Processo promove acerto e erro;
  • Feedback rápido;
  • Entrega em pequenas iterações;
  • Saúde do projeto vísivel (gráficos Burndowns);
  • Gerente não é comando controle, mas facilitador.

3. Lean: Processo de desenvolvimento da Toyota e tem raízes do SCRUM. Não muito conhecido no Brasil.

As desvantagens dos 3 são (nem tudo é perfeito…):

  • Não funciona com equipes “júnior”;
  • O cliente deve estar “100% disponível”;
  • Adiciona muitas práticas novas para as equipes;
  • O processo é fechado e deve ser seguido a risca;
  • A história do “porco e o frango” (comprometidos e envolvidos).

Qual usar? Scrum ou XP? Scrum gerencia melhor os processos, mas XP fornece melhores práticas (TDD, Unit Tests…). Melhor usar os dois!

E como adotar? Há dois caminhos: Consultoria externa ou “in house”. Se a escolha for a segunda há algumas dicas:

  • SCRUM é mais fácil de adotar;
  • Estude Lean também;
  • Escolha um projeto piloto;
  • Educação para o pessoal de negócio é necessária.

Foi com certeza uma das melhores palestras do evento. O palestrante passou muito bem o conteúdo e foi bastante claro, fora as doses de humor, necessárias depois do almoço (rs).

Java e TV Digital – Dimas Oliveira

Java e TV Digital - Dimas Oliveira

As palestras e a participação do Dimas nos eventos já virou marca de atenção ao conteúdo falado e muitas perguntas ao final da palestra. Não foi diferente dessa vez. Ele praticamente deu algumas dicas e panorama sobre TV Digital com Java, material de referência, Ginga, especificações, etc. Abaixo irei enumerar em tópicos:

  • Compartilhe seu conhecimento e credite as fontes (um “lema” do próprio Dimas. Sempre repetido em suas apresentações);
  • Divulgou uma previsão de venda de 230 milhões de set-top boxes em 5 anos. Mercado de atuação haverá, e muito;
  • Java é um “ecossistema”, formado de usuários e desenvolvedores. Procure sempre saber o que os usuários necessitam;
  • Mostrou fotos do primeiro teste com Ginga no Brasil: ano de 2005 na Paraíba. Pertencemos a “vanguarda” da tecnologia relacionada a TV Digital no mundo;
  • SBTVD é inovação nacional;
  • Em 2012 o Brasil será o segundo maior mercado emergente em TV Digital;
  • TV interativa (TV + aplicações controlando áudio e vídeo) irá necessitar de profissionais e aplicações em Java;
  • Ginga-J faz parte dos padrões mundiais de TV Digital;
  • Java DTV é uma API/especificação Java para TV digital, Ginga-J contém Java DTV e é uma parte do Ginga. O Ginga (NCL/LUA & J) é o middleware;
  • Quem tiver mais curiosidade pode ler a especificação do Java TV (JSR 927);
  • Ginga integra widgets lwuit para melhorar a interface gráfica;
  • As padronizações devem ser seguidas para qualquer operadora;
  • Para quem deseja aprender sobre TV Digital: a curva de aprendizado é de 5% a 8% a mais de conhecimento Java.

Palestra esclarecedora, apesar de já ter visto muitas dessas informações em eventos anteriores (Profissão Java e Java@TVDigital). Ao fim dela, e na saída para o coffee-break, muitos participantes se aglomeraram na frente do palco para fazer perguntas a Dimas. Para quem deseja saber mais sobre TV Digital pode mandar um email para “tvdigital-subscribe@soujava.dev.java.net” e participar da lista de discussão do SOUJava, sendo que o próprio Dimas faz parte.

Painel: Java FX, Adobe Flex e GWT – Éder Magalhães, Maurício Leal e Rafael Nunes

Painel: Java FX, Adobe Flex e GWT - Éder Magalhães, Maurício Leal e Rafael Nunes

Esta última palestra do evento não era para ser um painel (“disputa” de qual a melhor) entre as 3 tecnologias ligadas a RIA, mas um comparativo do que elas podem fornecer. Java FX foi apresentada por Maurício Leal, GWT por Éder Magalhães e Flex por Rafael Nunes.

Sobre Java FX:

  • Rich clients estão mudando o jogo. É preciso ter mais clientes ricos, onipresentes e “projetados” pelo desenvolvedor. FX é a solução;
  • É preciso “extender” RIA em diversas telas. Java FX é a plataforma para criar e entregar RIA;
  • Gera aplicações únicas e completas para desktop, mobile e outras. É portável para qualquer dispositivo;
  • Runtime poderoso e desacoplamento da aplicação do browser;
  • A aplicação é independente do browser, pode ser arrastada para “fora” do mesmo;
  • Coisas a serem construídas com Java FX: vídeo player, efeitos 3D, Java Applets, etc. Todos podem ser “arrastados” para fora do navegador;
  • Existe plugin para Photoshop e Illustrator;
  • Curva de aprendizado rápida: 1 semana.

Sobre GWT:

  • Suporte a Web interativa (RIA);
  • Navegação rápida, agradável e fácil;
  • Produtividade na construção e manutenção de aplicações Web;
  • Web leve: HTML + CSS + Ajax;
  • Para fazer uso de GWT é preciso ter uma equipe com experiência em Java;
  • Ideal para quem conhece Swing;
  • MVC só com código Java;
  • Constrói aplicações Ajax c/ Java (voltada a Open Source);
  • Widgets (componente de uso de interface) que podem ou não ser customizados;
  • Compila código Java em JavaScript;
  • “Esconde” a complexidade do Ajax;
  • Resolve incompatibilidade de browser;
  • Suporta recursos do Java 5;
  • Chamadas são assíncronas e acessadas por GWT RPC (servlet) ou HTTP (retorna XML,JSON e/ou JSNI e é solução para REST ou WebService).

Sobre Adobe Flex:

  • Baseado em linguagem de marcação (MXML);
  • SDK Open Source;
  • Action Script (linguagem de programação orientada a objeto);
  • A proposta é fazer front ends;
  • Flex Builder (“Eclipse” para Adobe Flex): no Windows é pago, mas é completo; no Linux é gratuito, mas tem menos funcionalidades disponíveis;
  • É preciso ter Flash Player para rodar aplicações Flex ou Air (rodam em desktop);
  • Multiplataforma;
  • Curva de aprendizado suave;
  • Independe de backend (Java, PHP, outras);
  • No segundo semestre sairá a versão 4 (!);
  • Depende de fornecedor, runtime e IDE paga. Exige mais poder do cliente;
  • Integra com WebServices e gera cliente automático através de WSDL;
  • HTTP Service (XML ou JSON);
  • Integração AMF: BlazeDS e GraniteDS para Java (depende do backend);
  • Frameworks: Cairngorm, Pure MVC, Mate Flex, Swiz;
  • Flex Unit para testes unitários;
  • Case de sucesso: tour de Flex & flex.org/showcase.

Qual a melhor? A que melhor se aplica pra você, seu projeto e sua realidade.

Conclusão

Foi mais um evento importante do qual pude participar e adicionar conteúdo ao meu portifólio de conhecimento. O nível dos palestrantes, temas e assuntos abordados ficaram de acordo com a atualidade. Mais de 300 pessoas estiveram presentes no OpenTDC 2009. E o mais importante e motivo de parabéns a equipe da Globalcode: tudo isso gratuito. Portanto, indico fortemente a ida de pessoas interessadas em Java e outras tecnologias a esses eventos. Para os interessados na programação do evento ou mini-bio dos palestrantes, favor acessar o link do evento. Para acesso as fotos do evento, inclusive as deste post, podem acessar o Picasa da Globalcode.

Pontos positivos

  • Nível, conhecimento e desenvoltura dos palestrantes;
  • Networking e acesso a informações;
  • Gratuito.

Pontos negativos

  • Atraso nas duas primeiras palestras, motivo pelo qual impactou na apresentação da terceira, e quiçá, mais importante palestra do evento, pois era modelo daquilo que seria apresentado no JavaOne 2009.

Espero que vocês, caros leitores, tenham gostado da leitura de minhas impressões, coletadas durante o evento. Fiquem à vontade para comentar, criticar ou complementar. E aguardem a publicação das minhas impressões do Java@TVDigital, evento também organizado pela Globalcode e de boa repercussão.

Até a próxima!