ColdFusion MX chega ao mainframe

Incrível observar a abrangência do CFMX (ou será da plataforma Java?). A Macromedia está fazendo um excelente trabalho colocando o CF junto dos grandões mainframes e também junto da grandona IBM, que está colocando algumas fichas no CFMX. Mais do que um novo nicho para as aplicações em CFML, o CFMX para zSeries traz consigo um carimbo de “aprovado e endosado” nunca antes visto para esta tecnologia (e visto em pouquíssimas outras).

Announcing ColdFusion MX Enterprise 6.1 for IBM zSeries

Quem serão prováveis compradores? Boeing, Correios, Embraer? Ah quem me dera ter um mainframe IBM rodando CF… 🙂


Direito autoral

Para quem achava que publicar informação dos outros como sendo sua (o mesmo mascaradamente) na web não “dá em nada”, vale a pena a leitura desta rápida nota:

Empresa paulista é condenada por divulgar artigo em site


Quando Papai Noel chega mais cedo…

Dia 18/12, quinta-feira
19h30 – Noto que o servidor fez um reboot “automático”, depois de 1033 horas de uptime (graças à nova política de patches da MicroShoot);
19h40 – Primeira pulga se aloja atrás da orelha. Verifico os logs, event viewer, stack trace e nada de encontrar um motivo, razão ou causa da estranha “rebootada”. Resolvo ir para casa tranquilo (deve ter sido uma queda de força e eu estava no banheiro e o no-break não segurou…);

Dia 19/12, sexta-feira
20h00 – Sexta-feira feliz em casa. Me preparo para uma bela pizza em companhia da bela esposa e dos dois gatos vira-latas que adotamos há pouco tempo;
20h01 – Beeee… celular com nova mensagem: “servidor baniwa não responde 10 tentativas de ping”;
20h05 – Esposa nervosa (“já vai voltar ao escritório?!”), home PC inicializando e eu pensando: “teve ser um problema de conexão, a rede caiu…”;
20h15 – “Damn it!” A rede está ok, o danado do servidor resolveu se rebelar e/ou travou… ok, ok… como um pedaço de pizza na mão e desço para garagem (quem me dera ter um rack gerenciável remotamente…);
20h25 (sim eu moro há dez minutos de carro e trinta a pé do meu trabalho) – VNC não conecta, vamos lá… arrastar e abrir portas do rack, espetar monitor, teclado e mouse no servidor;
20h30 – “Damn it 2!” Blue sreen of death, tomo nota da mensagem de erro;
20h32 – Nada decente sobre o assunto “IRQL_NOT_LESS_OR_EQUAL” no Google, a não ser ruído de busca e um technote vago pra caramba no MSDN sobre “falha em hardware novo instalado”;
20h35 – Princípio de pânico leve: “não instalei nada nesta jost&^!…” será invasão hacker? alienígena? ratos fazendo ninho dentro do gabinete? calor insuportável? falha de hardware? Não necessáriamente nesta ordem…;
20h40 (pensando na pizza que ficou em casa) – vou reiniciar e deixar o danado ligado e vou para casa.

Dia 20/12, sábado
22h30 – Beeee…. (ponha mais três reticências neste “beeee”);
01h00 – No escritório, depois de ter encarado o guardinha da rua dormindo e me interrogando me deparo com mais uma blue screen. Desta vez outro erro, diferente e (segundo a MSDN) sem ligação com o primeiro;
01h10 – Concluo o óbvio: estou com falha de software ou de hardware, vamos começar pelo software;
03h00 – Máquina formatada, Windows 2000 server + SP4 instalados e 10 minutos de uptime: bum! reestart não esperado e mais um minidump (não gravo o dump inteiro) gerado;
03h01 (enquando a máquina reinicia) – segunda pulga se aloja atrás da orelha: “cazzo! o hardware está com pau… mas, qual??”;
03h40 – rodo toda sorte e espécie de hardware analyze tools que tenho por aqui;
05h00 – escuto o HD IDE “estalar”, como se estivesse iniciando e em seguida o servidor cai;
05h01 – ótimo, descobri o culpado. Este HD está ligado há um ano sem descanço, deve ter batido as botas;
08h00 – na porta do PromoCenter da Rua Augusta espero o meu fornecedor de hardware (com nota fiscal e em ordem – é para empresa!) chegar e adquiro um HD IDE novinho em folha;
09h00 – de HD novo, inicio a formatação, reinstalação da máquina;
12h00 – Windows 2000 + CFMX + tudo mais o que tem direito (incluindo recuperação dos backups) pronto. A máquina está tinindo e rodando como antes;
13h00 – pego no sono e acordo só no dia seguinte;

Dia 21/12, domingo
22h00 – Beeeee…. (penso seriamente em jogar o celular pela janela do 12o andar);
22h10 – que se dane, acordo mais cedo e vejo o que acontece.

Dia 22/12, segunda-feira
02h00 – impossível dormir, cinco pulgas se mexendo atrás da orelha e a cabeça pensando: “o que raios tem este servidor?!…”;
02h30 – colocar os gatos (que brincavam de arranhar o pé da cama) para fora do quarto;
03h00 – sem dormir: vou para o escritório;
03h10 – “O quê?!! Outra mer$#$ de tela azul?!!!”;
03h20 – “Deve ser a controladora SCSI… aquela safada”;
03h40 – ponho outra controladora idêntica (sorte ter uma outra de reserva);
04h00 – servidor ok, sem problemas. Mais uma vez aquela sensação de “problema resolvido”;
06h00 – estico o dia até as 18h00, porém feliz da vida;
23h30 – Beeeee…. Vou dormir exausto, amanhã vejo isso…

Dia 23/12, terça-feira
05h00 – desta vez foi diferente, para chegar na minha sala preciso abrir três portas, ao passar a segunda pude ver a minha sala por uma janela (o escritório fica numa casa maluca)… a visão do paraíso: parede da sala tingida de azul, luz que vinha do monitor do servidor…;
05h01 – não é possível, outra mensagem de erro diferente? Estão de sacanagem comigo…
06h00 – troco tudo o que é possível: placa de vídeo, placas de rede, exceto processador (quem tem um P4 2.4 Ghz sobressalente?) e memória (2Gb de DDR, idem…);
08h00 – Duas horas de uptime e nenhuma falha. Ou era a placa de vídeo ou placa de rede ou os dois (rezo 5 Pais-nosso e 15 Aves-Maria para não ser processador e/ou memória);
09h00 – recebo o “indulto de Natal” do chefe e vou para casa descançar;
19h00 – pizza em casa com os amigos Douglas Camargo (Synex) e Fabio Terracini (CFUG-SP). Papo-furado sobre CF e internet e filosofia de vida;
23h00 – confiante no servidor, instalo o MDAC 2.8 (havia deixado para fazer isso depois quando da segunda “formatada” geral do mesmo);
23h05 – Beeeee….
23h06 – “não!!! O servidor não voltou….”
23h30 – acaba a luz em casa, me levanto da cadeira e sem querer dou uma bica no gato que atravessava o caminho…

Dia 24/12, hoje
07h30 – servidor de pé, sem telas azuis, tudo funcionando bem bonitinho porém nada conectando nele;
08h00 – indentificado o problema: na troca de placas de rede o driver das antigas ficou instalado (segundo o windows em “hidden mode”) e o IIS não entendeu lhúfas do que estava acontecendo e parou de responder;
08h00 – secretária chegando ao escritório e de mau humor por ter que trabalhar no dia 24: “não acredito, o servidor fora do ar de novo?!… Alex, você não acha que deveria chamar um técnico não?” (adicione duas pitadas de malícia e desdém profissional a este comentário)…
08h01 – mando a secretina catar coquinho;
08h20 – problema resolvido;
09h35 – sem nada para fazer (mas com sete pulgas atrás da orelha), resolvo atualizar o CF_GIGOLÔ.

FICHA DO CRIMINOSO: servidor local para intranet, arquivos e logon de rede num Pentium 4 2.4Ghz (512k de L2), 2GB de DDR, HD IDE (para o sistema), dois HD’s SCSI 10k rpm de 40Gb cada, gabinete de servidor lindíssimo, cooler profissional, fonte redundante e tudo mais o que tiver direito (era uma “dream machine” há um ano atrás).

Daqui a pouco vou para a casa dos meus pais (na Granja Vianna), tomar banho de piscina aquecida, fazer sauna, ver um bom filme num sofá daqueles de afundar até sumir e me lambuzar nas delícias da ceia de Natal que a nossa cozinheira mineira (na família desde quando eu era moleque e querida por todos nós) já deve está preparando. Se o servidor cair de novo paciência. Lá o celular pega mal pra caramba e afinal de contas é Natal…

Feliz Natal a todos!! 😉


Professor Pasquale

” “Baum nehh Xoo conta neh ki ki eu fixx nehh x))
bauM nu DuMinGuL A MaMae da Ma paxo aki ”

(…)

Eu só queria entender por que passou-se a escrever dessa maneira. Os kd e naum ficam apagadinhos no meio de tanta palavra estranha e ilegível. Isso virou uma febre entre adolescentes e eles defendem seu novo dialeto com unhas e dentes.

— Do post blog aborrecente, do blog da Anna.

Veja que isto aqui é um blog de ColdFusion, não sobre psicologia moderna. Então que raios eu tô postando isso aqui?

Eu não tenho nada contra (mas confesso que tenho uma certa dificuldade em entender esse dialeto…), mas insisto em dizer que temos – como pessoas e como desenvolvedores (e aqui eu nem considero a idade) – que escrever direito, como seres humanos que passaram anos e anos na escola para aprender a escrever, a transformar pensamentos – dos mais simples aos mais desconexos – em letras, frases e textos com sentido, num padrão onde outros seres humanos podem entender.

Abreviar é uma coisa. “Escrever” desse jeito, é outra. Imagine se o programador de um site como o Submarino coloca mensagens como “click aki” ou “naum foi possivel faze sua busca”. E como ficarão os nomes das variáveis? E o relatório que você terá que entregar? “Ah não.. mas pra relatório daí eu escrevo direito”. Sei…

Aproveito para link um post vale a pena ver de novo, o qual contém um link sobre como obter melhores respostas para dúvidas em listas de discussão e fóruns. Tem dúvida que há um ítem “escreva respeitando a ortografia e gramática”?


String, números e zeros

Um dia desses me perguntam como tratar um dado númerico que vinha do banco de dados, mas de um campo texto. Em outras palavras: “como transformar a string 0050220 para um número”.

Bem, o ColdFusion é typeless, o que quer dizer que não é preciso falar que tipo de dado que contém uma determinada variável. Daí eu – que não sou um software e entendo “0050220” como sendo um número – achei que o problema para o próposito da pessoa estava sendo esses zeros extras antes do número efetivo.

Sugeri tratar a variável usando LSParseNumber() ou Round(). Embora a primeira faça mais sentido, a segunda é bem mais rápida. Zeros a direita removidos: 50220

Nisso eu lembrei de já ter visto isso comentado em algum lugar: como remover os zeros de uma string no fórum do CFUG-Rio, mas usando uma solução um pouco mais trabalhosa. Né Frutig? :o)

PS: 20 de dezembro de 2003, 20:15. Frutig está de férias, e ao que tudo indica, o servidor do CFUG-Rio também…

Update: Por sugestão de duas pessoas, testei com Val() e com Abs(), e na média, ambas foram levemente mais rápidas que o Round(). Enfim… 🙂


Velocidade de desenvolvimento VS. Performance

Um artigo interessantíssimo sobre a performance de uma aplicação ColdFusion sob frameworks diferentes: Fusebox 3, Fusebox 4, Mach-II e o OnTap.

Muitas vezes, com o intuíto de agilizar o desenvolvimento, as frameworks acabam utilizando recursos mais avançados e pesados – como XML, CFCs, Java – que sim, efetivamente facilitam na hora de programar, fornecem portabilidade, etc, mas podem comprometer a performance. O quão importante são alguns milisegundos frente a horas e horas economizadas no desenvolvimento?

[via webappear]


Ben Forta no Brasil (fotos)

Ben Forta publicou agora pouco algumas fotos de seu último tour pelo Brasil (CFUG-SP, iSeminar e CFUG-Rio).

Vejam no forta.com em “on the road“.

PS: destaque para as fotos do Rio (não as do “quase” barbudo Frutig – ao lado do BF) mas sim a do amanhecer e entardecer no Rio. Fico feliz que ele tenha visto tais paisagens e que seja bastante generoso nos comentários acerca dos locais por onde passou. Esperemos um breve retorno!


‘cfloop query’ aninhadas

Uma pessoa me perguntou o porque desse código não funcionar, ou melhor, funcionar parcialmente, enviando qNews.RecordCount * qMail.RecordCount (o que é o correto) emails, mas APENAS para o PRIMEIRO resultado da query qNews. Em outras palavras: ele não vai para o segundo registro da query qNews.

<cfloop query="qNews">
<cfloop query="qMail">
<cfmail type="html" from="#form.remetente#"
to="#qMail.email#" subject="#qNews.titulo#">
#qNews.msg#
</cfmail>
</cfloop>
</cfloop>

Eu sinceramente não sei porque (bug?). A lógica está correta e se efetuarmos o loop em cima de uma lista (por exemplo) ao invés da query, funciona normalmente.

A solução que dei foi a seguinte:

<cfloop query="qNews">
<cfloop query="qMail">
<cfmail type="html" from="#form.remetente#"
to="#qMail.email#" subject="#qNews.titulo[qNews.CurrentRow]#">
#qNews.msg[qNews.CurrentRow]#
</cfmail>
</cfloop>
</cfloop>

Mas ainda sim recomendei seriamente que fizesse UMA query apenas, evitando usar cfloops aninhados desnecessariamente.

Alguém já viu algo parecido?


Estatísticas de CFID e CFTOKEN

Segundo a empresa Security Space o CFIDE e CFTOKEN – comumente usados pelo ColdFusion Server para identificar usuários em uma aplicação (cfapplication) – ocupam, respectivamente a 5a. e a 6.a posição dos cookies mais usados em toda a web. O primeiro lugar é do ASPSessionID seguido do PHPsessionID (bastante atrás do ASP) e em terceiro JSessionID.

Veja este report publicado.


OOP com CF

Uma apresentação que rolou na MAX 2003 – e que está disponibilizada na web em formato FlashPaper – é a Object Oriented ColdFusion. Em suma, como escrito na própria apresentação, a idéia é mostrar como aplicar conceitos de orientação a objetos ao desenvolvimento em ColdFusion. CFC na veia.