Como reposicionar dinamicamente um CFWindow

May 25th, 2009

A janelas criadas com a tag CFWINDOW podem ser posicionadas através dos atributos “x” e “y” da tag, mas em algumas situações precisamos posicionar a janela dinamicamente, em função de um outro elemento HTML da página. Para solucionar este problema precisamos ir além do ColdFusion e manipular a biblioteca ExtJS diretamente (mais detalhes sobre a biblioteca aqui).

O código a seguir demonstra como fazer isso, note o método alignTo do objeto myWindow que é o responsável por alinhar a janela ao elemento HTML:

Read the rest of this entry »

ColdFusion.objectCache

April 23rd, 2009

No post anterior eu usei a propriedade ColdFusion.objectCache para retirar do cache do ColdFusion a janela criada com a tag CFWINDOW. Eu esqueci de dizer que este trecho de código usa comandos não documentados da linguagem, logo é um código não suportado oficialmente na especificação da linguagem. Vamos usar por nossa conta e risco :-)

CFWINDOW

April 21st, 2009

O código abaixo mostra como atualizar o conteúdo de uma janela criada com a tag CFWINDOW, este código dribla o comportamento padrão das janelas criadas com a tag que não são atualizadas mesmo que parâmetros diferentes sejam passados para a janela.

Read the rest of this entry »

Usando a função IsInstanceOf

April 8th, 2009

Neste post, eu demonstrei o uso da função “isObject” para avaliar variáveis complexas. No exemplo de hoje utilizo a função “isInstanceOf” para verificar se a variável é uma instância do componente (ou interface) indicado.

Read the rest of this entry »

Flash Catalyst

April 6th, 2009

Quer ser notificado quando o Flash Catalyst for liberado no Adobe Labs? Clique aqui.

Geocoding com ColdFusion

April 6th, 2009

Neste post falei sobre Geocoding, o processo de encontrar as latitude e longitude de um determinado endereço.  O exemplo abaixo utiliza a tag CFHTTP para fazer uma pesquisa no serviço de geocoding do Google (lembrando que <key> representa a minha chave de acesso à API). O resultado da chamada HTTP é uma lista com 4 elementos, o primeiro é o código de retorno, o segundo a precisão e os dois últimos as coordenadas.

Read the rest of this entry »

Geocoding

April 3rd, 2009

Geocoding é o processo de encontrar as coordenadas geográficas (latitude e longitude) de um determinado endereço. E para que precisamos das coordenadas geográficas? Quando utilizamos APIs para trabalhar com mapas, o ideal é que já tenhamos as coordenas armazenadas para que o geocoding não precise ser feito enquanto o usuário está trabalhando no mapa, já que o geocoding é um processo relativamente custoso, por exemplo, você está fazendo um sistema para indicar no mapa todos os clientes de uma transportadora, ao invés de fazer o geocoding ao exibir o mapa, o geocoding por de ser feito no momento do cadastro do cliente, quando o mapa for exibido, basta apresentar as coordenadas previamente determinadas.

Existem diversos serviços públicos que permitem que você faça geocoding, o exemplo abaixo utiliza o serviço do Google para buscar as coordenadas da loja New Dive de equipamentos de mergulho, onde <key> é a minha chave de acesso à Google Maps API.

http://maps.google.com/maps/geo?q=rua da alfandega, 112 – rio de janeiro – rj – brasil&output=csv&key=<key>

O retorno da chamada http acima esta listado a seguir. O primeiro elemento (200) é o código de retorno (veja aqui), o segundo é a precisão (quanto maior, melhor, ou seja, mais precisa foi a pesquisa, veja os detalhes), o terceiro e o quarto são as coordenadas.

200,8,-22.9026701,-43.1806372

Veja o resultado no mapa, clicando aqui. Voltarei ao assunto com um exemplo de como fazer o geocoding de uma base de dados utilizando ColdFusion.

SpatialKey

April 2nd, 2009

Há alguns meses escrevi sobre o SpatialKey, um produto que a Universal Mind está desenvolvendo para análise de informação geo referenciada. A fase de beta teste do produto está avançando e o site foi atualizado com muito mais conteúdo, incluindo vídeos explicativos e tutoriais. O SpatialKey permite que o usuário envie sua própria base de dados, a analise, crie relatórios interativos e compatilhe estes em questão de minutos. Tenho trabalhado fazendo testes no sistema e a capacidade de filtrar bases de dados e a interação com mapas impressiona pela robustez.

Infelizmente durante esta fase do desenvolvimento apenas endereços dos Estados Unidos podem ser usados sem que tenha sido feito o geocoding da base de dados previamente (geocoding é o processo de transformar um endereço físico em coordenadas – latitude e longitude).

Isso não impede que endereços do Brasil e de quaisquer outras partes do mundo possam ser usados no SpatialKey, para tanto basta que seja feito o geocoding previamente que a base dados já contenha as coordenadas, em breve vou postar sobre como isso é simples usando a Google Maps API.

Se você se interessou e gostaria de testar o produto, me envie um e-mail tenho alguns convites de contas de testes disponíveis.

Não deixe de conferir o vídeo abaixo.

Livedocs, porque devemos consultá-los

April 1st, 2009

A Adobe mantém um domínio chamado livedocs, neste site é possível encontrar a documentação on-line de vários produtos da empresa, isto é interessante, mas nada de espetacular afinal podemos baixar livremente a documentação dos produtos que usamos, certo?

Bom, o diferencial é que o livedocs que promove a interação entre os usuários e o pessoal da Adobe, além de permitir comentários, acredito que os desenvolvedores podem aprender com isso. A Adobe também atualiza constantemente o livedocs, um exemplo disso é a função “ColdFusion.JSON.decode” que não aparece nos PDFs do ColdFusion lançados com o produto, mas está disponível no livedocs (talvez os PDFs do ColdFusion tenham sido atualizados, eu não baixei novamente para conferir).

Livedocs ColdFusion e Livedocs Flex

Max Brazil 2009 anunciada

April 1st, 2009

A Adobe anunciou que este ano teremos além da MAX nos EUA (de 4 a 7 de outubro, em Los Angeles, California) teremos também a MAX Brazil. Detalhes serão divulgados em breve.

A notícia seria boa demais para ser verdade… primeiro de Abril :-)