Melhore seu jQuery-fu, escreva plugins
Posted by Dirceu | Filed under jquery, plugin, javascript, traducao, tutorial, uncategorized
Essa é uma tradução de "Improve your jQuery-fu, write plugins" de Tomáš Kramár Trnava.
Escolhi traduzir esse texto pois ele foi o tutorial mais simples que encontrei quando precisei escrever um plugin. No final dele você será capaz de entender como o jQuery trabalha com plugins e poderá escrever os seus próprios.
jQuery é um framework JavaScript simples e poderoso que mudou minha forma de programar JavaScript. Um novo JavaScript dizem alguns com certa razão. O código que você cria é pura elegância.
Você começa com 10 linhas de jQuery que poderiam ter sido 20 linhas do tedioso JavaScript manipulando DOM. No final você acaba ficando com duas ou três linhas.
E esse numero pode ficar ainda menor se você refatorar o código para um plugin do jQuery.
Quando o assunto é escrever plugins, pessoas (tipo eu) normalmente pulam fora com medo. Eu ouvi sobre plugins de jQuery a bastante tempo mas nunca havia tentado escrever um. Quando pensava no assunto algumas idéias vinham na minha cabeça:
- Deve ser difícil e por isso deixe isso somente para jedis
- Isso deve precisar de um conhecimento profundo do jQuery
- O que eu vou ganhar ...
ORC e Redes Neurais em JavaScript
Posted by Dirceu | Filed under html-5, javascript, rede-neural, getimagedata, captcha, traducao, ocr, uncategorized
Esse texto é uma tradução do "OCR and Neural Nets in JavaScript" escrito por John Resig.
Um belo pedaço de JavaScript foi criado ontem. É um script para GreaseMonkey escrito por 'Shaun Friedle' que resolve automaticamente o captcha do Megaupload. Existe uma demonstração online caso você queira dar uma olhada.
Atualmente os captchas usados no Megaupload não são muito "difíceis" de resolver (de fato eles são muito ruins - exemplos abaixo).



Existem porém pontos interessantes aqui:
- A API getImageData do HTML 5 é usada para pegar informações sobre os pixels da imagem. No HTML 5 é permitido adicionar uma imagem no elemento canvas (de onde então pose-se extrair informações sobre cada pixel usando JavaScript).
- O script implementa uma rede neural, escrita em puro JavaScript.
- As informações do pixel, extraídas da imagem usando canvas, são jogadas dentro da rede neural em uma tentativa de adivinhar o caractere usado - algo parecido com Optical Character Recognition (OCR).
Se abrirmos o código fonte podemos perceber que o funcionamento recai em como o captcha é implementado. Como mencionado anteriormente esse não é um captcha muito bom. Ele tem 3 letras, cada uma em uma cor diferente ...
Aplicação simples com Sinatra
Posted by Dirceu | Filed under sinatra, programacao, traducao, novas-ferramentas, ruby, uncategorized
* Esse artigo é baseado em Sinatra Tutorial. A good starting point por Ari Lerner. Você pode encontrar outras informações no RubyForge (Sinatra)
Sinatra é um framework para linguagem Ruby extremamente leve. Ele roda tendo como base o servidor Mongrel, servindo com muita rapidez as requisições.
Por não ter a extensa biblioteca de "helpers" que o Rails tem e também por não seguir a linha MVC de Rails e Merb, o seu uso não é indicado em grandes aplicações.
Com foco em Web Services e pequenos aplicativos, Sinatra é uma ótima solução para rodar pequenas aplicações desenvolvidas em Ruby com muita eficiência.
O propósito do artigo é ser um guia de inicio para quem quer aprender mais sobre o framework, para isso vamos desenvolver um pequeno "own-microblog"...
Eu vou supor que você já tem conhecimento nessa linguagem e que a ferramenta gem não seja desconhecida. Então vamos começar instalando o gem do Sinatra:
Uma vez que o Sinatra deixa aberta a opção de escolher um ORM (activerecord, DBI, DataMapper...) você precisa ter também o gem de um deles instalado. Minha opção aqui é pelo Sequel:
Vamos agora cuidar da base ...
!--more-->Sem dor de cabeça: Arquivos de localização
Posted by Dirceu | Filed under localizacao, traducao, php, arquivo-po
Trabalhar com novas ferramentas, aceitando qualquer desafio não importando a tecnologia utilizada (leia-se linguagem de programação, framework ou sistema operacional) é motivador. A busca pelo "sempre novo" nos ensina paradigmas diferentes, soluções novas e ainda mantém distante aquele tédio que acaba surgindo quando você já tem certa experiência em alguma tecnologia (afinal, quase tudo por aqui se resume a "cadastros e mais cadastros").
Que o caminho do aprendizado é duro (haha) todos nós sabemos, porém as vezes ele te cobra muito mais do que devia. Isso depende principalmente da quantidade de informação disponível sobre o assunto e sobre os problemas específicos que você está enfrentando.
Para evitar suicídios ou dores de cabeça que possam ser causados pela "falta de experiência" é que vou relatar aqui os problemas que tive essa semana para fazer uma simples tradução em uma interface em PHP. Alias, quem sabe essa de relatar os problemas no aprendizado vira habito e começo fazer artigos "For Dummies" (ok, dummie não - inexperiente) né?
Pule direto para as dicas matadoras ou
Enjoy (geeks only - ao contrário leia bem as referências, principalmente ao Wikipédia ...