Coletânea de referências AJAX atualizada

A partir do artigo recente ABCs of RIA da InfoWorld, encontrei uma série de outros bons artigos sobre Ajax, RIA e Web 2.0 nos portais InfoWorld e Network World, da Rede IDG.

Destas referências, descobri mais frameworks e produtos software livre interessantes voltados para arquitetura e componentes Ajax em aplicações web, em especial:

  • TIBCO General Interface
  • ClearNova’s ThinkCAP JX

Atualizei, então, estas novas referências no artigo Ajax em Java – coletânea de referências, 09/06/2007.

Confira!

Sun liberaliza Teste de Compatibilidade Java

Fonte: Sun Liberalizes Java Compatibility Testing (em inglês), por Java News Desk, 10 agosto 2007, em Java Developer’s Journal (JDJ).

A Sun, que sempre foi exigente e protecionista quanto a seus testes de compatibilidade Java, afirmou no dia 8 passado que estava colocando sua certificação “escreva uma vez, rode em qualquer lugar (WORA, “write once, run anywhere“) nas mãos da comunidade, com o lançamento da Licença OpenJDK Community Technology Compatibility Kit v1.0 (PDF, em inglês, 08/08/2007).

Rich Green, vice-presidente executivo de Software da Sun, no anúncio de imprensa Sun Releases New License for Java Compatibility Tests to the OpenJDK Community (em inglês, 09/08/2007), afirmou: “É um novo marco no lançamento da tecnologia Java como software de código aberto. Estamos ansiosos para ver implementações baseadas no OpenJDK passarem no JCK, para que tenhamos implementações livres e compatíveis da tecnologia Java disponíveis em distribuições GNU/Linux em todo lugar”.

Embora o licenciado precise participar da Comunidade Sun OpenJDK, a licença permite que a Sun licencie certos kits seus de compatibilidade da tecnologia Java (JCK/TCK) para facilitar as atividades daqueles que:

  1. desenvolvem e queiram distribuir sob Licença GPL uma implementação da Especificação Java SE 6 com compatibilidade testada;
  2. desejem verificar que mudanças feitas pelo licenciado no código base do OpenJDK não quebram a compatibilidade.

A licença é para o JCK (Java Compatibility Kit), o TCK (Technology Compatibility Kit) para a plataforma Java SE, que é uma suíte de testes, ferramentas e documentação para determinar se uma implementação satisfaz ou não a especificação Java Platform Standard Edition 6. A implementação que passa nos testes do JCK recebe a marca e o logo “Java compatible”.

Até então, os desenvolvedores de software livre da tecnologia Java estavam brigando para obter acesso aos testes. Porém, o projeto Apache Harmony, implementação independente do Java SE 5 JDK como software livre sob Licença Apache v2, ainda não se qualifica a usar o TCK neste licenciamento, pois não é nem GPL nem baseado no OpenJDK.

A Sun ainda não pôde liberar toda a tecnologia Java como código aberto por causa de partes dependentes/vinculadas a terceiros. O projeto OpenJDK inicialmente disponibilizou a JVM HotSpot, o compilador javac e JavaHelp como componentes de código aberto.

A Comunidade OpenJDK vêm evoluindo nos Projetos de JDK abertos:

Para saber mais:

Novidade no velho Hyperlink – novo menu dinâmico

Novidade no meu velho Márcio’s Hyperlink, que mantenho na Internet desde 1995: agora ele tem um menu dinâmico DHTML para facilitar a navegação pelos tópicos.

Defino o Márcio’s Hyperlink como uma Meta-Referência sobre Tecnologia da Informação. Trocando em miúdos, é uma grande coletânea de referências (links) para diversos assuntos técnicos de informática, organizada em páginas por tópicos.

A idéia do Hyperlink começou em 1994, quando eu resolvi colocar públicos na Internet meus favoritos armazenados no navegador Netscape. Aproveitei a praticidade do Netscape, que salvava os favoritos como um arquivo já em formato HTML. Por sinal, até hoje o Firefox/Mozilla armazena os favoritos como o arquivo bookmarks.html. Afinal, para que mudar o que é simples e funciona?

O Hyperlink surgiu com o nome original de Yahot, Yet Another Hotlist, na mesma idéia dos acrônimos YACC — Yet Another Compiler Compiler, um gerador de compiladores — e YAHOO — Yet Another Hierarchical Officious Oracle, na época apenas um catálogo de endereços web recém criado nos Estados Unidos, nascido como “Jerry’s Guide to the World Wide Web” dos estudantes de Stanford Jerry Yang e David Filo. Veja também The History of Yahoo! – How It All Started.

Durante anos, o Yahot ficou hospedado em meu endereço pessoal no provedor Inet. O registro mais antigo que encontrei no Web Archive foi de maio de 2001. Você pode acompanhar a evolução no Internet Archive Wayback Machine:

YAHOT – Márcio’s Hotlist (históricos de maio/2001 a jan/2004)

Anos depois, advogados do Yahoo Brasil pressionaram o provedor a suspender minha home-page alegando que a marca “YAHOT” poderia ser confundida com a marca do Yahoo, que se tornara uma mega corporação multi-serviços na Internet, presente em vários países inclusive Brasil.

Eu achei a situação ridícula e absurda. Ainda assim, para não perder tempo com confusão inútil para mim e para o provedor, preferi mudar o nome da seção para Márcio’s Hyperlink, que permanece até hoje, agora hospedada em meu próprio domínio.

Atualmente, o Márcio’s Hyperlink está dividido em seis grupos de tópicos principais — Multimídia, Internet, Segurança, Programação, Banco de Dados, Unix — que se desdobram em quase 140 páginas de tópicos, quase todas elas disponíveis em inglês em português.

[photopress:hyperlink_stats.png,full,centered]

A seção tem boa visitação, gerando sozinha uma média de mais de 1200 páginas visitadas por dia, o que corresponde a perto de 40% do tráfego total do domínio www.mhavila.com.br.

Embora quase não me reste tempo para manter atualizado o Hyperlink, passados 12 anos ele continua sendo minha lista de favoritos na Internet, só que pública a quem mais puder interessar e ajudar. Para facilitar a navegação pelo conteúdo, agora tem menu dinâmico!

O menu utilizado foi o DHTML Menu Builder, de Xavier Flix, xFX JumpStart. Produto profissional muito poderoso e eficiente, conta com o suporte pessoal — rápido e eficiente — do próprio Xavier.

Para conferir o novo menu e ver referências para o DHTML Menu Builder e muitos outros componentes de HTML Dinâmico em JavaScript, visite — adivinhe! — o tópico sobre Componentes DHTML no Márcio’s Hyperlink. 🙂

A blogosfera está pegando você também?

Cada vez mais, vejo que os blogs estão se tornando um meio de divulgação de idéias, opiniões e notícias direto da fonte, ou seja, providas por qualquer um que seja o autor ou queira ser o difusor da informação em questão.

É claro que não se deve confiar em tudo que se vê e ouve por aí, ainda mais em um meio como a Internet que, de tão democrático, chega a ser anárquico. Mas nem por isso a Internet e em especial a blogosfera (o crescente universo de blogs) perdem o mérito de ser fonte potencial infinda de informação válida e útil, desde que se exercite sempre o bom senso e a crítica como moderadores.

Essa fonte tão “sem intermediários” parece estar incomodando meios de comunicação de massa mais tradicionais, em uma espécie de concorrência. A recente campanha publicitária do jornal Estado de São Paulo na Internet, Estadão.com.br, com o slogan “Por onde você tem clicado, hein?”, tem sido vista por muitos como uma espécie de campanha contra os blogs independentes.

A reação mais interessante que já vi a este marketing do Estadão foi do blog Mundo Tecno, que lançou a Campanha “Não compre jornal, preserve a natureza”.

Eu, como blogueiro que tenho sido há um ano, certamente vi que há muitas pessoas por aí que, como eu, tentam usar o recurso do blog como um meio efetivo de difusão de informação, a partir do pontos de vista pessoais de cada um. Assim como espero que meu blog seja lido e ganhe credibilidade e abrangência, também tenho descoberto muitos e muitos blogs bons que valem a pena ser lidos.

Para encerrar, vi em um blog um teste de “quão viciado em blogar você é?”. O meu resultado está abaixo. E basta clicar na figura para você fazer o seu também…

70%Quão Viciando em Blogging Você É?

Criado por OnePlusYou – Free Online Dating

E reafirmo: Blog bom também é cultura.

Extensões para o navegador Firefox atualizadas

Minha lista de Extensões para o navegador Firefox recebeu sua nona atualização ontem. Agora com categorias mais organizadas, relaciono lá ótimas extensões que fazem do Firefox mais que o melhor navegador web, uma ferramenta essencial de trabalho e produtividade na Internet.

Firefox - A web de volta

  • Uso geral
    • Abas
    • Interface
    • Favoritos (Bookmarks)
    • Downloads
    • Gerenciar Atualizações e Complementos (Add-ons)
    • Segurança, Privacidade e Controle
  • Ferramentas técnicas
    • Canivete Suíço do Desenvolvedor
    • Utilidades
    • Rede e HTTP

Líderes em infra-estrutura de aplicações

Relatórios recentes do Gartner e outros institutos em 2007 têm avaliado o mercado de fornecedores de soluções para infraestrutura de aplicações, integração e SOA.

Em todos os segmentos, destacam-se os servidores de aplicações Java EE, em geral com a liderança disputada por três fornecedores: IBM (WebSphere), Oracle (Fusion Middleware) e BEA Systems (WebLogic).

A família de produtos IBM WebSphere, baseada no WebSphere Application Server, participa da liderança de todos os relatórios de avaliação citados, juntamente com a Oracle. BEA e Microsoft aparecem no grupo dos líderes em quatro dos seis relatórios. Fujitsu (Interstage) aparece em três; Red Hat (JBoss) e SAP (NetWeaver [br]), em dois.

Exceto a Microsoft com sua tecnologia .NET, todos os outros fornecedores líderes se baseiam na plataforma Java EE.

O Oracle Application Server integra a família de produtos Oracle Fusion Middleware, que tem se tornado cada vez mais ampla, impulsionada pela massiva aquisição de empresas pela Oracle nos últimos tempos.

Em 2005, a Oracle já destacava que o Oracle Application Server 10g estava posicionado no grupo líder em três Quadrantes Mágicos do Gartner — “Enterprise Application Servers”, “Integration Backbone Software Suppliers” e “Horizontal Portal Products” — e no Forrester Wave – Application Servers Platforms.

Em 2007, as páginas Oracle Application Server: Expert Opinions e Oracle Analyst Reports on Infrastructure – Fusion Middleware destacam a permanência da participação da Oracle na liderança do Forrester Wave para Application Servers e em quatro Quadrantes Mágicos do Gartner para Infraestrutura de Aplicações — Geral, Integração Back-End, Orientada a Serviços (SOA) e Aplicações Compostas.

A família de produtos BEA WebLogic, com o WebLogic Server, tornou altamente respeitado no mundo Java EE o nome da empresa BEA Systems. Em 2007, a BEA também destaca que está posicionada na liderança de três Quadrantes Mágicos do Gartner.

Eis a seguir uma listagem resumida dos relatórios de avaliação e líderes apontados.

[photopress:as_gartner_magicq_2q07.png,full,centered]

Gartner – Magic Quadrant for Application Infrastructure, 2Q07 (fonte: Oracle). Também disponibilizado por BEA (artigo 1). Líderes: IBM, Oracle e BEA Systems, seguidos por Microsoft, SAP, Red Hat e Fujitsu.

Gartner: Back-End Application Integration
Gartner – Magic Quadrant for Application Infrastructure for Back-End Application Integration Projects, 2Q07 (fonte: Sun) [pdf]. Também disponibilizado por Oracle, BEA (artigo 2) e Microsoft (artigo 1). Líderes: Tibco, IBM, Oracle, BEA e Microsoft, seguidos por Sun, Fujitsu e Sterling.

Gartner: Service-Oriented Business Applications
Gartner – Magic Quadrant for New Service-Oriented Business Application Projects, 2Q07 (fonte: Oracle). Também disponibilizado por BEA (artigo 3). Líderes: IBM, BEA e Oracle, seguidos por Fujitsu.

Gartner: Composite-Applications
Gartner – Magic Quadrant for Application Infrastructure for Composite-Application Projects, 2Q07 (fonte: Oracle). Também disponibilizado por Microsoft (artigo 2). Líderes: IBM, Oracle, SAP e InterSystems.

[photopress:forrester_wave_app_svr_2007.png,full,centered]

Forrester Wave™: Application Server Platforms, All Vendors, Q3 ’07 (fonte: Oracle) [pdf]. Também disponibilizado por Microsoft/sumário executivo Forrester. Líderes: Oracle, seguida por Microsoft e IBM.

[photopress:as_gartner_magicq_3q06.png,full,centered]

Gartner – Magic Quadrant for Enterprise Application Servers, 2Q06 (fonte: Aumega Networks) [pdf]. Também disponibilizado por Oracle/press. Líderes: IBM, BEA e Oracle, seguidos por Microsoft e Red Hat (JBoss).

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.

Recurso inútil do Java

Java se inspirou na sintaxe do C/C++, deixando de fora algumas características perigosas como a manipulação direta de ponteiros ou o uso de valores inteiros para representar estados lógicos (0 = falso, não zero = verdadeiro).

Mas pelo menos um recurso de sintaxe herdado do C/C++ é tão inútil quanto perigoso. Antes de citar, vou exemplificar o perigo. Diga qual é o resultado impresso pelo comando Java a seguir:

System.out.println(123 - 012);

Se você respondeu 111, caiu na armadilha. O correto é 113.

Por que? Todo literal inteiro começado por 0 é interpretado como um valor no sistema octal (JLS 3.10.1), isto é, um número inteiro na base 8.

Assim, 012 em Java (e C) não é interpretado como um número decimal, mas sim octal. 012 Na base 8 (octal) equivale a 10 na base 10 (decimal): 1 × 81 + 2 × 80 = 8 + 2 = 10. Logo, 123 – 10 = 113. 🙁

Como o sistema octal tem uso pouco comum na computação em geral — lembro-me apenas de seu uso freqüente ao definir permissões de arquivo em Unix/Linux (chmod) –, o tratamento de inteiro octal em Java me parece um recurso de raro uso, mas fonte fácil de enganos, como no exemplo acima.

O risco do tratamento automático de inteiros iniciados por zero como octal não é só em literais no código fonte. Pode ocorrer também na interpretação (conversão) de texto como inteiro, como no exemplo a seguir: Integer.parseInt("012");

Para evitar este problema no método parseInt(), use o método sobrecarregado onde um segundo parâmetro explicita a base numérica decimal:

Integer.parseInt(stringVal, 10);

A lição sobre este recurso é resumida no tópico 59 do interessante livro Java Puzzlers (Bloch & Gafter, 2005, ISBN 0-321-33678-X): nunca preencha zeros à esquerda em um literal inteiro (a menos que você saiba exatamente o que está fazendo). 🙂