segunda-feira, 12 de novembro de 2007

Dica: Estatísticas Web

w3counter Para quem gosta de se manter atualizado quanto a determinadas estatísticas relacionadas ao ambiente Web para o qual desenvolvemos, este site é de grande utilidade. Confesso que há muito tempo a questão de interface pra mim não era lá muito problema porque o destino do conteúdo que desenvolvo na maioria das vezes é para um público alvo concentrado e com perfil bem definido. Mas o que gostei de ver nessas estatíticas mundiais de Web foi que finalmente 1024x786 pode enfim ser considerado um target padrão de desenvolvimento.

Blogging simplificado: Microsoft Live Writter

livewritter_splashscreen

Primeiro eu testei para depois poder falar. Então já começo esclarecedo:
O Microsoft Live Writter é uma ferramenta gratuíta RECOMENDADÍSSIMO para qualquer "Bloggeiro".

Simplesmente você seleciona o seu tipo de Blog (claro que se você utilizar o Live Spaces a funcionalidade é extendida), conforme a tela 1 de configuração que você vê logo após o procedimento de instalação:

livewritter_screen0

Depois, na tela 2, você fornece os detalhes de acesso ao tipo de blog selecionado:

livewritter_screen1

Ele vai "pegar" as configurações de template (css, etc) do seu blog e vai fornecer uma janela de edição tipo WYSIWYG, ou seja, com o "look n' feel" do seu blog e você o editará exatamente da forma como ele será visualizado.

Você pode visualizar a edição de 4 formas diferentes:

livewritter_screen2

  • Normal: Como texto comum, sem aplicação das configurações visuais.
    livewritter_screen3
  • Web Layout (mais recomendado): com aplicação das configurações visuais.
    livewritter_screen4
  • Web Preview: Simulando o post já efetivado no layout do blog:
    livewritter_screen5
  • HTML Code: Edição direta do código HTML
    livewritter_screen6 

O mais interessante pra mim, ainda, foi a possibilidade de você inserir as imagens livremente, como num editor de texto comum, e deixar que ele se encarregue dos procedimentos de Upload, bastando configurar o tipo de publicação de iamgens que você vai utilizar:

livewritter_screen7

Além disso, são facilitadas também a inserção de outros tipos de elementos comuns num blog como tabelas, vídeo e outros recursos através do modo "Plug-in" que eu ainda não pude testar, mas é muito promissor e é baseado em uma API disponível para desenvolvedores implementarem tais recursos ao Live Writter. Nesse último caso, o software ganha recursos que não se pode prever:

livewritter_screen8

Um outro recurso que gostei muito, foi que no momento da configuração ele automaticamente carregou todas as tags que eu já usei, então posso selecioná-las de uma forma muito prática e rápida, além de poder inserir novas tags. Claro, essas novas tags passam a contar na lista de tags online do blog também:

livewritter_screen9

Enfim, o Microsoft Live Writer, que é gratuíto passou a fazer parte da minha lista de softwares úteis e indispensáveis. Reduziu meu tempo de publicação de um post como esse para menos de 1/3 do tempo que isso me tomaría anteriormente.

OBS: Não tenho vínculo nenhum com a Microsoft e nem estou recebendo nada para promover este software.

sábado, 10 de novembro de 2007

Atualize-se, veja o novo... CTRL+F5

ctrlf5
Não gente, eu não vou transformar em filosofia o velho recurso de atualizar o conteúdo do seu navegador.

CTRLF5 é um novo blog, inaugurado ontem (9 nov 07) que pra mim vai ser um dos melhores blogs que estarei acompanhando a partir de agora.

Fazia tempo que eu estava procurando um blog assim, ou qualquer outra fonte confiável e inteligente sobre o mercado em Salvador/BA.

Se houvesse mesmo a necessidade de alguém ficar implorando para visitá-lo, eu ia ficar aqui descrevendo tudo o que vai rolar por lá (se é que é possível prever), mas acho que basta dizer o nome das pessoas envolvidas que automaticamente você é remetido à qualidade do que você vai encontrar. O time até agora:

  • Daniel Fonseca da SLA
  • Germano Bona da ZCR
  • Zeca Sento-Sé da Nitro71

Se você ainda não tinha "ouvido" esses nomes antes, então você precisa mesmo conhecer o CTRL+F5... tanto o blog quanto o recurso dos navegadores... você está navegando em informação de cache meu filho! Atualiza isso!

Teclanto Alto... já no GeoBlogs

contemconteudo Meu agradecimento ao Mauro Amaral do blog Contém Conteúdo que adicionou o Teclando Alto... ao projeto GeoBlogs.

A idéia é mapear os pontos geográficos de origem dos blogs cadastrados usando o GoogleMaps. Vários blogs já fazem parte.

Visite o Contém Conteúdo e adicione o seu blog também. As instruções estão no seguinte post:

VEJA O POST

sexta-feira, 9 de novembro de 2007

Boa definição do AIR


"We wanted for a long time to create a desktop presence. Previously, our team agreed it was too expensive and couldn't be done. Then along came Adobe AIR."


"Há muito tempo nós queríamos criar uma presença 'Desktop'. Anteriormente nossa equipe concordava que era muito caro e não podería ser feito. Então veio o Adobe AIR."

Essa frase é do Alan Lewis, gerente do projeto eBay Desktop e que define muito bem o propósito de aplicabilidade do AIR. Em poucas palavras ele permite o fácil, rápido e consequente viável desenvolvimento de aplicações Desktop integrado (ou não) a recursos Internet (vide observação abaixo).

Alguns avalistas que pensam da mesma forma:

obs: importante citar que "internet" não é sinônimo de "web". devemos compreender que "web" ou "www" é um dos serviços possíveis e contidos na internet.

terça-feira, 6 de novembro de 2007

...proximo! Google Switch!

É... eu nunca vi tanto anúncio de uma só vez partindo de uma única empresa de tecnologia em período tão curto de tempo. É OpenSocial, novas APIs, Gmail suportanto IMAP, e agora essa novidade: Um celular Google!

Tem gente citando a parada dele ser o iPhone killer...
Eita... ninguém cansa desse modismo "killer" não? Não consigo me lembrar de nenhum "killer" anunciado realmente matar ninguem... pelo contrário.. móóóórreu!


Embora a notícia antiga no press release cite apenas uma iniciativa cooperativa entre Google e Samsung de lançar aparelhos com acesso nativo aos serviços Google Maps, Search e GMail, o que se sabe hoje é que o que vem por ai é um Sistema Operacional para dispositivos móveis by Google, assim como várias outras fontes já vem anunciando. E isso realmente é fantástico! A iniciativa do Google "sería" baseada em software de uso livre e a vastidão de APIs que já existem poderíam (poderão) ser aplicadas no ambiente móvel.

Eu ainda não sei o impacto disso para o WindowsMobile, pois o mesmo é peça chave para muitos negócios muito bem difundidos no planeta e na área como um todo. Quanto a ele, a única coisa que me preocupa um pouco e a popularidade, ainda longe do ideal, que o FlashLite tem. Não sei ao certo, mas acho que ela sería abalada de alguma forma sim.
Mas, para o PalmOS por exemplo, penso que certamente sería uma boa pancada (talvez ai sim mortal, mas parece que ninguém anda ligando muito pra isso).

Insistindo no tema do iPhone, num caso mais crítico, bastaría a Apple começar a entregar o seu aparelho com o sistema do Google ao invés do MacOS e as vendas estaríam salvas.

Caramba... olha que aplicativo legal dá pra imaginar: PeopleSearch! Numa interface do Google vc digita o telefone de quem vc procura, ele abre o Google Maps e mostra a localização! (Nesse caso, bom poder escolher uma opção "Aparecer Online mas em outro lugar... Hahahahaha").
Sua agenda de contatos: Contatos do Gmail... fora a integração com as demais APIs né... OpenSocial, Calendar, GTalk como gerenciador SMS, etc.

segunda-feira, 22 de outubro de 2007

CF_SSLPOP referenciada no ColdFusion Open-Source Update

A CustomTag já está entrando em uso por ai. Recebi vários emails elogiando o trabalho e esse reconhecimento tem agregado mais entusiasmo para novas atitudes colaborativas para a sociedade de desenvolvedores ColdFusion (e outras tecnologias) como foi essa pequena contribuição.
Engraçado é que o pessoal lá de fora valoriza mais o trabalho da gente do que os nossos conterrâneos. Pra mim isso é um tanto quanto estranho, mas tudo bem...
Aproveitando a oportunidade, ao mesmo tempo da publicação na lista de Open-Sources em ColdFusion, recebi a notícia de que o RiaForge não mais dará suporte às licenças do Creative Commons. Ainda não entendi o motivo mas vou procurar saber. Assim, a CustomTag CF_SSLPOP agora está sob o modelo de licença BSD.

segunda-feira, 15 de outubro de 2007

ColdFusion Custom CF_SSLPOP disponível no RIAForge



Baseado no post a respeito de implementação SSL com a tag CFPOP do ColdFusion, embora o código esteja aberto e disponível para que cada um implemente da forma que achar conveniente, resolvi criar uma custom tag para facilitar a vida de quem quiser implementar o recurso.

Serve como mais um exemplo de uso do código e o mesmo pode ser extraído para ser utilizado em CFCs, UDFs e etc.

O modelo de licença que escolhi foi o "creative commons (attribution)" que o torna livre para ser utilizado e implementado como quiser, mantendo apenas a obrigatoriedade de citar a procedência/fonte da informação.

Visite a página do projeto no RIAForge.com

sábado, 13 de outubro de 2007

Connecting to Gmail using CFPOP

This is a brief translation of the original post regarding the same subject in brazilian portuguese.

Researching the web (and also after hours trying some native solution) I could realize a lot of people had already tried to use to retrieve data from their Gmail accounts. It makes a lot of sense, but unfortunately doesn’t implements SSL on its algorithm. It makes impossible to reach the desired result.

After some hours looking for solutions for this, discarding the option to use CFX_POP (paid solution), we and my colleague Jefferson Petillo decided to research some alternative. I choose to go into Java direction and after some time researching I found this post (http://unk1911.blogspot.com/2005/12/gmail-via-pop3-in-java.html).

Based on it, I wrote the following simple lines of code to successfully retrieve messages from my Gmail account using :



IMPORTANT: Comparing the original code I had as the base to produce mine, you can realize I omitted the definition ("mail.pop3.socketFactory.fallback", "false") that is equivalent to define it as TRUE. This FLAG makes JVM recovers or not the original “SocketFactory” class used on Pop3 Socket connections that is “javax.net.SocketFactory". If FALSE is defined to “fallback” flag, JVM, from here on, will always use SSL in future Pop3 Socket connections until "mail.pop3.socketFactory.class" is defined back to “javax.net.SocketFactory” instead of "javax.net.ssl.SSLSocketFactory" we are using to implement SSL. For a ColdFusion shared environment it would result on an undesired situation where every Pop3 Socket connection made from any application running that server instance, to use SSL when was implemented. This would produce a connection error when POP server doesn’t requires SSL.

Regarding this, the better way to implement this solution would be:



Where “someFlag” will be some variable indicating SSL is required for next request. It could be, for example, a checkbox form field that will exists in FORM scope if it was checked. In this case “someFlag” can be replaced simply by:



GREAT QUESTION: Why isn’t it already implemented as a simple parameter, just like SSL=”true/false” by Adobe / Macromedia / Allaire?


Special thanks:
The author of the original Java solution posted here http://unk1911.blogspot.com/2005/12/gmail-via-pop3-in-java.html and Jefferson Petilo for his help, curiosity, effort and sleepiness.

Conexão ao Gmail usando CFPOP

Muitos já pensaram nisso e provavelmente já passaram pelo “problema” de tentar uma conexão ao servidor do Gmail para resgatar mensagens usando a tag <cfpop... . O problema refere-se ao fato de que o Gmail implementa SSL na conexão aos seus servidores e a tag <cfpop> não possui suporte a uma conexão com essa especificação.

Nesta necessidade, muitos acabam por investir na aquisição da tag CFX CFX_POP que implementa conexão ao servidor usando SSL.

Ontem (12/10/07) das 11:30PM até umas 2:30AM de hoje, eu e meu colega Jefferson Petillo ficamos tentando de várias formas estudar uma solução direta com o ColdFusion. Depois de várias tentativas estudos e fracassos, descobrimos que simplesmente o ColdFusion não implementava de forma nativa condições para completar esta operação.

Por ter estudado bastante o que falta para que o ColdFusion permita esta funcionalidade, ficamos perplexos em tomar conhecimento de que a implementação para a solução deste problema nos parecia à princípio simples. E com este pensamento nos questionamos sobre qual sería o motivo deste recurso não encontrar-se implementado no produto.

Como não ficamos satisfeitos só em aguardar uma solução, ao passo que notamos que a solução poderia ser simples, nos dividimos em pesquisas. Eu optei por estudar a solução usando Java.

Enfim, assim que acordei, ansioso em achar a solução para essa questão, parti para a pesquisa e à partir do que encontrei aqui neste post (http://unk1911.blogspot.com/2005/12/gmail-via-pop3-in-java.html), acabei descobrindo que a solução é muito mais simples do que eu imaginava à princípio.

Fato técnico: Para que uma SESSION a um servidor SSL seja estabelecida, primeiramente HOST e CLIENT devem estabelecer um HANDSHAKE com sucesso. Isso ocorre via SOCKET.

O problema teórico: Embora não tenha acesso ao código fonte, me parece óbvio então que entre duas suposições, uma é verdadeira: 1 – O algoritimo da tag <cfpop> não implementa o Handshake. 2 – Há um bug nesta implementação. Embora pareça óbvia que a verdadeira suposição seja a primeira, baseado no fato de que o CF8 possui em sua interface de administração a opção de ativar SSL na conexão ao servidor de email (vide figura 1), pode-se supor que exista a verificação desta opção no algoritimo do <cfpop>. OK! As opções no administrador, à princípio refere-se à configuração de SMTP e não POP. Mas, por mais absurdo que pode ser, é uma suposição.

A solução teórica: Antes de implementar um request (que ocorre via socket, naturalmente) usando a tag <cfpo>, forçar o handshake com o HOST (servidor POP) usando SSL.

Solução prática: Implementa-se esta solução, simplesmente definindo-se nas propriedades do JVM (obtido via System.getProperties()) as informações corretas para que seja utilizado SSL (obtido através de javax.net.ssl.SocketFactory) no processo de conexão. Vide código abaixo:



IMPORTANTE: Repare que em relação ao código original, a definição da seguinte propriedade ("mail.pop3.socketFactory.fallback", "false") foi omitida, o que equivale a deixa-la como TRUE. Esta opção faz com que o JVM retorne ou não ao padrão que é utilizar (("mail.pop3.socketFactory.class", "javax.net.SocketFactory") ao invés de (("mail.pop3.socketFactory.class", "javax.net.ssl.SSLSocketFactory") que estamos definindo, neste caso, para que na próxima seção de contato ao servidor de email seja utilizado SSL. Se “false” for utilizado, o JVM não irá recuperar a classe original, usando sempre SSL ao proceder um contato com um servidor POP qualquer daqui por diante. No ambiente do ColdFusion, isso prejudicialmente seria o equivalente a fazer com que QUALQUER aplicação rodando na mesma INSTÂNCIA de servidor, sempre utilizasse SSL neste procedimento. Isso fatalmente resultaria em erro de conexão a servidores POP que não utilizem SSL (diga-se, a maioria).

A partir disso, a implementação mais aconselhável sería:



“someFlag” deverá ser alguma variável indicando a necessidade de uso de SSL para esta operação. Por exemplo um campo de formulário do tipo “checkbox” que existirá se for marcado ou não irá constar no escopo FORM caso não tenha sido marcado. Assim, “someFlag” poderia ser substituído por:



A GRANDE PERGUNTA!: Por que isso simplesmente já não foi implementado na tag como um parâmetro, por exemplo, SSL=”true/false” pela Adobe / Macromedia / Allaire?

Agradecimentos:
Autor do Post original com a solução Java em http://unk1911.blogspot.com/2005/12/gmail-via-pop3-in-java.html e ao Jefferson Petillo pela ajuda, curiosidade, empenho e insônia compartilhada.