WTF means ‘foo’?
Publicado; 09/01/2004 Arquivado em: Tecnologia 1 comentárioÉ comum em exemplos de código programadores das mais variadas linguagens utilizarem nomes, parâmetros e variáveis com nomes como “foo”, ‘bar” e “foobar”. Mas por quê?
Quem diria que a resposta estaria num RFC:
RFC 3092 – Etymology of “Foo”
[via blogmarks do Jonas Galvez]
Pra que facilitar se podemos complicar…
Publicado; 07/01/2004 Arquivado em: Tecnologia 1 comentárioNão que os sites de jornais brasileiros sejam ruins, mas o site do International Herald Tribune tem umas funcionalidades muito bacanas, principalmente na visualização da notícia, que se ajusta ao tamanho vertical de sua tela, páginando automaticamente sem refresh e ainda permitindo alterar o tamanho do texto. Sem contar o sistema de clipping: você vai marcando as notícias que gosotu fica tudo guardado numa listinha para você lê-las depois.
[via alguns blogs]
Só faltou um link para um feed RSS. :o)
Mas não.
Algumas instituições no Brasil preferem regredir (como já circulou na Internet inteira), criando versões em “texto puro” (cof cof…) ou ainda usando tecnologias que não se aplicam de maneira correta para o próposito. Quer disponibilizar uma versão digital igual à impressa? Sem problemas! Mas não complique os que querem ler apenas on-line. Sem contar serviços de tempo complicados e mal utilizados e buscas que não buscam nada.
SQL Server com ICS
Publicado; 07/01/2004 Arquivado em: Tecnologia 2 ComentáriosNAT Clients Cannot View Web Sites After You Install SQL 2000 SP2 or SP3 on an RRAS Server
O que aconteceu foi o seguinte: era um servidor interno, que além de servidor de arquivos e servidor de acesso a Internet (utilizando o Internet Connection Sharing do Windows 2000), estava para se tornar um servidor de Intranet, com ColdFusion e SQL Server.
Pois bem. Como toda instalação do SQL Server que se preze, o último service pack e patchs foram instalados. No dia seguinte, todos os usuários (que acessavam a Internet via este servidor) reclamavam da Internet, que estava lenta, que isso, que aquilo. E o acesso à internet no servidor indo de vendo em popa! Raios. E não tinha um padrão: hora a página na máquina do usuário carregava, hora não carregava… Hora apareciam imagens, hora não apareciam. E nem me ocorria pela cabeça de o problema ser o SQL Server; muito menos o service pack.
Após um bom tempo fuçando no Google e no suporte da Microsoft, achei o link acima que ajudou a resolver. O Service Pack 3 (e o 2 também) contém o patch para o vírus Slammer, e a Microsoft, além de corrigir o arquivo que permitia o vírus se espalhar, também “reservou” (pelo Registry) as portas 1433 e 1434, que também acabam sendo usadas pelo ICS.
Fica aí a dica.
Professor Pasquale
Publicado; 21/12/2003 Arquivado em: Tecnologia 68 Comentários” “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
Publicado; 20/12/2003 Arquivado em: ColdFusion 1 comentárioUm 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
Publicado; 18/12/2003 Arquivado em: ColdFusion 2 ComentáriosUm 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]
‘cfloop query’ aninhadas
Publicado; 12/12/2003 Arquivado em: ColdFusion 4 ComentáriosUma 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?
OOP com CF
Publicado; 10/12/2003 Arquivado em: ColdFusion Comentários desativados em OOP com CFUma 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.
coldfusion.policy
Publicado; 20/11/2003 Arquivado em: ColdFusion 1 comentárioVendo o post abaixo do figuraça Alex Hübner, me lembrou que dia desses, logo após selecionar o “Enable ColdFusion Security” para ativar o Sandbox de um servidor ColdFusion, fui, como é de praxe – e necessário – reiniciar o serviço do ColdFusion.
E não é que o servidor não iniciava? Não dava nenhuma mensagem de erro? Simplesmente não iniciava! $%^&*!
Lá fui eu:
C:>cd d:cfusionmxruntimebin
d:CFusionMXruntimebin>jrun
java.security.policy: error parsing file:/D:/CFusionMX/lib/coldfusion.policy:
line 9: expected [;], found [deny]
Exception in thread “main” java.lang.ExceptionInInitializerError
Caused by: java.security.AccessControlException: access denied (java.util.PropertyPermission jrun.home read)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:269)
at java.security.AccessController.checkPermission(AccessController.java:401)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:524)
at java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1276)
at java.lang.System.getProperty(System.java:573)
at jrunx.kernel.JRun.
D:CFusionMXruntimebin>
E lá fui agora no coldfusion.policy, que se encontrava da seguinte maneira:
// PERMISSIONS GRANTED TO EVERYONE
grant {
permission java.security.AllPermission;
};
deny {
permission java.security.AllPermission;
};
Olha, eu não sei porque diabos ele estava assim nessa indecisão de permito? ou não permito? ser ou não ser? ohhh…, mas tirando o deny {permission java.security.AllPermission;}, claro, ele funcionou numa boa.
ColdFusion Blackstone
Publicado; 19/11/2003 Arquivado em: ColdFusion Comentários desativados em ColdFusion BlackstoneBen Forta solta algumas (poucas) palavras sobre a próxima versão do ColdFusion.