SouJava no Campus Party 2008

terça-feira, 19 de fevereiro de 2008

A Participação do SouJava garantiu o entretenimento da galera durante todo o evento, eu tive a felicidade de encontrar os amigos, participar e colaborar um pouco deste grande projeto, e registrá-los, segue algumas fotos do evento.









John "Maddog" Hall - um dos fundados do movimento Open Source Internacional.





















Bruno Souza o "JavaMan" e Fernando o "Mago dos Fantoches"


















Mauricio Leal, o grande MM (Mobile Man) :D


















Tirando uma onda com o brinquedinho do Bruno, o mascote Juggy.



























Minha princesa linda.










No evento da sexta de madruga fiz uma apresentação da Plataforma de Desenvolvimento NetBeans, e no Sabado um Hands-On para alguns participantes, foi uma grande experiência, pois a palestra foi no improviso e mesmo sem ter preparado material algum a palestra acabou rolando quase duas horas..




No começo fiquei um pouco nervoso, mas depois o negócio fluiu...
Falei sobre Arquitetura Modular, um pouco sobre o desenvolvimento interno do NetBeans, o Bruno falou sobre o NetBeans Innovators Grant...
Um pouco mais de uma hora falando parece que foi pouco para abordar meio que superficialmente a arquitetura da plataforma NetBeans.












Infelizmente a plataforma NetBeans não é muito divulgada no Brasil, tirando algumas iniciativas de caras como o Bruno Souza e a Globalcode.. vamos torcer para que isso mude, e que a comunidade do Brasil represente bem, pelo menos com alguns projetos na iniciativa da Sun com os Grants....


No dia seguinte fizemos um Hands On, onde criamos um Wizard para o NetBeans e uma entrada de menu para demostrar o poder e a simplicidade na criação de funcionalidades ricas na Plataforma NetBeans.


É isso aí galera, ano que vem tem mais..

Certificação SCBCD 5 (CX-310-091) - Guia de Estudo

sexta-feira, 15 de fevereiro de 2008

Recentemente tive a felicidade de passar a prova da certificação SCBCD 5.0 com o score de 75%.. não fui muito bem em JPA, pois acabei subestimando a esta parte por conta da experiência que tenho com persistência, enfim ao todo foram 61 perguntas tive e fui avaliado nas seguintes seções:
---------------------------------------------------------------

  • EJB 3.0 Overview
  • General EJB 3.0 Enterprise Bean Knowledge
  • EJB 3.0 Session Bean Component Contract & Lifecycle
  • EJB 3.0 Message-Driven Bean Component Contract
  • Java Persistence API Entities
  • Java Persistence Entity Operations
  • Persistence Units and Persistence Contexts
  • Java Persistence Query Language
  • Transactions
  • Exceptions
  • Security Management
---------------------------------------------------------------

Como fiquei alguns meses me preparando para esta prova, tive a oportunidade de conhecer as melhores fontes na Web para a preparação desta certificação tão almejada.

Mocks (Simulados):

JavaBeat - http://www.javabeat.net/javabeat/scbcd5/mocks/

Esse site possui 4 mocks bem interessantes,..

Existem também softwares comerciais ($$) de simulados conforme os links que segue, mas o 3 possuem uma versão demo para download, com várias questões, vale a pena baixar pelo menos a versão demo pois as questões são bem similares ao exame real.


Resumos (Notes) de estudo

Esse site (Java Boot) é ótimo pois oferece um material completo de cada tópico abordados nos objetos, ALTAMENTE RECOMENDADO.

Java Boot -http://java.boot.by/scbcd5-guide/

Livros:

Bom eu li todo o livro Enterprise JavaBeans 3.0 (5th.Edition)


Outro otimo livro para estudo é o Mastering Enterprise JavaBeans 3.0 que pode ser baixado FREE neste link no site ServerSide.com

E li alguns capítulos do Java EE Tutorial 5 da Sun, mais precisamente os capítulos:

Capítulo 1 - Overview.
Leitura que fornece um overview da arquitetura de servidores Java EE, os tipos de serviços que os servidores que são certificados devem implementar, e conceitos de aplicações distríbuidas, os papéis do devenvolvimento (Bean Provider, Application Assemblem, Deployer, etc...) é bom conhecer bem estes papéis, pois caiu na prova não uma, mas várias questões que exigem o conhecimento dos papéis no desenvolvimento de software corporativo. Depois vamos pular para o Capítulo 20, que aborda o assunto de EJBs em uma visão macro, é interessante estudar também o Capítulo 21, que ensina como iniciar o desenvolvimento em EJB, o Capítulo 22 que apresenta códigos de exemplo para Session Beans, o Capítulo 23 que aborda de maneira prática Message Driven Beans, os Capítulos 24, 25, 26 e 27 que aborda Java Persistence API, é bom estudar também segurança nos Capítulos 28 e 29 se você não conhece JMS, não é prioritário saber para o exame mas como o exame aborda MDB recebendo mensagens de JMS é bom ler o capítulo 31 e 32 que é feito um pente fino, outro capítulo muito importante é o Capítulo 33 que aborda transações (Transactions) , e por fim os Capítulos 34 e 35 que abordam JNDI ENC e Conectores respectivamente..


Segue o link que pode ser baixado no site da Sun ou pode ser navegado online neste link: Tutorial Java EE 5.

Outro site muito importante para quem deseja tirar qualquer certificação é o JavaRanch, o link para SCBCD 5 é o http://faq.javaranch.com/java/ScbcdLinks#scbcd50


É isso aí, Boa Sorte e com todo esse material, com certeza a diversão é garantida !!!!

NetBeans Innovators Grants

sábado, 9 de fevereiro de 2008

A Sun esta lançando o programa "NetBeans Innovators Grants", é a grande chance de tirar aquele projeto engavetado é ganhar uma graninha extra..
Na verdade, NetBeans Grant é um processo que fornece grants para desenvolvedores que desejam trabalhar em seu projeto open source. Como isso funciona ? Um total de 10 grandes projetos serão escolhidos e premiados com um grant de US$ 11,500 dólares, e outros 10 projetos de pequeno porte serão escolhidos e receberão um grant de US$ 2,000 com a possibilidade de receber até US$ 5,000 dólares se o seu projeto for um bom projeto..

O que eu preciso fazer ?
Fácil, é só submeter uma proposta de um projeto qualquer, contanto que seja relacionado ao desenvolvimento do NEtBeans (claro !!!) , e demonstrar como suas idéias irão ajudar a melhorar o Projeto NetBeans, e um grupo de experts (talvez o Dream Team do NetBeans) irão avaliar as melhores idéias e serão selecionados os melhores projetos. Se o seu projeto for aprovado você irá receber o grant de acordo com o tamanho do seu projeto. Mas espera aí, isso não quer dizer que você vai sair com a grana toda no mão, para receber a grana é preciso terminar e entregar o projeto até o prazo final

Prazos

Abertura de submissões
1 de Fevereiro 2008
Fim da entrega das submissões
3 de Março 2008
Anúncio dos juízes dos projetos aprovados que irão receber os grants 1 de Abril 2008
Entrega final do projeto - o dinheiro do grant é pago para projetos finalizados4 de Agosto 2008
Juízes anunciam possíveis prêmios extras em dinheiro - Prêmios Ouro e Prata - e o pagamento dos projetos finalizados
1 de Setembro 2008




Link e fonte http://www.netbeans.org/grant/

Diversão garantida !!!!

Campus Party no Brasil

terça-feira, 22 de janeiro de 2008


A maior festa tecnológica do mundo

A Bienal do Ibirapuera será transformada numa grande cidade tecnológica de 11 a 17 de fevereiro de 2008, quando acontece a Campus Party Brasil - o maior encontro de comunidades da Internet do mundo.

Com o mesmo espírito da festa que já acontece há 11 anos na Espanha, a Campus Party Brasil será um espaço de encontro e de aprendizagem. Durante 7 dias e 7 noites, milhares de participantes acampam em suas barracas, com seus computadores a tira-colo, trocando momentos, idéias e experiências.

site oficial http://www.campusparty.com.br/

Com atenção especial para a Área "Software Livre", onde teremos oficinas de Ruby on Rails, Construção de Clusters Livres, Coding Dojo (Programação em Pares -XP) .

E entre as conferências nesta área vale destacar uma com o Bruno Souza sobre o futuro da linguagem Java, e uma conferência com Jon Hall líder da Linux International, sobre a importancia do Software Livre. E outra com Dairton Bassi sobre metodologias ágeis...

Vale a pena conferir, a brincadeira sai por R$ 100,00 a semana e se você quiser incluir a refeição é só pagar mais R$ 100,00 . Só não esqueça de levar o micro....

Diversão garantida !!!

TDD – Test Driven Development

quinta-feira, 3 de janeiro de 2008


•Test-Driven Development (TDD) é uma metodologia que utiliza os testes para auxiliar os desenvolvedores tomar as decisões certas na hora certa. TDD não é somente testes, É sobre utilizar os testes para desenvolver software de uma maneira simples e incremental. Não somente maximiza a qualidade e o design do software, como também simplifica o processo de desenvolvimento.
A beleza do TDD é que com pequenas mudanças na sua metodologia de desenvolvimento a algumas ferramentas adicionais o desenvolvedor é capaz de produzir software de maneira rápida e veloz.
TDD é uma das práticas do Extreme Programming (XP).As práticas do XP foram formuladas por Kent Beck e Ron Jeffries a partir de suas experiências no desenvolvimento de uma sistema de pagamento para a Chrysler. As idéias gerais por trás do XP são simplificar o processo de desenvolvimento simples e manter um processo contínuo de desenvolvimento em um ciclo curto que fornece um feedback constante do estado do software. As idéias do TDD tem ganho uma grande aceitação nos meio dos desenvolvimento e projetos de software.

A Metodologia do Test-Driven Development

TDD é uma metodologia muito simples que se resume em dois conceitos:
Testes unitários e refatoração.
TDD é basicamente composto nos seguintes passos:
–Escrever um teste que define como você acha que pequeno pedaço da aplicação deveria se comportar.
–Fazer o teste rodar da maneira mais fácil e rápida que você pode. Não se preocupe com a qualidade do código, apenas faça funcionar.
–Enxugue o código. Agora que o código esta funcionando corretamente, dê um passo para trás e refatore para remover qualquer duplicação ou qualquer outro problema que foi apresentado para tornar o teste executável.
TDD é um processo iterativo e você repete estes passos inúmeras vezes até que você fique satisfeito com o novo código.
A maneira que TDD trabalha é através de requisitos, ou casos de uso que são decompostos em um conjunto de comportamentos que são premissa para atender o requisito.
Para cada comportamento do sistema, a primeira coisa a se fazer é escrever um teste unitário que irá testar este comportamento. O teste unitário primeiro portanto temos um conjunto bem definido de critérios que podemos utilizar para mensurar a quantidade de código necessário que foi escrito para implementar este comportamento. Um dos beneficios de se escrever o teste primeiro é que ele ajuda a definir o comportamento do sistema de uma maneira mais clara e responder algumas perguntas do modelo.


Convencendo as pessoas a utilizar TDD

Desenvolver software é um risco assumido. É quase impossível entregar um projeto dentro do orçamento e do prazo. De acordo com um estudo da Gartner Group, 30% dos projetos falham e não chegam aos seus objetivos, e 70% são entregues em atraso ou fora do orçamento previso. Claramente existe a necessidade de melhorar este processo, mas a questão é como. TDD pode ser parte da resposta, mas antes de convencer as pessoas a utilizar TDD é preciso entender e apresentar os problemas do processo atual. Uma vez entendido as falhas do processo corrente, é preciso entender como utilizar TDD para suprir estas falhas e utilizar este conhecimento para convencer as outras pessoas que isso irá funcionar.

Encontrando as falhas no processo corrente.

O processo mais usual quando não se pratica TDD é o famoso modelo cascata (análise dos requisitos, modelo, código e o teste). A maioria dos problemas relacionados ao desenvolvimento de software é má comunicação da equipe e uma execução falha. Para entender as falhas do processo corrente, devemos responder algumas perguntas básicas como:
–Qual é a maior causa dos bugs no softwares ?
–Qual é a maor causa dos atrasos no cronograma ?
–Qual é a média de bugs a cada 1000 linhas de código escrito ?
–Como o processo reage a uma mudança de requisito.
–Qual a fase do projeto que mais tenho problemas ? (Desing, código, integração, etc..)

Uma vez que estas perguntas foram respondidas, é provável que você tenha uma idéia melhor dos problemas no processo corrente. É muito importante entender estas questões antes de entender como e se o TDD pode ser utilizado para resolver os problemas.

Agile Manifesto - Metodologias Ágeis

domingo, 23 de dezembro de 2007

Nos três úlimos anos, tenho tido a oportunidade de estudar e trabalhar em projetos que seguem metodologias própria ou de mercado, com enfâse em RUP e ulimamente para gestão de projeto tenho conhecido e aplicado algumas das boas práticas de mercado baseados no PMBOK. E tenho visto e sentido na pele que muitas vezes a metodologia e o preenchimento em exceço de templates / documentações tornam o projeto não muito produtivo. O que quero dizer que PMI é muito bom para Gerenciamento do projeto, mas isto não contempla o desenvolvimento do Software em si. Foi quando comecei a me interessar por metodologias ágeis para o desenvolvimento de software.De acordo com site oficial de metodologias ágeis (http://agilemanifesto.org/),
Desenvolvimento ágil segue os seguintes princípios:

  • A maior prioridade é satisfazer o cliente através de uma entrega de software com qualidade de maneira rápida e contínua.
  • Mudanças nos requisitos são bem vindas, mesmo em estágio avançado de desenvolvimento. Processos ágeis harmoniza a mudança para as vantagens competitivas do cliente.
  • Entrega de software funcional frequente, de questão de semana para questão de meses, de preferência em uma menor escala de tempo.
  • Analistas de negócio e desenvolvedores devem trabalhar em conjunto diarimente durante o projeto.
  • Desenvolver projetos com pessoas motivadas. Fornecer a essas pessoas o ambiente e suporte que eles precisam, e confiar nestas pessoas para obter o trabalho feito.
  • O método mais eficiente e efetivo de trocar informação e estar alinhado ao time de desenvolvimento é através da conversa face a face.
  • Software funcional é a medida primária do progresso.
  • Processos ágeis promovem desenvolvimento sustentável.
  • Os sponsors, desenvolvedores e usuários devem ser manter um indefinido progresso constante.
  • Atenção contínua para excelência técnica e agilidade progressiva em design.
  • Simplicidade -- a arte de maximizar o volume de trabalho não realizado é essencial.
  • As melhores arquiteturas, requerimentos, e design partem de equips auto organizáveis.
  • Em intervalos regulares, o time reflete em como se tornar mais efetivo, então entram em sintonia e ajustam os comportamentos de acordo.
Eis alguns exemplos de metodologias ágeis:

  • Extreme Programming (XP)
  • DSDM
  • SCRUM
  • Crystal
  • Desenvolvimento Dirigido a Funcionalidade
  • Programação Pragmática
Aos poucos vou publicar um pouco deste extenso assunto.. mas o que posso dizer é dê uma olhada !!!

Campanha Relâmpago de Vouchers 2007 da Sun

terça-feira, 18 de dezembro de 2007

Galera, vamos aproveitar que até o dia 20/12 para cada voucher que é comprado você ganha outro na butija.. essa é a hora de certificar..

Tim Boudreau e Henry Story no Brasil

quarta-feira, 5 de dezembro de 2007

Segunda Feira (05/12/2007) esteve em São Paulo Tim Boudreau o engenheiro senior da Sun e um dos criadores NetBeans, ele esteve em um Mini curso exclusivo da Globalcode, esteve falando sobre as mais recentes funcionalidades do NetBeans 6.0 tais como: Melhorias no editor; Suporte a Ruby/JRuby/Ruby on Rails; Instalação e atualização mais fáceis; Desenvolvimento de GUI Swing; Profiling; Web e Java EE; Mobilidade; SOA; UML; Melhorias na API da plataforma NetBeans.

Vinicius Senger e Tim Boudreau




Mauricio Leal da Sun fez uma demo das novas funcionalidades do NetBeans 6 para o desenvolvimento de aplicativos JavaME.













Nos próximos dias a Globalcode irá promover outro mini curso sobre Web Semântica com Henry Story, fiquem ligados pois as vagas se esgotam rapidamente...
Para quem não sabe Web Semântica é o rumo atual que a Web tem tomado e em um sentido mais amplo permitirá que homem e máquina trabalhem em cooperação. Hoje o grande desafio é desenvolver tecnologias e linguagens que tornem a informação legível para as máquinas, essa integração hoje em dia é possível graças ao XML (eXtensible Markup Language), ao RDF (Resource Description Framework) e arquiteturas de metadados..
A Web Semântica é associada ao Web 3.0 como um próximo passo na evolução da rede mundial de computadores. Ela tem como objetivo imediato de categorizar as informações aumentando assim a eficiência em mecanismos de ferramentas de busca como Google, Altavista, etc...

Estrutura de uma Rede Semântica

E no fim do mini curso, fui gentilmente convidade pela familia Senger para um jantar com os ilustres visitantes..

Jorge Diz, Henry Story, Vinicius Senger, Yara Senger, Tim Boudreau, Mauricio Leal e Wagner Santos


Para maiores informações sobre Web Semântica acesse http://www.w3.org/2001/sw/ da W3C.