Crab Log

Suo Gan

Julho 19, 2008 · Não Há Comentários

→ No CommentsCategorias: Uncategorized

Artaud - sobre drogas

Julho 11, 2008 · Não Há Comentários

Diante de tanta hipocrisia sobre as drogas e seu combate o texto de Artaud dá o que pensar (trechos):

Deixemos que os perdidos se percam: temos mais o que fazer que tentar uma recuperação impossível e ademais inútil, odiosa e prejudicial. Enquanto não conseguirmos suprimir qualquer uma das causas do desespero humano, não teremos o direito de tentar a supressão dos meios pelos quais o homem tenta se livrar do desespero.

Veja mais em:

→ No CommentsCategorias: Uncategorized

Anima Mundi 2008

Julho 8, 2008 · Não Há Comentários

Programação

11/07/2008

Cinema CCBB RJ

Sala de Vídeo CCBB

Teatro II CCBB

Praça Animada - Centro Cultural Correios

Cinema Odeon BR

Cinema Estação Botafogo

Oi Futuro

12/07/2008

Cinema CCBB RJ

Sala de Vídeo CCBB

Teatro II CCBB

Praça Animada - Centro Cultural Correios

Cinema Odeon BR

Cinema Estação Botafogo

13/07/2008

Cinema CCBB RJ

Sala de Vídeo CCBB

Teatro II CCBB

Praça Animada - Centro Cultural Correios

Cinema Odeon BR

Cinema Estação Botafogo

Fonte: http://www.animamundi.com.br

→ No CommentsCategorias: Uncategorized

Velejando de Dingue em 6/7/2008

Julho 7, 2008 · Não Há Comentários

Eu e o Márcio velejamos a partir da Marina da Glória (C&L Vela). Os barcos da Ocean Blue (ICRJ) forma vendidos o que vetou minha opção preferida. Os ventos forma melhores do que eu esperava. Lá pelas 16:30, quando voltamos, começei a sentir um pouco de frio. Foi uma velejada tranqüila.

Mais fotos:

→ No CommentsCategorias: Vela

Panorama do Cinema Francês

Junho 12, 2008 · Não Há Comentários

De 21 a 26 de junho acontece o panorama.

Programação

Dia 21, Sábado
	19:00	Cerimônia de abertura
		Canções de amor
	22:00	Satã
Dia 22, Domingo
	13:00	O advogado do terror
	15:30	Lady Jane
	17:45	A última amante
	20:30	O segredo do grão
Dia 23, Segunda
	18:00	As aventuras de Moliére
	20:30	O escafandro e a borboleta
Dia 24, Terça
	18:00	Canções de amor
	20:30	A última amante
Dia 25, Quarta
	18:00	O escafandro e a borboleta
	20:30	O segredo do grão
Dia 26, Quinta
	16:00	Lady Jane
	18:00	O advogado do terror
	20:30	As aventuras de Moliére

Fonte:

→ No CommentsCategorias: Cidade & Região · Cinema · Cultura · Evento · Filme

Formulários no Google Docs

Junho 11, 2008 · Não Há Comentários

Uma funcionalidade nova no Google Docs parece ser bem útil:

→ No CommentsCategorias: Software · Web

Entrevista com Douglas Hofstadter

Junho 2, 2008 · 2 Comentários

Veja a entrevista em O pensador americano Douglas Hofstadter.

Hofstadter escreveu o livro GEB que estou tentando obter em português, sem sucesso.

No link abaixo um admirador de Hofstadter brinca com frases autoreferenciais:

→ 2 CommentsCategorias: Ciência · Cultura · Livro

onAnswer Hack

Maio 31, 2008 · Não Há Comentários

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

→ No CommentsCategorias: Smalltalk
Tagged: ,

Alphabetic Batched List Hack

Maio 31, 2008 · Não Há Comentários

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:

→ No CommentsCategorias: Smalltalk
Tagged: ,

Batched List Hack

Maio 30, 2008 · Não Há Comentários

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:

→ No CommentsCategorias: Smalltalk
Tagged: ,