“Bug no [coloque aqui sua tecnologia, produto, ...]!!!!”

Dia desses, quando estava dando uma olhada em fontes de ajuda para o Hibernate, achei uma página indicando como pedir ajuda para o Hubernate.

Essa página indica links interessantes, como demos, documentações, exemplos e dicas (algumas quase óbvias) de como pedir ajudas em listas de discussão. Mas o que mais me chamou atenção foi o ítem Don’t blame Hibernate. 99% of posts titled “bug in Hibernate” are simple user error. This is very annoying for all of us.”.

E realmente isso é procedente. A quantidade de mensagens na lista FlexCoders ou na lista CF-Brasil indicando possíveis bugs nos produtos é enorme, e a maioria delas é por uso incorreto da tecnologia! Já vi “bugs” em que uma determinada propriedade era case sensitive (o que é padrão em ActionScript e linguagens tipadas de programação), “bugs” de variáveis que não podem comecar com letras (o que é comum em muitas linguagens de programação), “bugs” em packages que não podem ter espaço (o que é padrão e completamente aceitável em linguagens como Java e ActionScript), e outros comportamentos completamente comuns que simplesmente eram encarados como bugs por desenvolvedores que não conheciam a tencologia, que não se deram ao trabalho de procurar sobre na documentação ou os piores tipos, os donos da verdade, que subjulgam a tecnologia, os que se acham donos da verdade…

Se não me engano até existiu um site chamado “ColdFusion Bug Hunting” (ou algo assim) cujo objetivo era catalogar os bugs conhecidos no ColdFusion, ainda nas versões 4.5 e 5. A idéia do site era bom, se não fosse o que lá estava cadastrado, que eram todos comportamentos comuns, e os “bugs” eram oriundos de códigos mal escritos.

Portanto (e aqui parafraseio na integra a página do Hibernate), não culpe a tecnologia.


Fotos do encontro de Julho

As fotos do encontro de Julho do AUG-SP já estão disponíveis!

Foram apresentados dois cases de Flex feitos pela equipe da DClick (do qual faço parte). Nas fotos dá para ver algumas aplicações!


Novo grupo: Adobe Mobile and Devices User Group Brasil

E mais um grupo de usuários da Adobe na área, dessa vez no nordetes do país, em Recife: o BRMAD. O foco do grupo é celulares, dispositivos móveis e muito Flash Lite. O pessoal que toca o grupo tem feito alguns jogos em FlashLite, vale a pena conferir!

Mais informações: http://www.flashlite.com.br/brmad/


Frase do dia

“You are better off running as non-admin without anti-virus than you are running as admin with anti-virus.”
Aaron Margosis


Promoção Livraria Tempo Real

A Livraria Tempo Real frequentemente promove “saldões” de livros de informática e aplica descontos generosos (de até 92%) sobre os mesmos. Veja o último grande saldão aqui. Tem muita coisa boa e barata!

[via BR-Linux]


Encontro AUG – Cases Flex

O próximo encontro do Adobe User Group São Paulo (AUG-SP) já está marcado – e de acordo com o nosso calendário proposto.

Esse encontro contará com a apresenção de dois cases em Flex, feitos e apresentados pela equipe da DClick. O primeiro será o portal corporativo com as aplicações gerenciais, componentes de customização, mapas e afins. O segundo case será um framework de gráficos e relatórios feitos em Flex 2.0.

Interessados podem realizar a inscrição gratuitamente no site do AUG-SP.

Data: 25/Julho/2006, terça-feira
Horário: 19:00 as 22:30

Local:
Escritório da Adobe Brasil
Rua Gomes de Carvalho, 1510 cj 121 – Vila Olímpia
São Paulo – SP

As vagas são limitadas! É uma excelente oportunidade para os interessados e curiosos na tecnologia verem grandes projetos e tirar dúvidas com a própria equipe que desenvolveu o sistema.

Site do grupo: http://www.augsp.com.br
Confirmar a inscrição para esta reunião: http://www.augsp.com.br/index.cfm?fuseaction=confirmarPresenca&IDreuniao=5


Microsoft Virtual PC 2004 agora é de graça

Similar ao VMWare Workstation, o Virtual PC 2004 agora é licenciado gratuitamente pela Microsoft. Confira e faça o download aqui.

UPDATE: agora é a vez do VMWare Server ser gratuíto. Quer coisa melhor?


Adobe Flex Builder 2 Serial Number Crack (KeyGen)

O Adobe Flex é a mais completa e poderosa solução para o desenvolvimento de aplicações ricas para a Internet.

A versão 2 do Flex foi lançada recentemente e já há cracks e generator disponíveis para o Flex Builder. O CFGigolô disponibiliza aos interessados um keygen para gerar um serial number válido, encontrado em uma rede P2P.

Download adobe.flex.builder.2.charting.components.KeyGEn.[LeBuCiUS].zip

Atualização: Para os que não conhecem, o “crack” acima é apenas uma brincadeira (como já feito aqui no blog) e não funciona.

Update (for english readers, Adobe and BSA): this is a JOKE! Pretty much like this.


Visual Studio 2005: campanha de marketing engraçadinha

Alguns videos engraçadinhos (em Flash) podem ser vistos no site Visual Studio 400 differences da Microsoft. São curtos e divertidos (e sim, nerds também). Gostei do espadachim e do cara que foge do sol (sintomas típicos de loucura de programador). Vejam aqui.


Clique para ativar e usar este controle

Foi disponibilizado no início do ano uma atualização para o Internet Explorer 6, que faz com que seja necessário “ativar” um conteúdo ativo (um Flash, Shockwave, Applet, etc) clicando nele antes de efetivamente utilizar. Essa atualização de conteúdos ativos (Active Contents) está associada ao artigo KB916281 da Microsoft e disponível para download automático no Windows, manualmente via Windows Update e também manualmente via download do site do Microsoft.

clique_para_ativar_este_controle.gif
Exemplo no site Submarino, que ainda não atualizou a inserção de conteúdos em Flash em seu site

Como essa atualização gerou uma certa polêmica (e boa parte dela por que os desenvolvedores não atualizaram seus sites, o que é incrível, já que a Microsoft disponibilizou ainda no ano passado informações sobre a atualização), há também um artigo no Knownledge Base no site da Microsoft de como voltar ao comportamento anterior (KB917425), e igualmente uma atualização pode ser baixada.

Um grande incômodo para os usuário (que pode nem saber o que fazer) ou ainda impedir com que a experiência seja a planejada. Apenas um “tooltip” é mostrado para ao usuário com a mensagem “Clique para ativar e usar este controle” (“Click to activate and use this control” no software em inglês).

Pode parecer uma insanidade, e realmente é. Isso ocorreu porque a Microsoft perdeu um processo judicial sobre o modo como seu browser lida com “Active Contents”, mais precisamente como controles ActiveX (O Flash Player para o IE é um ActiveX) podem ser ativa.dos A Microsoft, que não é boba nem nada, já havia disponibilizado desde Novembro do ano passado um workaround para isso. O workaround é, basica e sucintamente, gerar a tag object via um JavaScript externo (importante ser externo, pois se o JavaScript estiver no próprio arquivo HTML também será pedido para o visitante “ativar o controle”) ao invés de “embeda-la” (inseri-la) no código HTML diretamente. Eu disse que parecia insanidade…

A Adobe, claro, já incluiu esses workaround em seus produtos sob a forma de patchs. Há, por exemplo, uma atualização para o Flex 1.5 que faz com que o código HTML gerado (a tag object) seja diferente, de modo que o usuário não precise clicar para habilitar o conteúdo. Para os FlashForms do ColdFusion 7 também há houve um HotFix. Hoje ele não é mais necessário em vista do ColdFusion 7.0.2. Vale ressaltar que o Firefox não é atingido nem tem relação com essa atualização de ativar conteúdos do Internet Explorer.

Nos projetos que participo tenho utilizado um arquivo JavaScript (AC_RunActiveContent.js) proposto pela própria Adobe (http://www.adobe.com/devnet/activecontent/articles/devletter.html), que é bem simples e fácil de usar. Como os “embeds” dos arquivos em Flash em um projeto costumar ter as mesmas propriedades (de tamanho, cor e afins), também crio um JavaScript adicional – e é ele que chamamos em nossas páginas HTML. Por exemplo:

function embedFlash(url) {

AC_FL_RunContent(
‘codebase’,’http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0′,
‘width’,’100%’,
‘height’,’100%’,
‘src’,url,
‘quality’,’high’,
‘pluginspage’,’http://www.macromedia.com/go/getflashplayer’,
‘movie’,url,
‘allowScriptAccess’,’sameDomain’,
‘bgcolor’,’#ffffff’,
‘wmode’,false
);
}

Essa função pode ser customizada, como por exemplo, adicionar parâmetros de tamanho, transparência e afins, de acordo com as necessidades. Para utilizar, em páginas HTML, basta importar as funções e chamar a função embedFlash():

<script type=”text/javascript” src=”AC_RunActiveContent.js”>
<script type=”text/javascript” src=”EmbedFlash.js”>

<script type=”text/javascript”>embedFlash(‘Aplicacao.mxml?paramID=33′);

Note que para a função embedFlash() acima, personalizada, não há necessidade de passar a extensão do arquivo, e portanto o mesmo é valido para o método AC_FL_RunContent(), da própria Adobe. Este método adiciona a extensão “.swf” automaticamente. No caso do Flex 1.5, como os arquivos são compilados no servidor, acessa-se “App.mxml.swf”, por isso da extensão .mxml no exemplo acima. No caso de arquivos compilados localmente, como no Flex Builder 2, não haveria extensão, por exemplo. Vejam também que é possível passar parâmetros via URL.

O pessoal da área de TI pode reverter a atualização nas máquinas dos usuários (dos que tem a máquina atualizada), mas também é responsabilidade dos desenvolvedores atualizarem seus códigos, ainda mais com o grande prazo de divulgação das informações antes da efetiva atualização do Internet Explorer.


Website Security Test