Arquivo do mês: maio 2008

onAnswer Hack

Este hack mostra como usar #onAnswer. Para mais detalhes veja o link lá embaixo.

Criaremos 4 classe e seus métodos para obter imagens fáceis de seguir.

Crie a primeira classe com o código:

SeasideHack subclass: #OnAnswerHack

instanceVariableNames: ‘a’

classVariableNames:

poolDictionaries:

category: ‘Seaside-Hacks’

E os métodos:

initialize

super initialize.

a := A new

renderContentOn: html

html render: a

children

^ Array with: a

Crie a segunda classe com:

SeasideHack subclass: #A

instanceVariableNames:

classVariableNames:

poolDictionaries:

category: ‘Seaside-Hacks’

E os métodos:

renderContentOn: html

html div id: ‘letter-A’;

with: [html text: ‘A’.

html

form: [html submitButton text: ‘call B’;

callback: [self call: B new]]]

style

^ ‘#letter-A {background-color: hotpink; width: 300px; height: 300px}’

Crie a terceira classe com:

SeasideHack subclass: #B

instanceVariableNames: ‘c’

classVariableNames:

poolDictionaries:

category: ‘Seaside-Hacks’

Com os métodos:

initialize

super initialize.

c := C new

renderContentOn: html

html div id: ‘letter-B’;

with: [html text: ‘B’.

html render: c.

html

form: [html submitButton text: ‘answer’;

callback: [self answer]]]

style

^ ‘#letter-B {background-color: darkseagreen; width: 200px; height: 200px}’

children

^ Array with: c

E finalmente a quarta classe:

SeasideHack subclass: #C

instanceVariableNames:

classVariableNames:

poolDictionaries:

category: ‘Seaside-Hacks’

E os métodos:

renderContentOn: html

html div id: ‘letter-C’;

with: [html text: ‘C’.

html

form: [html submitButton text: ‘answer’;

callback: [self answer]]]

style

^ ‘#letter-C {background-color: aquamarine; width: 100px; height: 100px}’

Para registrar a aplicação no Seaside execute:

OnAnswerHack registerAsApplication: ‘onanswerhack’

A execução da aplicação leva à aparição da seguinte figura:

Um clique no botão call B substitui o componente A pelo componente B e faz aparecer a figura:

O botão answer do componente B (botão de baixo) invoca self answer que retorna ao componente A, mas o botão answer no componente C, embedded em B, envia a mensagem self answer que não retorna para nenhum componente pois o componente C não foi invocado com self call:. No componente B a última linha do código abaixo (que você deve inserir agora) serve para interceptar o retorno e redirecioná-lo para o componente que invocou o componente B (o componente A):

initialize

super initialize.

c := C new.

c

onAnswer: [:dummy | self answer]

Fonte: Aprendendo a usar o método #onAnswer: em Seaside na prática: autenticação de usuários

Anúncios

Alphabetic Batched List Hack

WAAlphabeticBatchedList efetua a paginação de uma lista de forma alfabética.

Para testar crie a classe com o código:

WAComponent subclass: #AlphabeticBatchedListHack

instanceVariableNames: ‘items batchedlist’

classVariableNames:

poolDictionaries:

category: ‘Seaside-Hacks’

Os métodos são:

initialize

super initialize.

items := Collection allSubclasses..

batchedlist := WAAlphabeticBatchedList new.

batchedlist items: items

renderContentOn: html

html heading: self class description.

html heading: ‘All subclasses of Collection’ level: 2.

batchedlist batch

do: [:item | html render: item. html break].

html render: batchedlist

children

^ Array with: batchedlist

A página apresentada é como abaixo:

Batched List Hack

Neste hack colocamos alguns códigos que podem esclarecer como usar o componente WABatchedList no Seaside. Primeiro crie a classe de teste com:

WAComponent subclass: #BatchedListHack

instanceVariableNames: ‘items batchedlist’

classVariableNames:

poolDictionaries:

category: ‘Seaside-Hacks’

Depois implemente os seguintes métodos:

initialize
super initialize.
items := OrderedCollection new.
1
to: 100
do: [:k | items add: ‘item ‘ , (k asString padded: #left to: 3 with: $0)].
batchedlist := WABatchedList new.
batchedlist batchSize: 15.
batchedlist items: items

renderContentOn: html

html heading: ‘Batched List Test’.

batchedlist batch

do: [:item |

html render: item.

html break].

html render: batchedlist

children

^ Array with: batchedlist

A página gerada é como abaixo:

Smalltalk is dangerous. It is a drug.

“Smalltalk is dangerous. It is a drug. My advice to you would be don’t try it; it could ruin your life. Once you take the time to learn it (to REALLY learn it) you will see that there is nothing out there (yet) to touch it. Of course, like all drugs, how dangerous it is depends on your character. It may be that once you’ve got to this stage you’ll find it difficult (if not impossible) to “go back” to other languages and, if you are forced to, you might become an embittered character constantly muttering ascerbic comments under your breath. Who knows, you may even have to quit the software industry altogether because nothing else lives up to your new expectations.”

Andy Bower

Fonte: Seaside, ROR and retiring Java from the spotlight of web applications

Mineirinho

mineirinho06

“É, suponho que é em mim, como um dos representantes de nós, que devo procurar por que esta doendo a morte de um facínora. E por que é que mais me adianta contar os treze tiros que mataram Mineirinho do que os seus crimes. Perguntei a minha cozinheira o que pensava sobre o assunto. Vi no seu rosto a pequena convulsão de um conflito, o mal-estar de não entender o que se sente, o de precisar trair sensações contraditórias por não saber como harmonizá-las. Fatos irredutíveis, mas revolta irredutível também, a violenta compaixão da revolta. Sentir-se dividido na própria perplexidade diante de não poder esquecer que Mineirinho era perigoso e já matara demais; e no entanto nós o queríamos vivo. A cozinheira se fechou um pouco, vendo-me talvez como a justiça que se vinga. Com alguma raiva de mim, que estava mexendo na sua alma, respondeu fria: ‘O que eu sinto não serve para se dizer. Quem não sabe que Mineirinho era criminoso? Mas tenho certeza de que ele se salvou e já entrou no Céu.’ Respondi-lhe que ‘mais do que muita gente que não matou’.Por que? No entanto a primeira lei, a que protege corpo e vida insubstituíveis, é a de que não matarás. Ela é a minha maior garantia: assim não me matam, porque eu não quero morrer, e assim não me deixam matar, porque ter matado será a escuridão para mim.

Esta é a lei. Mas há alguma coisa que, se me fez ouvir o primeiro tiro com um alívio de segurança, no terceiro me deixa alerta, no quarto desassossegada, o quinto e o sexto me cobrem de vergonha, o sétimo e o oitavo eu ouço com o coração batendo de horror, no nono e no décimo minha boca está trêmula, no décimo primeiro digo em espanto o nome de Deus, no décimo segundo chamo meu irmão. O décimo terceiro tiro me assassina – porquê eu sou o outro. Porque eu quero ser o outro.

Essa justiça que vela meu sono, eu a repudio, humilhada por precisar dela. Enquanto isso durmo e falsamente me salvo. Nós, os sonsos essenciais. Para que minha casa funcione, exijo de mim como primeiro dever que eu seja sonsa, que eu não exerça a minha revolta e o meu amor, guardados. Se eu não for sonsa, minha casa estremece. Eu devo ter esquecido que embaixo da casa está o terreno, o chão onde nova casa poderia ser erguida. Enquanto isso dormimos e falsamente nos salvamos. Até que treze tiros nos acordem, e com horror digo tarde demais – vinte e oito anos depois que Mineirinho nasceu – que ao homem acuado, que a esse não nos matem. Porque sei que ele é o meu erro. E de uma vida inteira, por Deus, o que se salva às vezes é apenas o erro, e eu sei que não nos salvaremos enquanto nosso erro não nos for preciso. Meu erro é o meu espelho, onde vejo o que em silêncio eu fiz de um homem. Meu erro é o modo como vi a vida se abrir na sua carne e me espantei, e vi a matéria de vida, placenta e sangue, a lama viva. Em Mineirinho se rebentou o meu modo de viver. Como não amá-lo, se ele viveu até o décimo terceiro tiro o que eu dormia? Sua assustada violência. Sua violência inocente – não nas conseqüências, mas em si inocente como a de um filho de quem o pai não tomou conta. Tudo o que nele foi violência é em nós furtivo, e um evita o olhar do outro para não corrermos o risco de nos entendermos. Para que a casa não estremeça. A violência rebentada em Mineirinho que só outra mão de homem, a mão da esperança, pousando sobre sua cabeça aturdida e doente, poderia aplacar e fazer com que seus olhos surpreendidos se erguessem e enfim se enchessem de lágrimas. Só depois que um homem é encontrado inerte no chão, sem o gorro e sem os sapatos, vejo que esqueci de lhe ter dito: também eu.
Eu não quero esta casa. Quero uma justiça que tivesse dado chance a uma coisa pura e cheia de desamparo e Mineirinho – essa coisa que move montanhas e é a mesma que o faz gostar ‘feito doido’ de uma mulher, e a mesma que o levou a passar por porta tão estreita que dilacera a nudez; é uma coisa que em nós é tão intensa e límpida como uma grama perigosa de radium, essa coisa é um grão de vida que se for pisado se transforma em algo ameaçador – em amor pisado; essa coisa, que em Mineirinho se tornou punhal, é a mesma que em mim faz com que eu dê água a outro homem, não porque eu tenha água, mas porque, também eu, sei o que é sede; e também eu, não me perdi, experimentei a perdição. A justiça prévia, essa não me envergonharia. Já era tempo de, com ironia ou não, sermos mais divinos; se adivinhamos o que seria a bondade de Deus é porquê adivinhamos em nós a bondade, aquela que vê o homem antes de ele ser um doente do crime . Continuo, porém, esperando que Deus seja o pai, quando sei que um homem pode ser o pai de outro homem. E continuo a morar na casa fraca. Essa casa, cuja porta protetora eu tranco tão bem, essa casa não resistirá à primeira ventania que fará voar pelos ares uma porta trancada. Mas ela está de pé, e Mineirinho viveu por mim a raiva, enquanto eu tive calma. Foi fuzilado na sua força desorientada, enquanto um deus fabricado no último instante abençoa às pressas a minha maldade organizada e a minha justiça estupidificada: o que sustenta as paredes de minha casa é a certeza de que sempre me justificarei, meus amigos não me justificarão, mas meus inimigos que são os meus cúmplices, esses me cumprimentarão; o que me sustenta é saber que sempre fabricarei um deus à imagem do que eu precisar para dormir tranqüila, e que os outros furtivamente fingirão que estamos todos certos e que nada há a fazer. Tudo isso, sim, pois somos os sonsos essenciais, baluartes de alguma coisa. E sobretudo procurar não entender.

Porque quem entende desorganiza. Há alguma coisa em nós que desorganizaria tudo – uma coisa que entende. Essa coisa que fica muda diante do homem sem o gorro e sem os sapatos, e para tê-los ele roubou e matou; e fica muda diante do S. Jorge de ouro e diamantes. Essa alguma coisa muita séria em mim fica ainda mais séria diante do homem metralhado. Essa alguma coisa é o assassino em mim? Não, é o desespero em nós. Feito doidos, nós o conhecemos, a esse homem morto onde a grama de radium se incendiara. Mas só feito doidos, e não como sonsos, o conhecemos. É como doido que entro pela vida que tantas vezes não tem porta, e como doido compreendo o que é perigoso compreender, e como doido é que sinto o amor profundo, aquele que se confirma quando vejo que o radium se irradiará de qualquer modo, se não for pela confiança, pela esperança e pelo amor, então miseravelmente pela doente coragem de destruição. Se eu não fosse doido, eu seria oitocentos policiais com oitocentas metralhadoras, e esta seria a minha honorabilidade.

Até que viesse uma justiça um pouco mais doida. Uma que levasse em conta que todos temos que falar por um homem que se desesperou porque neste a fala humana já falhou, ele já é tão mudo que só o bruto grito desarticulado serve de sinalização. Uma justiça prévia que se lembrasse de que nossa grande luta é a do medo, e que um homem que mata muito é porque teve muito medo. Sobretudo uma justiça que se olhasse a si própria, e que visse que nós todos, lama viva, somos escuros, e por isso nem mesmo a maldade de um homem pode ser entregue à maldade de outro homem: para que este não possa cometer livre e aprovadamente um crime de fuzilamento. Uma justiça que não se esqueça de que nós todos somos perigosos, e que na hora em que o justiceiro mata, ele não está mais nos protegendo nem querendo eliminar um criminoso, ele está cometendo o seu crime particular, um longamente guardado. Na hora de matar um criminoso – nesse instante está sendo morto um inocente. Não, não é que eu queira o sublime, nem as coisas que foram se tornando as palavras que me fazem dormir tranqüila, mistura de perdão, de caridade vaga, nós que nos refugiamos no abstrato.

O que eu quero é muito mais áspero e mais difícil: quero o terreno”.

Clarice Lispector, 1978

Utopia Selvagem

701937

Minha admiração por Darcy Ribeiro aumentou bastante quando há alguns anos me deparei com este livro divertidíssimo e mordaz.

O que ele disse sobre este livro:

Utopia selvagem é um trabalho com os mitos elementares procurando expressar o nosso modo de ser brasileiro. Antropofagia e canibalismo, guerra e militarismo, componentes míticos e componentes factuais atravessam o livro na busca de uma identidade étnica, ou seja, atrás da pergunta “quem somos nós?”

O que ele disse, brilhantemente, sobre si:

Sou um homem de causas. Vivi sempre pregando, lutando como um cruzado, pelas causas que me comovem. […] Na verdade, somei mais fracassos que vitórias em minhas lutas, mas isso não importa. Horrível seria ter ficado ao lado dos que venceram nessas batalhas

E em um trecho de ‘O povo brasileiro: A formação e o sentido do Brasil’:

Para os que chegavam, o mundo em que entravam era a arena dos seus ganhos, em ouro e glórias. Para os índios que ali estavam, nus na praia, o mundo era um luxo de se viver. Este foi o efeito do encontro fatal que ali se dera. Ao longo das praias brasileiras de 1500, se defrontaram, pasmos de se verem uns aos outros tal qual eram, a selvageria e a civilização. Suas concepções, não só diferentes mas opostas, do mundo, da vida, da morte, do amor, se chocaram cruamente. Os navegantes, barbudos, hirsutos, fedentos, escalavrados de feridas de escorbuto, olhavam o que parecia ser a inocência e a beleza encarnadas . Os índios, esplêndidos de vigor e de beleza, viam, ainda pasmos, aqueles seres que saíam do mar

Links relacionados:

Tradução de Squeak By Example

Veja os detalhes da tradução do Squeak By Example.