Quebra de linha no Flex

As quebras de linhas em aplicações em Flex são tratadas de dois modos distintos. Um é a quebra de linha em códigos ActionScript, já conhecidas do pessoal que trabalhava com Flash, utilizando um n para criar as quebras de linha (tal como em outras linguagens de programação).

<mx:Script>
<![CDATA[
function setDataToolTip(date1:String, date2:String):Void {
  cbDatas.toolTip = date1 + 'n' + date2;
}
]]>
</mx:Script>

O newline também pode ser utilizada para gerar quebras de linha, contudo, ao passo que o n é interpretado como um “texto” (escaped character; note as aspas no exemplo acima), o newline é como uma variável.

cbDatas.toolTip = date1 + newline + date2;

O segundo modo é quando estamos em uma tag do Flex. Ora, uma tag em Flex, e mais do que isso, um arquivo MXML nada mais é do que um arquivo XML, e portanto, os padrões podem e devem ser seguidos. Qual é o caractere de carriage return e como ele é representado em documentos HTML, XML e afins? &#13;

<mx:Link label="link com&#13;duas linhas" />

Adicionalmente, a variável newline também pode ser utilizada em tags MXML, utilizando o recurso de binding:

<mx:Link label="link com{newline}duas linhas" />

Vale a pena também citar casos especiais, como o uso de tags HTML, e o famoso <br> para quebras de linhas, como no caso de dataTips em gráficos, em que é possível utilizar b, i e br. No exemplo abaixo, uma função a ser utilizada como dataTipFunction de um gráfico.

function formatDataTip(event:Object):String {
return '<b>' + event.hitData.item.valor1 + '</b> <br> <i>' + event.hitData.item.valor2 + '</i>';
}


Frase do dia

Sabe aquela situação em que algo precisa ser feito, e na correria do dia-a-dia ou por falta de tempo mesmo, faz-se um “quabra-galho” (também conhecido como gambiarra), que de fato, resolve temporariamente o problema, mas de longe não é a melhor solução, e deixa para implementar a solução definitiva num futuro “próximo”?

Fernando Fonseca, consultor de segurança da Microsoft, tem uma frase que resume perfeitamente essa situação:

“Se você não tem tempo de fazer direito, quando terá tempo de fazer de novo?”
–Fernando Fonseca


Carta da Adobe às comunidades

Com a compra da Macromedia pela Adobe, muito foi imaginado do que aconteceria com produtos, grupos de usuários e rumos. Para esclarecer algumas questões referentes aos grupos de usuários, a Adobe enviou uma carta à comunidade, que segue abaixo.


Dear Macromedia Community Members:

By now you most likely know that Adobe has finalized its acquisition of Macromedia, combining the leading-edge technologies of two pioneering software companies. We’d like to take this opportunity to let you know what the acquisition means to you as a valued member of our community and what you can expect from Adobe in the days ahead.

With the acquisition of Macromedia, Adobe is dramatically advancing its ability to deliver a platform that provides you with powerful solutions for engaging people with digital information. We are now better positioned than ever to assist you in meeting and exceeding your business requirements and goals.

Moving forward, we will bring together some of the industry’s strongest brands and most ubiquitous technologies, including Acrobat, Photoshop, Dreamweaver, PDF, ColdFusion and Flash. Customers who have relied on Adobe and Macromedia solutions will benefit from a consistent platform and common user interface, as well as the outstanding care they’ve come to expect from both companies.

At a high level, by bringing our technologies together, we will provide the community with the software solutions you need to meet the increasing demands of today’s competitive environment. Now more than ever, we are positioned to help you securely extend the reach of your information, business processes and services to engage and interact with customers and constituents online, via mobile devices – by whatever medium you choose.

As you may know many of Macromedia’s leaders are now in leadership roles at Adobe. Kevin Lynch is now Adobe’s Senior Vice President and Chief Software Architect, Platform Business Unit. Kevin’s responsibilities include the Flash Player, Acrobat Reader, and Developer Relations. David Mendels is now Adobe’s Senior Vice President of Enterprise and Developer Solutions, and is responsible for products like Flex, ColdFusion and LiveCycle. Tom Hale is now Adobe’s Senior Vice President of the Knowledge Worker Solutions Business Unit, which includes Breeze and Acrobat. And lastly, Stephen Elop, Macromedia’s former President and CEO, is the President of Adobe’s worldwide field organization.

Our efforts with user groups around the world, developer events and conferences, and throughout the community will continue as they always have, and we’re excited about how we can enhance and expand our relationships with our development community.
We look forward to sharing more information with the community in the coming weeks. For more information about the merger, please visit www.adobe.com. If you have questions, comments, or concerns, please don’t hesitate to contact me directly, or any of your contacts on the developer relations team.

On behalf of all of Adobe, and the Developer Relations team in particular, I want to thank you for your continued commitment to our community, and I look forward to new opportunities to work together.

With best regards,
Sara Spalding, Director, Developer Relations
sspaldin at adobe.com


O futuro do ColdFusion na Adobe

Já havia sido publicado no CFDJ, mas agora saiu no Devnet também. Sugiro a leitura para aqueles que ainda acreditam que a Adobe irá descontinuar o ColdFusion. Acho que o cenário é exatamente o oposto.

The Future of ColdFusion at Adobe

Entrevista com Dave Mendels, Senior Vice President da Enterprise and Developer Solutions Business Unit (leia-se: é o cara que mandará em produtos enterprise como CF e JRun na nova Adobe/MM).


Lula candidato em 2006

lula_candidato.gif

Ainda bem! Eu nunca vi alguém ser canditado para perder…


Novos security bulletins para Jrun/CF

Agora pouco a Adobe/Macromedia soltou alguns boletins de segurança para os produtos JRun 4 e CFMX (versões 6.1 e 7.0) que não foram divulgadas nos feed aggregators tradicionais (por alguma razão desconhecida), que porém são importantes serem conhecidos, especialmente o que requer um hotfix específico (além da recomendação de se instalar os últimos updaters), que é o caso da versão 6.X (veja abaixo).

Os boletins são:

MPSB05-12 Sandbox Security and CFMAIL Vulnerability in ColdFusion MX 6.X
MPSB05-13 Cumulative Security Updater for JRun 4.0 server
MPSB05-14 Cumulative Security Updater for ColdFusion MX 7

Sendo que no último destes boletins, podemos ver a Adobe/Macromedia agradecendo ao nosso “réquer”, criptógrafo e garanhão mór do CFGIGOLÔ, o Fabio Terracini.

Adobe would like to thank the following individuals for reporting the vulnerabilities listed in this bulletin and for working with us to help protect our customers’ security.

Russ Michaels – JRun Clustered Sandbox Security Vulnerability.
Mike Nicholls – CFMAIL injection Vulnerability
Andy Allan – CFOBJECT Sandbox Security Vulnerability
Fabio Terracini – Administrator Hash Exposure Vulnerability

É sempre bom saber que os brasileiros podem ser ouvidos pela “nave mãe”. Parabéns pela menção garanhão! Ah, e por favor… deixe meus servidores em paz!! 😉

IMPORTANTE: quem estiver rodando CFMX 7.01 e JRun 4 com o updater 6 instalado não está vulnerável à nenhum dos problemas relatados, sendo que a recomendação da Adobe/MM é justamente instalar estas últimas atualizações. Agora, se você está rodando o CFMX 6.1, você vai precisar instalar um hotfix disponível no boletim acima.


CF Memory Monitor

Outra boa dica para aqueles interessados em conhecer o CF mais de perto:

ColdFusion Memory Usage Stats (Revisited)

O scriptzinho é bem interessante e dá algumas boas indicações visuais de como está sendo usada a memória do seu servidor CF, tudo isso numa interface bem feita (em Flash).

Ano passado o Ronan Lucio postou um script semelhante na CF-Brasil, que vale a pena conhecer.


Como o CF funciona?

Excelente resumo técnico sobre as etapas envolvidas no acesso a um script CFML passando pelo compilador CFM -> Javabytecode, pelo webserver (o Apache foi usado como exemplo) e algumas outras considerações bem colocadas e resumidas, inclusive mencionando qual é o compilador usado desde a versão 6.1. Trata-se do BCEL, feito pelo pessoal do Apache group. Me chamou também a atenção a informação de que os servidores do Macromedia.com usam o servidor built-in do CF para responder a requisições oriundas de um cluster feito com o Apache (webserver), contrariando o que ela mesma recomenda (não usar o servidor built-in em produção). Leitura recomendada:

How ColdFusion Receives and Processes Requests


Os poliça não brincam em serviço

Após Stand Center, PF faz blitz no Promocenter. Eu apoio fortemente a iniciativa. Além de sonegação de impostos, costumam vender produtos roubados (meu MP3 player de carro deve ter sido vendido lá) e falsificados para gente incauta (ou apenas mal intencionada). Sem falar no tradicional mal-humor dos vendedores (normalmente eles não falam nada de português exceto números – para dizer quanto custa), que acham que podem vender para o próximo trouxa (como você).

Mas que tem toda cara de coisa promocional da PF, ah como tem… (ainda mais nessa época do ano). Infelizmente funciona assim: ações corretas movidas por motivos torpes. Mas funciona. Quero ver quanto tempo dura.

Próximo alvo: Santa Efigênia!


FCKEditor Image upload para ColdFusion (upload.cfm)

Tive que montar um sisteminha e parti para usar o FCKEditor 2.1.1 (excelente), mas percebi que para ColdFusion faltava um módulo de upload de imagens (não confundir com o gerenciador de arquivos que já existe e acompanha o produto), que teoricamente deveria ser um arquivinho chamado “upload.cfm”. O arquivo connector.cfm, que se propõe a fazer o gerenciamento de arquivos e outras coisas (tal como nas versões disponívels em ASP, ASP.net e PHP) é incapaz de fazer o upload de imagens (usado na opção “Upload”) do FCKEditor image button, pois não responde ao editor de forma adequada. Procurei bastante na internet, mas parece que não existe nenhum módulo pronto para a versão 2.1.1 (a mais nova), por isso posto aqui o “upload.cfm” que fiz, de forma bem improvisada e rápida, para sanar a minha necessidade atual. Sinta-se livre para usá-lo e melhorá-lo.

FCKeditor_upload_cfm.zip

O zip já vêm com a estrutura de diretórios montada, mas para informação, você deve:

1) Extrair os dois arquivos (config.cfm e upload.cfm) na pasta /FCKEditor/editor/filemanager/upload/cfm/ (a pasta “cfm” não existe e precisa ser criada).
2) Não se esqueça de configurar o arquivo “fckconfig.js” para configurar a entrada “FCKConfig.ImageUploadURL” e “FCKConfig.FlashUploadURL” corretamente. Como exemplo segue a cópia do meu fckconfig aqui.