Mistborn

February 20th, 2008 § 0 comments § permalink

Mistborn me surpreendeu. A despeito do fato que a esposa e editora de Robert Jordan escolhera Brandon Sanderson para terminar a série The Wheel of Time, a ficha ainda não tinha caído de que Sanderson precisava ser um autor acima da média para que o trabalho lhe fosse oferecido.

O livro não é só bem escrito, com um prosa fluida e bem estruturada, como também lida muita bem com o tema de profecia e o papel do herói. A maioria dos livros de fantasia são sobre como pequenas coisas mudam o destino de mundos inteiros por pré-determinação. Mistborn não cai nessa armadilha e oferece uma boa variação com mudança planejada sobre uma misteriosa falha anterior–um herói que deveria ter salvo o mundo mas o condenou.

Eu também gostei muito do sistema de magia, baseado na capacidade de “queimar” metais para conseguir certos poderes. Uma pessoa dotada dessa habilidade pode ingerir pequenas quantidades de certos metais–doze deles para ser exato–e queimá-los aos poucos dentro do corpo. Queimar aço, por exemplo, permite encontrar outros metais enquanto queimar cobre permite acalmar as pessoas. A parte em que um dos personagens demonstra as várias habilidades é muito bem escrita e lembra algo com as artes marciais de The Matrix. E, ao final do livro, o leitor ainda descobre que presenciou, na verdade, três sistemas de magia, todos necessários para a conclusão da estória.

Sanderson consegue, em última instância, criar uma estória que é extremamente cativante e onde cada personagem é único. Vin, a personagem principal, cresce enormemente durante o curso do livro e é muito gratificante ver a forma como Sanderson manipula o conceito do herói que vem de uma classe baixa. Ele usa o modelo usual mas o modifica o suficiente para não cair no de sempre.

O final do livro me deixou ao mesmo tempo empolgado e desapontado. Empolgado porque entrega o que prometeu. É rápido, não usa nenhuma solução “deus ex machina” e se encaixa perfeitamente com o resto do livro. Mas fiquei despontado–ironicamente–porque me envolvi tanto com a leitura que queria que algumas coisas tivessem saído diferente. O que é a marca de um bom livro no final das contas, poder deixar o leitor ligado aos personagens e à estória.

No resumo, recomendo Mistborn para todos que gostam de boa fantasia e provavelmente vou ler os próximos de Sanderson assim que conseguí-los. E, a propósito, Mistborn está sendo distribuído gratuitamente pela Tor, bastando para isso se registrar no site futuro da editora.

The Seaside Bookshelf, RSS edition

February 19th, 2008 § 2 comments § permalink

Para os que ainda não fugiram do meu blog depois de tanto ouvir falar Seaside nos últimos dias, eu implementei um feed na aplicação desenvolvida.

O mais interessante dessa modificação é que eu tive que reorganizar a estrutura de classes da aplicação, mover alguns métodos e acrescentar variáveis de instância em algumas classes. Quando fiz a carga do pacote de mudanças no sistema, a aplicação continuou rodando normalmente e todas as classes em memória foram modificadas transparentemente. Se o sistema estivesse sendo acessado por milhares de usuários, nenhum deles teria sentido qualquer mudança e nenhuma sessão teria caído. Isso é, pelo menos para mim, o maior exemplo do poder de Smalltalk e similares.

Isso fecha o meu desenvolvimento básico e eu prometo não voltar a falar disso tão cedo.

O código está abaixo:

O próximo passo é migrar o sistema para Couch DB e ver o que acontece.

The Seaside Bookshelf, Redux

February 18th, 2008 § 0 comments § permalink

Para quem se interessou pela aplicação Seaside que eu estou desenvolvendo, eu completei uma pequena atualização para otimizar o sistema. Com as pequenas atualizações efetuadas, o sistema agora roda em uma velocidade aceitável mesmo no servidor pequeno onde está e não está mais usando nada em memória.

Por causa das otimizações, o código agora está mudando algumas classes básicas do Magritte e por isso os dois pacotes são necessários para rodar o sistema corretamente.

O código está abaixo:

O próximo passo é migrar o sistema para Couch DB e ver o que acontece.

Kosovo

February 17th, 2008 § 0 comments § permalink

Kosovo declarou sua independência pela segunda vez e eu espero que o novo país continua a existir agora–especialmente considerando que a Rússia já começou a se mobilizar para atrapalhar as coisas na ONU. Para uma região tão problemática, a independência seria muito bem-vinda, embora, é claro, sempre exista a chance de que um governo corrupto se levante e destrua qualquer chance de que a população possa se tornar realmente um grupo coeso.

Pode me chamar de ingênuo, mas eu acho que unidades políticas enormes são um modelo que deveria ser abolido, mesmo nos casos em que existe uma grande autonomia. Existem até casos de sucesso, mas são tão raros que não vale a pena se fiar pelo mesmos. Não acho coincidência que muitos dos países mais estáveis sejam também os menores e com a população mais coesa. Isso não quer dizer que eu acredito em divisão étnica, mas que como forma de governo essas unidades próximas se aproveitam de características comuns que favorecem um balanço melhor.

Só espero que nesse caso, a situação toda não se torne um novo banho de sangue como aconteceu durante a guerra.

Uma pergunta

February 16th, 2008 § 6 comments § permalink

Uma pergunta para desenvolvedores Web: se você pudesse melhorar ou mudar uma característica do seu framework Web favorito, qual seria?

Responda e justifique, se possível. :-)

Livros grátis da Tor

February 15th, 2008 § 0 comments § permalink

A editora Tor, uma das mais conceituadas publicadores de ficção científica e fantasia, está dando versões eletrônicas de seus livros em preparação para o lançamento de seu novo site. O único requerimento é o cadastro no site, que pode ser efetuado em alguns segundos.

Recebi o primeiro livro por e-mail hoje: Mistborn, de Brandon Sanderson. Sanderson, aliás, é o autor que vai terminar a série The Wheel of Time. Como o Tor não é boba, está dando um livro que vai chamar atenção e que também é o primeiro de uma trilogia. Nada se perde já que o tempo de venda do mesmo já passou. Mas é boa propaganda.

O próximo livro é Old Man’s War, do John Scalzi, que também é um boa jogada já que o Scalzi é bem conhecido entre os blogueiros que gostam do gênero.

De qualquer forma, por um mísero cadastro, os livros valem a pena.

Amazon S3 sobe no telhado

February 15th, 2008 § 3 comments § permalink

E o Amazon S3 sofre o que Nick Carr descreve como um “falha maciça”, do qual ainda não se recuperou. Espero que não tenha sido nenhum dos meus experimentos de ontem.

Brincadeiras à parte, uma salva de palmas para a escalabilidade ultra-redundante que em tese seria capaz de lidar com qualquer problema eventual que afetasse parte da estrutura. Pelo visto, não era tão redundante assim. Até eu que sou peixe pequeno estou sendo afetado já que os áudios do Pão de Cast ficam no S3 e estão fora no momento.Como não dependo disso para viver, não estou ligando muito. Mas já existem empresas que vivem na “nuvem” do Amazon S3 e EC2.

Estou me sentindo semi-presciente. Não foi uma worm, mas a previsão se cumpriu mais cedo do que eu pensava.

Perspectiva

February 14th, 2008 § 0 comments § permalink

Muitas vezes a vida parece perder a realidade. Dia após dia, tudo se repete em infindáveis cadeias de uma frenética rotina que ameaça tolher o que há de mais precioso na existência. Nesses momentos é preciso recuperar a perspectiva.

Perspectiva para perceber a efemeridade dos acontecimentos sabendo que o que é já foi e será outra vez, mas que cada momento é único e precioso, fruto de um acaso programado. Perspectiva para entender que altos e baixos são partes complementares, e não opostas: para que um vale idílico exista, pelo menos duas montanhas são necessárias. Perspectiva para compreender a medida relativa das coisas e circunstâncias, entendendo como balancear as diferenças.

Sementes são plantadas a cada instante quer se queira, se entenda, se perceba ou não. E, se o velho ditado é certo, o que se colhe é o que se planta. A árvore frondosa que se espera no futuro depende do pequeno grão no agora. O próximo minuto depende do minuto que se vive agora.

Olhar para a frente, por um segundo que seja, pode mostrar que após a próxima curva, quase escondida sob a chuva torrencial, se vê a luz de uma estalagem, onde a cama é seca e o calor da lareira não se rende ao vento cortante.

The Seaside Bookshelf

February 13th, 2008 § 4 comments § permalink

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 &

Contradições

February 12th, 2008 § 6 comments § permalink

Do I contradict myself?
Very well then I contradict myself,
(I am large, I contain multitudes.)

Song of Myself, by Walt Whitman

Eu sempre gostei desse trecho do poema de Walt Whitman porque ele espelha basicamente o modo como eu me vejo em relação às minhas opiniões. E isso é provavelmente a maior causa de irritação entre os que me conhecem bem, embora com o tempo a maioria tenha aprendido a me tolerar.

Não me entenda mal. Eu tenho opiniões fortes. Ser cristão, por exemplo, para mim implica em ter pensando longa e profundamente sobre vários assuntos teológicos e ter tomado determinadas decisões sobre os mesmos. Meu pastor já se conformou com minha opiniões geralmente distantes do usual há um bom tempo.

Mas, com os anos, eu tenho chegado a conclusão de que o papel de advogado do diabo me cai bem. Há uma certa vantagem em ser capaz de mudar imediatamente de lado para defender um outro argumento mesmo que você não concorde em absoluto com o mesmo. Além de ser uma boa forma de desarmar opiniões absurdas sobre determinados assuntos, é também uma maneira de ver o que pode estar errado com o seu argumento.

Eu já surpreendi muita gente ao defender o código aberto para, ao ouvir uma opinião infundada sobre o código fechado, transformar-me imediatamente em um opositor do código livre até que o argumento fosse eliminado ou completado.

Na vida profissional, eu tenho usado isso com vantagem em reuniões com cliente. Às vezes, para mostrar o cliente que o tipo de mudança que ele deseja não é o ideal. Outras vezes, para tentar entender se a minha resistência à mudança é o problema. A lâmina corta para os dois lados e isso é muito bom.

Eu acho que esse tipo de treinamento em contradições é uma experiência valiosa em qualquer área da vida. Em última instância, uma pessoa realmente deve ter opiniões firmes e baseadas em argumentos sólidos. Mas saber modificar a sua posição é a maneira mais fácil de validar essas opiniões e garantir que você não cai nas armadilhas e falácias de argumentos não muito bem pensados. Eu recomendo.

Where am I?

You are currently viewing the archives for February, 2008 at Superfície Reflexiva.