Boas blogadas do fim da semana

Nesta quinta-feira dia 23, Jonhathan Schwartz, CEO e Presidente da Sun, escreveu em seu blog o artigo The Rise of JAVA – The Retirement of SUNW. Além de comentar a recente parceria da Sun com a Google para distribuir gratuitamente o StarOffice — versão comercial da Sun para a suíte de programas de escritório OpenOffice.org — no pacote de software Google Pack, o destaque do artigo é o seguinte:

JAVA is a technology whose value is near infinite to the internet, and a brand that’s inseparably a part of Sun (and our profitability). And so next week, we’re going to embrace that reality by changing our trading symbol, from SUNW to JAVA.

Ou seja, a Sun mudou sua marca no mercado financeiro, trocando o código (ticket) de suas ações na bolsa tecnológica Nasdaq de SUNW para JAVA! Segundo Schwatz, isso reflete o quanto a Sun abraça a realidade da tecnologia Java ter valor ilimitado e ter sua marca como parte inseparável da Sun e de sua rentabilidade.

O fato foi noticiado também em artigo Bye Bye SUNW, Hello JAVA: Sun To Change Its Stock Ticker Symbol — “JAVA is a technology whose value is near infinite to the Internet” — por Java News Desk, 24/ago, no Java Developers Journal (JDJ).

Calvin Austin em seu blog levantou questionamentos bem-humorados a respeito: “Já pensou se agora a Apple mudar para IPOD, Microsoft para OFFICE e Oracle para DB? Será que JAVA deve ser citado como JAVA(TM) na cotação para manter o direito da marca comercial? O que acontece se a indústria de café estiver mal, será JAVA também afetada?”


Lançamentos de software Java anunciados no dia 23:


Já faz tempo que não falo nada do assunto Unix. Tenho dado uma dica ou outra relacionada a Linux, mas nada dos Solaris e HPUX da vida. Foi “nostálgico” ver no blog de Ataliba Teixeira a dica Removendo espaço não usado no HP-UX, Dicas Unix. A dica cita a origem no Unix Guru Universe (UGU), portal velho conhecido meu há anos.

Me identifiquei também com a constatação do Ataliba em seu artigo seguinte, Blog é um troço interessante. “Para quem é paraquedista, serviu chegar até aqui. Ou seja, ele tem que ter a resposta para o que eu quero, já que o Google me jogou aqui.” Felizmente não é a postura de todos, mas também acho gozado como tem gente que lida com a Internet de forma meio egoísta, comodista, revoltada, mal educada ou algo assim. Em resumo, a vêem como uma via de mão única: eu quero tudo o que eu preciso, de graça e rápido. Para estes, só me resta desejar que um dia entendam o significado de cooperação e colaboração.

Bem, vou voltar ao InfoBlogs e meus feeds RSS para ver o que mais essa gente bacana da Internet anda escrevendo… Boa semana a todos!

Desempenho em Java 6 – BEA ainda na liderança

Fonte: Javalobby, por Michael Urban, 8 de agosto 2007.

Quando a BEA lançou sua implementação JRockit JVM para Java 6, prometeu produzir alguns números de benchmark. Após quatro meses, estes números finalmente chegaram, e mostram que BEA bateu de novo a Sun nas plataformas x86 e x64.

BEA comparou sua versão de Java 6 com a da Sun usando SPECjbb2005 e XMLMark. Os testes foram realizados em um computador com processador quad-core Intel Xeon X5355 e também em um dual-core AMD Opteron 2220 SE, utilizando tanto configurações base quando calibradas das JVMs.

No SPECjbb2005, a melhor configuração de JRockit foi 27% mais rápida em Intel e 19% mais rápida em AMD.

No teste XMLMark, no melhor caso, JRockit foi 32% mais rápida com SAX e 3% melhor com DOM.

O BEA JRockit JDK 6 é gratuito e pode ser baixado no site da BEA Systems.

Para saber mais (em inglês):

Rutkowska quebra proteção do Vista, de novo

Fonte: Fórum PCs, por SKuLL_DeviLL, 07 de agosto de 2007.

Joanna RutkowskaA polonesa Joanna Rutkowska voltou a utilizar o seu famoso Blue Pill para introduzir um código malicioso no Vista. Ela subiu no palco em Las Vegas e disse: “Vou falar sobre a proteção do kernel do Vista e porque ela não funciona”.

A palestra de Joanna Rutkowska, no encontro Blackhat, voltou a surpreender por sua clareza e pelos detalhes. Ela começou lendo um documento do Microsoft Vista que dizia, inclusive, que os usuários com privilégios de administrador não podiam carregar um código no modo Kernel sem a permissão do sistema. Depois ela sorriu com ironia.

No ano passado, Rutkowska fez uso do seu famoso Blue Pill, um malware que se introduziu no sistema de virtualização do Vista e lhe concedeu privilégios de administrador.

Apesar das declarações da Microsoft afirmando que este problema foi solucionado antes que a versão final do Vista fosse encontrada no mercado, ainda existem muitas formas de atacar o Vista, e isso Rutkowska conseguiu provar com sobras.
Utilizando um driver da NVIDIA como proxy para escrever o código no Kernel, ela mostrou como um rootkit é capaz de enganar o sistema de segurança do kernel do Vista, que é o que supostamente evita a entrada do código não autorizado.

Este problema afeta não só o driver da NVIDIA, mas também o da ATI e quase todos os outros drivers de terceiros. Pior ainda: os drivers foram tão mal escritos e sua arquitetura tão mal desenhada que um usuário nem sequer precisa ter uma placa gráfica NVIDIA ou ATI instalada com o driver para se aproveitar desta falha. Basta apenas incluir o arquivo do driver junto com qualquer outro grupo de códigos, colocá-lo em algum lugar da unidade C: e utilizá-lo depois como um vetor de ataque.


Em seu blog “Segurança na Microsoft”, Fernando Cima postou o artigo Divulgado Código Fonte do Novo “Blue Pill” (03/08/2007) em que critica a efetividade do Blue Pill. O analista já havia analisado o primeiro Blue Pill (14/08/2006) apresentado por Rutkowska no evento Black Hat 2006.

Para saber mais:

Uma plataforma para as outras dominar

Li uma constatação impressionante, a partir dos artigos Java: One Platform To Rule Them All? (em inglês), por Michael Urban, no portal Javalobby, e sua referência original Use Java to Improve Drupal’s Scalability.

Geert Bevin lidava com problemas de escalabilidade do gerenciador de conteúdo web (WCM) Drupal, em PHP, pelo fato que Drupal usa banco de dados para efetuar cache, o que criava um gargalo. Experimentou então executar o Drupal no Quercus, uma implementação código-aberto 100% Java da linguagem PHP, combinado com clusterização de JVM feita com o Terracota e com o Ehcache substituindo o cache do Drupal. Obteve assim um protótipo com uma solução mais escalável, com melhor desempenho.

Este é um exemplo inusitado de uso do poder da plataforma Java, com a JVM e as muitas ferramentas e recursos disponíveis, para melhoria de desempenho e escalabilidade, em substituição ao ambiente nativo de outras plataformas.

Achei sensata porém a ponderação no comentário #2 de David Lee no artigo de Urban. Embora sejam cada vez mais evidentes a abrangência e a eficiência da plataforma Java, falta ainda tornar o uso de seus frameworks tão produtivo quanto alguns de seus competidores.

Coincidentemente, produtividade de frameworks é o tema de outro artigo no Javalobby, Is Grails More Productive than Rails. O texto referencia a pesquisa da consultoria AlterThought, que estimou e comparou o esforço de desenvolvimento de um projeto em J2EE, Java/Spring, Rails e Grails. Na avaliação, o framework de aplicações web Grails, baseado na linguagem de programação Groovy e Java, se mostrou o mais produtivo.

Contudo, indicativos como o índice TIOBE mostram que a popularidade da linguagem de programação Java vem se mantendo há vários anos na liderança, na comunidade global de desenvolvimento de software.

Dalai Lama

Dizem que perguntaram ao Dalai Lama: — O que mais te surpreende na Humanidade?

A resposta:

Os homens… Porque perdem a saúde para juntar dinheiro, depois perdem o dinheiro para recuperar a saúde.

E por pensarem ansiosamente no futuro, esquecem o presente de tal maneira que acabam por não viver nem o presente nem o futuro.

Vivem como se nunca fossem morrer… e morrem como se nunca tivessem vivido.

Para saber mais:

Por que modelar com UML

Muito interessante o artigo Why Model With UML? (em inglês), contribuído para a base de conhecimento do NetBeans 5.5 por Kris Richards e Cindy Castillo, atualizado em 11 de junho de 2007.

Como diz o resumo (abstract):

Este artigo foi escrito para aqueles engenheiros de software que nunca têm tempo para modelar um projeto antes de começar a codificar, e para aqueles que ainda sequer consideraram criar modelos de seus sistemas antes de codificá-los. O artigo apresenta alguns métodos e estratégias para ajudar você a ser mais eficiente e possivelmente ganhar tempo. A informação neste guia deve inclusive permitir que você desafie o argumento “Nós nunca temos tempo para fazer o certo, mas sempre temos tempo para fazer de novo.”

O propósito da Linguagem de Modelagem Unificada (Unified Modeling Language – UML) é prover uma notação de modelagem independente de linguagem de programação e de plataforma. Ferramentas UML são tão versáteis quanto os fundamentos de UML. Este artigo serve como uma introdução aos conceitos básicos de de UML enquanto provê uma compreensão dos propósitos da modelagem. Ele não é um manual como-fazer, mas fornece referências, quando apropriado, para tutoriais ilustrando os passos de como usar os recursos de UML inclusos no IDE NetBeans.

Para saber mais:

Eclipse 3.3 por Osvaldo Doederlein

Os artigos de Osvaldo Pinali Doederlein na revista Java Magazine se destacam pela clareza, precisão, didática e descontração ao tratar dos temas mais diversos do universo Java. Das profundezas da JVM aos recursos do Eclipse, seja sobre Java SE, ME e EE, os artigos de Osvaldo são leitura obrigatória para mim e recomendo a todos.

Na JM deste mês (Edição 47, Ano V, junho/2007), o artigo de Doederlein “Eclipse 3.3: Novidades no Núcleo” aborda em 10 páginas, no bom estilo de sempre, as novidades que vem por aí no núcleo base do Eclipse Java Development Tools (JDT).

Transcrevo a seguir — com permissão do autor Osvaldo Doederlein e do Editor-Chefe da revista Leonardo Galvão — um trecho da primeira seção do artigo, A evolução do Eclipse, que é bastante a propósito do que venho abordando aqui sobre os caminhos e recursos dos IDEs Java Eclipse, NetBeans e JDeveloper.

Há cerca de um ano, com o Callisto, parecia que o Eclipse recuperaria todo o atraso em relação a outros IDEs na abrangência de ferramentas. Mas o mundo não ficou parado enquanto o Eclipse corria atrás de funcionalidades como a criação de JSPs e EJBs. Assim, quando o WTP (Web Tools Project) 1.x chegou, a primeira reação pode ter sido de satisfação com as funcionalidades disponíveis. Mas a segunda poderia ser: OK, temos o feijão-com-arroz do J2EE 1.4, mas cadê o resto? Faltava ainda suporte a Java EE 5 e JPA/EJB 3 (na época ainda em desenvolvimento, mas já contando com suporte inicial de outros IDEs).

O WTP continuou atrás da competição, especialmente após o NetBeans 5.5. E se o suporte a Java EE ainda não era ideal, o que dizer do Java ME, até há pouco sem absolutamente nenhum suporte? Teríamos, então, que esperar mais uma geração da família de ferramentas Eclipse para atingir um status do estado da arte em todas as funcionalidades agora consideras essenciais.

O Europa ou Eclipse 3.3 traz grandes atualizações nessas áreas anteriormente defasadas. Veremos se estas melhorias foram suficientes ao longo do ano, pois o presente artigo é focado apenas no JDT. Aguarde por edições futuras da Java Magazine, onde teremos artigos mais específicos abordando as novidades do WTP e de outras ferramentas do Europa.

Para saber mais, leia esta e as próximas edições da revista Java Magazine.

Princípios e citações

Alguns princípios e citações pautam meu pensamento, minha personalidade, minha vida.

Um do principais é custo × benefício. A análise de custo-benefício é uma disciplina científica, mas para mim é praticamente uma filosofia de vida. Aliás, gostei da definição da Wikipedia (inglês) que diz que pode ser também “uma abordagem informal para se tomar decisões de qualquer tipo”. Dê uma olhada em Answers.com e verá que a análise de custo-benefício se aplica às mais diversas situações e áreas.

Nem sempre o tal custo é algo facilmente mensurável, como é por exemplo o custo financeiro. Mesmo quando o assunto é dinheiro, na maioria das situações existem custos diretos e os — às vezes tortuosos mas ainda assim relevantes — custos indiretos. Existe até o custo de oportunidade, aquele relativo a oportunidades perdidas ou boas alternativas não escolhidas.

Benefício, então, pode ser ainda mais intangível e subjetivo. Ou seja, pesar o custo-benefício — das coisas e das ações — tem sempre um grau de subjetividade, mas nem por isso deixa de ser, para mim, um jeito sensato de pensar.

Eu sempre desconfio das medidas “a qualquer custo”. Praticamente nada, para mim, é digno de ser a todo e qualquer custo. Existem, sim, decisões que tem um alto grau de importância ou relevância (mas relativo a quê e a quem?), o que pode ser uma medida de alto benefício. Aí sim pode-se justificar alto custo.

Assim como dizem que “toda unanimidade é burra”, todo absoluto é radical. Os extremos são sempre perigosos. E o equilíbrio, essência do custo-benefício, nem sempre é fácil, mas é um padrão lógico e justo.


Por falar em fácil, me ocorre outro ponto relevante: É mais cômodo culpar os outros do que admitir as próprias deficiências. Ou, no pensamento de Jean-Paul Sartre e na música dos Titãs: “o inferno são os outros”.

Pode ser mais cômodo, mas não torna as coisas mais fáceis nem resolve a situação.

Afinal, não é mais fácil modificar a si mesmo — ou algo que depende exclusivamente de você — do que modificar os outros e o resto do mundo? Então, se uma deficiência — ou falha, ou problema, ou culpa — está em você, maiores as chances de você mesmo ter os meios para resolver a situação.

Contudo, admitir as próprias falhas curiosamente é, em geral, muito mais difícil do que possa soar. Exige boa dose de coragem. Talvez seja por isso que, embora nas (tantas) vezes que erro sou o primeiro a admitir, não raro vejo nas pessoas uma reação de espanto ou admiração. Serei corajoso? Acho que ajo assim mais por convicção e hábito do que por esforço e coragem.

Errar é humano. Errar só não pode ser a regra. E insistir no erro, aí sim, é bobeira. Admitir um problema pode ser o primeiro passo para resolvê-lo. Então, meu pensamento: seja o primeiro a reconhecer seus erros para se tornar uma pessoa melhor.

Quando falei em coragem, me lembrei imediatamente de Rubem Alves, no texto O Passarinho Engaiolado (in: Teologia do Cotidiano): “Somente podem gozar a liberdade aqueles que têm coragem”.

Refletindo sobre OO e patterns

Muito bom o artigo do Vitor Fernando Pamplona, Cuidado com a Orientação a Objetos e os Design Patterns, de ontem. Mesmo para quem não concordar com alguns pontos do texto ou até com nada, vale como momento de reflexão sobre como tem sido sua experiência e aplicação de orientação a objetos e padrões de desenho/projeto (assumindo que você é um profissional da área de análise de sistemas e/ou desenvolvimento de software, claro).

Os comentários do artigo também estão interessantes.