quarta-feira, 21 de novembro de 2007

Grupo de usuários AIR-Brasil anunciado

airbrasil

Conforme anúncio no Blog do Igor Costa, já está ativo e funcional um grupo de discussões com atenção dedicada ao AIR.

CADASTRE-SE: http://groups.google.com.br/group/air-brasil/subscribe

quinta-feira, 15 de novembro de 2007

Logo definitivo do ADOBE AIR

air_official_logo_blackbg

Anunciado pelo Mike Chambers em seu blog, este é o logo definitivo do Adobe AIR.

Conforme dito pelo próprio, o conceito da marca basicamente reuniu a informação de que o produto está apoiado em 3 tecnologias principais: HTML, PDF e Flash.

Um fato que achei interessante:

No post original, o Mike Chambers cita algo interessante (tradução livre):

Normalmente este é o tipo de informação e notícia que nós deveríamos postar no site principal e não em um Blog. Por outro lado nós sabemos que o sucesso do Adobe AIR depende dos desenvolvedores, bem como aplicações e conteúdos que eles criam. E nós aprendemos com o Adobe Reader e o FlashPlayer que conteúdo dirige à adoção. É por isso que estamos postando o logo aqui primeiro. Nós queremos que a comunidade de desenvolvedores seja a primeira a ver a nova logo.

Technorati Tags: ,,,

Update: CTRL+F5 - O time virou seleção

ctrlf5

Não... não é do time do São Paulo que estou falando... ;)

O CTRL+F5, novo blog reunindo os maiores destaques do mercado de comunicação de Salvador/BA com temas excepcionais está quentíssimo e conta agora não simplesmente com um time, mas sim uma verdadeira SELEÇÃO DE NOMES!

  • Bruno Angra
  • Daniel Fonseca
  • Daniel Paixão
  • Germano Bona
  • Julio Souza
  • Zeca Sento-Sé

Vale a pena conferir! Adicione-o ao seu leitor RSS e acompanhe também os comentários pois estão tão interessantes quanto as matérias.

detalhe: vou colocar aqui pequenininho e escondido pra não parecer prepotência. fui convidado a fazer parte do time e já dei minha contribuição falando sobre air, silverlight, gears, javafx e prism.

Por que usuários de PHP são tão unidos?

Estava com um amigo (Jeff) discutindo uma excelente matéria postada no ColdFusionJedi sobre uma High Scholl na Nova Zelândia que possui aulas de ColdFusion como matéria regular de informática em substituição a aulas de Word, Excell, etc.

Ao final da matéria surge um tópico interessante... alguns dos alunos demonstraram que iriam migrar para o PHP mesmo sem terem associado ao CF algum problema que os levassem a esta atitude.

Surgiu o seguinte trecho na minha conversa com o Jeff:

Vicente Jr: Que louca essa última parte: "...I'm curious why all the kids seemed to be moving to PHP..."

Jeff: Sabe que é uma verdade?

Vicente Jr: Tenho minhas suspeitas:
- CFBoy@NZ: Hi! I'm doing CFML Apps... It's so cool!
- PHPBoy@Anywhere: Are you a fag? My dad tolds me it's sucks... it's not real programming language. If you really want to be a MAN, a programmer, learn PHP! You bitch!

Jeff: (risos)

Jeff: Mas sabe por que os usuários de PHP se unem assim? Em comunidades, etc?

Vicente Jr: Não faço idéia!

Jeff: Porque nunca conseguiram terminar um sistema sozinhos!

Vicente Jr: (risos) + (risos) + (risos)

Claro que trata-se de uma brincadeira, tão comum quanto a que outro colega postou em uma lista sobre CF da qual participamos, com um vídeo (uma coleção na verdade) produzido pela comunidade RubyOnRails criticando o CF (e outras linguagens, dentre elas o PHP). Mas suspeito se não tem lá seu fundo de verdade! (Risos++)

segunda-feira, 12 de novembro de 2007

Evolução: disquetes > CDs > Browsers > Virtual Machines

O tópico é mais especificamente para falar de uma coisa interessante que tenho visto acompanhando alguns blogs.

Há muito se diz, e até deram um nome totalmente fantasioso de "Web 2.0" para essa evolução natural da internet, prevista há muito tempo por nós desenvolvedores porque era realmente óbvio que em algum momento isso acontecesse. Precisava-se apenas que tecnologias se aprimorassem, o ambiente amadurecesse (usuários, seus conhecimentos e seus equipamentos) e um modelo de negócio fosse bem viabilizado.

As aplicações finalmente estão deixando de serem coisas que instalamos em nossos computadores, para se tornarem recursos disponibilizados por seus respectivos desenvolvedores em diversos formatos mais acessíveis, mais abrangentes e por que não dizer justa e liberal. E isso está crescendo de forma muito rápida pois as aplicabilidades não tem limites.

Dá para se definir uma linha de tempo de evolução, com exemplos:

mais ou menos em 2000

Os WebServices ou a definição do SOAP sobre o XML nos trouxe uma nova possibilidade. Não precisaríamos mais investir para reinventar a roda. Bastava utilizá-la dos bondosos que permitissem acesso às sua invenções ou alugá-las, o que mesmo tendo um custo, era muito menor do que você produzir sua própria roda.

Nas palestras que eu fazia na época (quando funcionário da Macromedia), abordando WebServices com o ColdFusion (criação e consumo de webservices), um exemplo ilustrava bem a situação:

(Vou apresentar um breve resumo. Se alguém quiser detalhes do exemplo, basta me consultar.)

Imagine uma agência de viagens que pretende disponibilizar um sistema de personalização de um pacote de viagens. A partir do seu próprio site, usando suas determinações de comunicação visual e etc, ela pode apresentar ao usuário horários de vôo de várias companhias aéreas e já permitir que o mesmo a selecionar para efetivar o pacote e no final do processo proceder com o pagamento. O que muitas agências fazem ainda hoje (porque desconhecem a possibilidade ou porque não podem investir) é simplesmente listar os vôos previamente cadastrados no sistema, o que pode gerar problemas porque no momento da efetivação pode ser que a companhia aérea não possui mais aquele vôo disponível. Fora que isso pode ocasionar a perda do cliente infringindo um outro problema sério: a incapacidade de retenção do cliente.

A solução para conseguir anexar ao site da agência as informações de vôo da companhia aérea? WebServices!

Com este recurso a companhia aérea disponibiliza as informações de vôo que qualquer agência poderá anexar ao seu site sem importar qual tecnologia a companhia aérea utilizou para desenvolver seu sistema e qual tecnologia a agência escolheu para desenvolver o seu. Neste caso, dizemos que a agência estará "consumindo" o WebService disponibilizado pela companhia aérea.

Essa foi uma grande evolução! O SOAP funciona então como um protocolo para a comunicação entre recursos de sistemas disponibilizados em diferentes plataformas e diferentes tecnologias.

Um repositório de WebServices famoso é o Xmethods:

xmethods

Tem também o Afterzed:

afterzed

Ambos com WebServices definidos em várias tecnologias e consumíveis por qualquer tecnologia que implemente esse recurso.

mais ou menos 2004

Embora baseado em uma metodologia antiga - o uso de javascript para controlar o comportamento de elementos de interface - que chamávamos de DHTML, o AJAX veio com ar e fama de "nova tecnologia" pois determinava uma padrão interessante de comunicação entre browser e servidor utilizando XML (serialização/deserialização de dados). Unindo isso aos WebServices, ganhamos os Mashups.

Junto com termo AJAX, passou a finalmente estabelecer-se os RIAs (Rich Internet Applications) que resume-se em nada mais nada menos, do que novos poderes de controle da interface por parte dos desenvolvedores de sites e aplicações (leia-se também, Sites/Aplicações que são os Web Applications).

Os Mashups então acabam constituindo-se de aplicações completas, ao invés de recursos básicos para serem implementados em outras aplicações, como é o caso mais comum do WebService, que da mesma forma podem ser consumidos por outras aplicações.

Um exemplo prático e muito comum hoje de recursos que compõem um Mashup na Web é o GoogleMaps e o YouTube. E pra não me criticarem de só falar do Google (Google! Google! Google!), cito também o YahooMaps, LiveMaps (Microsoft), Flickr (Yahoo), etc.

Um bom repositório de Mashups na web:

programmableweb

já há algum tempo e ganhando cada vez mas força dos dias de hoje

Com toda a evolução, tanto conceitual quanto comercial que havía acontecido até então, grandes investidores e empresas de TI passaram a dedicar-se a espe "pedaço de negócio" que evoluía de forma cada vez mais forte.

Veio então a definição do SOA (Service Oriented Architecture) que determinou um modelo de orientação, suporte e estrutura para os negócios nessa área.

Como evolução ainda maior veio o SaaS (Software as a Service) que é um modelo que tras não apenas uma excelente nova geração de aplicabilidade da conectividade de nossos equipamentos à internet, mas uma ótima revolução no ambiente tecnológico que tende a provocar muitas outras revoluções.

Trata-se "simplesmente" (na visão do usuário) em fazer com que o seu software não seja mais distribuído em CDs, DVDs e seus installers, mas sim através do seu navegador.

Já existem muitos negócios / empresas hoje que se valem deste tipo de solução para compor a sua arquitetura de recursos tecnológicos.

zoho Veja por exemplo, o zoho.com que oferece uma gama completa de soluções office. Você tem editor de texto, planilha, editor de apresentações e até mesmo banco de dados, e tudo padronizado para trabalhar com a importação e exportação para os formatos padrões do mercado.

Além disso, o serviço é oferecido também na forma de uma API para que você implemente os recursos da maneira que desejar em suas próprias aplicações.

Ainda não estudei o impacto em custos, mas acredito que eles venham a ser muito mais vantajosos do que os modelos de licença que temos hoje de grandes produtos comerciais desta linhagem.

microsoft_logo A própria Microsoft já parte para esta iniciativa e é infalível que ela se dê muito bem. Aliás, isso pode inclusive significar uma estratégica abertura de mercado conforme consta no post que originou essa minha matéria. Com esta possibilidade de distribuição de produtos Microsoft, pode-se ter por exemplo uma infra-estrutura de TI que optou por Sistemas Operacionais open-source para uma drástica redução de custo de propriedade em suas estações, mas por questões de produtividade e economia com treinamentos, manteve o Microsoft Office como solução de ferramentas Office.

buzzword É impossível nesse contecto não comentar sobre o Buzzword que a Adobe já colocou em fase beta-público. Trata-se de um editor de texto fantástico implementado com o FlashPlatform (Flex basicamente). E olha que não será a única investida da Adobe, pois espera-se um já anunciado Photoshop Express nas mesmas condições.

...daqui por diante... what's next?

E não podemos achar que mais um passo nesse contexto ainda está por vir. Já veio! Essas aplicações estão, na maioria dos casos (dependendo do "meio" utilizado, pois com o Adobe AIR é assim) serem transformadas em aplicações que roram em "Browsers" personalizados.

Adobe com o AIR, Microsoft com o Silverlight, Sun com o JavaFX, Google com o GoogleGears são os destinos dessas aplicações.

Enfim

O que vejo é que daqui há pouco não teremos mais os navegadores na forma como os vemos hoje. Sinceramente eu não sei ainda como isso vai ser nem como irá acontecer de forma clara para arriscar uma previsão aqui pois um acontecimento desse influi em muita coisa. Mas baseando-se no princípio de que os recursos que surgem agora começam a destacar-se dos navegadores, essa é uma transição pré-anunciada com benefícios e deficiências (também).

Mas agora já é conteúdo para um outro post. ;)

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.

quinta-feira, 30 de agosto de 2007

Video Gmail


Para quem ainda não viu, vale a pena. O GMail compilou vários clips que eles receberam com o tema de "Como um email do GMail viaja pelo mundo" e montou este clip final.
Tem até gente fazendo a "dança do siri" é mole?

Veja mais em:
http://mail.google.com/mail/help/intl/pt_BR/gmail_video.html

Abaixo o clip original:

terça-feira, 28 de agosto de 2007

Ideas boas ficam...


Bom pessoal, embora a notícia da minha saída do empreendimento ZSolutions tenha ocorrido, acho que é importante e primordial que eu esclareça tão publicamente quanto foi o anúncio da minha entrada no mesmo, quais são os meus planos daqui para a frente.

VIDEO AULAS: Junto com o Ari, na época do início do plano ZSolutions, eu propus a ele um projeto de treinamentos online que inclusive foi anunciado aqui no Blog também. Por requisição do projeto acabei voltando-me mais ao projeto do hosting do que a finalizar essas video-aulas. Cumpri apenas com o que foi ofertado a poucos clientes que surgiram e acabaram por solicitar conteúdos personalizados. Porém há uma grande demanda, que ficou a todo momento solicitando que eu continuasse esse projeto e assim será.

CONSULTORIA & DESENVOLVIMENTO: Este é o trabalho com o qual estou envolvido há mais de 10 anos já e este jamais parou. Pois agora, com uma responsabilidade a menos (o Hosting ZSolutions), estarei me dedicando ainda mais. Dentro de alguns dias inclusive, estarei lançando um projeto pessoal, fruto de um estudo aqui no Blog. Trata-se de uma pequena ferramenta de Monitoramento & Alerta de Status de recursos web. Ele foi originado de uma necessidade apresentada pelo projeto do hosting, mas vou continuá-lo. Fora este projeto, que anunciarei aqui, estou envolvido em mais alguns e sempre disposto a atuar junto a projetos em andamento que necessitem de um profissional experiênte com o meu perfil.

TREINAMENTOS PARTICULARES: Por via do projeto de video-aulas, o as aulas particulares estarão por enquanto interrompidas. Porém, se houver necessidade de treinamento de equipes fechadas, solicito que os interessados entrem em contato comigo.

Bom, é isso! Intel+

ZSolutions



Abaixo, o email que acabo de postar aos clientes, parceiros e amigos à respeito da minha saída do empreendimento ZSolutions (na íntegra).



Prezados clientes, parceiros e amigos,

Muito obrigado pelo sucesso e atenção dedicados à mais esta frente de trabalho da qual participei com empenho e dedicação.

Felizmente mais uma vez levo comigo muito mais do que valores financeiros. Levo a certeza de ter me empenhado ao máximo e ter contribuído para o alcance dos objetivos.


Agradeço ao Ari e a Marta o convite e o aprendizado conseqüente.


No momento tenho que desligar-me por decidir seguir outros caminhos, novas oportunidades que surgiram e também por perceber que, tranqüilamente, não é mais necessária a minha presença para que se efetive o sucesso deste empreendimento que, repito, é muito necessário à comunidade à qual procurei promover os serviços da ZSolutions. Procurei valer desta oportunidade para apresentar um serviço adequado à esta necessidade e sinto que pelo tempo que participei do projeto, efetivei meu objetivo até os limites.

Bastante sorte e sucesso à ZSolutions, aos clientes e parceiros.


Afirmo mais uma vez que, certamente, seu crescimento e qualidade serão sempre ascendentes.


Estou, claro, como sempre, à disposição de qualquer interessado em maiores esclarecimentos, os quais me sinto na obrigação de ofertar caso seja questionado.

Atenciosamente,


Vicente Junior
macieljr@gmail.com
71-8120-0035
http://teclandoalto.blogspot.com

segunda-feira, 23 de julho de 2007

Tutoriais - Venda antecipada - 50% desconto


Seguindo o POST anterior, uma outra novidade.
Quem leu o POST a respeito do que estarei fazendo nas novas empreitadas, viu que um dos tópicos são treinamentos online. Só pra dar uma aguçada no pessoal, devo antecipar que esses treinamentos serão inéditos aqui no Brasil e serão oferecidos via Breeze (hj conhecido como Adobe Connect).

Então estou em fase de desenvolver os conteúdos. Os treinamentos disponibilizados inicialmente serão de ColdFusion, Actionscript 3.0, Flash e Flex. Depois virão outros treinamentos, inclusive de tecnologias que não são da Adobe.

Na tentativa de financiar este trabalho inicial, estarei promovendo a venda antecipada dos conteúdos, no formato de slides, textos e arquivos de exemplo, com 50% de desconto.

Os conteúdos, custos iniciais e suas respectivas datas previstas de entrega são:

1 - Flash intermediário - Prazo: 10/ago - Valor: R$150*
2 - ColdFusion intermediário - Prazo: 10/ago - Valor: R$300*
3 - Flex intermediário - Prazo: 25/ago - Valor: R$200*
4 - Actionscript 3 intermediário - Prazo: 25/ago - Valor: R$225*
5 - Flex Avançado - Prazo: 10/set - Valor: R$300*

*(estes são os valores com 50% de desconto, relativo aos valores previstos para os treinamentos online que serão disponibilizados via Breeze)

IMPORTANTE:
O prazo citado é para entrega DA ÚLTIMA PARTE do conteúdo que será disponibilizado conforme estiver pronto. Os conteúdos 1 e 2 começarão a estar disponíveis a partir do dia 26/jul. Os conteúdos 3 e 4 a partir do dia 13/ago. O conteúdo 5 a partir de 28/ago. Ou seja, o conteúdo mais breve já estará sendo entregue a partir de 3 dias e o mais tardio em aproximadamente 30 dias.

Vale citar que esta pacote NÃO inclui suporte. São materiais de estudo individual que prefiro chamar de tutoriais por este motivo.

Estaremos planejando descontos para quem quiser adquirir os treinamentos online, via Breeze, incluindo suporte, posteriormente. Certamente existirão. Só não posso confirmar ainda o montante, mas estarei confirmando isso ainda esta semana aqui no Blog.

Interessados, por favor entrem contato através do meu email: macieljr@gmail.com

Nova(s) empreitada(s) - Hosting, Consultoria, Suporte, Treinamentos online, etc.


Gostaría de anunciar aos que acompanham esse Blog, uma novidade interessante. Na verdade, mais um POST virá após esse, em decorrência desta novidade. Trata-se de uma nova empreitada para a qual fui convidado a participar e aceitei.

O Ari Zanuto, outro membro, assim como eu, da comunidade de desenvolvedores que adotam ferramentas da extinta Macromedia, que aliás conheço desde que trabalhava para a própria, realizou uma série de investimentos em servidores (hardware e software) e passou a oferecer serviços relacionados: Hosting, Suporte, Consultoria, Serviço de desenvolvimento e etc.
Ele achou conveniente me chamar. Como acabei de dizer, nos conhecemos de longa data. Neste período, tivemos problemas, tivemos sucessos pessoais em ações conjuntas, ele foi polêmico, eu fui polêmico, arrumei vários amigos, ele arrumou vários inimigos, depois ele arrumou vários amigos e eu vários inimigos... Enfim, tudo absolutamente normal para quem dá as caras no nosso meio. Topei a parada.

Assim, juntos estaremos trabalhando para fazer com que os objetivos se concretizem e se mantenham firmes. Todos sabemos que começar é fácil. Difícil é manter as coisas na direção e na ordem que não só os sonhos querem, mas sim que a realidade, e na verdade, a clientela vai exigir.

Estou nessa mais como um funcionário do Ari, é verdade, pois todo o investimento é dele e eu estou entrando mais com mão de obra, que aliás ele não está dispensando da parte dele também. O cara está trabalhando pesado.

Enfim... há muita coisa acontecendo.

Escrevi um POST para inaugurar o Blog que eu e ele estaremos tocando daqui por diante, falando justamente sobre as empreitadas. Veja aqui o anúncio: http://www.cfusion.com.br/coders-revolution/2007/07/ola.html

sábado, 21 de julho de 2007

Indicação de site:


Meu colega e ex-aluno Valfrido Junior (que ainda está sem site pois o está reformulando) me indicou este site que achei muito legal. Usa scripts simples, dos quais se acham exemplos por ai, mas que bem empregados produziram um efeito bastante interessante. Muito criativo!

http://www.leoburnett.ca/

sexta-feira, 13 de julho de 2007

YouTube AS3 API ColdFusion Proxy

Eu estava utilizando a biblioteca AS3 de acesso a API do YouTube desenvolvida pelo Mike Chambers, Daniel Dura e etc, para desenvolver uma aplicação de exemplo com o Flex 2.01 (ainda) e tudo rolou direitinho até a hora de colocar o "brinquedo" pra rodar online.

Essa biblioteca, foi escrita há muito tempo e durante esse período o YouTube fez a famosa e já tão comentada alteração no seu crossdomain.xml que causou a impossibilidade do Flash de fazer requests diretos à sua API. Para quem não sabe, pode ler a respeito aqui ou aqui, por exemplo...

A solução:
Criar um script server-side como proxy para as chamadas da API AS3. Assim, você configura o crossdomain.xml no seu domínio e tá tudo resolvido.

Na preguiça, meu primeiro passo foi procurar no Google pra ver se alguém já tinha escrito um em ColdFusion e disponibilizado. Não sei se não procurei direito mas não encontrei nenhum. Então, não teve outra saída. Criei o meu. E depois de ficar simplificando pra lá e pra cá, ví que apenas 4 linhas de código resolviam a questão:


  1. <cfhttp method="get" url="http://www.youtube.com/api2_rest?#CGI.QUERY_STRING#" charset="utf-8" result="data"/>

  2. <cfset xmlData = xmlParse(data.fileContent)/>

  3. <cfcontent type="text/xml; chatset=utf-8"/>

  4. <cfoutput>#toString(xmlData)#</cfoutput>



Depois é só mudar a referência à chamada da API do YouTube na Classe AS3 com.adobe.wepapis.youtube.YouTubeService.as:

De:

  1. public static var END_POINT:String = "http://www.youtube.com/api2_rest";



PARA:

  1. public static var END_POINT:String = "http://seuserver.com.br/Wrapper.cfm";



Isso basta! E espero que sirva para mais alguém.

Detalhe: A montagem da imagem que consta no início deste post, contém uma foto dos disquetes de instalação do ColdFusion 1.5. Eu estava procurando uma imagem com um logo interessante para ilustrar esse post, quando me deparei com ela e resolvi usar. Lembro de quando recebi estes 15 disquetes por correspondência para iniciar o uso desta tecnologia. Interessante depois de ter feito o Download da última versão Beta com mais de 310MB. Seriam hoje, aproximadamente 258 disquetes! Bom... pelo ao menos, o que evoluiu no tamanho, evoluiu também na qualidade e nos recursos. Já o custo, é bastante inferior ao da época dos disquetes. E pra causar polêmica: Muito mais barato inclusive do que muita opção free por aí! ;-)

terça-feira, 10 de julho de 2007

Interscriptável


Mais uma palavra para o nosso meio? Pode ser...
Essa palavra surgiu no meio de uma discussão técnica entre o Rafael Neri da BDG e eu quando discutíamos uma questão interessante a respeito de uma funcionalidade peculiar da nova geração do FlashPlayer (9 em diante) a respeito do AVM (Actionscript Virtual Machine) que o compõe.

Pelo fato de termos 3 versões do Actionscript (1, 2 e 3 ou AS1, AS2 e AS3), o AVM é ainda "dividido" em 2 versões. Temos o AVM1 que interpreta o código Actionscript 1 e 2, e o AVM2 que interpreta a mais recente versão, o Actionscript 3.

Como o termo surgiu?
Finalizando o projeto de re-escrita do site promocional da Preview, o OQueSeFazPorAi (http://www.oquesefazporai.com.br . O que está no ar ainda é a versão original escrita em AS2. Publicarei aqui o anúncio da nova versão quando esta estiver no ar.), esse assunto ficou bastante em pauta quanto tivemos a necessidade de carregar um Movie escrito em AS2, no novo Core que desenvolvemos para o site, todo escritp em AS3. Ocorre que na versão anterior do site, todo escrito em AS2, embora o Core fizesse o carregamento do Movie, o descarregamento (unload) era feito pelo próprio Movie carregado. além de operar outras instruções no própio Core.
Dado o fato do FlashPlayer ser constituído pelo AVM1 e AVM2, podemos em um filme AS3 carregar um filme AS2 ou AS1.
Como isso é feito?
O AVM2 possui uma classe interna chamada justamente AVM1Movie sob a qual o filme AS1 ou AS2 carregado é instanciado, permitindo assim um controle básico e portanto muito limitado deste. Essa classe é constituída basicamente pelas propriedades (limitadas) da Classe MovieClip, a qual óbviamente ele extende, limitando-se também a não possuir nenhum método nem tão pouco acesso aos elementos que fazem parte deste Movie AVM1 carregado.

Daí o surgimento do termo INTERSCRIPTÁVEL!

Em nossa discussão técnica, tive que explicar ao Rafael que um dos procedimentos que teríamos que adotar no desenvolvimento da nossa solução, dava-se pelo fato de que o Core que desenvolvemos não era INTERSCRIPTÁVEL com o Movie escrito em AS2.
Portanto, nossa solução sería re-coordenar o controle dos itens antes controlados no Core, por parte do Movie carregado, para que esse controle fosse todo feito por parte do próprio Core, ou re-escrever todo o Movie geralmente escrito em AS2, traduzindo-o para AS3.

Por questões de prazo, a escolha foi por fazer pequenas alterações no Movie AS2, permitindo e transferindo todo o controle de interações para o Core em AS3.

Está aí a explicação para o termo INTERSCRIPTÁVEL!

Se a galera do AURÉLIO, MICHAELIS e outros dicionários precisarem de uma ajuda (à ser melhorada, claro), aí vai:

Interscriptável: Capacidade de um script (relativo a mini-programas escritos em determinadas linguagens. Ex: Actionscript, Javascript, etc) operar cooperativamente, ou ainda em conjunto, com outro script, da mesma linguagem e versão ou não.

quarta-feira, 13 de junho de 2007

Formas de autenticação. Existe forma segura? Para quem?


Estava lendo o seguinte artigo da COMPUTERWORLD (edição brasileira no UOL): Além da senha: cinco novas formas de autenticação.

Então comecei a refletir sobre o assunto e cheguei a algumas conclusões que me levaram a colocar um comentário na área sugestiva para isso da matéria.

Meu comentário foi o seguinte:

Ainda não me convenci!
O que mais me assusta é o fato de que em todas essas novas formas de autenticação, as pessoas estão colocando cada vez mais informações particulares e pessoais nos bancos de dados de alguém que as poderá usar de forma comercial. Seja para traçar perfis étinicos, comportamentais e etc ou mesmo para fins prejudiciais. Além do fato de que estamos confiando a alguém a proteção dessas informações, e não há ainda legislação competente capaz exigir tal responsabilidade, ainda mais no Brasil.
No final das contas vejo que quem se protege é apenas o autenticador, enquanto o autenticado torna-se cada vez mais vulnerável. A verdade é: segurança eletrônica é um mito.
Faça também seu comentário aqui no blog ou na matéria da revista.

terça-feira, 12 de junho de 2007

Safari agora também para Windows


ADOREI!
Tomara que repita o sucesso do iTunes! Pena que pelos testes que eu já fiz, ao menos esse Beta pra Windows já vai causar mais um pouquinho de dor de cabeça aos Tableless developers em adição às dores já causadas por IE6/7 e Firefox. Hahaha!

Disponível como um Beta público, também para Windows, o browser da Apple.
O Safari é baseado no browser engine WebKit (open-source) que aliás é também a solução utilizada pela Adobe para disponibilizar o recurso de renderização de HTML+Javascript como componente do AIR (antes Apollo).
A Adobe hoje colabora com o source do próprio WebKit.

Encontro de Cultura Colabortiva


Indicação da colega e astróloga Isolda Thábola
Infelizmente não poderei comparecer, mas gostaría muito de participar e por isso indico a quem estiver disponível.

Sobre o evento:
Abertura:
12 de junho de 2007
SESC Casa do Comércio
Av. Tancredo Neves, 1109 - Pituba
Salvador/BA
15h

O Encontro de Cultura Colaborativa surgiu da articulação de uma rede de ações que envolvem, de uma parte, iniciativas de inclusão digital do governo federal, como o Casa Brasil e o Cultura Digital e, de outra parte, programas de inclusão digital estaduais, tendo como parceiras a Secretaria de Cultura do Estado da Bahia – Secult e a Secretaria de Ciência, Tecnologia e Inovação do Estado da Bahia – Secti.

O Casa Brasil e o Cultura Viva têm como objetivo oferecer subsídios à constituição de uma política pública de inclusão cultural e social, por meio da inclusão digital, soma-se a isso o interesse do Estado da Bahia em aproximar-se dessas iniciativas do governo federal, por meio da Secult e da Secti.

Mais detalhes no site oficial do evento.

Exemplo: Aplicação AIR com Banco de dados (SQLite) incorporado


Vale a pena conferir:
blog.everythingflex.com

ATENÇÃO:
Lembre-se que para rodar esta aplicação você precisa instalar o AIR Beta. (Veja sobre o lançamento aqui)
Se você já havia instalado o Apollo (fase Alpha do AIR), preste atenção aos detalhes da migração para o AIR.

Vale citar que este "trabalho" com o upgrade da versão Alpha (Apollo) para AIR (Beta) deve-se justamente a essa fase de elaboração do sistema e isso obviamente não se repetirá em upgrades da versão final do produto.

Flex 3 Beta disponível


É! A semana é de boas novidades!
O Flex 3 Beta já está disponível no Adobe Labs e repleto de recursos interessantíssimos para que sua disseminação seja ainda mais rápida do que já é promovida com o anúncio da sua recente mudança de licença para Open Source.

Novidades:

  • Suporte Nativo ao AIR (antes Apollo - leia sobre lançamento aqui no blog)
  • Cache de framework – Citarei detalhes em outro post. Mas o importante é saber que isto permitirá você fazer aplicações inteiras com aproximadamente 50k de peso do arquivo.
  • Melhorias de produtividade no Flex Builder – Suporte a re-factoring, novos perfis para melhoria de ajuste de performance e geração de código de acesso a dados.
  • Integração com o pacote CS3 – O Flex Component Kit para Flash CS3 permite a utilização do Flash CS3 tanto para o desenvolvimento pleno de aplicações diretamente neste IDE, como a utilização do mesmo para o desenvolvimento de componentes para o Flex. Além disso, recursos de importação de skins estão implementados para integração com outros softwares como o Fireworks CS3.
  • DataGrid Avançado – O Advanced DataGrid é um novo componente, com recursos a visualização hierárquica de dados, dentre outros recursos.
Veja mais, e baixe o Beta no Adobe Labs.

Apollo agora é AIR (Adobe Integrated Runtime)


Finalmente a resposta para a extensão dos arquivos que estávamos criando para o Apollo. AIR = Adobe Integrated Runtime.
Apollo foi o nome utilizado pela Adobe até aqui, durante a fase Alpha do AIR que agora está na fase Beta, trazendo de imediato os seguintes recursos adicionais em relação ao que exploramos em sua fase anterior:

  • Support for PDF (Reader 8.1 must be installed)
  • Dramatically improved runtime and application install experience
  • Embedded local database (using SQLite)
  • Drag'n'drop and clipboard support
  • Numerous HTML support and hosting API improvements, including support for transparent HTML windows
  • Initial implementation of code signing for AIR applications
  • Server/service connectivity API
  • Native menuing API on Mac
  • Native file pickers/browsers
  • Basic runtime update support
  • Initial implementation of file type registration by AIR applications
  • Improvements to windowing API
  • Support for default network options
  • Security model improvements, including Doors API for communicating between high and low privilege Flash content
Mudanças na API:
  • File.currentDirectory has been removed. Developers should use InvokeEvent.currentDirectory instead
  • File.appResourceDirectory has been changed to File.applicationResourceDirectory
  • File.appStorageDirectory has been changed to File.applicationStorageDirectory
Visite o Adobe Labs.

Treinamentos ColdFusion 7 Básico e Avançado


Estarei ministrando treinamentos de ColdFusion (Introdução ao desenvolvimento de aplicações com CFML / Essencial - 11 a 15 de junho e Desenvolvimento Avançado com CFML - de 18 a 22 de junho) em Salvador.
Fui convidado pela iMedia a realizar estes treinamentos, seguindo o currículum oficial da Adobe com os títulos Fast Track to ColdFusion e Advanced ColdFusion Development. Trata-se de um treinamento diferenciado em relação aos treinamentos particulares voltados a empresas e profissionais da área, que tenho ministrado, onde o conteúdo é personalizado conforme cada necessidade.
Solicito que os participantes deste treinamento, apresentem-se através de comentários neste post e na conclusão do mesmo coloquem sua avaliação com identificação pessoal opcional. A idéia é a de que sejam o mais sinceros possíveis em relação aos seus pareceres.