End of Year Blues

January 21st, 2010 § 2

O céu está daquela cor outra vez. Cor de céu de fim de ano, um vermelho pálido como a cor das coisas que se vão. E não é de se admirar: dez anos já, dez anos desde o início de um milênio que prometia muito mas só trouxe mais do mesmo.

Você vê: neste ano, perdemos pouco mais perdemos o suficiente para enxergar que não há tanta coisa assim à nossa frente. Meu Deus, Brittany Murphy morreu domingo passado. Ela só tinha trinta dois anos–eu tenho trinta e um. E morreu também Michael Jackson. Eu não gostava de sua música. Eu tinha, sim, pena de sua conturbada e desperdiçada vida. Tão desperdiçada que seus olhos contavam, cantavam toda uma não-história para quem quisesse escutar. E nós o considerávamos imortal, mesmo assim.

Mas é fim de ano outra vez. Fim de um ano de muito pouco para lembrar além do massacrante mover dos nefastos mecanismos do dia-a-dia. Zeus do alto do Olimpo olhando para os pobres mortais, seus irmãos sorrindo diante do plano que traçaram para aqueles que nada conhecem. Maldito sejam os deuses.

E, sim, é fim de ano mais uma vez. Que finde em paz. Em jazz e em blues. Notas em uma guitarra fosca, quase desafinada. Blind Lemon Jefferson cantando “Backwater rising”, an end of year blues.

Balanço cultural de novembro

December 28th, 2009 § 3

Estou de férias, depois de um mês final intenso de trabalho, o que significa que o blog está meio abandonado nesses últimos dias do ano. Mesmo assim, decidi manter pelo menos a tradição dos balanços culturais mensais para terminar o ano e começar 2010 com novos textos que estou escrevendo entre um passeio e outro.

Novembro foi um mês regular, com o seguinte resultado:

  • 3 livros
  • 6 filmes

Nos livros, comecei o mês com The Accidental Time Machine, do Joe Haldeman. Embora Haldeman seja bem famoso por seus trabalhos anteriores, esse é apenas o segundo dos seus livros que leio–ambos sendo produções mais recentes. Como eu tinha escrito anteriormente, também, The Accidental Time Machine é um homenagem cheia de humor e bem embasada cientificamente de todas estórias de viagem do tempo que já foram escritas. Quando um assistente de pesquisa do MIT chamado Matthew Fuller inventa sem querer uma máquina de viajar no tempo e descobre que ela somente vai para o futuro, ele se vê jogado para longe de sua época e envolvido cada vez mais em situações que não pode controlar. A leitura é rápida–o livro é quase uma noveleta–mas demonstra o talento de Haldeman em criar situações críveis com pouco esforço.

Segui o mês lendo Numerati, do Stephen Baker. O objetivo do livro é falar sobre como a matemática está sendo empregada para processar quantidades enormes de dados, modificando como vários campos e áreas de atuação humana funcionam, incluindo medicina, compras, segurança, saúde e mesmo relacionamentos. Um dos focos primários do livro é a Internet, é claro, e como os traços que deixamos na mesma são parte desses dados e como isso pode ajudar ou, em alguns casos, piorar a forma como vivemos e vemos o mundo.

A premissa do livro é interessante mas ele cai no mesmo problema de muitos outros livros sobre assuntos similares publicados nos últimos dois ou três anos: essencialmente, o livro é um artigo longo que foi transformado em uma obra impressa pelo expediente de clonar e adaptar o mesmo tópico vez após vez. Todos os capítulos do livro possuem exatamente a mesma estrutura: um, o campo X está produzindo quantidade enormes de dados; dois, nesse campo X, matemáticos estão usando os dados para tentar entender melhor o mesmo; três, no campo X, a matemática ainda não é suficiente para fazer o que esses pesquisadores querem; quatro, um dia a matemática vai ser; e assim por diante. Funciona para o primeiro capítulo, mas deixa os demais bem tediosos.

Fechei o mês lendo Saturn’s Children, do Charles Stross. Como já mencionei aqui várias vezes, Stross é um dos meus autores favoritos e seus livros raramente decepcionam. Saturn’s Children é sua space opera mais recente, contando sobre um futuro em que a espécie humana se tornou extinta e o Sistema Solar foi colonizado pelos andróides que serviam a humanidade antes de sua saída do palco cósmico. O livro segue Freya Nakamichi-47, uma bishōjo ginóide, que acaba se indispondo com a aristocracia cibernética e é forçada a se envolver com uma corporação de couriers para conseguir escapar se seus perseguidores, descobrindo no processo uma conspiração para controlar a sociedade andróide.

Como todo Stross, o livro é recheado de conceitos exuberantemente futuristas e possui uma estória interessante. Entretanto, ao contrário de seus trabalhos anteriores, senti uma certa necessidade de exagerar na exploração da sociedade andróide–que, obviamente, é fundamentalmente diferente da nossa sociedade e, como em todo trabalho de ficção científica, difícil de precisar–e também uma certa dificuldade em manter o balanço entre explicar e esconder a conspiração para não deixar a estória vazia. Stross sucede em contar a estória bem, mas acaba tendo que correr no final e explicar mais do que o necessário. Bom, mas não seu melhor trabalho.

Nos filmes, comecei o mês com Battlestar Galactica: The Plan, um filme feito após o fim de série que se propõe a contar um pouco mais sobre os motivos dos cylons em exterminar a humanidade. O filme superpõe cenas retiradas da série, para contextualização, com material novo exclusivamente do ponto de vista dos vários modelos dos cylons. O material novo é focado bastante nas especulações e motivações de dois Number Ones (Cavil) que se vêem em espectros opostos do pensamento cylon. Interessante, e com algumas boas cenas, mas dificilmente acrescenta algo ao que a série tinha mostrado.

Depois disso, foi a vez de 2012. Previsivelmente, o filme é bem descerebrado e só conta pelos efeitos especiais que dominam 90% das cenas. Vale a pena ser visto como um filme de desastre para acabar com todos filmes de desastre–e diverte nesse aspecto–mas só por isso mesmo.

Na seqüência, vi Law Abiding Citizen. Esse era um dos filmes do ano que eu estava esperando com bastante expectativa pela possibilidade de ser um novo Se7en, ou seja, perturbador mas sublime em contar uma estória violenta em que todas as pontas de encontram. Infelizmente, após um começo bom mostra-se incapaz de manter qualquer coerência e termina em um final ridículo e sem sentido, contrariando o resto do filme. Desapontou.

Os três filmes restantes foram Ghosts of Girlfriends Past (um tentativa de parodiar Dickens romanticamente), He’s Just Not That Into You e The Accidental Husband, parte da cota mensal de filmes românticos escolhidos pela esposa. Como ela mesmo comentou após um deles: não valem o DVD em que estão sendo distribuídos.

Balanço cultural de outubro

December 3rd, 2009 § 1

Outubro foi um mês um pouco mais produtivo do que setembro para minhas leituras. O resultado do mês foi o seguinte:

  • 4 livros
  • 5 filmes

Comecei o mês lendo The Anubis Gates, por Tim Powers. Powers é um autor que consegue pegar idéias incrivelmente díspares e transformar em uma obra de arte. Eu não vou me alongar muito já que fiz uma resenha mais detalhada no mês retrasado, mas deixo a minha recomendação de leitura para fãs de fantasia e ficção histórica.

Continuei o mês lendo o volume oito da série Caballo de Troya do J. J. Benítez. Apesar do pesares e da fama ou infâmia dos livros, eu gostei muito dos quatro primeiros volumes, e acho que o Benítez conta uma boa estória quando quer. Infelizmente, os volumes mais recentes não estão à altura dos anteriores e representa mais uma tentativa à la Paulo Coelho de recolher o máximo de uma série que já deu o que tinha que dar. Benítez, inclusive, adotou a estratégia bizarra de terminar os livros em um cliffhanger sem sentido bem no meio de uma cena que continua no próximo livro. O resultado é frustrante para qualquer leitor, é claro. Como sou insistente, é bem possível que eu continue a ler a série pelo menos para ver até onde a coisa vai dar. Mas, se você não começou, evite.

Na seqüência, li Permanence, do Karl Schroeder. Já tinha lido dois de seus livros anteriores–Ventus e Lady of Mazes–que se passam dentro de universos com características bem similares e gostei muito da sua mistura de space opera com o pós-humanismo. Permanence é a estória de um jovem que encontra um artefato alienígena–uma grande nave generacional desabitada, capaz de abrigar múltiplas espécies–que promete respostas transformadoras para a sua civilização e precisa lidar com as conseqüências disso ao mesmo tempo que se liberta do seu passado. Em uma galáxia dividida entre mundos halo e mundos iluminados–estes últimos locais onde viagens em velocidade maior do que a luz é possível e governados por uma economia tirânica–o artefato promete uma resposta para a continuidade da humanidade.

Finalmente, li To Your Scattered Bodies Go, de Philip José Farmer. O livro é o primeiro de uma série chamada Riverworld que descreve um planeta distante tanto no espaço quanto do tempo da Terra consistindo basicamente de um rio incrivelmente longo nas margens do qual toda a humanidade que já existiu desde os primórdios da Neolítico até o século vinte é ressuscitada simultaneamente e misturada. Neste primeiro livro, essencialmente seguimos um grupo centrado em Sir Richard Francis Burton, explorando os eventos logo após a ressurreição e a tentativa por parte desse grupo de entender o que está acontecendo. O livro é bastante divertido–especialmente pelo caráter cômico de diferentes culturas interagindo em um ambiente novo e hostil onde convenções sociais são derrubada a toda instante–mas termina de forma mais abrupta sem revelar muito sobre o mundo e sobre os motivos por trás da relocação da humanidade. Gostei o suficiente para querer ler os demais livros.

Nos filmes, comecei o mês vendo o incrível District 9, sobre o qual falei um pouco anteriormente. Não vou me alongar mais a não ser para me repetir ao dizer que este foi o melhor filme do ano e tem tudo para se transformar em um clássico do gênero de ficção científica.

Na seqüência, assisti novamente Watchmen. Vi a primeira vez em condições menos do que ideais e foi bom assistir novamente e perceber que continuei gostando tanto quanto da primeira vez. A adaptação realmente ficou muito boa e se há algum infidelidade à estória original isso não detrai da qualidade da obra.

Continuei vendo State of Play, um thriller policial bem fraco com Russell Crowe e Ben Affleck, lidando com a morte da amante de um congressista americano e a investigação da mesma por parte da polícia e um jornalista. O filme é um remake de uma série da BBC que, pelas indicações do IMDB, é bem melhor do que sua revisão.

O penúltimo filme do mês foi Surrogates, uma adaptação com Bruce Willis e Radha Mitchell de quadrinhos do mesmo nome contando sobre um mundo em que todos humanos usam corpos artificiais para interagirem com o mundo real. Esses corpos, perfeitos e robóticos, conseguem passar todas as sensações para o seu usuário e são uma forma perfeita de proteção, inviolável e seguros. Quando alguém começa a exterminar esses substitutos, o personagem policial de Willis pega o caso e descobre que há algo maior em progresso. O filme é bem interessante em seus questionamentos e o final, se relativamente fraco, termina o filme de maneira decente. Recomendado.

Para terminar o mês, asssisti Duplicity, uma divertida comédia com Clive Owen e Julia Roberts sobre dois agentes secretos que decidem agir em conjunto para dar um golpe em seus clientes. A dinâmica dos dois atores principais–que eu já tinha admirado em Closer–é muito boa e funciona muito bem ao longo de todo o filme. O final é diferente do usual e foi bem satisfatório.

No próximo mês, bons livros e filmes ruins. :)

Mirror

November 28th, 2009 § 1

Hoje, sábado de sol, está acontecendo o Dev In Sampa, um evento de desenvolvedores para desenvolvedores. Se você não conseguiu participar por algum motivo, pode acompanhar um pouco pelo livestream do evento–as palestras estão excelentes. Mas não se preocupe, as palestras estão sendo filmadas também e serão disponibilizadas após o evento.

Eu participei falando sobre a criação de linguagens de programação e para os que já querem ver alguma coisa, segue abaixo a apresentação do SlideShare:

O repositório da toy language que eu criei para demonstração já está disponível também no GitHub. Só não espere muito do código já que ele foi produzido em pouco tempo em madrugadas disponíveis. :)

Para o resto, a caixa de comentários está aberta. :)

Sobre linguagens de programação, desespero e raiva

November 16th, 2009 § 3

Isso é lindo:

[T]he State of the End-User Environment / Programming Onion…

So, in a confluence of events, I have been lately looking at Scala and yesterday spent some time looking at Pike / Thompson / Google et. al.’s “Go” language for “systems programming.” And Guido halts Python syntactic evolution before the job is done…

And it fills me with despair and anger.

Language designers in general: You are IN THE WAY. Go here:

http://www.rebol.com/oneliners.html

…then do us all a favor and don’t resist the urge to fall on that wakizashi when your shame overcomes you.

Jeff Bone

Leia mais em [FoRK] Programming languages, operating systems, despair and anger. A sensação com Go foi exatamente a que eu tive: conceitos razoavelmente interessantes empacotados em uma sintaxe que só ajuda a piorar o que havia antes.

É claro que não há balas de prata, mas há de se pensar em algo que quebre o molde que estamos usando nas últimas décadas.

LazyWeb: Escolhendo um framework

November 11th, 2009 § 7

Um amigo de Belo Horizonte me consultou esses dias sobre uma questão fundamental para a aplicação que ele está planejando começar a escrever nos próximos dias: framework de programação usar (e por extensão, qual linguagem)?

Como minha experiência nos últimos tempos tem sido confessadamente restrita a Rails e alguns experimentos em outros, resolvi apelar para a caridade dos meus leitores. Qual framework você usaria para seu próximo projeto?

Esse meu amigo não tem problemas com linguagens de programação em si. De fato, a não ser que seja algo tão esotérico quando Haskell ou Erlang, ele é capaz de se familiarizar com uma linguagem ou framework em alguns dias.

Obviamente, não posso dar muitos detalhes sobre a aplicação, mas dá para dizer que o objetivo é escalar gradualmente. Ela não precisar começar escalando para o mundo inteiro, mas um caminho seria bom. Um outro detalhe nesse aspecto é que a aplicação é comparativamente particionada: um usuário terá acesso a alguns itens e compartilhará esse acesso com algumas dezenas ou centenas de pessoas. Esses itens possuem moldes variáveis e seriam bom ter flexibilidade na criação do mesmos.

Finalmente, hospedagem é uma questão também. Não necessariamente preço, mas facilidade. Linode é uma opção mas preferivelmente algo que possa ser colocado em alguma coisa pequena e ir escalando conforme a necessidade, no estilo do Heroku (o que limitaria a Rails, claro). Python parece uma boa opção, mas ele precisa de evidências.

E aí, alguém anima a ajudar um pobre compadre em armas? :D

A prática de arquitetura

November 9th, 2009 § 9

O Lucas Húngaro, que trabalhou comigo na WebCo, escreveu há poucos dias um artigo muito bom sobre a dificuldade de dissociar nomes e funções em projetos de software e sobre sua visão do processo de desenvolvimento e arquitetura. Desnecessário dizer, concordo essencialmente com tudo o que ele diz, com algumas pequenas ressalvas.

O leitor atento do blog deve estar se perguntando agora: mas, há menos de uma semana, você não disse que lidera uma equipe separada de arquitetura onde trabalha agora–isso não é uma contradição? Na verdade, não. Antes de responder a questão, porém, peço que o leitor me acompanhe por algumas considerações.

Como o Lucas menciona eu seu texto, o tópico de arquitetura de software é bastante controverso. De fato, ao longo das quase sete décadas desde que existe algum processo de desenvolvimento, nunca se chegou a um consenso sobre o que esse termo realmente significa. Ano após ano, novos artigos e livros são escritos para explicar o que se entende pela prática e metáforas abundam.

Eu não vou dizer que tenho a palavra final sobre o assunto, é claro. Nos últimos anos, entretanto, eu tenho pensado continuamente sobre o tema, especialmente como uma reflexão sobre o meu trabalho e cheguei a uma conclusão de que minha visão é bastante similar à advogada por Fred Brooks, com algumas pequenas diferenças que refletem minha experiência própria.

Brooks, na palestra que assisti, propôs o seguinte postulado: “Não há tecnologias ingênuas no Ocidente”. O que ele quis dizer com isso é que em qualquer domínio de conhecimento, a faixa de conhecimento e habilidades exigidas é maior do que uma única pessoa pode dominar em um dado projeto.

Ele usou como exemplo o caso de fabricantes de shampoo que usam simulações do fluxo de fluidos viscosos para garantir que as lâminas misturadoras não separem a emulsão de camadas triplas do produto final; adicionalmente, ele também comentou sobre uma fábrica de bolos em que a receita do dia é modificada pela análise química dos ingredientes que chegam a cada dia na planta.

O fato é que esse tipo de especialização de engenharia é uma constante reconhecida mesmo por metodologias ágeis em que a multi-disciplinaridade das equipes é exigida como uma das premissas para o funcionamento do processo.

Por conta disso, Brooks chega à conclusão de que a única maneira de atingir algum nível de consistência e integridade no desenho arquitetural de um sistema é obter uma visão única de como as estruturas devem se comportar no seu nível mais alto: em outras palavras, criar a arquitetura de um sistema.

Em seu livro Computer Architecture: Concepts and Evolution (escrito em parceria com Gerrit A. Blaauw), Brooks define arquitetura de sistemas computacionais da seguinte forma:

The architecture of a computer system we define as the minimal set of properties that determine what programs will run and what results they will produce. The architecture is thus the system’s functional appearance to its immediate user, the conceptual structure and functional behavior as seen by one who programs in machine language.

Eu ressaltei the minimal set of properties porque isso representa uma dos grandes desentendimentos sobre o que arquitetura de software realmente significa e quais são os entregáveis da mesma. Como Brooks e Blaauw apontam, se arquitetura é o conjunto mínimo de propriedades de um sistema, existem outras coisas que, por definição não são arquiteturais e que ainda assim precisam existir para que a implementação suceda.

Nesse sentido, podemos fazer uma distinção bem clara entre a arquitetura e o design de um sistema para entender o desdobramento do projeto de um sistema qualquer. Enquanto a arquitetura existe mais no nível do mapeamento e organização fundamental de um sistema, como entendida através de seus componentes, os relacionamentos entre esses e sua distribuição em domínios de tempo, economia (sim, porque dinheiro também é arquitetura) e escala, o design está mais centrado no domínio de resolução de problemas e planejamento para implementação da solução.

Em outras palavras, a arquitetura é voltada a atingir necessidades de negócio através de blocos maiores de construção do sistema enquanto o design é a disseminação técnica desses objetivos em algoritmos, sub-sistemas e escolhas de implementação.

O que leva à conclusão, por parte de Brooks, e com a qual eu concordo, de que para que se consiga integridade conceitual e estrutural da arquitetura, a figura de um arquiteto-chefe é necessária. Isso é óbvio quando se pensa no negócio como um todo e seus desdobramentos em múltiplas responsabilidades, projetos, sistemas de sistemas e relacionamentos da construção do software em si.

Uma palavra-chave aqui que ajuda esclarecer a distinção aqui é grande porte. Por grande porte, eu quero dizer projetos com um escopo grande ou com grandes características de distribuição. Como Brooks mesmo elabora em seus textos e palestras, se o sistema é pequeno o suficiente, não é necessário que exista uma distinção entre arquitetura, design e implementação. Brooks, na verdade, vai além ao sugerir que o arquiteto e implementador sejam uma única pessoa. Para projetos de porte maior, entretanto, sem uma visão consistente é impossível conseguir a consistência necessária entre as partes.

O arquiteto de sistemas, em outras palavras, é alguém que é capaz de enxergar o projeto com um todo, necessariamente além do escopo de um time qualquer de implementação, mesmo quando o design que esse time está seguindo é auto-contido dentro das premissas daquele time e somente se comunica com externalidades através de protocolos e convenções arquiteturas definidas anteriormente.

Como um exemplo disso, em uma de suas palestras, Brooks menciona uma discussão que ele teve com a pessoal responsável pela arquitetura de sistemas do Global Positioning System (GPS). Esse arquiteto entendia que o sistema como um todo era baseada na interação complexa entre muitos componentes (satélites e outros) e que a moeda corrente entre esses sistema era tempo, dividido em micro-segundos. Ainda mais, o arquiteto via como sua responsabilidade garantir que cada processo conseguisse a fatia necessária de micro-segundos para sua operação–com, como Brooks colocou, bastante micro-segundos sobrando em seus bolsos para resgatar partes do sistema que estivessem em dificuldade.

E isso é o que realmente eu entendo por arquitetura de sistemas. Aos proponentes de arquitetura emergente–tão comum entre praticantes de metodologias ágeis–a implicação é clara: é simplesmente impossível que arquitetura nesse porte, dessa complexidade, venha algum dia a emergir de times separados, trabalhando em componentes próprios, com suas próprias necessidades. Primeiro, por conta da onipresente necessidade de integridade conceitual e, segundo, por conta da degradação de comunicação à medida que o sistema de torna mais complexo e decisões maiores são cristalizada em um conjunto de constraints e especificações–o que Brooks chama de style sheet do projeto.

Volto a Brooks aqui para afirmar o ponto de que um comitê não é um bom lugar para se buscar integridade arquitetural:

Textbook examples of design are almost always “way too simple,” said Brooks. In particular, they ignore the fact that complexity often forces designs to change halfway through, and these changes then involves many other changes. Finally, there is no substitute for “the dreariness of labour and the loneliness of thought”–even though it has been joked that committees are a place where people seek refuge from that.

O arquiteto de sistemas é, em última instância, como Brooks também coloca, um advogado do usuário. Ele advoga pelo usuário em termos funcionais, em termos econômicos, e em termos de escala. Como mostrado na citação acima, o arquiteto de sistemas representa a aparência funcional do sistema para seu usuário imediato, visto pela lente de alguém que programa em linguagem de máquina. E, sim, é um papel técnico.

Para citar Brooks mais uma vez:

Computer architecture, like other architecture, is the art of determining the needs of the user of a structure and then designing to meet those needs as effectively as possible within economic and technological constraints. Architecture must include engineering considerations, so that the design will be economical and feasible; but the emphasis in architecture is on the needs of the user, whereas in engineering the emphasis is on the needs of the fabricator.

Note a diferença em ênfase como colocada por Brooks: arquitetura enfatiza as necessidades do usuário enquanto engenharia enfatiza as necessidades do construtor.

As implicações são bastante óbvias e essencialmente respondem à questão da minha concordância com o que o Lucas disse e com o fato de que eu lidero uma equipe de arquitetura: as necessidades de desenvolvimento são completamente diferentes.

Tirando um exemplo da minha própria experiência, quando eu trabalhava na WebCo, tínhamos apenas dois produtos: Brasigo e BlogBlogs. Por mais complexos que ambos sistemas fossem, suas necessidades arquiteturais eram comparativamente pequenas. Da mesma forma, por mais similares que ambos fossem (aplicações escritas em Rails, virtualizadas, com gargalo em banco de dados, etc), havia poucas conexões arquiteturais para que a figura de um arquiteto-chefe fosse necessária.

E, de fato, pelo tamanho dos projetos, podíamos ter, sem problemas, a figura de um arquiteto em cada time, servindo como líder técnico, ponto focal em discussões entre produtos, alguém como senioridade o suficiente para fazer um papel de mentor para membros mais novos da equipe.

Esse não é o caso em minha posição atual, na Abril Digital. Não só a complexidade dos sistemas é maior, tanto em escala como em distribuição, como a relação entre eles é mais porosa e necessitando de coordenação. Construir um sistema de sistemas constituído de dezenas de sub-sistemas, cada um com suas necessidades, escopo e papel é fundamentalmente diferente de construir um único produto, com limites e condições bem específicos. Não estamos construindo algo do tamanho de um sistema de GPS, claro, mas estamos construindo coisas que possuem necessidades maiores que simplesmente as de um único escopo.

Por conta disso, surge a necessidade de arquitetura como uma colaboração de papéis empregando arquitetos de sistemas e arquitetos de software (chamados de tech leaders internamente) para chegar a um design final coerente.

Isso é ainda mais fundamental em projetos terceirizados que, em um ponto ou outro, precisam se encaixar em nossa infra-estrutura e arquitetura em múltiplos times e instâncias de sistemas. Uma equipe dedicada serve para ajudar nessa coordenação, oferecendo visões do problema. O gap arquitetural é assim resolvido já que existe uma rodovia arquitetural contendo épicos que guiam a quebra de sistemas nas partes necessárias.

Dessa quebra nascem preocupações que podem ser traduzidas no design emergente em cada equipe, contribuindo ao final, para o retorno ao pool arquitetural de conceitos e implementações feitas no ato de descoberta que é o processo de desenvolvimento.

Eu acredito nessa colaboração de papéis como essencial para garantir a agilidade. Citando um dos artigos de Martin Fowler:

This kind of architect must be very aware of what’s going on in the project, looking out for important issues and tackling them before they become a serious problem. When I see an architect like this, the most noticeable part of the work is the intense collaboration. In the morning, the architect programs with a developer, trying to harvest some common locking code. In the afternoon, the architect participates in a requirements session, helping explain to the requirements people the technical consequences of some of their ideas in non-technical terms–such as development costs.

Nesse artigo, Fowler usa uma versão limitada do que Brooks diz para definir um tipo de arquiteto não desejável. E Fowler está correto: usar o argumento de Brooks simplesmente para suportar alguém que simplesmente “toma as decisões mais importantes” não faz sentido.

Isso tudo que foi dito anteriormente não significa, também, que essa arquitetura de sistemas não possa falhar. Ela falha, sim, e algumas vezes catastroficamente. E, na maioria das vezes, a falha pode ser rastreada para decisões que foram tomadas em pontos errados do processo por problemas de comunicação ou de definição de escopo resultado em design inconsistente pelo qual ninguém quer tomar a responsabilidade. A falha, nesse caso, é de todos envolvidos no processo.

Para resumir toda a conversa, considerando que esse texto acabou quase se tornando um ensaio, eu concordo com o Lucas: cada time deve ter o seu arquiteto. Mas acredito também que, para projetos com maior escopo, deve existir um nível mais alto de arquitetura–e por mais alto aqui não quero dizer em termos de uma elite ou de conhecimento mas simplesmente um papel que defina o que é mais alto simplesmente porque tecnicamente, alguém define que esse é o nível mais alto necessário.

Esse arquiteto, dentro do time, é um desenvolvedor sênior capaz de fazer decisões de design em colaboração com seus pares, praticar a mentoria, planejar e executar escolhas de implementação, atuando em conjunto com um time de arquitetos de sistemas que está preocupado com o todo e que não tenta, de forma alguma, forçar decisões de implementação ou design, que busca embasar suas decisões pela velha métrica do running code and rough consensus, que pratica código diariamente pelos meios necessários.

O que significa, essencialmente, que a arquitetura não tem que ser fechada no começo e permanecer imutável depois disso. Ao contrário, precisa evoluir como qualquer outra parte do sistema na percepção do que funciona e do que não funciona. Como Kent Beck diz:

The process of building architecture should have lots of feedback built in and it should be kept simple, because extra elements in the architecture introduce instability and unpredictability. The big difference from current practice is that: “I would stop apologizing for architecting this way,” he says

Espero com esses monte de palavras ter clarificado um pouco a visão do que andei escrevendo aqui nos últimos tempos. Obrigado ao Lucas por fornecer a oportunidade de uma discussão boa como essa–espero que ela continue, por sinal.

Aos leitores que tiveram paciência de chegar até esse ponto, quais são suas visões e comentários sobre o assunto? A caixa de comentários lhes espera impacientemente. :-)

A contagem até agora…

November 6th, 2009 § 0

Algumas curiosidades sobre este blog:

  • Total de textos até o momento: 1104
  • Total de comentários até o momento: 4402
  • Média de comentários por texto: 3,98
  • Média de textos por mês: 15,77
  • Primeiro texto publicado em: 02 de outubro de 2002, às 22h00m19s
  • Total de caracteres dos textos: 2.454.427
  • Equivalente do texto em páginas: 1.963 páginas
  • Meses com o maior número de textos: Outubro de 2002 (64), Janeiro de 2003 (61) e Janeiro de 2008 (60)
  • Maiores períodos sem textos: Agosto de 2005 a Fevereiro de 2006 e Abril de 2006 a Setembro de 2006
  • Menor texto: O princípio do fim (54 caracteres)
  • Maior texto: Leituras essenciais de ficção científica (40.174 caracteres ou 32 páginas de texto)
  • Texto com o maior número de comentários: A experiência NetMovies com 46 comentários
  • Número médio de leitores dos últimos dois anos: ~1300

Meio inútil, mas divertido. :)

Leituras essenciais de fantasia

November 6th, 2009 § 2

Continuando no tema de ontem, meu caminho com fantasia foi bem diferente do de ficção científica já que esta era um material muito mais complicado de se encontrar, principalmente para alguém que não tinha acesso ao mercado americano e europeu e estava limitado ao que conseguia achar em bibliotecas públicas.

O primeiro livro de fantasia que me lembro de ter lido foi As Reinações de Narizinho de Monteiro Lobato. Deliciado com a temática, procurei tudo o que poderia encontrar do mesmo gênero e acabei lendo essencialmente toda a obra de autor por meio de uma amiga que tinha uma coleção completa. Além de Lobato, entretanto, o máximo que consegui encontrar foi uma ou outra obra baseada em lendas árabes ou européias. Versões de As Mil e uma Noites e da Canção dos Nibelungos eram o máximo que eu consegui ler até chegar à adolescência.

Um dia, procurando ao acaso na biblioteca pública, encontrei um pequeno volume chamado O Hobbit de um autor que eu não conhecia. Devorei o livro de uma sentada só, impressionado com o escopo do mundo que o autor criara. Fui pesquisar e descobri que Tolkien não só era considerado um dos maiores escritores de fantasia de todos os tempos como também tinha sido responsável por ressuscitar a fantasia moderna. Seu O Senhor dos Anéis era um clássico universal com vendas que superavam basicamente qualquer outro livro já publicado. Demorou algum tempo, mas consegui encontrar os livros em uma biblioteca–como adolescente sem trabalho em não tinha dinheiro nem para consegui-los em um sebo–e li o livro duas vezes em um curto espaço de tempo. E finalmente, quando encontrei O Silmarillion, entendi que aquele seria um dos meus gêneros preferidos.

Apesar disso, meu contato com a fantasia ainda foi bem menor do que o contato com ficção científica até o começo da minha vida adulta. Comecei a ver estilo diferentes e acompanhar novos autores somente quando um amigo americano, que recebia livros de fantasia de sua avó nos Estados Unidos, começou a me emprestá-los ao descobrir que eu compartilhava o mesmo gosto pelas estórias.

Foi então que conheci os grandes nomes que estavam fazendo fantasia na atualidade, com séries épicas e volumosas contando estórias brilhantes sobre mundos onde a mágica era uma constante e uma metáfora tão válida para a capacidade humana quanto a tecnologia. Stephen R. Donaldson, Terry Brooks, Robert Jordan, Terry Goodkind, David Eddings, Ursula K Le Guin (novamente), Anne McCaffrey, Piers Anthony e outros se tornaram companheiros constantes.

Com o tempo, percebi que Tolkien, embora fosse um clássico, não era minha real preferência em fantasia. Eu não sou tradicional e prefiro o tipo de fantasia que realmente estica os limites do gênero. Tolkien, sim, teve o mérito de trazer esse tipo de literatura para o palco com seus livros mas outros também contribuíram tanto quando ele desde então.

Como no texto anterior sobre ficção científica, o que segue abaixo é uma pequena lista do que considero leituras essenciais da área hoje. Novamente, não é uma lista compreensiva e também reflete meu bias em fantasia e o que já li.

Critérios similares aos usados anteriormente se aplicam:

  1. Em sua maioria, os livros foram escritos no máximo há vinte anos, preferencialmente nos últimos dez para trazer à tona o que está sendo feito de bom ultimamente.
  2. Quase nenhum é de autores considerados grandes mestres tradicionais da fantasia. Primeiro, porque a maioria deles escrevia em uma vertente mais clássica. Segundo, porque procurei evitar a produção recente dos que continuam na ativa.
  3. Procurei balancear os grandes sub-gêneros atuais da fantasia, evitando, entretanto um tema que gosto mas que está bem batido: vampiros. Procurei também evitar as séries mais vendidas da atualidade para apresentar material mais interessante.
  4. A maior parte dos trabalhos aqui ganharam os grandes prêmios do gênero mas eu não referencio nenhum dos mesmos.
  5. Como já havia prometido para algumas pessoas também uma lista do que acho interessante no gênero, a lista também indica fortes preferências pessoais.

Como anteriormente, as descrições dos livros evitam ao máximo spoilers mas possuem um pouco da minha visão do que faz o livro é interessante e essencial e por isso podem relevar mais do que devem às vezes. Sinta-se à vontade, portanto, para ignorar as descrições e simplesmente procurar pelos mesmos na Internet.

Mordant’s Need & The Chronicles of Thomas Covenant, the Unbeliever — Stephen R. Donaldson

Stephen R. Donaldson é de longe, em minha opinião, o autor mais poderoso a agraciar a fantasia com seu trabalho. Seu nome é uma exceção às regras acima nessa lista porque o considero não só o maior nome atual em fantasia como o responsável por praticamente tudo o que aconteceu de bom no gênero nos últimos 20 anos. Donaldson fez pela fantasia o que Iain M. Banks fez pela space opera, mostrando que era possível fugir do estereótipo de anões e elfos e criar algo surpreendente, poético e belo. Na época em que Donaldson escreveu seus livros, o mercado era essencialmente dominado pelos livros de Terry Brooks que eram–e ainda são–uma cópia deliberada de Tolkien capitalizando sobre os mesmos temas para atrair leitores. Donaldson mostrou que isso não era necessário e abriu as portas para incontáveis outros autores.

Conheci Donaldson pela primeira vez através do amigo sobre o qual contei acima, e confesso que quase destruí o primeiro livro de sua série sobre Thomas Covenant. Lembro com um nitidez incrível o choque que senti ao ler o sétimo capítulo desse primeiro livro e, quase sem pensar no que estava fazendo, atirar o livro contra a parede, quase quebrando o mesmo em duas partes. Esse é o impacto que o que Donaldson escreve causa em seus leitores–não por ser grotesco ou por apelar para literatura barata, mas por conseguir apertar os botões da nossa humanidade. Ironicamente, Donaldson é pouco conhecido atualmente. Embora seus livros tenha vendido muito bem, ele é tão forte que acabou sendo superado em vendas por literatura mais popular e mais rasa posterior.

The Chronicles of Thomas Covenant, the Unbeliever é uma série originalmente em três volumes que ele escreveu no começo nos anos oitenta. Para não me alongar mais sobre o livro e estragar minimamente as surpresas que ele reserva, basta dizer que o personagem principal, Thomas Covenant, é um anti-herói, literalmente leproso, que se vê as voltas com uma situação que não consegue suportar e que vai além de qualquer coisa pedida a um ser humano. O resultado é brilhante, com um impacto que vai durar anos no leitor, falando profundamente sobre a dignidade do ser humano. A série continuou anos depois com mais três volumes igualmente profundos e Donaldson agora está no meio de uma tetralogia final que completará a estória. Desnecessário dizer, estou esperando cada volume ansiosamente.

Mordant’s Need é outra mostra do talento de Donaldson. São dois volumes que contam estória de uma mulher chamada Terisa que é levada a um mundo em que espelhos são a forma de mágica dominante e onde ela é jogado em meio a intrigas políticas e militares por ser confundida com alguém que pode trazer balanço a esse mundo. Donaldson mais uma vez subverte os clichês tradicionais de fantasia lidando com temas como realidade, poder, inação, identidade e amor de uma maneira adulta e poderosa.

Da mesma forma que com Iain M. Banks, para usar o proverbial exemplo, se eu tivesse que escolher uma série de fantasia para levar para um ilha deserta, os livros de Donaldson seriam a escolha óbvia.

A Song of Ice and Fire — George R. R. Martin

George R. R. Martin é um autor bastante conhecido e seus livros já são numerados nas dezenas. A Song of Ice and Fire é sua maior obra–e ainda incompleta–e uma das melhores coisas de fantasia que eu já li. Embora usando o tradicional cenário medieval como base, Martin dá um ar de frescor aos seus escritos por essencialmente não usar mágica além do mínimo necessário. Como exceção de um ou outro objeto e uma ou outra raça mágica, os livros poderiam ser considerados quase como que história alternativa.

A grande diferença do que Martin escreve está no modo impiedoso e realista com o qual ele trata a estória e seus personagens. Como o título do primeiro livro da série, A Game of Thrones, dá a entender, a estória é sobre a disputa pelo controle de uma nação após a morte de um grande rei. Várias casas, cada um com um propósito diferente, algumas suportado os herdeiros originais do trono, outros suportando anteriores inimigos, se posicionam para batalhas épicas tanto nos campos quanto em salas de espera em castelos. Ao mesmo tempo, dois antigos poderes ressurgem e convergem para o coração desse reino dividido.

Se Robert Jordan é conhecido por quase nunca matar um dos seus personagens–e por geralmente ressuscitar os que matou–Martin é conhecido por não ter o menor dó em eliminar personagens pelo bem da trama. Ao fim do primeiro livro, vários dos personagens principais estão mortos e, pelo quarto livro atualmente publicado, dezenas já não integram mais o rol de caracteres, e vários outros estão em fuga ou desaparecidos.

A única ressalva que eu tenho contra a série é que o quinto volume já está sendo produzido há cinco anos sem sinal de aparecer. Como a série deve chegar aos sete livros, há uma distinta probabilidade que Martin não termine de escrevê-la dado sua idade e seus outros interesses. Mesmo assim, o que foi escrito até agora já é excepcional em todos aspectos.

Perdido Street Station, Scar & Iron Council — China Miéville

China Miéville é um dos primeiros escritores e um dos maiores expoentes do movimento conhecido como New Weird, que combina fantasia urbana, modernista com horror e surrealismo, resultando em livros que geralmente possuem tramas e finais bem diferentes do que se espera na fantasia tradicional.

Definir Perdido Street Station, por conseqüência, é uma tarefa complicada. Mas, seja lá qual for a categoria em que Perdido Street Station se encaixe, o livro leva essa estranheza ao extremo e apresenta o leitor com um dos melhores mundos fantásticos já criados, povoados de criaturas ímpares e complexas cujas vidas e desventuras compelem o leitor, o atraindo e repelindo ao mesmo tempo. Falando em personagens, o título de livro se refere à principal estação de trens da Cidade Estado de New Crobuzon. A cidade, por si só, é uma das figuras importantes do livro, exibindo em uma incrível complexidade e diversidade. A estação é onde o clímax da estória acontece, embora cada pedaço da enorme e decadente metrópole retratada por Miéville tenha seu próprio encanto, por mais esquisita e degradada que pareça.

O enredo do livro é razoavelmente complexo e eu não quero entregar muito para os que pretendem lê-lo. Resumindo, a história é centrada em Isaac Dan der Grimnebulin, um cientista da cidade que é fascinado pelas mais esotéricas questões seja elas da própria ciência, taumatúrgicas ou ocultas. Isaac, enquanto trabalhando em seu laboratório, recebe a visita de uma garuda (uma espécie humanóide com características de aves e capazes de vôo). A garuda faz uma proposição para Isaac, que aceita o projeto com grande interesse. No meio do projeto, alguns fatos inesperados acontecem, resultado da curiosidade insaciável de Isaac, jogando a cidade nas garras de um terror intolerável. Isaac toma então sobre si a responsabilidade de corrigir os seus erros. No meio dessa busca, amigos e inimigos de Isaac se envolvem, cada um com seus alvos e problemas, em uma trama complexa e extremamente satisfatória.

Estilisticamente falando, Miéville consegue literalmente mudar de marcha na narrativa nitidamente a cada momento em que essa necessidade se faz presente. De sombrio e rápido a lento e melífluo, com um vocabulário próprio e agressivo quando necessário, o livro consegue expressa desespero, esperança e uma boa dose de ennui vitoriano que o tornam uma peça de arte.

Scar e Iron Council se passam no mesmo mundo e repetem com bastante sucesso a fórmula original de Perdido Street Station, apresentando outras facetas do universo criado por Miéville e deixando o leitor sempre com a sensação de que mais obras poderiam vir e que nenhuma delas seria um desperdício de tempo.

The Wizard Knight — Gene Wolfe

Gene Wolfe é uma outra exceção às regras acima por ser antigo no gênero (embora mais conhecido por sua ficção científica do que fantasia). The Wizard Knight é um de seus trabalhos mais recentes e uma obra surreal e única em muitos aspectos.

Em The Wizard Knight, Wolfe conta a estória de Able of High Heart, originalmente um adolescente americano que, ao escolher um caminho errado por uma floresta, é transportado a um reino mágico e transformado quase que instantaneamente em um homem adulto de proporções épicas. Able–que é o nome dado a ele por aqueles que o transformaram–torna-se um Cavaleiro e recebe a missão de trazer balanço ao mundo em que ele se vê lançado. Esse mundo, composto de sete camadas, cada uma deles visível da inferior como se fosse o seu próprio firmamento e tendo os habitantes da camada superior como deuses, é uma versão convoluta e espetacular de Faerie recriada por Wolfe para servir seus propósitos. Dragões, aelfs, reis, rainhas, cavaleiros, deuses e deusas, feiticeiros e magos, ogros e gigantes aparecem em igual medida na estória. No meio disso, se encontra também a estória de amor de Able por Disiri, uma rainha Aelf que ajudou em sua transformação por motivos que são vagamente vistos ao longo dos livros.

Contada largamente em primeira pessoa por Able, na forma de cartas, a narrativa é completamente duvidosa e inconstante. Able, que embora tornado adulto, é no fundo um adolescente, conta sua estória da maneira como ela lhe vêm na cabeça, misturando locais, tempos e fatos. Embora a narrativa seja na maioria do seu ponto de vista, algumas vezes Able narra fatos a que não teve acesso a não ser por terceiros e as pessoas e visões da estória se tornam ainda mais estranhas. Em alguns pontos, a própria construção das frases apresenta falhas como se Able estivesse tentando encontrar as palavras apropriadas e se distraísse, criando um efeito vívido e impressionante de estranheza. Mais curiosas ainda são as menções que ele faz de eventos que aconteceram ou vão acontecer, para simplesmente abadoná-los na narrativa–algumas vezes não sendo mais mencionados ou resolvidos em qualquer ponto do livro.

Essas características podem espantar alguns leitores mas são justamente o que tornam o livro tão belo e envolvente. Gene Wolfe consegue quebrar as convenções do gênero e–de fato, da maior parte do que consideramos literatura fantástica–e produzir uma obra excepcional e valiosa.

The Last Light of the Sun & The Lions of Al-Rassan — Guy Gavriel Kay

Guy Gavriel Kay é provavelmente mais conhecido por sua fantasia bem tradicional. Seus primeiros livros podem ser considerados como tendo bebido diretamente na fonte encontrada por Tolkien. Inclusive, ele foi responsável pela edição de O Silmarillion quando esse foi publicado postumamente pelo filho de Tolkien. Apesar disso, incluo Kay na lista por seu trabalho como fantasia histórica. Muitos dos seus trabalhos se passam em reinos ficcionais que lembram lugares e épocas reais de nossa história, tal como a Espanha de El Cid ou a Constantinopla de Justiniano I.

The Last Light of the Sun é talvez o melhor exemplo disse, se passando durante o período em que os Vikings invadiram a Inglaterra saxônica e trata da estória de um jovem Erling (similares aos Vikings) que deseja se provar como guerreiro, da tentativa de seu pai de corrigir os erros de seu passado, da busca de vingança por um jovem príncipe e da necessidade de um rei de tornar o seu país mais civilizado e mais resistente aos ataques que sofre por parte dos bárbaros. O resultado é uma estória de redenção e amor, profundamente evocativa e que mostra de forma convincente a passagem de uma era. Com quase nenhum elemento de mágica, o livro consegue mesmo assim captar o tom fantástico e nostálgico das obras do gênero.

Em The Lions of Al-Rassan (que se passa no mesmo mundo de The Last Light of the Sun mas séculos antes), a narrativa é igualmente evocativa e doce-amarga. Kay consegue mostrar um mundo inteiramente real e povoado por pessoas que você quase consegue acreditar terem existido como figuras históricas. Neste livro, a inspiração vem dos Mouros, no fim de sua época de dominação árabe sobre a península ibérica, e a subseqüente Reconquista. A estória segue a vida de dois homens cujos destinos os colocam primeiro em favor um do outro e depois contra o outro a serviço de seus respectivos monarcas e povos. No meio disso, o destino das mulheres que amam, filhos e aliados tornam a estória inteiramente crível e marcante.

American Gods & Neverwhere — Neil Gaiman

Gaiman é uma unanimidade recente na fantasia principalmente pelo seu trabalho com quadrinhos–especialmente no épico The Sandman. Sua fantasia é poderosa, mítica e expansiva, sendo quase impossível de classificar por essencialmente usar quase tudo o que já foi escrito no gênero, subvertendo e adaptando influências quando necessário para criar estórias convincentes, profundamente mágicas e transformadoras. Eu poderia citar essencialmente qualquer obra do autor para demonstrar esse ponto, mas acho que as duas que escolhi representam, provavelmente, seus melhores trabalhos.

Eu não vou estragar a surpresa de ninguém, contando muito sobre o livro, mas basta dizer que, em American Gods, o protagonista se vê envolvido em uma luta entre os deus antigos da humanidade (nórdicos, russos, irlandeses, egípcios, praticamente todo o panteão do velho mundo faz uma aparição ou outra) e os novos deuses da era moderna (mídia, dinheiro, tecnologia e a misteriosa Agência –que deve existir porque todo mundo acredita que ela existe). Tudo, entretanto, é mais do que parece e Gaiman leva o leitor a uma exploração fascinante da cultura americana vista através dos olhos de um europeu. O resultado é muito interessante, ainda mais quando visto pelos olhos de uma terceira parte. Para qualquer amante de mitologia, o livro é um prato cheio. As referências internas e surpresas se multiplicam em todas as páginas, incluindo sensacionais jogos de palavras que são um prazer de decifrar. O livro é um dos poucos em que eu fiquei impressionado com o cuidado que o autor teve de resolver toda e qualquer trama aberta no livro, por menor que a mesma fosse.

Em Neverwhere, por outro lado, nós temos a estória de Richard Mayhew, um inglês to interior que se mudou para Londres procurando um trabalho melhor e cuja vida pacata e comum parece estar se encaminhando na direção ideal. Seu trabalho é bom, sua noiva é perfeita e tudo está dando certa para ele. Até que, em uma noite, ele topa com uma jovem caída no passeio perto de sua casa. Ele ajuda a jovem, que está ferida e amedrontada, e sua vida se transforma completamente. De repente, ninguém mais o conhece e ele parece não mais existir, exceto para os misteriosos habitantes de uma outra Londres, a Londres Abaixo. Recrutado para uma causa em que ele não acredita, Richard Mayhew precisa aprender a lidar com o perigoso mundo em que se encontra se espera sobreviver por mais do que algumas horas.

É quase impossível não gostar de um trabalho de Gaiman e a única ressalva que eu tenho para com seus livros está nos de fantasia juvenil que sempre me pareceram um pouco mais fracos e faltando o balanço que dá aos seus outros trabalhos o vigor e força fantástica que possuem. Mesmo assim, é impossível não querer ler mais do que Gaiman oferece.

Mistborn — Brandon Sanderson

Brandon Sanderson era um autor relativamente desconhecido–apesar de seus excelentes livros–até que o estado do falecido Robert Jordan o selecionou para continuar a épica série The Wheel of Time. Mas, mesmo sem a fama advinda dessa mudança, Sanderson cedo ou tarde aparecia com força no cenário de fantasia pela originalidade de seus trabalhos. De fato, foi justamente essa originalidade que levou à sua escolhe para continuar a obra de Jordan, mesmo quando o mercado geral ainda não tinha percebido o que tinha em mãos.

Mistborn é o trabalho mais conhecido de Sanderson embora ele seja bem prolífico. 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 suas 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.

Aliás, esse é um dos pontos fortes da originalidade de Sanderson, criar sistemas críveis e metafóricos de magia que quebram as convenções tradicionais do gênero. Mas, mais do que isso, suas estórias são tranqüilas, bem arquitetadas, divertidas e com uma fluidez que conquistam o leitor imediatamente.

Não li ainda seu primeiro volume de conclusão de The Wheel of Time, lançado há apenas alguns dias mas tenho certeza de que ele trará uma conclusão digna e bem pensada à série.

Vellum & Ink — Hal Duncan

Hal Duncan é um autor pouco conhecido e seus dois primeiros livros, que foram uma única estória provavelmente é para poucos. Demorei um mês para ler e a pancada intelectual foi a mesma relatada pela maioria dos leitores. Duncan está sendo aclamado como um dos líderes de uma nova geração de escritores de ficção fantástica e o livro prova isso. Vellum não é para os fracos de coração. É um livro sem começo, nem fim, em que cada página se desdobra em múltiplas estórias dentro de um multiverso onde Céu e Inferno batalham pela própria realidade. Não dá nem para começar a falar sobre o livro aqui porque ele é complexo demais para ser absorvido em uma única leitura, quanto mais destilado em uma entrada de um blog. O que eu posso recomendar é: pesquisem um pouco do Google e leiam.

Malazan Book of the Fallen — Steven Erikson

Eu fui atraído por essa série, cujo décimo e último volume deve ser publicado no próximo ano, quando vi uma indicação do próprio Stephen R. Donaldson em uma entrevista. E de fato, a série é considerada por muitos o trabalho mais significativo de fantasia desde que Donaldson escreveu seus livros. Como é quase impossível descrever uma série de dez volumes em alguns parágrafos, vou dizer apenas que a estória de passa no Império Malazan e tem uma complexidade e escopo que rivalizam uma enciclopédia sobre o assunto. Embora muitos dos livros da série sejam auto-contidos, os eventos são complicados, aninhados e interligados de tal forma que acompanhar a série é um esforço–delicioso, sim, mas um esforço. Poucos trabalhos atuais conseguem ter a quantidade de intriga, batalhas, personagens, deuses e tudo o mais que uma boa fantasia deve ter. Enfim, vale a pena. Estou nos primeiros volumes ainda e gostando de cada palavra.

The Name of the Wind — Patrick Rothfuss

Patrick Rothfuss é outro autor recém-chegado ao gênero. The Name of the Wind é seu primeiro livro, parte de uma trilogia cujo segundo volume está para ser publicado no começo do próximo ano. Atualmente, é muito raro que eu comece uma série antes que todos os livros tenha sido escritos–motivado, em grande parte, pela quantidade de séries que estou esperando que acabem algum dia–mas essa vale a pena. A estória é fascinante e eu devorei o livro. Só para dar o gosto, um pequeno trecho do mesmo:

I have stolen princesses back from sleeping barrow kings. I burned down the town of Trebon. I have spent the night with Felurian and left with both my sanity and my life. I was expelled from the University at a younger age than most people are allowed in. I tread paths by moonlight that others fear to speak of during day. I have talked to Gods, loved women, and written songs that make the minstrels weep.

You may have heard of me.

Novamente, os livros acima, representam, é claro, apenas uma mínima fração do que está sendo produzido atualmente. Eu poderia continuar citando várias menções honrosas que completam a lista como:

  • The Wheel of Time — Robert Jordan (com ressalvas)
  • The Sword of Truth — Terry Goodkind (com ressalvas)
  • Memory, Sorrow, and Thorn — Tad_Williams
  • Age of Misrule — Mark Chadbourn
  • The Earthsea series — Ursula K. Le Guin
  • The Arjun Chronicles — Felix Gilman
  • The Chronicles of Amber — Robert Zelaszny
  • The Great Game — Dave Duncan
  • The Merchant Princes — Charles Stross
  • E centenas de outros…

Espero que a lista tenha sido de utilidade para alguém. Sintam-se, claro, à vontade para acrescentar outros nomes nos comentários.

Simples complexidade

November 5th, 2009 § 0

Everything should be made as simple as possible, but not simpler.

— Albert Einstein

Estava lendo hoje o texto do pessoal do GitHub sobre como eles bolaram a arquitetura de suas aplicações para escalar para a enorme quantidade não só de acesso mas também de cenários de uso que a aplicação apresenta.

O texto é um exemplo excelente de como eles conseguiram sinergia arquitetural através da combinação criativa de aplicações proprietárias customizadas especificamente para o que precisam e reuso de sistemas de sistemas para atender cenários diferentes que, no final das contas, convergem para o mesmo padrão de uso.

De fato, o texto todo me lembrou da citação acima de Einstein de como as coisas deve ser simples ao ponto máximo possível mas não mais simples do que isso. Tomada de um ponto de vista bem pragmático, a arquitetura do GitHub é bastante complexa, apresentando dezenas de partes separadas que se falam coerentemente para servir uma única requisição. Eu gosto especialmente de como um uso judicioso de NIH contribuiu para a solução como um todo–uma aplicação bem clara de simplicidade e elegância.

A propósito, é bem interessante também acompanhar os textos da Anchor, que fez a arquitetura da nova solução de provimento do GitHub. Como é fácil perceber nos textos anteriores, a solução foi desenhada a despeito da infra-estrutura existente mas, obviamente, com o objetivo de ser relativamente simples–novamente, tão simples quanto possível–de ser migrada.

Isso é essencialmente o que eu estava falando quando escrevi o gap arquitetural: enquanto, sim, é possível evoluir a solução e deixá-la emergir–exatamente o que o GitHub fez–é virtualmente impossível escapar da necessidade de uma arquitetura específica, planejada, para obter a consistência e integridade desejados.

Em resumo, um caso muito bom para aprendizado.