{ Wilker-Dev: Blog }
June 1, 2010

Basic Http Auth with Devise to protect entire site for staging versions

Sometimes you need to stage a client site to he can see it, but some clients are a little neurotic about others seeing their sites before the launch, what is an acceptable behavior. In one job that Im doing I dropped in this case and need to protect entire site from access. It will be easier to do with a clean Rails installation, but Im using Devise, and Devise do some jobs on basic auth, so, it don't play nice at start... The solution was create an extra strategy for Warden, in order to make it do the authentication, after a lot of research and code read I reached a solution, and I'm here sharing it with you :)

At first you need to create the strategy and configure Devise:

After you need to configure your application controller:

And it will make your entire site to be protected with http basic auth.

To make it works I first created a separated scope for this login, otherwise the devise will go crazy, and also I need to created that FakeModel class, because devise always try to serialize/deserialize the record save, to make a record compatible, just need to have an "id" method on instance, and a "find" method in class.

So, if you need to protected your site for staging, this solution will make everyone happy :)

Filed under // auth  basic  development  devise  http  rails  ruby  warden  // 0 Comments
May 19, 2010

Nginx init.d

Estou postando aqui meu arquivo de initialização do Nginx em ambientes Unix (nginx instalado via Passenger):

 

Filed under // deploy  development  unix  // 0 Comments
May 17, 2010

Artigos Javascript

Filed under // development  javascript  // 0 Comments
May 12, 2010

Brincando com WebSockets

Brincando ontem com websockets decidi fazer um pequeno experimento.

Basicamente o experimento consiste em ter vários jogadores na tela (são simples quadrados), e quanto alguém se mover, todos os outros jogadores devem ser imediatamente notificados da nova posição, para ter sempre todos sincronizados. Para isso utilizei o Node para criar uma aplicação para ser o servidor de socket e usei o WebSockets no Javascript de front-end.

O resultado pode ser conferido no video abaixo (o quadrado vermelho indica o quadrado sob controle da janela atual):

O código fonte está disponível em: http://github.com/wilkerlucio/ws.squares
May 7, 2010

Animação de Intro do Spiderman em CSS

Filed under // css  development  html5  // 0 Comments
May 7, 2010

[Rails Plugin] Mongoid Taggable: criando tags para documentos mongoid

Após certa luta eu ontem criei um novo plugin para Rails, o mongoid_taggable. Traduzi o meu README pra BR aqui:

Mongoid Taggable

Mongoid Taggable provê uma maneira simples para criar documentos com tags.

Instalação

Basta apenas instala-lo como um plugin para Rails:

script/plugin install git://github.com/wilkerlucio/mongoid_taggable.git

Uso Básico

Para ativar as tags em um documento basta incluir o módulo Mongoid::Taggable:

No seu formulário:

Nesse caso, seu campo de texto deve receber uma lista de tags separadas por vírgula (abaixo nesse documento você verá como trocar o separador padrão.

Então seu documento terá as propriedades tags e tags_array. A propriedades tags você deve usar como uma string com as tags separadas por vírgula, o tags_array é um array de tags, essas duas propriedades são sincronizadas automaticamente.

Indexando Tags

Essa biblioteca irá criar automaticamente um índice das tags após salvar o documento, esse índice é bastante útil para ter uma lista de todas as tags usadas nos documentos ou para criar um tag cloud. Veja o seguinte exemplo para entender como usar isso:

Se você não for usar esse recurso, é bom desativar para melhorar a performance:

Mudando o separador padrão

Para alterar o separador padrão você precisa apenas chamar o método tags_separator na sua classe:

Filed under // development  mongoid  plugin  rails  ruby  tags  // 0 Comments
May 5, 2010

jQuery MultiSelect

Screen_shot_2010-05-05_at_5

Estava trabalhando num projeto da empresa e precisamos de um input para tags, eu antigamente usada um plugin autocomplete para jquery, mas decidi procurar algo mais legal dessa vez. Depois de dar umas olhadas eu gostei bastante do proprio esquema do Posterous, olhei o fonte e descobri que ele estava usando o Proto!MultiSelect. Muito legal, mas nós estamos utilizando jQuery e não temos intenção de colocar o Prototype junto pra rodar, então eu procurei soluções em outros plugins de jQuery mesmo. Até achar o FCBKComplete, ele até é legal a primeira vista, mas não gostei porque ele perde o foco no cursor quando você seleciona uma opção, e ele não deixa inserir opções que não estejam previamente definidas. Tentei até olhar o fonte para mexer, mas vi rapidamente que não valeria a pena, então decidi por a mão na massa e criar o meu próprio plugin para isso.

Como resultado estou lançando agora o jQuery MultiSelect. Ele tem suporte a autocomplete e adição inline, separador customizado e vários atalhos legais :)
O fonte pode ser encontrado no github, e foi programado usando CoffeeScript. Ta ai mais um plugin para quem quiser ;)
Filed under // development  javascript  jquery  plugin  // 0 Comments
March 18, 2010

EventMachine: scalable non-blocking i/o in ruby at time to bleed by Joe Damato

Finalmente to começando a entender oque essa galera quer dizer com Non-Blocking IO.

Filed under // algorithms  development  ruby  scalling  // 0 Comments
March 10, 2010

Harmony - Acesse um ambiente JavaScript e DOM em Ruby

O Harmony, desenvolvido por Martin Aumont, é uma nova DSL Ruby para executar código JavaScript e que usa DOM a partir de aplicativos Ruby. Por que isso é legal? Porque isso possibilita a criação de testes unitários para o Javascript utilizado em suas aplicações em Ruby, ou seja, tudo pode ser testado com um único conjunto de testes!

Falando assim parece que o Harmony é uma biblioteca incrivelmente complexa, mas na verdade ela encapsula outras bibliotecas, como a Johnson, que oferece acesso ao interpretador de Javascript da Mozilla Spidermonkey no Ruby, e env.js, um ambiente DOM recriado em JavaScript.

Veja o "Hello World" do Harmony:

harmony2.png

HolyGrail - O plugin para Rails

Se você está usando Rails, o HolyGrail é o plugin que leva o leva o poder do Harmony às suas aplicações (até o momento só para testes funcionais). Veja alguns exemplos com o HolyGrail:

holygrailtest.png

Biblioteca que parece muito boa, espero começar alguns testes com a mesma em breve :)

Filed under // development  javascript  rails  ruby  test  // 1 Comment
October 9, 2008

Novo blog

Ola amigos, essa postagem é apenas na esperança que alguém ainda tenha esse blog marcado em algum lugar (se é que isso é possível), bom, lancei hoje meu novo blog, dessa vez sobre assuntos de desenvolvimento em geral, e iniciei com um post sobre porque devemos utilizar UTF-8.

Como esse blog e generalista terei mais ideias para postar e pretendo postar com mais frequência, quem gostava desse blog deve gostar do novo também ;)

Entao acessem: http://wilker-dev.blogspot.com/

Vlw!

Filed under // development  javascript  // 0 Comments