Clique para ativar e usar este controle
Posted: 06/07/2006 Filed under: ColdFusion, Experiência do Usuário, Flex, Tecnologia Comments OffFoi 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.

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.
Flex 2.0, ColdFusion 7.02 e Flash 9.0 lançados
Posted: 28/06/2006 Filed under: Tecnologia Comments OffO pessoal da Officer, que está na CFUnited reporta que efetivamente, Flex 2.0, ColdFusion 7.02 (Mystic) e o Flash 9.0 foram lançados. Mais detalhes você encontra nos inúmeros blogs que já estão noticiando e mais adiante por aqui.
Gmail para seu domínio
Posted: 25/06/2006 Filed under: Tecnologia Comments OffHá algum tempo o Google está oferecendo a possibilidade de usar o Gmail (a infraestrutura e a excelente interface do webmail) para um seu domínio (qualquer um). Você pode inclusive personalizar algumas coisas na interface, tal como o logotipo e algumas mensagens. Também pode usar POP/SMTP, entre outras coisas existentes em qualquer conta normal do Gmail. Interessante não?
Aumentando a produtividade aumentando os monitores
Posted: 19/06/2006 Filed under: Tecnologia Comments OffAssim como as fontes podem trazer produtividade, os monitores também. É um tanto óbvio.. maior monitor, maior resolução, mais espaço para os programas, menos scroll (principalmente na IDE), menos troca de programas, mais código por tela, mais espaço para desenhos, wireframes.. vocês entenderam.
Eu fico inconformado com empresas ou setores de tecnologia que ainda utilizam monitores de 15″ – um absurdo para qualquer desenvolvedor hoje em dia, mas infelizmente, uma prática muito comum. E isso se estende a diversas áreas de desenvolvimento: um DBA com seus softwares de gerenciamento, um desenvolvedor web com a IDE de um lado e o browser do outro, designers, gerentes de projeto, testadores.. todos teriam benefícios incríveis com monitores maiores. E não precisamos radicalizar, dá para começar baixo com monitores CRT; um monitor de 19″ (Samsung por uns R$ 650) ou dois monitores de 17″ (há Samsungs por 350!). O sonho de todo desenvolvedor (e todo gamer) é claro que são monitores LCD de 21, 23 ou 30″, como o da Apple, que além de custarem mais caro, são um susto para os gerentes muquiranas, normalmente convencíveis com estudos que dizem que ele estará economizando…
Aliás, com o lançamento do monitor de 30″ a Apple encomendou um estudo sobre os ganhos de produtividade no novo monitor, que podem chegar a 70%: bons indícios de que o investimento vale – e muito – a pena. Quem manda o link é Marco Antonio Santos, da lista CF-Brasil de um post blog do Pete Freitag sobre esse e outros estudos. A Microsoft também já havia feito um estudo sobre o assunto.
Fica aí a dica para os que prezam pela sanidade de sua equipe e para os desenvolvedores que já não aguentam mais um ambiente “claustrofóbico” de trabalho.
É como diz slogan do Apple Cinema Display: “Big ideas need a big canvas”.
Fontes para programação
Posted: 16/06/2006 Filed under: Tecnologia Comments OffA fonte Courier New, derivada da fonte Courier, é a fonte padrão de programação na maioria das IDEs para Windows. Impressionante utilizar uma fonte de mais de 50 anos na origem para programar! Quando vejo artefatos ou processos antigos, pergunto-me como o mundo ainda não melhorou isso. Passar roupa é uma coisa que já passou da época de ser melhorada e facilitada!

Será que a ciência não evoluiu a ponto de desenvolver uma fonte que não canse tanto a vista, que ofereça uma melhor legibilidade e leiturabilidade (entender o que está escrito, não apenas enxergar)?
Pode ser besteira alterar a fonte de programação.. Não conheço nenhum estudo que diga que programadores desenvolveram mais e com menos erros quando mudaram de fonte, mas dia desses tive mais um exemplo contundente: um “aprendiz” de programação confundiu diversas vezes o caractere ( com {, e não conseguia achar o erro em seu código justamente porque a fonte não favorecia isso!
Já faz um bom tempo que a Courier New deixou de ser a minha fonte padrão de programação. Durante um bom tempo eu usei a ProggyFontSZBP. O palavrão SZBP significa slashed zero and bold punctuation, realmente ótima para programação, monospaced (o espaço ocupado por três letras “i” é o mesmo ocupado por três letras “o”, favorecendo alinhamento e :scanning de texto) identificando bem o que é zero (cortando-o) e o que são “ós”, bem como ressaltar as diferenças entre ponto, vírgula, colchetes, chaves e parênteses – características, aliás, mínimas para uma boa fonte de programação. No site ProggyFonts há uma diversidade de fontes similares, todas ótimas para programação.

Recentemente contudo eu vi uma notícia sobre as novas fontes da Microsoft para o Windows Vista, resultados de muita pesquisa e da necessidade de facilitar a leitura em monitores. É bem capaz que essas fontes se tornem “padrão” em documentos e na Internet, assim como a Times New Roman e Verdana, respectivamente. Nele a fonte Consolas aparece justamente como uma nova fonte para ambientes de desenvolvimento.

Hoje a Consolas é minha fonte de programação padrão (até parece propaganda de TV…). Excelente, limpa, de fácil visualização, distinção das pontuações e caracteres passíveis de confusão. Nas screenshots acima o ClearType (suavização das bordas) está ativa; aliás, a Consolas foi feita para ser utilizada com o ClearType.
A fonte Consolas pode ser baixada do site da Microsoft, para usuários do Visual Studio.
Outras sugestões de fontes de programação podem ser vistas aqui
Atualização: Achei uma referência sobre um estudo da Microsoft Research que programadores conseugiram corrigir mais bugs em um sistema utilizando a Consolas com ClearType (CT) do que a Courier New tradicional, sem CT. Mas infelizmente não achei um link no site da Microsoft que comprovasse esse estudo, e seus resultados.
Cuidado com os xerifes da Wikipedia
Posted: 13/06/2006 Filed under: Tecnologia, Web 2.0 Comments Off
Information wants to be free.
You will assimilate into our free information.
Resistance is futile.
(Política secreta da Wikipedia)
A Wikipedia é realmente muito interessante. O conceito de conhecimento comunitário é louvável, mas precisa de alguns cuidados para não ser fadado ao fracasso ou mesmo não ser levado a sério no longo prazo. O problema (como sempre) não está no conceito, mas na prática, e o lado prático da Wikipedia, como sabemos, é feito por pessoas, muitas delas. É justamente aí que a coisa pega.
Frase do dia
Posted: 11/06/2006 Filed under: Frase do dia, Tecnologia Comments Off“But I’m with you, Sun and MS have completely missed the boat about programming. Verbosity & productivity matter. It’s too bad ruby and python are 100x slower than java/C# (anyone who says otherwise is either selling something or smoking something).”
Veja o post que originou esse comentário acima aqui
Um tanto óbvio que linguagens interpretadas sejam “menos velozes” que as híbridas ou compiladas. Mas será que a velocidade realmente importam? Ou em um mundo onde os requerimentos mudam a cada segundo, e as mudanças precisam ser implementadas cada vez mais rapidamente, a manutenibilidade é um fator mais importante?
É por isso que a frase desse cidadão me chamou atenção. Se eu tenho um pequeno projeto, por que iria desenvolver em Java se com Ruby eu o faço em muito menos tempo? Será que a velocidade, pela quantidade de acessos será um fator crítico? Ainda mais com o barateamento do hardware. O que vai custar mais, o tempo extra para desenvolver em Java um processador mais veloz?
Mesmo com todos os wizards e facilitadores, a Microsoft (por exemplo) ainda está atrás em termos de produtividade das linguagens. Não dá para comprar por exemplo, o tempo (e seus agregados como facilidade, produtividade, etc) de desenvolver um sistema em ASP contra o ColdFusion. Convenhamos.. a sintáxe do ColdFusion dá muita produtividade.
Contra a maré, o filme.
Posted: 09/06/2006 Filed under: Tecnologia Comments OffA MPAA, associação da indústria de filmes dos Estados Unidos sabe mesmo como dar um tiro no pé. Recentemente eles deram com os burros n’água ao tentar fechar o site de torrent The Pirate Bay. O site até foi fechado, mas alguns poucos dias depois já estava de volta e o número de acessos ao site cresceu, devido à grande exposição na mídia, justamente pela MPAA ter fechado o site.
Ou seja: além de não conseguir fechar o site, mais pessoas começaram a utilizá-lo. E não dúvido que eles cometam o mesmo erro novamente, e possivelmente o farão ao tentar fechar o site IsoHunt.
“A week ago, they were crowing about how shutting down Pirate Bay was such a huge victory for the entertainment industry. Instead, the site was back up two days later, and only suffered additional outages because so many more people started using the site.”
Assim como a associação da indústria fonográfica ainda não aprendeu, a de filmes igualmente irá demorar para aprender. Ir contra a maré não dá. Eles não são mais fortes que toda a audiência de filmes e músicas.
Vejam uma notícia completa sobre o assunto aqui.
Revista INFO deste mês
Posted: 03/06/2006 Filed under: Tecnologia, Web 2.0 Comments OffHoje chegou a revista Info deste mês aqui em casa. Nem era preciso olhar para a cara dela para saber do que se tratava. Batata: Web 2.0. Pode ver, neste mês, quatro entre 5 revistas de tecnologia estarão dando algum destaque a qualquer coisa que leve o termo Web 2.0, AJAX ou qualquer outra palavrinha da moda, dê um pulo na banca de jornal para conferir. Fui ler (afinal eu pago a assinatura da dita cuja para alguma coisa), mas tive que parar antes mesmo de começar. A chamada para a matéria era: Apague o que você aprendeu sobre internet até agora. Está começando uma nova revolução digital…… haja. Pulei direto para os exemplos máximos da tal “Web 2.0 turbo 16V”.
Deus do céu… o que é que sites como Digg.com, Flickr.com, etc, etc tem de tão revolucionário que me obrigam a apagar tudo o que eu aprendi sobre internet até agora? Ok, vamos ver…
Conteúdo participativo? Hmmm… ok, eu frequentava e participava da usenet nos tempos de USP (1994,95). Aliás, foi num servidor NNTP do UOL que eu conheci o Fabio Terracini, em 1997. Se conteúdo participativo é uma revolução, ela aconteceu há um bom tempo, e é base inclusive para o sucesso da grande rede (onde qualquer um pode publicar qualquer coisa, informação). Definitivamente, não é um conceito novo, ele apenas ganhou escala, tal como a própria internet. Softwares 100% online? Hmmm… lá no escritório eu uso um mouse pad velho, sujo e rasgado datado de 1999 (não sei como ele resiste tanto tempo). É um mouse pad da Sun onde se lê: The computer is the network… Sugestivo não? A diferença é que em 1999 não havia banda suficiente para fazer valer esta idéia. Será que hoje temos? Sei não… basta olhar a realidade brasileira em termos de opções de conectividade. Ok… vamos em frente: consumir conteúdo e/ou recursos de outros lugares no seu próprio aplicativo/site? Mashup? Scramble eggs?… Há quanto tempo você escuta falar de WebServices, de SOA, e afins? O conceito é antigo e bastante simples: integrar aplicativos, ponto final. Mas tem sempre gente disposta a engrossar o caldo da sopa de letrinhas…
Claro, a web (mais especificamente, a malha global TCP/IP) vêm sendo usada como meio de transferência destes dados cada vez mais, barateando e (principalmente) aumentando o alcance disso, não há como negar. Ainda sim, vale lembrar: em 1999 eu fiz um aplicação em CF que consumia a informação de taxa de câmbio do Yahoo! Finance e a usava numa aplicação financeira que eu, programador amador e virgem de tudo nessa área estava fazendo. Ainda em 1999 o IE 4.0 trazia um treco chamado “Active Channel”, que possibilitava você ler coisas no seu próprio browser, sem precisar sair caçando a informação em links e afins. De novo: conceito velho, roupinha nova. A lista vai longe, mas paro por aqui.
A reportagem da INFO ainda tem o destampero de dizer que “No mundo da Web 2.0, pouco importa onde está o usuário: num PC, num celular ou em qualquer outro dispositivo que entenda a palavra rede…“. Celulares, claro… Afinal, eles são exemplos máximos de usabilidade e portabilidade. Eu mesmo, feliz proprietário de um smart phone “puro sangue”, nem sei por que ainda uso notebook e computadores com sistema operacional. Hoje você pode ter seu escritório num celular, digo: na Web, via celular. Fantástico! Se não fosse absolutamente fora da realidade.
A questão me parece bastante simples: a tal Web 2.0 é nada mais, nada menos que a mesma “Web 1.0″ em escala maior e amadurecida. Amadurecimento este que veio principalmente em decorrência do maior volume de usuários e informação disponível, muito pouco por novas tecnologias e conceitos (aliás, quase nada, visto que a velha arquitetura HTTP, request-a-request continua sendo a mesma, apenas escamotearam a coisa usando JavaScript e XML “assíncrono” (AJAX), com uma bela pitada de marketing). A Web 2.0 é a concretização (em partes) de todas as promessas não cumpridas pela “Web 1.0″. Promessas feitas pela primeira leva de “gurus” e teóricos da chamada “revolução da informação” que fizeram muita grana em cima de investidores incautos e sedentos por fazer parte do oba-oba momentâneo, sem entender muito bem o porquê e para quê. A Web 2.0 é apenas uma jogada de marketing para inflar (de novo) o mercado de internet e de “killer sites/apps”. Por falar em marketing e buzzword, não é a tôa que Tim O’Reilly já correu para patentear o termo “Web 2.0″… Não se preocupe com a patente. Simplesmente não use ou mencione o termo “Web 2.0″ (nem mesmo Web 3.0). Use o termo “Web 4.0″ ou qualquer outra baboseira do gênero e lance moda meu chapa! Os investidores vão correr atrás de você, na ânsia de reaver tudo o que eles perderam no boom da bolha em 2000/2001…
Leia também:
[1] A versão 2.0 deste post;
[2] E claro, a versão 1.0 deste post…
Tableless levado a sério!
Posted: 23/05/2006 Filed under: Tecnologia Comments OffCom essa onda de tableless, eu sabia que mais cedo ou mais tarde nós veríamos exageros em seu uso: http://thedailywtf.com/forums/thread/74148.aspx
Uma coisa é separação de conteúdo de apresentação, semântica, etc. Outra coisa é desenhar uma tabela de dados posicionando tags <div> por cordenadas X e Y ao invés de usar a tag <table>!