Archive for the ‘riojug’ Category

Rio Java Summit 2006

Wednesday, April 19th, 2006

Como já começou a ser divulgado, dia 6 de Maio de 2006 (Sábado) será realizado o Rio Java Summit 2006!

Lançado ano passado, o Rio Java Summit é um evento anual com grandes nomes internacionais organizado pelo RioJUG. Este ano nós chutamos o pau da barraca e chamamos três convidados internacionais:

Scott Ambler - Criador do Agile Modeling
Gavin King - Criado do Hibernate, criado do Seam, integrante do EJB 3.0
Alarik Myrin - Arquiteto e CTO da Sakonnet Technology

Além disso, teremos palestras de Carlos Vilela (ThoughtWorks), Phillip Calçado (sim, eu :) ) e Marcos Eliziário Santos (RioJUG/Sakonnet Technology). As palestras variam entre linguagens dinâmicas na JVM, testes com FIT, modelagem, JSF, EJB 3.0, integração Rails e Java… veja a agenda.

O local? Simplesmente um dos mais belos hotéis cinco estrelas do Brasil, o Sheraton Rio Hotel & Towers.

Sheraton

E quanto custa isso tudo?

Duas latas de leite em pó, que serão doadas ao Pró Criança Cardíaca.

Exato: de graça, sem pagamento, na faixa, free, 0800…

Como isso é possível? Com o patrocínio de duas grandes empresas:
sknt
jboss

E com a disposição dos coordenadores e membros de um grupo de usuários:

riojug

Novo Livro de Scott Ambler e Notícia Agradável

Saturday, March 11th, 2006

Dia 3 deste mês saiu o novo livro de Scott Ambler, Refactoring Databases : Evolutionary Database Design.

Para quem não conhece, Scott Ambler é criado do Agile Modeling, Agile Data Method, Agile Model Driven Development (AMDD), Enterprise Unified Process (EUP), e da metodologia Full Lifecycle Object-Oriented Testing (FLOOT), além de ser contribuidor do RUP. É autor de diversos (mesmo!) livros e artigossobre Java, UML, metodologias e Modelagem de sistemas.

Enquanto a Amazon não entrega o meu exemplar, eu convido a dar uma olahda na apresentação do Ambler para o JavaPolis.

E se você realmente gostar do trabalho do Ambler e quiser ouvir diretamente da boca dele sobre as novas tendências e tecnologias, tenho o prazer de lhe informar que Scott Ambler e mais personalidades do mundo Java e OO vão estar presentes no Rio de Janeiro em um evento que promete entrar para a história. Não perca mais detalhes neste blog ;)

Exceptions vs Tell Don’t Ask

Thursday, March 9th, 2006

Uma thread legal na lista de discussão do RioJUG sobre o princípio de Tell Don’t Ask

Considerando que o esquema de histórico do Yahoo! é horrível, vou colar aqui.

Bruno Iecker:

Oi galera,

tenho uma dúvida em relação a quando lançar uma Exception.

Vou tentar criar um exemplo, deve sair bem maluco, para exemplificar minha dúvida:

//forma 1
if(usuario.isMaior())
{
usuario.addFavorito(sexo);
}

//forma 2
try
{
usuario.addFavorito(sexo);
}
catch (ConteudoNaoPermitidoException e) {
e.printStackTrace();
}

Bem, da primeira forma, evito a Exception e entendi (provavelmente errado) que seria essa a recomendação do livro Effective Java (tem um resumo aqui). Mas assim, eu não estaria violando o príncipio Tell, don’t ask? Além de expor um método isMaior que poderia ser privado.

Abs,
Bruno.

Phillip Calçado

Olá,

On 3/7/06, Bruno Iecker wrote:
> Bem, da primeira forma, evito a Exception e entendi (provavelmente errado) que seria essa a recomendação do livro Effective Java (tem um resumo aqui). Mas assim, eu não estaria violando o príncipio Tell, don’t ask? Além de expor um método isMaior que poderia ser privado.

Sim, estaria. Você pode melhorar a separação de responsabilidades:

Segundo etnendi, a lógica de adicionar um favorito é a seguinte:

“Se o favorito for restrito para usuários maiores de idade, rejeite.”

E no exemplo essa lógica é responsabilidade do usuário. Nenhuma outra
classe deve implementá-la, então você não pode fazer

if(usuario.isMario())

O que fazer então?

Você pode fazer assim:

if(usuario.podeAdicionar(sexo))
{
usuario.addFavorito(sexo);
}

E seu usuario:

class usuario{

public boolean podeAdicionar(Favorito f){
if(f.isRestrito()) return (this.idade > 18);
else return true;
}

public void addFavorito(Favorito f){

if(podeAdicionar(f)){
favoritos.add(f);
}
else{
throw new FavoritoNaoEhValidoException();
}
}

}

Assim você mantêm as responsabilidades das classes no devido lugar.

[]s

Bruno Iecker

Oi Phillip,

fiquei mais confuso… É que acho que expressei mal a minha dúvida.

O meu exemplo é hipotético, mas vamos lá…

//Phillip escreveu

if(usuario.podeAdicionar(sexo))
{
usuario.addFavorito (sexo);
}

Neste caso, de qualquer forma, eu ainda não estaria perguntando ao usuario?

Utilizando o seu exemplo… por que não fazer apenas:

usuario.addFavorito(sexo);

e deixar o método podeAdicionar privado em Usuario?

Abs,
Bruno.

PS.: Sim, trocar o método isMaior por podeAdicionar melhorou bastante porque agora não exponho aos clientes a lógica de permissão, mas não era essa a minha dúvida. ;-)

Phillip Calçado

Oi,

On 3/7/06, Bruno Iecker wrote:
> Utilizando o seu exemplo… por que não fazer apenas: (…) e deixar o método podeAdicionar privado em Usuario?

Falando de “tell don’t ask” puramente acho que vai depender do nível
de encapsulamento que você quer no processo de adicionar. É bem
relativo ao problema enfrentado.

Sobre exceções em geral, caso fosse uma operação complicada onde você
não pode perguntar antes, algo do tipo do gato de Schrödinger (onde o
ato de observar/perguntar causa incerteza:
http://en.wikipedia.org/wiki/Schr%C3%B6dinger%27s_cat) você ia ter que
usar exceções ou se basear no retorno do método.

Para decidir entre um ou outro (retorno ou exceção) entra o que é
válido ou não para sua classe. Vamos tentar aplicar Design by Contract
(uma pequena introduçãozinha aqui:
http://fragmental.com.br/wiki/index.php?title=Contratos_Nulos).

Se sua classe assume (pré-condição) que o argumento é sempre válido, a
classe que chama deve enviar apenas argumentos válidos. Se os
argumentos não forem válidos essa é uma condição clara onde uma
exceção deve ser lançada (algo do tipo illegalArgumentException).

Nesse caso, sua classe cliente é “bem-intencionada” e quer enviar
apenas argumentos válidos ao usuário, mas ela não pode saber por si só
o que é válido ou não, tem que perguntar a alguém (no caso, ao
usuario).

Se sua classe Usuário não especifica no seu contrato que espera apenas
argumentos válidos, ela deve ser capaz de lidar com qualquer
argumento. Como isso vai ser implementado depende do problema mas
geralmente lançar uma exceção não é algo “justo” pois ninguém quebrou
nenhum contrato.

Reunião RioJUG

Monday, January 23rd, 2006

Hoje no auditório do SENAC vai ser realizada mais uma reunião do RioJUG:

Desmistificando a SCPJ 5 (Tiger)

Dia: 23/Janeiro/2006 (segunda)
Horário: 18:30 horas
Duração: 2 horas e 30 minutos
Local: Auditório do SENAC CIT - Rua Santa Luzia, 735 - 7o. andar, Centro
Dica de Acesso: Estação Cinelândia do Metrô pela saída Santa Luzia, atrás do Consulado Americano

Entrada Gratuita e Sem Inscrições Prévias

Coffe-break oferecido pelo nosso patrocinador Quality Software.

Sorteio de camisetas e de assinaturas das Revistas “Mundo Java”, “Java Magazine” e “SQL Magazine”, para os presentes.

A Palestra:

    Apesar de existir desde abril de 2005, a SCPJ 5 (Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0) ainda causa “calafrios” em vários profissionais.Não vamos ensinar Java 5 nesta palestra. Mas também não é preciso que você seja um conhecedor de Java 5 para tirar proveito. Na verdade os assuntos discutidos poderão até mesmo ser compreendidos por quem conhece pouco de Java, mas quer saber como aprender mais para tirar uma certificação.O que vamos fazer é desmistificar para o público várias características deste exame, discutindo como são abordados na prova os tópicos da certificação, além de comentar sobre dicas que poderão facilitar o caminho, bem como sobre armadilhas existentes na prova.

    Não deixe de trazer papel e caneta para fazer suas anotações, porque vão ocorrer comentários e observações que não poderão ser previstos antecipadamente, ou mesmo que não estarão em qualquer material de referência.

    Em função da relevância deste assunto para muitos profissionais, a palestra teve sua duração aumentada de modo a atender melhor às dúvidas e discussões do público presente.

O Palestrante:

    Magno Cavalcante é Analista de Sistemas, com formação em Engenharia de Sistemas e Computação. Ao longo da carreira tem trabalhado na área de tecnologia da informação, atuando em projetos de desenvolvimento com Java Standard e Enterprise, na modelagem de sistemas, no gerenciamento de bancos de dados, no gerenciamento de sistemas operacionais e segurança de informações.Fundador e Coordenador do RioJUG, é conhecido instrutor de tecnologias Java no Rio de Janeiro, tendo atuado também em outros estados.

Vvale a pena uma conferida.

Se você está interessado em ir ao Sun tech Days 2006, o pessoal do JUG está começando a preparar a caravana. Mais detalhes na lista.

Matéria na Revista Mundo Java

Friday, January 13th, 2006

Este mês saiu um artigo meu na revista Mundo Java (edição 15). É uma transcrição da palestra sobre Camadas que ministrei na Maratona4Java de Brasília e no RioJUG, quem não teve oportundiade pode conferir o conteúdo.

Feedback é muito apreciado e aguardem próximas novidades ;)

2005: Java, Ruby, o Universo e Tudo Mais

Sunday, January 1st, 2006
Um título ridículo para um post sobre o que se passou no ano de 2005 na esfera tecnológica aos olhos do GUJ. Nada muito completo, apenas umas coisas que consiga lembrar…Caso você sinta falta de algo aqui, coloque nos comentários. Certamente deixei muito para trás, apenas segui a lista de notícias atrás de fatos que chamavam minha atenção.

Para iniciar o evento mais importante de tecnologia aqui do Rio aconteceu em Fevereiro, o Rio Java Summit 2005. O evento contou com a presença de Gavin King, líder e criador do Hibernate, que falou sobre persistência em vários aspectos, incluindo EJB3.0.

Gain King RJS2005

Mais uma vez o Sun Tech Days foi o evento da Sun para a Comunidade local.

Também tivemos este ano o clássico ConexãoJava, com ampla divulgação da mídia.

Em Novembro foi realizado o Rio Java Developers Day, compresença d vários palestrantes da Sun.

A Sun anunciou uma nova certificação: Sun Certified Java Associate. Pra que serve? Para nada na prática (além de engordar os curriculums como qualquer outra), mas muita gente se candidatou para obter o exame na fase de beta. Para os certificados da Sun (e de muitas outras entidades), certificados Beta são gratuitos. Um fato interessante é que esta prova em específico teve uma procura muito grande, o que mostra que foi bem divulgada pelos Portais, JUGs, Sites e mecanismos de informação em geral. A Comunidade Java está muito preocupada com certificação, seja lá qual o real fim dela.

A certificação Java 5 final saiu, mas ainda não tem o famoso livro da Kathy o que impediu muitos e muitos de tentarem a prova e continuarem a fazer a prova de certificação para Java 1.4. Também saiu a Java Language Specification 3rd Edition, guia (e bookmark) indispensável pra quem se diz programador Java.

No mesmo mês tivemos o lançamento do livro em Hibernate em Ação, uma tradução da obra de Christian Bauer e Gavin King. Além de defasado pela idade (não trata do Hibernate 3), o livro cumpre a tradição de livros técnicos porcamente traduzidos, comentários interessantes aqui. Apesar de um fiasco de tradução, esse livro é mais uma mostra que o mercado está precisando de material em português. Na mesma onda, os ótimos livros de Kathy Sierra foram traduzidos.Sou contra a tradução e o uso de versões traduzidas de livros não-básicos por profissionais, mas é mais uma prova que precisamos de material nacional de qualidade. Isso será tema de um post em breve.

No mês, seguinte, um anúncio que há muito era esperado: o framework Struts tem destino incerto. Quem acompanha o mercado de tecnologia sabia que algo ia acontecer neste sentido, mas quem insiste em tapar o Sol com a peneira tomou um golpe no estômago. Até hoje não dá pra entender direito qual vai ser do Struts, o framework antigo (que primeiro foi rebatizado para Struts Classic depois rebatizado novamente para Struts Action para não parecer tão antigo) não parece estar indo a lugar nenhum.

Em terras tupiniquins surgiu o Mentawai, um framework MVC sem XML que fez bastante sucesso considerando a concorrência extensa..

Uma notícia interessante para a comunidade brasileira de maneira geral é o SOUJAVA se tornar membro do JCP. Ainda sobre o SOUJAVA, a organização não repetiu o vexame do ano anterior e fez um chamado de trabalhos de verdade para o JustJava2005. Numa manobra estranha, começou a agregar JUGs de outras regiões querendo marcar presença nacionalmente. Isso não foi muito bem recebido por alguns que esperavam que a maior associação de usuários da tecnologia buscasse união e não concorrência com JUGs locais. No fim das contas os ânimos se acalmaram com uma conversa entre as partes.

A divulgação da estratégia de migração do WallMart fez com que muitas pessoas se interessassem em fazer o processo mais rapidamente, o que é uma forte tendência em 2006.
Falando em Software Livre, a IBM adquiriu a GlueCode, cujos funcionários produziram o Apache Geronimo. De repente, começaram a surgir iniciativas de Marketing como um prêmio para quem instalasse e rodasse o Geronimo. Sem supresa a Big Blue lançou uma versão de Geronimo sob o infame nome de WebSphere Community Edition.

Ainda na esfera FOSS, A Apache lançou um projeto de JVM livre chamado Harmony. O projeto causou algum burburinho quando anunciado mas desde então não trouxe nenhum avanço significativo seja em produto usável seja em qualquer coisa.
A guerra Mono/.Net/Java sofre um baque quando a MSFT anunciou que não ia lberar componentes importantíssimos do .Net para serem implementados por terceiros (i.e. Mono). A Microsoft também trocou o nome do seu novo sistema operacional. Este mesmo sistema já sofreu problemas de segurança no primeiro beta lançado, que resultou em alguns componentes sendo removidos do projeto inicial.

Sobre licenças, a Sun trabalhou arduamente para aliviar o peso das lincenças sobre seu código Java e diminuir as críticas e projetos de JVM livres. No fim do ano a emrpesa anunciou sua nova estratégia: liberar quase todos os seus produtos como Software Livre.

Dentro dos produtos liberados pela Sun está a família creator, uma IDE construída sobre o Netbeans. Netbeans que causou muita discussão com seu novo designer chamado Matisse que proporcionaria a produtividade de um VB/Delphi (ou seja: sem layout managers pentelhos) a uma aplicação Java. O Netbeans também lançou uma plataforma de colaboração (mais tarde a Borland e outros anunciaram coisas parecidas) que deve se tornar uma tendência. A Sun investiu *muito* para divulgar o Netbeans este ano, o produto cresceu bstante.
Ainda falando sobre IDEs, o Eclipse ganhou várias empresas novas em seu consórcio como Macromedia (agora Adobe) e Nokia também lançou o Eclipse 3.1 final e versões de diversos plugins. 2005 foi apra dar uma reorganizada geral no Eclipse e tirar cada vez mais o sel IBM do produto. Erich Gamma explicou bastante sobre o ciclo de desenvolvimento da plataforma. Para o mal ou para o bem, a IBM também doou ao Eclipse partes do seu ciclo de desenvolvimento proprietário, o RUP.

Com a concorrência desleal de ferramentas superiores gratuitas, a Oracle fez o JDeveloper ser gratuito. Apenas IDEs de verdade como IntelliJ (que lançou versão nova este ano)se deram ao luxo de continuar como produto pago desvinculado de um grande Application Server.

Sobre grandes Application Servers a Bea anunciou o WebLogic 9 com diversas novas funcionalidades entre elas integração com Jython/Python para scripting. A Bea também anunciou forte suporte ao Spring, coisa meio óbvia visto que Rod Johnson declara seu amor ao WebLogic a todo instante.

No JavaOne dos dez anos de Java a Sun anuncionou que não existirá mais Java 2.
Até o MINIX teve nova versão, certamente a ser discutida no novo livro do Professor Tanenbaum.

O Ruby on Rails fez uma entrada grandiosa no mainstream Java com um artigo na DeveloperWorks. A mídia toda explodiu e o novo livro de Bruce Tate, Beyond Java, veio abrir com uma polêmica: qual o futuro da plataforma e da linguagem Java?

O Livro ganha meu prêmio pessoal de mais importante do ano. Não por ser bem escrito, também não mostra tecnologias revolucionárias e nem consegue ser muito informativo sobre as tendências que aponta. Beyond Java poderia ser uma séria de artigos numa revista. O livro leva o prêmio por levantar uma questão importante e conseguir chamar atenção de todos os lados para a polêmica.

RJDD - Post Mortem

Saturday, November 12th, 2005

O Rio Java Developers Day 2005 foi um sucesso e com certeza vai entrar para o Calendário de Eventos de Tecnologia da Cidade.

Cheguei lá um pouco mais tarde, me perdi (Niteroiense na cidade grande dá nisso… confundir RUA DO RIACHUELO com BAIRRO RIACHUELO) :P

As palestras do pessoal da Sun foram as mesmas do STD com algumas atualizações. O pessoal de marketing da Sun me falou que o STD do ano que vem já está com data marcada (que eu, obviamente, esqueci qual é).

Ao contrário do que eu imaginava, quase ninguém saiu após o intervalo do almoço, e as palestras da tarda ficaram com um bom público. Marcos Eliziário apresentou a sua visão do “Além do Java” falando sobre as críticas ao Java, os motivos e futuro. Palestra muito boa e bem humorada, acho que é difícil pra quem conhece o MArcos da lsita do RioJUG acreditar que ele pode ser engraçado, mas eu trabalho com ele e sei que aquela palestra foi praticamente a mesma coisa que acotnece todo santo dia quando ele levanta da mesa para discursar sobre algo :D

O pessoal do SENAC fez sua apresentação institucional, eu não assisti mas pela senhora estrutura que o campus do SENAC tem, acho que deve ser uma possibildiade interessante apra quem procura pós e formação tecnóloga no Rio. Pena que o Riachuelo é meio longe, mas o SENAC tem campus no centro também, onde aliás realizamos as reuniões mensais do JUG.

O evento valeu bastante, conheci algumas pessoas bem legais e bati um papo com o Hutch (figurassa o Eddie Murphy) e a Angela Caiedo, que além do inglês invejavelmente cristalino tem um daqueles notebooks Ferrari.

Hoje já recebi umas 20 solicitações de inscrição na lista do RioJUG, todas do pessoal que foi ao evento. A platéia era dividida ao meio entre estudantes e profissionais. Gente de Petrópolis, Niterói, São Gonçalo, Magé, Teresóplis, Macaé…

As fotos estarão no flickr em breve.

RJDD - Continuando…

Friday, November 4th, 2005

Postei na pressa o comentario abaixo, deixa eu explicar melhor sobre o evento.

O RioJUG e SouJava estao selando uma parceiria (enfim) com o apoio da Sun Microsystems, IBTA e SENAC Rio.

A Sun irá trazer ao Brasil alguns dos seus evangelistas, como no Sun Tech Days, porém apra eventos locais promovidos pelos JUGs. No Rio, teremos um dia com palestras minsitradas pelos evangelistas e pela comunidade, representada pelos JUGs. As palestras dos evangelistas da Sun (em inglês com tradução simultânea) serão:

  • Melhores Práticas de J2EE, com Exemplos da Vida Real
  • Netbeans no Desenvolvimento de Aplicações Java
  • Novos Recursos do Java Standard 5.0
  • Visão & Estratégia de Computação em Rede
  • Opções de Persistência J2EE: JDO, Hibernate e EJB 3.0

O SouJava irá apresentar:

  • Open Source e Java; Benefícios Reais para os Desenvolvedores

E este que vos escreve, juntamente com o famoso Marcos Eliziário, (também coordenador do RioJUG) estará em:

  • Além do Java: Outros Horizontes para o Desenvolvedor

O IBTA apresentará:

  • Aperfeiçoamento Profissional em Java: Identificando Oportunidades

Palestras para quase todos os tipos de profissionais, creio.

O evento possui vagas limitadíssimas e as inscrições já estão abertas. Uma sexta-feira para aperfeiçoamento profissional gratuito…quer mais o que?