Netscape 8 e Web Standards

O Emanuel já comentou sobre o lançamento do Netscape 8, e hoje vi uma notícia (antiga) sobre a “engine hibrida” do Netscape 8, que utiliza tanto o Gecko (da Mozilla.org, mesma do Firefox, da suite Mozilla e de versões anteriores do Netscape), quanto a engine do Internet Explorer.

Comercialmente falando, para eles isso é interessante: há muitos sites erroneamente feitos exclusivamente para o Internet Explorer, e aproveitam a onda de sucesso, e maior segurança, do Firefox para pegar carona.

Mas o que mais me interessou foi o seguinte trecho da reportagem da cNet:

“(…) that runs on two different browsing engines: the Mozilla Foundation’s Gecko engine, which powers up the Mozilla, Firefox and older Netscape browsers, and Microsoft’s Internet Explorer engine, which many consider the de facto Web standard.


Performance de de servidores J2EE

Servlet Performance Report:
Comparing The Performance of J2EE Servers

http://www.webperformanceinc.com/library/ServletReport/

É uma pequena que eles não possam publicar (por falta de permissão) os resultados de alguns servidores, dentre eles o da Sun e da BEA.


Multiplos sites no Windows XP Pro!

A Microsoft fez um grande favor ao Apache web server ao restringir apenas um site rodando no IIS do XP Pro. Diversos desenvolvedores migraram para o Apache para poder ter multiplos sites rodando na mesma máquina, muitas vezes com o mesmo IP mas em portas diferentes. Como eu faço.

Ontem, trocando idéias na lista de discussão do melhor CMS em ColdFusion que conheço, o Farcry, que é open source, Geoff Bowers indicou um pequeno programa para o XP que possibilita facilmente ter multiplos sites no IIS do XP Pro. Se você não quer ou teve problemas com o Apache e deseja permanecer com o IIS vale a pena tentar o IIS Admin.

Em tempo, não instalei ou utilizo o IIS Admin. Tenho uma máquina com o IIS 5.0 com CF6.1 e outra com o XP e o Apache 2.0.53 rodando o novíssimo CF7.


Novo livro de Jonas Galvez

Parabéns a Jonas Galvez por seu novo livro, Programação Descomplicada com Flash MX 2004 e ActionScript 2, o qual ele mesmo já havia feito comentários em seu blog.


Flex e Segurança

@stake Flex Security Review
See how Flex meets application security best practices to defend against client-side attacks. (Download, PDF, 248Kb)


Tendinite

A dita cuja me perseguiu o mês inteiro. Fiquei à base de emplastros aqui, anti-inflamatoriozinho alí… Não adiantou, hoje de manhã não conseguia fechar a mão. Hospital, braço engessado até o sovaco (“axila” é coisa de viado) e anti-inflamatório na veia. O jeito é ficar de repouso coçando o saco até criar ferida (como diria o Terracini). Sugestões de livros, filmes? Ou mesmo o link de um tutorial de como ser produtivo digitando com uma mão só? 😉

IMG_0745.jpg

OBS: a camiseta da Macromedia não foi proposital não, faz parte dos meus pijamas.

UPDATE: a tendinite foi curada. Usei emplastros TARGUS LAT (difícil de encontrar e meio carinho), e uma série de anti-inflamatórios via oral (e injetável, quando engessei o braço), mas nada adiantou, pois a dor persistiu. O que realmente fez diferença foi um remedinho de homeopatia chamado Rhus Toxicodendron (em LM 30), que você pode mandar aviar em qualquer farmácia de homeopatia (sem receita creio). Impressionante! A posologia? Simplesmente agitar o frasco usando batidas de mão (bata a base do frasco na palma da mão algumas vezes, como se estivesse fazendo um sinal de “tá fodido”), abra o frasco, dê uma leve respirada (não ponha no nariz!) e feche. Pronto, simples e prático. Melhorei rapidamente em 4 dias. Não é brincadeira nem simpatia!


Linus Torvalds usando Mac?

Resta saber se ele realmente está rodando Linux ou o delicioso MacOS, este sim um OS para desktop de verdade.

Linux creator Torvalds switches to an Apple Mac


Bug com cfdump e UDFs no ColdFusion 7

Eu estava desenvolvendo uma UDF, e no processo de desenvolvimento e debug, por algum motivo, a UDF estava retornando valores que não deveria retornar. Eu fiz alguns testes e constatei que ao chamar uma UDF através da tag cfdump, a função é chamada duas vezes.

O código abaixo serve como exemplo de prova de conceito:

<cffunction name=“teste” output=“Yes”>
  a
  <cfreturn “bla”>
</cffunction>
<cfoutput>#teste()#</cfoutput>
<br>
<cfdump var=“#teste()#”>

O resultado esperado é:

a bla
a bla

Mas o retornado no ColdFusion 7 é:

a bla
a a bla

Ou seja, na chamada via cfdump, há output duas vezes. É claro que uma função ou retorna algum valor (cfreturn) ou mostra os valores, nunca as duas coisas ao mesmo tempo.

Mas o incoveniente deste bug é que durante o desenvolvimento e debug de uma função pode deixar o programador encucado, procurando um bug em seu código, quando não há verdade não há (que foi o que aconteceu comigo).

O bug está cadastrado na Macromedia sob o número 59856.


MP 232

No WebInsider: “Medida Provisória 232, ainda sem data para ser votada no Congresso, se aprovada vai impactar os custos de pequenas e médias empresas de serviços de internet. Mais impostos para você pagar. Entenda.”

E em dezenas de outros jornais, revistas e conversas por aí.


Relacionando CFSELECTs em Flash

Uma das principais novidades do ColdFusion 7 é a possibilidade de criar formulários em Flash. É uma grande sacada que traz bons benefícios.

Relacionar dois select HTML (menu drop-down), consiste em você primeiro selecionar uma opção no primeiro menu, e no segundo, as opções forem subdivisões do selecionado no primeiro menu. Exemplo: estado-cidade, onde você primeiro seleciona um estado brasileiro, e no menu seguinte você pode selecionar dentre as cidades daquele estado, sem a necessidade de atualizar a página, isto é, sem mandar o ID do estado para o servidor e este retornar as cidades.

Quando isso era necessario, ou os programadores escreviam sua própria função JavaScript ou utilizavam a custom tag 2SelectsRelated (ou algo assim). Há casos até de 3 (3SelectsRelated) ou mais menus co-relacionados. Tudo para evitar refresh na página.

É claro que quem já programa aplicações RIA em Flash eventualmente utiliza esse recurso e programa seu pequeno código ActionScript para lidar com esse recurso. E se o ColdFusion 7 faz formulários em Flash, e tais formulários têm um menu select, por que não utilizar esse recurso nesse caso também?

Kai König não só implementou esse recurso, como também utilizou uma maneira bem interessante de separar o código ActionScript do evento onChange.

Ele utilizou a tag cfsavecontent para criar uma variável de texto que continha o próprio código ActionScript de relacionar os dois menus select gerados e populados (através de consulta ao banco de dados) dinamicamente pelo ColdFusion.

Aliás, seja em Flash ou em ActionScript, melhor do que escrever seu código diretamente no evento, é criar uma função e chamar a função no evento; ou, como nesse caso, pelo menos separar o código ao invés de espremer um monte de código em um atributo.