Todos os post de mbelo

Classes Aninhadas

Li esse excelente artigo publicado no blog da Caelum, de autoria de Eric Torti, que trata de classes aninhadas em Java. Embora esse assunto seja extensamente coberto em boas bibliografias sobre a tecnologia, achei esse artigo muito interessante por reforçar a questão do encapsulamento e por usar um exemplo do padrão State que tira proveito de classes aninhadas. Vale a leitura.

http://blog.caelum.com.br/classes-aninhadas-o-que-sao-e-quando-usar/

Uma revisita sobre a linguagem XML

Há uma década a linguagem XML apontava como uma revolução na forma de representar dados. Após mais de 10 anos, o que podemos observar?

Bem, de fato o XML tornou-se pervasivo nos sistemas de computação. Alguns usos mais comuns são em: (1) arquivos de configuração – p.ex. em frameworks como struts, spring e hibernate -, (2) definição de sistemas – JasperReports – ; e (3) transporte de dados – principalmente pela popularização dos WebServices. Mas também, relembrando aquele tempo, houve muito exagero: alguns afirmavam com alto grau de certeza que, a esta altura, as linguagens de programação estariam abolidas e programaríamos exclusivamente em XML; Java, .NET, VB, etc. seriam meras plataformas para as quais códigos definidos em metaprogramação XML seriam transformados.

Um dos melhores artigos do assunto, que tive a oportunidade de reler, é o “XML: We Ain’t Seen Nothin’ Yet”, de A. Russell Jones. Acesse o link aqui.

O Exemplo de Salman Khan

Esbarrei com essa interessante reportagem sobre o educador Salman Khan na revista Veja. Americano que veio do mercado financeiro e passou a se dedicar ao ensino pela internet está atraindo grande interesse da comunidade educacional.

Como professor, sempre acreditei que o maior desafio e diferencial de um professor reside na forma como ele consegue motivar e inspirar seus alunos. Assistindo às aulas do Prof.Khan, pude perceber o quanto a concisão e o uso eficiente dos recursos tecnológicos – sem muitas firulas – aplicados na tradicional aula expositiva podem contribuir para o ensino de qualidade.

Recomendo fortemente aprender sobre como ensinar com alguém que, ao invés de simplesmente teorizar o ensino, aplica na prática seu método. Avalie por si mesmo.

Site do Prof. Salman Khan: http://www.khanacademy.org/

Site com as vídeo-aulas tradizidas: http://www.fundacaolemann.org.br/khanportugues/

Palestra onde Salman Khan apresenta seu método: http://www.ted.com/talks/lang/pt-br/salman_khan_let_s_use_video_to_reinvent_education.html

As diferentes formações em computação

Até mesmo quando ingressei num curso de informática  não estava claro para mim os diferentes cursos de formação que havia no mercado. Eu acabei cursando o tecnólogo em processamento de dados na PUC-RIO, o que fez toda a diferença na minha formação.
Para aqueles alunos e ingressantes na informática que têm dúvidas sobre qaul curso escolher, recomendo fortemente essa reportagem da revista eletrônica Olhar Digital. Espero que lhe seja útil ao escolher o seu curso.
Para a modalidade tecnólogo, o site oferece um artigo detalhando as diferenças dessa modalidade das demais. Aproveite!

http://olhardigital.uol.com.br/produtos/central_de_videos/programa-352—22-01-2012

JavaOne 2011 Brasil

Nos dias 6, 7 e 8 de dezembro participei no JavaOne 2011, evento realizado pela Oracle. O evento ocorreu no Transamerica Expo Center, em Santo Amaro, São Paulo/SP. A seguir faço um relato dos pontos principais que considero válido ressaltar acerca do evento.

Péssima organização

Esse foi um dos pontos que me surpreenderam negativamente. Dos eventos anteriores que participei, antes organizados pela Sun, esse foi o mais desorganizado. Perdi ao menos 3 palestras nas quais tinha interesse por conta do reduzido espaço nas salas, enquanto em outras palestras sobravam muitas vagas. Um dos motivos, creio, foi devido a juntar dois eventos – o JavaOne com o Oracle OpenWorld. Não me pareceu uma boa ideia.

Não havia coffe-break, literalmente. A agenda não programava pausa entre as palestras nem o evento fornecia alimentos e bebidas diretamente. Ao invés disso, haviam dezenas de stands de parceiros; após fingir interesse em determinado produto/serviço, podíamos beliscar um salgado/doce e tomar uma bebida. No resto era tudo pago… e caro.

Qualidade das Palestras

Também deixou a desejar. Nos eventos anteriores, dado um determinado tópico, o palestrante era um renomado participante das especificações do Java. Nesse evento, em várias palestras, os palestrantes eram parceiros locais da Oracle. No meu ponto de vista isso contribuiu para a baixa qualidade de certas palestras, com meritosas exceções. Além disso, algumas palestras foram puras propagandas, o que irritava a audiência.

* Oracle WebLogic 12c

– pura propaganda

– não me interessa saber quantas vezes o weblogic é mais rápido que o IBM websphere

* XML-Free Programming

Stephen Chin e Arun Gupta.

Palestrado por dois representantes da Oracle, gostei dessa palestra. O foco foi defender os novos recursos da plataforma JEE para reduzir o excessivo número de configurações em XML que eram necessários para se programar. As anotações são muito bem vindas em vários cenários. Mas senti falta um melhor aprofundamento nas novas anotações que substituem as configurações XML. Poderiam ser melhor abordadas. Por exemplo, a nova tag @WebServlet… poderia ser dado uma demonstração prática do seu uso. Eles mostraram as novas anotações para criação de serviços REST. Uma das coisas interessantes, com a qual concordo plenamente, é a vantagem da checagem em tempo de compilação que as anotações conferem, diminuindo o número de erros de ClassCastExpcetion em tempo de execução. Isso foi citado como type checked dependency injection que, inclusive, favorece as ferramentas IDE em autocompletes.

* REST e Java – Melhores Práticas

Fábio Velloso

Para mim, que entendia muito superficialmente de REST, achei a palestra muito sucinta demais. Vi códigos interessantes, também com anotações, para criação de webservices REST. Mas deixou um pouco a desejar pela apresentação muito rápida e a falta de um exemplo prático.

* Design de código: a qualidade que faz a diferença

Apresentado por um palestrante da Caelum, achei a palestra divertida e instrutiva. Gostei da abordagem da comparação de bons em várias linguagens – algumas até que eu não conhecia.

Ele deu o link online.caelum.com.br para fazer cursos gratuitos de experimento do treinamento da empresa (um pouco de comercial).

* Coding DOJO em 5 minutos

Otávio Santana

Fiquei bastante decepcionado com essa apresentação. Tinha uma expectativa inicial e no início da palestra minha expectativa ficou ainda maior com a possibilidade de ver na prática a aplicação desse técnica de ensino de programação. Até entendi alguns conceitos, mas no fim prática se mostrou mal organizada. Por fim, ficou um gostinho em entender mais como seria organizar uma sala de DOJO e se a prática seria realmente efetiva com vendeu o palestrante.

Nessa palestra foi recomendado o livro “Arquitetura ágil”, supostamente do Martin Fowler. Não tinha conhecimento desse livro.

Também não entendi a nova anotação @Safevarags e para quê ela serve.

* Novidades do JSF 2.0

Com apresentadores parceiros da Oracle, da empresa 4LINUX, achei a apresentação interessante, mas faltou tempo para apresentar com maior profundidade, que o tema merecia.

Os apresentadores mostraram uma aplicação exemplo, que está hospedada em https://github.com/gabriel-ozeas/javaone2011

Ao fim, perguntei a um dos palestrantes sobre a experiência com o plugin M2E (Manen 2 Eclipse) e ele me disse que esse plugin, agora, está bem estável e funciona com a versão 3 do maven-eclipse indigo de maneira excelente.

Ele também usa um plugin (cargo) que realiza o deploy automático da aplicação web no jboss para realizar os testes de integração.

* Refactoring com JDK 7

Essa palestra foi um fracasso. O palestrante, cujo nome não anotei, ficou pelo menos 45 minutos de uma hora que ele tinha instalando o netbeans numa máquina de um audiente. O pouco tempo que sobrou não foi suficiente sequer para contextualizar a apresentação. Pura falta de organização.

* Formando Desenvolvedores Efetivos

Palestra ministrada por um parceiro da Oracle, Fernando Lozano, da empresa 4Linux, ele fez uma crítica interessante ao modo de ensinar em cursos e em faculdades. O mote da palestra é a má formação do desenvolvedores, egressos de cursos ou faculdades. Segundo a opinião do palestrante, as faculdades pecam ao ensinar exemplos fora da realidade; deveriam usar exemplos mais realísticos, com enfoque em manutenção de um sistema existente. Achei esse ponto de vista bem interessante e me fez repensar minhas práticas pedagógicas.

* Arquitetura e Modelo de Programação JavaFX

Joe Andresen

Palestra muito fraca. Tratou de forma superficial o JavaFX.

* Projeto Coin: Caras e Coroas

Dan Smith

Em resumo, achei essa palestra excelente. O palestrante abordou as alterações na linguagem, na versão 7 do Java SE, que simplificam e facilitam o desenvolvimento. Até esse ponto, nenhuma novidade. Recursos como inferência do tipo parametrizado, try-with-resources, multicatch, switch com strings, e outras modificações na linguagem já eram velhas conhecidas, anunciadas pelo menos desde 2009. O grande diferencial dessa palestra foi o foco em abordar difíceis decisão de compatibilidade retroativa que a equipe de implementação enfrentou. Achei bem interessante e válido entender a complexidade em se alterar uma linguagem com a responsabilidade em manter toda a base de código já escrito compilável.

* Projeto JigSaw – Putting it together

Matherey B. Nunez

A palestrante fez uma apresentação bem fluída, apresentando o que há de vir com o projeto JigSaw. Foi engraçado, depois de 20 anos escutando sobre o famigerado problema do DLL Hell das bibliotecas do Windows e, depois de muito tempo acreditando que isso não ocorreria (ou não com a mesma gravidade) na plataforma Java, escutar sobre o chamado problema de JAR Hell. O projeto JigSaw é uma nova especificação para estabelecimento de dependências de forma altamente configurável. O mais interessante e que, nessa proposta, ao invés de usar uma linguagem XML para a configuração das dependências, a proposta é o uso de uma linguagem específica para esse propósito, ou seja, uma DSL. O projeto JigSaw resolve grande parte do problema que o hoje é resolvido com o Maven, pelo menos com relação às dependências de módulos.

Link para vídeos do Java One dos EUA: http://www.parleys.com/#st=4&id=102979

Como ‘escapar’ caracteres dentro da propriedade Pattern no JasperReports

Essa dica pode parecer boba, mas apanhei um bocado para descobrir esse simples detalhe e acho que vale a pena registrar e compartilhar. Num determinado campo do Jasper Reports, eu queria exibir o símbolo percentual (%), mas sem que ele multiplicasse por cem, como é o comportamento padrão. Ocorre que o valor que eu tenho já é percentual e não em taxa unitária que, nesse caso, precisaria ser multiplicado por 100 para ser exibido como valor percentual.

Mas se você colocar no Pattern: #,##0.0000 %

Ela vai multiplicar o valor do atributo por 100 antes de exibir. Para contornar o problema coloque:

#,##0.0000 ‘%’

(caractere percentual entre pliques). Pronto! O valor é exibido sem a multiplicação.

Projetos de tudo-fixo são mais arriscados

Essa é a reflexão que nos traz o excelente artigo do Scott Ambler, na Dr´.Dobbs. Ele levanta a intrigante e controversa afirmação de que projetos de tudo-fixo (em uma tradução forçada por minha parte) são mais arriscados do que projetos que usam práticas que permitem ajustar, de forma dinâmica, uma ou mais das três clássicas variáveis de projetos: escopo, custo e prazo.  É uma fundamentação para defesa de práticas ágeis. Recomendo a leitura:

http://drdobbs.com/architecture-and-design/231600756#

A passagem de Dennis Ritchie

É com pesar que recebo a notícia da passagem de Dennis Ritchie. Ele criou a mais famosa linguagem de programação – a linguagem C – a partir da qual várias outras linguagens contemporâneas derivam. Triste notícia uma semana após a passagem de outro ícone da computação.

http://drdobbs.com/cpp/231900742?cid=DDJ_nl_upd_2011-10-13_h

Além da linguagem C, Ritchie é considerado o pai do UNIX, o sistema operativo que marcou época e que é a influência de quase todos os sistemas que existem atualmente.

Em resumo, a contribuição de Ritchie para a computação é inestimável.

Obrigado Ritchie por tudo! Vá em paz e que Deus esteja com você.

A carroça vazia

Certa manhã, meu pai, muito sábio, convidou-me a dar um passeio no bosque e eu aceitei com prazer. Ele se deteve numa clareira e depois de um pequeno silêncio me perguntou:
– Além do cantar dos pássaros, você está ouvindo mais alguma coisa?
Apurei os ouvidos alguns segundos e respondi:
– Estou ouvindo um barulho de carroça.
– Isso mesmo, disse meu pai, é uma carroça vazia.
Perguntei ao meu pai:
– Como pode saber que a carroça está vazia, se ainda não a vimos?
– Ora, respondeu meu pai. É muito fácil saber que uma carroça está vazia por causa do barulho. Quanto mais vazia a carroça maior é o barulho que faz.
Tornei-me adulto, e até hoje, quando vejo uma pessoa falando demais, gritando (no sentido de intimidar), tratando o próximo com grossura inoportuna, prepotente, interrompendo a conversa de todo mundo e querendo demonstrar que é o dono(a) da razão e da verdade absoluta, tenho a impressão de ouvir a voz do meu pai dizendo:
“Quanto mais vazia a carroça, mais barulho ela faz…”

A passagem de Steve Jobs

Vá em paz Steve Jobs! Você foi a inspiração para uma geração de engenheiros em tecnologia. Minha vida na computação nasceu em um Apple; ou,  a bem da verdade, um clone do Apple, como era comum da época da reserva de mercado no Brasil. O ano era 1987 e a verdade é que aquela pequena máquina revolucionou minha vida e traçou o destino da minha carreira profissional nos anos seguintes.

Reservado, arrogante, odioso, brilhante… são vários adjetivos atribuídos a Jobs. Na minha opinião, altamente influenciada pelo que Steve significou em minha vida, ele tinha como melhor a capacidade de inspirar as pessoas; em parte, sou produto dessa inspiração.

Obrigado Jobs, por tudo o que você fez por mim e por toda a comunidade de computação.

Vá em Paz! Que Deus e Buda estejam com você!

Em tempo: quando chegar aos Céus, ajude-me a esclarecer de uma vez por todas o que é “Computação na Nuvem” :-)

Homenagem a Steve Jobs