Wednesday, August 5, 2009

Vai um corretor gramatical onipresente no browser?


Que tal verificar a gramática de seus textos numa combinação de comandos do Firefox Ubiquity, independente do contexto da navegação? É o que propõe o comando "gramática" que pode ser assinado no seu Firefox Ubiquity através do link http://apoema.net/langbot/pt_BR/gc.lb

Com este comando você consegue verificar e corrigir erros gramaticais - como mau uso da crase, regência e concordância - ao escrever e-mails, documentos no Google Docs, posts em fóruns, blogs, twitter... enfim, qualquer contexto! A funcionalidade está disponível em diversos idiomas, como português, inglês e espanhol. A análise gramatical é feita remotamente usando a técnologia do CoGrOO, para a língua portuguesa, e o LanguageTool para os demais idiomas.

Confira mais no blog do autor.

Wednesday, July 29, 2009

Você já conhece o Firefox Ubiquity?

A palavra Ubiquity remete a onipresença, que é a capacidade de estar em todos os lugares ao mesmo tempo. A definição da palavra reflete bem o que esta nova extensão do Firefox propõe - disponibilizar, em qualquer contexto na navegação, ferramentas úteis, acessíveis por uma simples combinação de teclas e um comando em linguagem natural, humana.

Não consegue imaginar do que está extensão é capaz? Que tal um exemplo?

Imagine que hoje você pretende convidar um amigo para visitar uma exposição no museu que você acabou de encontrar navegando na web pelo Firefox. Que tal enviar a ele um e-mail com um link para o site?

Simples - Abra o Ubiquity (CTRL + ESPAÇO) e digite "e-mail Vamos visitar esta exposição hoje? à Bruno Sant" e enter! Pronto! Você nem precisou completar o nome do remetente, o Ubiquity buscou o nome do seu amigo nos contatos do Gmail. Ao apertar Enter o Ubiquity gera o e-mail para você.


Digamos ainda que você queira indicar ao seu amigo o endereço do museu onde a exposição está acontecendo. Você copia e cola o endereço no corpo do e-mail. Mas como você é legal ainda inclui um mapa dos arredores.

Veja como é simples - selecione o texto no e-mail com o endereço, abra o Ubiquity e digite "mapa". O Ubiquity busca o endereço no Google Maps, você ajusta o mapa e insere no corpo do e-mail.



E ainda você pode surpreender seu amigo, fã da cultura oriental, arriscando uma frase em japonês. Trabalhoso? Que nada! Selecione a frase "Vamos ao Museu?" que está no corpo do e-mail e chame o comando traduzir: "traduzir de Portuguese à Japanese". (na versão que testei os idiomas ainda não estavam traduzidos). Depois de todo esse "trabalho" seu amigo terá que aceitar o convite!


Ele aceitou o convite? Agora você tem um novo compromisso - que tal adicionar à agenda? Basta abrir o Ubiquity e digitar "adicionar ao Google Ca 14h visita ao museu"


Claro que o Ubiquity não agrega apenas serviços do Google - basta abrir o Ubiquity e digitar "listar comandos do Ubiquity" para ter a lista de todos os comandos assinados.
Alguns comandos disponíveis na instalação padrão -

Comandos de busca:
Busca - Busca usando seus mecanismos de busca instalados
Google - Faz uma busca no Google.
wikipedia - Busca na Wikipedia.
imdb - Busca no IMDB (www.imdb.com) o filme ou ator desejado.

E ainda Yahoo, Amazon, Youtube etc

Comandos relacionados a redes sociais:
twitter - Posta uma mensagem de até 160 caracteres no Twitter.
digg - Envia página para o Digg. Se ela já existir no Digg, abre a entrada correspondente.
tinyurl - Substitui a URL selecionada com uma url curta.
compartilhar no delicious - Compartilha a página atual como um Favorito no delicious.com

E muitos outros!

Instalando o Ubiquity 0.5.1 (ou melhor)

Ele possui um novo interpretador de comandos que suporta internacionalização - você executa comandos no seu idioma. Português foi um dos primeiros idiomas suportados.
Para instalar é simples. Visite o site http://ubiquity.mozilla.com/ e clique no banner verde. Uma mensagem será exibida na parte superior do navegador, perguntando se deseja proseguir. Basta aceitar e seguir as instruções.


Para configurar o idioma do interpretador de comandos abra o configurador do Ubiquity e na aba Settings siga até o Language Settings. Configure para o idioma de sua preferência.


Assinando comandos criados pela comunidade

A incrível abordagem adotada pelo Ubiquity de iteragir com o usuário tem empolgado desenvolvedores de software livre, e já existem disponíveis diversos novos comandos.

Um lugar para buscar comandos é a página https://wiki.mozilla.org/Labs/Ubiquity/Commands_In_The_Wild, e em breve estará disponível um diretório público chamado Ubiquity Herd: https://ubiquity.mozilla.com/herd/.
Comandos são assinados, e não adicionados. Isto porque quando um desenvolvedor resolve atualizar o comando os assinantes são atualizados automaticamente. Isto é bom para desenvolvedores e também é bom para usuários, mas implica em um problema de segurança que explicarei mais para frente, por isso a atualização automática é opcional.

Vamos assinar um comando? Que tal o screengrab? Este comando é capaz de "tirar uma foto" da página corrente e guardar na área de transferência.

Primeiro visitamos a página do comando: http://www.watersheep.org/~markh/screengrab.html. Assim que abrirmos a página uma mensagem será exibida na parte superior do navegador:



Esta mensagem significa em uma tradução livre: "Esta página contém comandos do Ubiquity. Caso você queira assinar estes comandos, clique no botão à direita". Ao clicar neste botão, uma mensagem de aviso será exibida na sua tela:



A tela seguinte assusta o usuário, ela tem como objetivo alertar que comandos do Ubiquity tem acesso aos recursos de seu navegador e pessoas mal intencionadas podem criar comandos com código malicioso para roubar suas senhas ou seu número de cartão de crédito. Comandos do Ubiquity devem ser instalados de fontes seguras das quais se tem plena confiança. Lembre que o comando pode ser atualizado automaticamente, isto implica que ele pode se tornar malicioso depois de você já ter verificado o código.

Ao aceitar ("I know what I'm doing. Subscribe to it!"), você tem o comando assinado e pronto para uso.

NOTA: A equipe do Ubiquity ponderou e optou pela funcionalidade em detrimento da segurança ao implementar o plug-in. Quando o Ubiquity Heard estiver pronto será mais fácil, pois os comandos serão avaliados pelos usuários e ganharão notas quanto sua confiabilidade. Por hora use comandos terceiros com cuitado ;)

Pronto temos o screengrab instalado. Vamos testar - digamos que você navegava pela Internet e encontra um site com uma imagem do BigLinux. Você decide mandar para seu amigo a tela. É simples! Abra o Ubiquity e digite "screengrab" para copiar uma imagem do site para a área de transferência, em seguida use o comando "email à Bruno Sant O BigLinux no Wikipedia Commons!" para gerar um e-mail. Finalmente cole a imagem no corpo do e-mail:


Espero que se divirta com o Ubiquity. Em breve volto com a analise de mais comandos já disponibilizados pela comunidade!

Agradeço ao Bruno Sant'Anna pela colaboração na confecção deste post.

Sunday, June 21, 2009

CoGrOO Banner for FISL 2009

Getting ready for my presentation at FISL. Now I have only 3 days. I'm planning to talk about the following:

Corretor Gramatical CoGrOO - Além da correção ortográfica nos editores de textos livres (CoGrOO Grammar Checker - Beyond spell checking in free text editors)
  • Sobre o projeto (About the project)Além da correção ortográfica (Beyond spell checking...)
  • Como funciona o CoGrOO (How does CoGrOO works)
  • Demonstração / Módulos (Demonstrations of the modules)
  • O CoGrOO 3.1 e o CoGrOO 3.2 (What to expect from future versions 3.1 and 3.2)
  • Como fazer o melhor corretor gramatical (How can we do the best grammar checker)O papel da comunidade (The role of community)
  • Além da correção gramatical (Beyond grammar checking...)
  • Conclusões (Conclusion)
Of course I prepared the CoGrOO shirt, now with long sleeve because it will be winter and FISL will be at Rio Grande do Sul.

Tuesday, April 8, 2008

Keep your copyright/license headers updated with a nice maven2 plug-in

Isn't it boring to keep the copyright/licenses headers of your code updated?
I just found a nice Maven2 plug-in that can do the job for you. It scans your code for file types like .java, .xml., .xsd, .ssh, .sql and many others and add the header formatted according to the file type.
There are many configurations available but the defaults for me were OK. I just had to create a file with the text of my license header and change my pom.
The plug-in site is: http://code.google.com/p/maven-license-plugin/
If you want my pom as sample, you can see it here, just search for "START: LICENSE PLUGIN"

Monday, April 7, 2008

Maven2 for Eclipse

Plug-in: http://m2eclipse.codehaus.org/

This plug-in for Eclipse can help you handle Maven2 projects. I'm new to it and I don't know what it can do.


Maven2 has a plug-in that creates Eclipse projects for your. Using a command prompt, go to the folder that contains your pom and execute "mvn eclipse:eclipse".
Note that the project structure of Maven is not straight compatible to the Eclipse project structure. If you have to checkout a project with one or more Eclipse sub-projects, for each Eclipse sub-project you should import it as an "Existing Projects into Workspace" using the Package Explorer.

Wednesday, April 2, 2008

The virtuous circle of free licenses for open source developers

Companies that use open source libraries and tools should give free licenses for the development of open source projects. Example: I use Jude Community a lot, it is a pretty good program, but some nice features are available only in the Professional version. This UML modeling software is very useful for open source developers that can't afford paying for the professional version. By doing that, the company that develop Jude would start a virtuous circle: 1. open source developers can use the full featured Jude UML modeling; 2. the open source libraries and tools have their quality improved; 3. Jude UML will be able to use higher quality libraries and tools and improve its own quality; 4. open source developer can use a better Jude UML software to develop their libraries and tools...