terça-feira, 26 de agosto de 2008

VEOH Contra os Brazucas! =/

Não tinha percebido ainda a lei seca do VEOH.com ... =(
"Foi brasileiro pode vetar!"


Estou começando a achar que a teoria de que os brasileiros são a praga da internet é verdadeira.

vlw!

domingo, 24 de agosto de 2008

Desambiguar rotas no Rails com plural irregular!

Recentemente em um projeto precisei criar um scaffold baseado em um modelo chamado NEWS, e simplesmente ao criar as rotas REST o Rails começou a se atrapalhar pois no plural e singular NEWS é NEWS.

Pois bem, ao procurar sobre o assunto vi que uma das soluções é passar o parâmetro indicando o singular escolhido pelo próprio usuário, para isso no arquivo de rotas coloquei:



map.resources :news, :singular => :item_news


E pronto! Problema resolvido.

Hahh... vale lembrar que com o comando rake routes é possível ver todas as rotas mapeadas pelo Rails.


Outra coisa... se não me engano também é possível resolver esse problema configurando o arquivo de inflexões localizado em rails_app/config/initializers/inflections.rb , mas isso não testei.

Por favor, se existirem outras soluções comentem aqui! ;)

vlw!

sexta-feira, 22 de agosto de 2008

e-TextEditor no Linux! Agora vai!

Já dizia o velho ditado: "Quem não tem cão caça com gato!"

Foi o que eu fiz ao migrar definitivamente para o Linux.

Assim que comecei a configurar o linux para que eu pudesse continuar desenvolvendo em Rails me esbarrei na dificuldade de utilizar o gEdit, não por conta de naõ ter conseguido instalar os plugins (que por acaso instalei e deram todos certos), mas o detalhe foi que todos os atalhos e bundles que eu utilizava no e-TextEditor (sim, eu tenho a licença dele) simplesmente não tem a mesma combinação de teclas quando utilizados no gEdit.

Nessa situação eu tinha duas opções, ou aprender todos os novos atalhos e bundles do gEdit (o que não achei muito interessante) ou simplesmente voltar para o Windows já que não existe e-TextEditor para o Linux. Das duas opções escolhi uma terceira... :D rodar o e-TextEditor dentro do próprio Linux.

Para isso é possível tentar rodar ele via WINE, o que não me interessou muito por ver que algumas versões não funcionaram e também porque o e-TextEditor tem atualizações constantes. Sobrou apenas aproveitar o bom e velho VirtualBox e utilizá-lo.

Como a idéia é desenvolver no Linux não adiantaria nada rodar tudo dentro do VirtualBox, então o que eu precisava era apenas o editor, e foi isso que eu fiz. Compartilhei e fiz o mapeamento de da pasta do projeto no Linux, e através do VirtualBox abri meu projeto que está também no Linux, pronto! :D


Estou usando já a 1 semana e não tive nenhum problema.

vlw!

sábado, 16 de agosto de 2008

Rails + Flickr = Flickr_fu!

Esses dias andei testando o funcionamento do Rails + Flickr, pra isso procurei um plugin que fizesse o serviço pesado. Ao ir direto no site do Flickr e procurando sobre sua API podemos ver que eles indicam 3 plugins, flickr-ruby, flickr e rflickr.

O detalhe é que todos eles estão desatualizados, sendo que o rflickr parece ser o mais utilizado pelo pessoal conforme pode-se notar aqui.

Fiz alguns testes tanto com o flickr e rflickr, sendo que em nenhum dos casos consegui fazer o que eu queria, até porque parece que por estarem desatualizados a documentação não bate com o funcionamento real, não sei, pode ter sido "berozice" minha, mas, enfim, acabei ficando de saco cheio e resolvi dar mais uma passeada na net antes de partir pra ignorância e fazer tudo na mão grande.

Com um pouco mais de pesquisa acabei encontrando um outro plugin chamado Flickr_Fu desenvolvido por Ben Wyrosdick que me apreceu bem atualizado e como vocês podem ver ele está hospedado no GitHub, o que prova que seu criador está antenado. =P


Bem, dando continuidade fui testá-lo e então resolvi fazer esse post com o procedimento para usá-lo de forma simples pois não encontrei muita coisa falando sobre ele, apenas esse post que por acaso já ajuda bastante.

Mãos à obra!

Primeiro passo, instalar o plugin: ( gem install flickt-fu ). Note que é instalada uma gem dependende xml-simple se não me engano.

Segundo passo, pegar sua KEY do Flick, ou seja com essa chave você poderá ter acesso ao Flickr através de sua API. Ahhh.. antes que eu esqueça, quando for solicitar a chave dê preferência a pedir uma chave NÃO COMERCIAL para fazer seus testes, pois a chave do tipo comercial pode levar meses pra ser liberada, a minha por exemplo demorou 4 meses pra chegar o_O.

Terceiro passo, crie um arquivo com extensão YML (YAML) e salve em um diretório do seu projeto. Por padrão criamos dentro da pasta /config e se salva como flickr.yml

Quarto passo, insira dentro do arquivo flickr.yml o seguinte conteúdo:



key: SUA_KEY_FLICKR
secret: SEU_SECRET_FLICKR
token_cache: token.yml


Ou seja, insira a chave que você pegou no Flickr e o segredo também, os dois são informados quando você cria a KEY. Observe a terceira linha, ela informa qual o arquivo que você vai utilizar para guardar o token que será fornecido ao se estabelecer a conexão com o Flickr.

Quinto passo, crie um controller no seu projeto Rails ( script/generate controller FlickrTest ).

Sexto passo, no seu controller utilize esse código:



require 'flickr_fu'

before_filter :connect

def get_photos
@photos = @flickr_account.photos.search(:user_id => SUA_ID_FLICKR, 'per_page' => 200, 'page' => 1)
end

def get_url
render :text => @flickr_account.auth.url(:write)
end

def get_token
@flickr_account.auth.cache_token
end

def connect
@flickr_account = Flickr.new("#{RAILS_ROOT}/config/flickr.yml")
end


Antes de continuar pegue o seu ID Flickr, que pode ser conseguido facilmente através desse site.

A explicação do código acima é a seguinte:

1 - Carregamos a biblioteca Flickr_fu

2 - Antes de rodar qualquer action instanciamos a classe Flickr e disponibilizamos na variável @flickr_account

3 - A action get_photos irá retornar todas as 200 primeiras fotos públicas que estão na sua conta Flickr. Observe que aqui já temos acesso às fotos públicas de qualquer usuário Flickr, bastando para isso apenas trocar o ID do usuário.

Agora vem a parte boa...

4 - A action get_url vai mostrar na tela um link que deve ser acessado para que sua conta Flickr autorize o sistema a trabalhar com as fotos, inclusive as privadas. Observe o símbolo :write, ele informa ao Flickr que você espera uma autorização de escrita, em outras palavras, você poderá fazer upload de fotos direto do seu sistema, pesquisar fotos restritas, adiconar comentários, tags e fazer qualquer alterção que faria direto no flickr. Verifique a documentação do plugin para outros tipos de acesso, por exemplo :read.

5 - Por último, a action get_token armazena no arquivo token.yml a permissão de acesso ao site (verifique que é criado um arquivo token.yml na raiz do seu projeto), ou seja, após rodar essa action não será mais necessário pedir autorização da sua conta para que o sistema possa acessá-lo irrestritamente.

Daí pra frente é só ler a documentação e usar!

Bem, dúvidas sugestões ou qualquer comentário é bem vindo.

Abraço!


UPDATE 18/02/2009

O flickr-fu agora está hospedado no github (http://github.com/commonthread/flickr_fu/tree/master)

Lembre-se de se for o caso adicionar o source git na sua lista:

gem sources -a http://gems.github.com

Depois você pode fazer uma procura por "flickr_fu"...

sudo gem search flickr_fu --remote

quarta-feira, 13 de agosto de 2008

Rails for Dummies 04

Entenda como funcionam os Helpers no Rails!

No desenvolvimento de aplicações Rails é comun a utilização de Helpers. A definição/explicação que a prória documentação traz é a seguinte:

"Helpers are modules whose methods may be used in a view. If you find yourself putting a lot of code in a view, think of writing a helper to handle that code, where it can be better managed and reused."

"Helpers são módulos cujo métodos podem ser usados em uma view. Se você se encontrar colocando muito código em uma view, pense em escrever um helper para carregar o código, isso pode o tornar melhor gerenciado e reusável."

Ou seja, Helpers de uma forma ou de outra tem a finalidade de "reduzir/simplificar" a quantidade de código Ruby que vai ficar em uma view, deixando-a mais limpa.

Nesse caso, devemos ter em mente que existem pelo menos 2 tipos de Helpers, o Helper dado pelo próprio Rails (e que podem ser alterados pelo usuário) e os Helpers que podem ser criados pelos usuários.

Para aprender mais sobre o que são, e como utilizar, é interessante dar uma olhada nos links a seguir:

1 - O que são Helpers
2 - Entendendo os Helpers
3 - Como trabalhar com Helpers

Um bom entendimento dos Helpers trará grandes benefícios à aplicação desenvolvida.

Abraço!

sexta-feira, 8 de agosto de 2008

Paulo Afonso + e-Gov = Notícia muito boa!

Ontem fiquei sabendo que a Prefeitura Municipal de Paulo Afonso foi classificada, com o projeto Paulo Afonso Digital, para participar do prêmio e-Gov. Esse prêmio tem como objetivo reconhecer e incentivar o desenvolvimento de projetos e soluções voltadas para o governo eletrônico nas administrações públicas federais, estaduais e municipais.


A premiação ocorrerá no Seminário Nacional de TIC na Gestão Publica em Palmas -TO.

O mais interessante é quando observamos que esse projeto foi o único representante da Bahia, concorrendo de igual para igual com estados e prefeituras de SP, SC, RS.

É notório que nos últimos anos a prefeitura vem investindo pesado em tecnologia aqui na região, e essa classificação é um reconhecimento desse esforço.

É claro que isso não é tudo, mas já é um bom começo, afinal estamos no meio do sertão, mas espero siceramente que não só essa mas futuras gestões continuem investindo nesse sentido pois quem ganha mais com tudo isso é o cidadão.

Parabéns a todos que fazem parte desse projeto, e que venha o "Oscar" do e-Gov brasileiro!

terça-feira, 5 de agosto de 2008

Will_Paginate com AJAX no Rails!

Recentemente precisei utilizar o famoso plugin will_paginate em um pequeno projeto que estou desenvolvento, até aí tudo normal, o pequeno detalhe é que precisei utilizar ele com AJAX.

Depois de dar uma xeretada na Net ví que existem diversas soluções, sendo que a mais cômoda e simples que achei foi essa.


Fica a dica então pra quem está precisando dessa solução e não quer refazer a roda.


----------------
Now playing: P.O.D - God Forbid ( featuring Page Hamilton )
via FoxyTunes

domingo, 3 de agosto de 2008

Rails Summit 2008, quem vai?

Recentemente foram abertas as inscrições do que será o maior evento envolvendo Rails na América Latina. Eu particularmente estou me coçando pra ir, mas infeli$mente parece que não vai dar certo.

Uma saída seria pedir a empresa pra ir, mas como ela não utiliza essa tecnologia vai ser bem difícil convencer que o evento é válido. Esse é o problema de morar no interior da Bahia, longe dos grandes centros. =/


Rails Summit Latin America

Bem, espero que daqui pra lá apareça alguma oportunidade pra que eu compareça, ou ainda, se algum bom samaritano quiser patrocinar estou à disposição. :D


sexta-feira, 1 de agosto de 2008

RPC Fault faultString="Security error accessing url" - Usando FLEX e RAILS

Esses dias vi um problema comum tornar-se um tormento para um colega.

Ele tinha feito um projeto Rails + Flex e colocou em produção. Mais adiante queria hospedar o .SWF da aplicação Flex em um outro servidor, foi aí que começou a dor de cabeça dele.

Ao colocar a aplicação Flex em outro servidor o Flex começou a retornar o seguinte erro:

[RPC Fault faultString="Security error accessing url"
faultCode="Channel.Security.Error"
faultDetail="Destination: DefaultHTTP"]
at mx.rpc::AbstractInvoker/http://www.adobe.com/
2006/flex/mx/internal::faultHandler()
at mx.rpc::Responder/fault()
at mx.rpc::AsyncRequest/fault()

Depois de alguma pesquisa na net ele verificou que deveria criar um arquivo "crossdomain.xml" (como mostrado abaixo) e colocá-lo na raiz do servidor.


<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*"/>
</cross-domain-policy>


Pois bem, ele fez, colocou e PLIM! Continuou dando problemas.

Resumindo a história, depois de apanhar muito ele descobriu que o arquivo deveria ser colocado dentro da pasta "/public" do Rails e não na pasta propriamente dita raiz do servidor. =/

É claro que isso é uma besteira, mas, assim como ele, pode ter gente ainda quebrando a cabeça por conta disso.

É isso!

Abraço!

----------------
Now playing: P.O.D - Shine With Me
via FoxyTunes