Fusebox com Java?

Costuma-se associar o FuseBox com ColdFusion, como se o FuseBox fosse sinônimo de programação bem feita em ColdFusion e só nele. Isso não é verdade. Para quem não sabe, o FuseBox é uma metodologia de programação que pode ser aplicada com grande sucesso para o ASP, PHP, JSP e outros. Um exemplo disso é o novo site da GM, feito pela Tesla e que usa JSP (JRun) com FuseBox 3.0.

Confiram: http://www.meuchevrolet.com.br


Um dia desses eu desisto do SQL Server…

Os administradores de servidores MSSQL já devem estar na lua com tantos cumulative patches, hotfixes, etc… Eu, que uso o SQL Server desde a sua versão 6.5 (estou num 2000 hoje), nunca me deparei com TANTAS correções em um intervalo de tempo tão curto (ao menos parece que a MS está trabalhando)… Só nos últimos meses foram inúmeras as correções (umas 5 ou 6 creio). E, para não deixar por menos, eis o último deles (02/10):

http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/bulletin/MS02-056.asp

O problema é que estes “patches” do SQL são extremamente chatos de se instalar. Você recebe um “pacotão” de arquivos e scripts que precisam ser colocados no servidor em duas três (as vezes quatro – sistemas em cluster) pastas, rodar dois, três scripts… backupear os arquivos antigos, banco master, etc, etc… sem falar que os serviços precisam estar parados enquanto isto… Uma delícia! Em sistemas remotos, acessíveis via VNC ou PCAnyWhere isso leva, NO MÍNIMO, 15-20 minutos de interrupção… ponho o telefone fora do gancho nestes 15 minutos… Preço alto por escolher Microsoft… mas… fazer o quê? MySQL? Nem morto… pelo menos até ele se mostrar, de fato, confiável e escalável. :o/


An Architect’s Link

Sean Corfield, diretor de arquitetura da Macromedia Inc, colocou hoje no seu blog um link para o CF_GIGOLÔ. Uma pena ele não ler português (modéstia à parte… :o), mas o que vale é a intenção. Thanks Sean!

Creio que o CF_GIGOLÔ seja o primeiro blog tupiniquim sobre ColdFusion, pelo menos nunca ouvi falar de outro. Também não conheço blogs que não sejam em inglês. Marcello Frutig (CFUG-Rio) prometeu um blog em breve, vamos esperar!


Reunião no CFUG-Rio

A próxima reunião do CFUG-Rio será realizada hoje dia 01/10 terça-feira às 19h.

Apresentação técnica (por Marcello Frutig):

  • Estudo de caso com ColdFusion MX
  • Acesso a diretórios LDAP em aplicações de alta demanda
  • Somente aqueles que fizerem sua inscrição antecipada estarão participando do sorteio de brindes.

    As inscrições podem ser feitas gratuitamente no site do CFUG-Rio: http://www.cfugrio.com.br/


    Um pouco de arqueologia – Lista CF-Talk

    Uma das melhores (se não a melhor) lista de discussão do mundo sobre ColdFusion é a CF-Talk. Se você ainda não assina a lista está perdendo uma das melhores fontes de informação sobre ColdFusion. O conteúdo é em inglês mas não desanime se o seu inglês for fraco, a leitura de algumas mensagens, por si só, é um ótimo exercício para treinar. O volume de mensagens trocadas é enorme, não se assuste. Rotineiramente a lista é bombardeada com 300 mensagens por dia. Algumas figurinhas notórias como Ben Forta e Hal Hems estão sempre por lá, respondendo e participando da lista. A lista é extremamente bem comportada e quase todas as mensagens (das 300…) valem realmente a pena serem lidas. Costumo bater o olho em todas (ou apenas nos threads mais interessantes) no final do dia, é um ótimo exercício. Não deixe de assinar, nem que seja apenas para ler um digest diário.

    A lista conta com um arquivo que permite buscar assuntos e mensagens antigas. Boa ajuda na hora de procurar algum bug ou configuração/informação específica sobre o CF que não esteja disponível nos White Papers da Macromedia ou em qualquer outro lugar.

    Por que arqueologia? Bom, uma coisa que talvez poucos saibam é que a lista existe desde 1998 e somente desde de 2000 é que está no atual endereço (House of Fusion). Para quem quiser ler mensagens antigas e encontrar raridades como as discussões entre Steve Nelson e Hal Hems para o fusebox 1.0 basta dar um pulo aqui (conteúdo da CF-Talk de JAN/98 a JAN/00).


    Porque eu não gosto do Dreamweaver MX

    Outro dia me perguntaram o porquê de eu não gostar do novo Dreamweaver. Meus motivos são muito simples, vou enumerá-los:

    1) O DWMX roda muito devagar, mesmo num Athlon XP 1.8 com 1Gb de DDR;
    2) O DWMX trava com extrema facilidade, mesmo num sistema “à prova de bombas”;
    3) O DWMX ainda está cheio de bugs com relação à sua interface;
    4) O DWMX tem um péssimo gerenciador de arquivos.

    Com relação ao ítem 4 vale dar uma olhada nesse comparativo (screen-shoot) que fiz.

    Quando conseguirem me mostrar quais são as vantagens do DWMX ao CFStudio para operações de programação pura e crua (sem essa de wizards de CFC, wizards disso, wizards daquilo, conexão com banco X, com Y ou com Z) terei o maior prazer em usá-lo, especialmente se a solução para o gerenciador de arquivos (ítem 4) se mostrar um pouco mais inteligente… Imaginem uma aplicação fusebox, com trocentas pastas dentro de pastas e com arquivos com nomes compridos… Simplesmente o DWMX não é o editor para se trabalhar. Fechar e abrir o gerenciador de arquivos, a todo instante? Nem pensar, tempo é algo precioso, e o mapa (não o gráfico) da aplicação no lado direito é fundamental na hora de se escrever o código.

    E aí? Alguma idéia de como transformar o DWMX num editor melhorzinho??


    CFLOOP com CFQUERY, uma dica legal

    Essa eu nunca vi por aí, aprendi sozinho e na marra, otimizando códigos feiosos e lerdos.

    Se você está fazendo loopings em comandos SQL e tags CFQUERY, como no exemplo abaixo:

    <CFLOOP INDEX=”counter” LIST=”#alguma_lista#”>
    <CFQUERY NAME=”Query” DATASOURCE=”Datasource”>
    Exemplo de Comando SQL
    WHERE id=#counter#
    </CFQUERY>
    </CFLOOP>

    Saiba que você pode poupar o pobre do seu BD mudando pouca coisa na sintáxe. O código abaixo deverá rodar 80% mais rapido que o anterior fazendo exatamente a mesma coisa, veja:

    <CFQUERY NAME=”Query” DATASOURCE=”Datasource”>
    <CFLOOP INDEX=”counter” LIST=”#alguma_lista#”>
    Exemplo de Comando SQL
    WHERE id=#counter#;
    <CFLOOP>
    </CFQUERY>

    Perceba a mudança da tag CFLOOP para DENTRO da CFQUERY e a presença do ponto-e-vírgula no final da cláusula.

    Pronto, agora você abre e fecha a conexão ao banco de dados (normalmente um processo que pode levar tempo), apenas uma vez! Um detalhe importante que você não pode esquecer: para que os comandos SQL funcionem corretamente você precisa separá-los com o ponto-e-vírgula (;). Essa é a sintaxe usada pelo MSSQL Server. Não sei ao certo qual é a sintaxe correta em outros bancos de dados (ou se é suportado de forma correta), mas isso funciona perfeitamente bem (e rápido, MUITO rápido) neste último. Faça o teste!


    Suporte a unicode no Access? Sim!

    Para quem estava chiando e sofrendo com a dobradinha Access & CFMX duas notícias: uma boa e outra ruim…
    A boa é que existe um gateway ODBC-JDBC que faz a ponte direitinho, respeitando unicodes e outras coisas mais. A má notícia é que essa belezinha custa os olhos da cara (preços variam de U$170,00 a U$6.000,00, dependendo do número de conexões que você for usar). Masss… nem tudo está perdido, você pode usar um trial por 30 dias. Paul Hastings (que aliás é outro geólogo que usa ColdFusion) disse que em breve o MySQL oferecerá suporte completo para unicode. Vamos esperar! Enquanto isso você pode aproveitar e ler (e também pegar o link para o driver) este thread no MM webforum.


    Querendo comprar o bom e velho CFServer 5?

    Ainda é possível comprar a antiga versão do ColdFusion Server 5.0. Para quê? Bem… As possibilidades são muitas. Eu pessoalmente ainda vou ficar com o CF5 por um bom tempo. Gosto é gosto, não se discute.

    Saudades, saudades do CF5…


    UDF para que substitui o LSCurrencyFormat

    Para quem estava ficando louco com o bug do JVM que mostra R$ 677,9 ao invés de R$ 677,90 segue abaixo uma UDF criada pelo Fernando Segalla que soluciona esse pepino.

    <cfscript>
    /**
    * Works like the built-in function lsCurrencyFormat, but do it right for Brazilian Currency (R$ – Real).
    *
    * @param value Number to format. (Required)
    * @return Returns a string.
    * @author Fernando Segalla (segalla@intralab.com.br)
    * @version 1, September 17, 2002
    */
    function BRCurrencyFormat(valor) {
    valor = DecimalFormat(valor);
    valor = Replace(valor,’,’,’.’,’ALL’);
    valor = Reverse(Replace(Reverse(valor),’.’,’,’,’ONE’));
    if(valor LT 0) {
    return (“(R$” & Right(valor,Len(valor)-1) & “)”);
    } else {
    return (“R$” & valor);
    }
    }
    </cfscript>

    Valeu Fernando!