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)


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.


Frase do Dia

“Lembre-se: Programar uma arte é. Praticando a perfeição virá.”

– O Mestre


Frase do Dia

“Apesar disso não ser uma questão de CF me parece cada vez mais comum aqui problemas relacionados à analise do sistema do que a programação CF propriamente dita.”

– Emanuel Costa


Estariam os DNSs loucos?

Fui acessar o site do Cocadaboa e eis que caio no webroot da minha própria máquina!

cocadaboaLocalhost.gif

De imediato fui verificar o arquivo de hosts da minha máquina, bem como ver se constava alguma entrada no meu cache DNS (ipconfig /displaydns no prompt). E estava tudo correto.

Eu testei em uma outra máquina que utiliza um servidor DNS dos Estados Unidos e aconteceu a mesma coisa.

Estariam os DNSs loucos ou seria isso mais uma piada?


Flash Player e Yahoo Toolbar

A Macromedia começou (não sei precisamente quando) a oferecer o download da Yahoo Toolbar ao realizar o download do Flash Player.

Alguns sites interpretaram mal e afirmaram que a Macromedia distruibui (efetivamente) a Yahoo Toolbar no download do Flash Player, o que não é exatamente verdade. Ao realizar o download do Flash Player, a opção selecionado por padrão realmente inclui a Yahoo Toolbar, mas é perfeitamente possível, e bem fácil também, instalar somente o Flash Player.

Bem, isso é mercado. Quando você faz do download do Quicktime algumas opções já vêm selecionadas por padrão. Com o Acrobat Reader também. As coisas funcionam assim. Isso é normal. Não é o ideal, mas não é fora do usual.

Eu não acredito que a Macromedia irá comecar a distribuir spywares como sugere o über-slashdot, e não é somente sobre isso que eu queria comentar.

No referido artigo no Slashdot, é possível ver a perda do foco e o desconhecimento do Flash como ambiente de desenvolvimento e facilitadora, em frases como: “Please provide links to good Flash websites.”

O reply mais intrigante foi esse:

“I dislike flash for the reasons you pointed out.

A) not open source. open source is good for me, so closed is worse

B) platform support. Flash will NOT reach the entire world, simply because you must have the flash player, which is unavailable on most platforms (all but the most popular)

C) standardization. There is none. it’s proprietary vendor lock in. There’s no competeing development environments, no competing players

D) breakage of the web. Flash is not the web. therefore, you can’t bookmark it, index it, search it. You can’t look at the code, or make the text bigger, or have your text reader read it because you are blind

Basically, flash is okay for silly games or homestarrunner, but so bad in other ways it’s generally frowned upon by those who are not confused by colors and animation.”

Além de intrigante, idealista, no estilo “não uso se não for open-source”. Além de intrigante, errôneo: o Flash funciona sim em diversas plataformas; a Adobe também tem uma ferramente para gerar Flash; 98% dos web browsers têm alguma versão do Flash Player (algum tipo de “standard” isso deve ser).

Há vários comentários sem conhecimento de causa, encarando o Flash como uma ferramenta de animação e boa somente para fazer joguinhos, como uma afronta à usabilidade e acessibilidade.

Bem, isso é desconhecimento de causa. Não se pode julgar uma pessoa por ela não conhecer. Ninguém é obrigado a conhecer tudo. Mas criticar um produto que não se conhece é igualmente errado.


Por que tiraram a tag cfimage?

Há um artigo na TechRepublic sobre o ColdFusion 7 que, além das novidades, comenta a falta de tag cfimage (para manipulação de imagens) do ColdFusion 7.

No final da página há um link para os comentários do artigo, onde inclusive há uma resposta da Macromedia sobre o assunto.