um lugar pra ir em 2014 ...

October 31, 2007, by Antonio Terceiro - No comments yet

Preciso descobrir um lugar fora do Brasil pra passar um mês em meados de 2014, aceito sugestões.

Isso aqui vai ser um inferno.



TWikiStandAlone: primeiro release!

October 29, 2007, by Antonio Terceiro - No comments yet

TWikiStandAlone é o projeto de conclusão de curso de Gilmar, que eu estou orientando. Ele pegou idéias do Rails e principalmente do Catalyst, e implementou no TWiki pra torná-lo independente do mecanismo de execução, de forma que o TWiki pode ser adaptado a várias configurações. Foram implementados os seguintes mecanismos:

  • CGI
  • CLI (command line interface, usado por exemplo pra implementar cron jobs que manipulam dados do TWiki).
  • ModPerl
  • FastCGI
  • HTTP

Os três últimos trazem a vantagem de manter o TWiki em memória, evitando a recompilação do código Perl a cada requisição. Os dois últimos são os que apresentam melhor desempenho, considerando número de requisições servidas por segundo (mais de 100% de melhora em relação a CGI).

O mecanismo HTTP é especialmente útil para desenvolvedores: basta fazer um checkout do código e executar o modo HTTP. Não precisa configurar apache nem nada.

UPDATE: Gilmar fez um anúncio na lista TWiki Brasil.



Rails: renumerando migrations

October 12, 2007, by Antonio Terceiro - No comments yet

Migrations são um recurso muito interessante to Rails pra criação incremental de esquemas de banco de dados relacional. As migrations, como tudo no Rails, são arquivos Ruby numerados que são executados na ordem da numeração pra criar o banco de dados.

Cada migration tem a seguinte cara:

/pub/Blogs/BlogPostAntonioTerceiro20071012215143/migration.png

Note três coisas:

  1. as tabelas são declaradas usando uma DSL de alto nível em Ruby
  2. como você não precisa usa a DDL específica do banco de dados, as migrations funcionem em qualquer banco suportado pelo Rails.
  3. você pode usar coisas específicas de algum banco de dados, se você quiser (mas sua aplicação vai ficar dependente desse banco de dados).

As migrations são criadas automaticamente quando uma classe de modelo é gerada. A migration acima, se tiver sido por exemplo a décima a ser criada, vai estar no arquivo db/migrate/010_create_people.rb.

O "problema" é quando você precisa apagar uma migration que não tenham sido a última a ser criada, sua ordem fica com buracos. Pra resolver isso basta mandar o comando a seguir de dentro do diretório db/migrate:

$ ls -1 | ( i=1; while read IN; do echo mv $IN $(echo $IN | sed -e "s/^[0-9]\+/$(printf '%03d' $i)/") ; i=$[$i + 1]; done)

Esse comando gera a sequência de comandos mv necessários pra refazer a numeração sem buracos. É só pegar a saída dele e colar de novo no shell, ou melhor, passar o comando original por pipe pra sh, ou melhor ainda, tirar o echo e deixar os comandos rolarem direto.

Se você estiver usando controle de versão, Subversion por exemplo, você pode modificar o comando pra colocar svn mv no começo de cada linha ao invés de só mv.



VirtualBox: máquinas virtuais facinho, facinho

October 12, 2007, by Antonio Terceiro - No comments yet

Título alternativo: uma boa interface conquista coreções e mentes.

Como é que dá pro cidadão ser produtivo se todo dia aparece um novo brinquedo pronto pra ser futucado ?

Pois é, o VirtualBox é muito legal. Além de ter uma interface de usuário bastante intuitiva e ótima pra gerenciar diferentes máquinas virtuais, o bicho parece ser bem mais rápido que o qemu. Já era.

screenshot do VirtualBox

Além de tudo isso ele tem funcionalidade muito legais, como o de trancar o teclado quando a janela da máquina virtual está selecionada: todos os eventos de teclado vão para a máquina virtual. A mesma coisa com o mouse. O qemu tem isso também, mas no VB o acesso a isso é mais ... amigável.

1 tá, nem todos. Todos os eventos de teclado que chegam pro desktop, esses sim vão pra máquina virtual. Os que o X.org trata por si só , como Control+Alt+F1 pra ir pro primeiro console de texto, nem chegam pro VB.

Outra funcionalidade legal é o gerenciador de imagens de disco. Você pode criar imagens de HD, cadastrar imagens ISO, e tal. Dái na hora de criar uma nova máquina virtual você escolhe a imagem de HD tal, a image ISO tal pra ser montada no drive de CD-ROM virtual ... tudo que já dava pra fazer com o qemu, mas ... bem mais prático.

Vale a pena testar.



programa de qualificação em software livre da Colivre

October 5, 2007, by Antonio Terceiro - No comments yet

A Colivre lançou a poucos dias o seu programa de qualificação em software livre. São parceiros do programa o Departamento de Ciência da Computação da UFBA e a SaferNet Brasil.

Programa de Qualificação em Software Livre da Colivre. Uma parceira com o DCC/UFBA e a SaferNet Brasil

Os primeiros cursos são GNU/Linux Básico, Administração de Redes com GNU/Linux e Desenvolvimento de Sites Colaborativos com TWiki.

Num futuro mais ou menos próximo se tudo der certo teremos cursos de Ruby, Rails, e outros temas ligados a desenvolvimento.