The Seaside Bookshelf

February 13th, 2008 § 4 comments

Para quem tem curiosidade de saber como é uma aplicação Seaside depois de ler tanto sobre o assunto aqui, estou disponibilizando o código inicial de um experimento meu: um pequeno sistema para guardar informações sobre os livros que estou lendo, quero ler ou já li.

A propósito, antes que alguém pergunte, já passo minhas desculpas ao Caffo pela cópia explícita do formato que ele usa. É claro que a dele é bem mais bonita–e bem mais rápida no momento.

Alguns pontos sobre o código que está rodando no servidor como demonstração:

  • Essa é uma versão alpha. Não espere sutilezas no código;
  • O aplicativo depende de uma instância do OODBMS GOODS. Os dados dessa instância podem ser configurados na própria aplicação;
  • O login é uma gambiarra terrível. Eu comecei a fazer um sistema de usuário, fiquei com preguiça e fixei em um único usuário embora o modelo esteja lá para suporte futuro;
  • A versão no servidor é lenta, muito lenta. Eu não estou usando nenhuma das técnicas usuais de deployment e o servidor onde a aplicação está é muito pequeno;
  • A aplicação está armazenando quase tudo em memória no momento e gerando os thumbnails on-the-fly, o que piora as coisas;
  • O código é específico do Squeak.

Dito isso, o sistema ilustra o fluxo básico de uma aplicação Seaside e o uso de Magritte para a modelagem de objetos. Com isso dá para ter uma idéia de como o Seaside diferente dos demais frameworks Web.

O código pode ser obtido nos endereços abaixo:

Para quem quer aprender como configurar uma VM Squeak para rodar os exemplos, em fiz um screencast sobre o assunto há um tempo atrás. Para uma imagem base, eu recomendo a Squeak-Web do Damien Cassou. Com ela, basta carregar o GOODS.

Dúvidas, sugestões, críticas e indicações veladas (ou explícitas) de como o código é péssimo podem ser feitos na área de comentários.

Atualização: Para configurar o GOODS sob o Linux, o processo é simples:

  1. Baixe e descompacte o código da última versão.
  2. Rode ./config no diretório para gerar o Makefile do sistema.
  3. Rode make para compilar
  4. Se necessário, ajuste Makefile.usr para indicar os caminhos de instalação que você deseja.
  5. Rode sudo make install para instalar

O arquivo de configuração que eu estou usando é o seguinte (bookshelf.cfg):

1
0:127.0.0.1:9081

O arquivo de opções do banco é o seguinte (bookshelf.srv):

server.admin_telnet_port="127.0.0.1:8081"

Para rodar, algo como o seguinte, onde bookshelf é o arquivo bookshelf.cfg:

sudo /opt/local/bin/goodsrv bookshelf &

§ 4 Responses to The Seaside Bookshelf"

  • caffo says:

    Nao precisa se desculpar, o formato e’ bastante simples e eu nao inventei nada de diferente nele. :)

    BTW eu estou portando o meu bookqueue para merb – nao preciso de todo o ‘poder’ do rails e quero otimizar ao maximo a performance como experimento. Depois conto os resultados.

  • Ronaldo says:

    Opa, obrigado! Eu tinha certeza que você não ia se importar mas sabe como é. :-)

    Eu ainda estou aprendendo as mudanças que foram feitas no Seaside do 2.6 para o 2.8. E com o 2.9 vindo aí, ainda tenho que otimizar outras coisas. Ao contrário do Rails, o Seaside ainda está em muito em fluxo.

    E eu também duvido que uma aplicação Seaside consiga superar uma Rails em performance bruta em hardware pequeno, especialmente sobre o Merb. Seaside é bom, mas tem seus custos.

  • Muito interessante.
    Mas não conheco o Seaside (ainda). 😀

  • Ronaldo says:

    É uma alternativa bem interessante mesmo ao desenvolvimento Web. :-)

Leave a Reply

Your email address will not be published. Required fields are marked *

What's this?

You are currently reading The Seaside Bookshelf at Superfície Reflexiva.

meta