Archive for October, 2005

entendendo o britpop

Wednesday, October 26th, 2005

Há quem atribua a expressão _Cool Britannia_ à Newsweek, quando esta declarou Londres a capital mais _cool_ do mundo, mas parece que aparece num [disco](http://www.amazon.com/exec/obidos/tg/detail/-/B00005AFL2/qid=1130346519/sr=8-5/ref=sr_8_xs_ap_i5_xgl15/103-0952132-3057400?v=glance&s=music&n=507846http://www.amazon.com/exec/obidos/tg/detail/-/B00005AFL2/qid=1130346519/sr=8-5/ref=sr_8_xs_ap_i5_xgl15/103-0952132-3057400?v=glance&s=music&n=507846)
dos anos 60, de uma banda psicodélica esquisita chamada _Bonzo Dog Band_ cujos maiores fãs eram os Beatles. Mais do que uma curiosidade histórica inútil, este fato pouco percebido ilustra a origem da estética de onde brotam Oasis, Supergrass, Blur e assim por diante em uma característica mais “paramétrica” da dinâmica social da cultura pop no Reino Unido.

Ora, é consenso trivial que a Inglaterra, talvez acima ou talvez imediatamente depois dos Estados Unidos, é um dos principais centros emanadores de cultura pop. É bem conhecida, também, a curiosa gênese deste processo, com um movimento caracteristicamente inglês de importar o rock’n roll e o blues dos negros americanos (e quando os Stones ouvem discos americanos, ouvem Muddy Waters e Chuck Berry, não Buddy Holly e Elvis Presley), para em seguida explodir e invadir os Estados Unidos na _british invasion_ encabeçada pelos Beatles.

Existe um ensaio a ser feito aqui sobre como o rock inglês é a matriz do rock branco americano subseqüente, sendo abandonado o modelo Elvis/Holly — e pouquíssimo utilizado o modelo Chuck Berry/Jimi Hendrix — mas a dinâmica social da cultura pop americana é conhecida. Em que pesem pontos fora da curva (e Hendrix brilha, sobrando nas décadas subseqüentes um Funkadelic, um Sly and the Family Stone, um Living Colour e um Lenny Kravitz), a música negra se recombina sucessivas vezes ao _gospel_, desenvolvendo gradualmente o som que reconhecemos hoje, e que também teve muito sucesso internacional (sendo às vezes até imitado pelos ingleses ;-)).

Isto é reflexo de uma dinâmica cultura e de uma dinâmica social mais ampla; faz sentido, sem racismo, falar de cultura negra e branca nos EUA porque ambas se mantém separadas pelas suas próprias dinâmicas internas, sem supressão ou imposição de uma sore a outra. Mais ainda, os negros americanos — em termos menos carregados, os consumidores de cultura _black_ — ascenderam em padrão de vida e se tornaram um mercado consumidor significativo.

mágica!

Wednesday, October 26th, 2005

Uma cifra Caesar “rotaciona” os caracteres de uma frase. Por exemplo, caesar(2, "xyzabc") = "zabcde". A variante mais popular é o ROT13, muito usado quando se quer postar alguma coisa sem que um desavisado leia “sem querer” algo como um spoiler de filme.

Temos uma frase (em inglês, porque eu calibrei o algoritmo com a versão inglesa do projeto Gutenberg das obras completas de Nietzsche), que sabemos encriptada por uma cifra Caesar. Não sabemos, no entanto, o n de rotação. O seguinte programa mágico “adivinha” qual é o n.

Em outras palavras, o programa reconhece se uma seqüência de letras é inglês ou não!

O truque é atribuir um score de “semelhança com o inglês”, ponderando cada letra da frase pela sua freqüência relativa em uma grande massa de texto em inglês.

Os seguintes exemplos foram propostos, como desafio, pelo Beto, meu habitual colega de nerdice. Colo apenas os resultados de score mais alto, como ilustração.

$ echo "WPE XP DPP TQ ESPDP SPFCTDETND LWW HZCV HPWW ZC YZE" |./magic

(2.167953929539295,”WPE XP DPP TQ ESPDP SPFCTDETND LWW HZCV HPWW ZC YZE”)

(2.1861212737127373,”ATI BT HTT XU IWTHT WTJGXHIXRH PAA LDGZ LTAA DG CDI”)

(2.5361686991869914,”LET ME SEE IF THESE HEURISTICS ALL WORK WELL OR NOT”)

$ echo SHUKDSV LWV D KROH, FDQ BRX GLJ WKDW KROH RU FDQW BRX?SHUKDSV LWV D KROH, FDQ BRX GLJ WKDW KROH RU FDQW BRX? | ./magic

(3.8078252032520323,”APCSLAD TED L SZWP, NLY JZF OTR ESLE SZWP ZC NLYE JZF?APCSLAD TED L SZWP, NLY JZF OTR ESLE SZWP ZC NLYE JZF?”)

(3.9856097560975607,”ETGWPEH XIH P WDAT, RPC NDJ SXV IWPI WDAT DG RPCI NDJ?ETGWPEH XIH P WDAT, RPC NDJ SXV IWPI WDAT DG RPCI NDJ?”)

(4.096321138211382,”QFSIBQT JUT B IPMF, DBO ZPV EJH UIBU IPMF PS DBOU ZPV?QFSIBQT JUT B IPMF, DBO ZPV EJH UIBU IPMF PS DBOU ZPV?”)

uma introdução ao Haskell usando cobras autofágicas

Thursday, October 20th, 2005

(ou, ei tio, me dá um emprego?)

No início, era a série de Fibonacci. Em notação matemática, a série de Fibonacci é:

xn = xn-1 + xn-2

Como eu faço um computador me dar uma série de Fibonacci? Em Basic (que na versão imagética é a linguagem que a maioria dos empregadores quer que eu use), damos as seguintes ordens para o companheiro computador:

fib(0) = 1

fib(1) = 1

for i = 2 to 200

fib(i) = fib(i-1)+fib(i-2)

next i

print fib

A primeira versão ingênua em Haskell define uma função e depois cria uma lista com ela:

fib 0 = 1

fib 1 = 1

fib n = fib (n-1) + fib(n-2)

fibs = [ fib x | x<-[1..200]]

200 é um limite arbitário. Por que alguém precisaria de mais de 200 elementos? A minha ressalva estética é que “200 primeiros elementos da série de Fibonacci” é um problema específico, bem diferente daquele proposto pela equação xn = xn-1 + xn-2. Mas graças a uma das esquisitices teóricas da linguagem Haskell — coisas que nunca aparecem no Básico Imagético –, o problema pode ser generalizado simplesmente usando uma lista infinita. Reescrevo a última linha como

fibs = [ fib x | x<-[1..]]

E posso obter a lista até o ducentésimo elemento com um

take 200 fibs

A notação usada para definir a lista fibs pode ser usada para definir a própria função Fibonacci — ou melhor, definir a lista numa tacada só:

fibs = 1:[ x+y | (x,y)<-zip fibs (tail fibs) ]

As duas palavras novas que aparecem aí são fáceis de explicar. tail (o equivalente do cdr no Lisp) elimina o primeiro elemento de uma lista. tail [1,2,3,4] retorna [2,3,4]. zip vai juntar duas listas em pares. Por exemplo , zip [1,2,3] [4,5,6] retorna [(1,4), (2,5), (3,6)]. Ora, uma expressão do tipo zip [1..5] (tail [1..5]) é equivalente a zip [1,2,3,4,5] [2,3,4,5] e retorna [(1,2), (2,3), (3,4), (4,5)]. Desse modo, a série de Fibonacci fica infinitamente definida assim!

do silêncio

Monday, October 17th, 2005

O silêncio relativo aqui tem sido compensado por uma maior atividade na minha página na Hawiki. Essencialmente, os jedi mind tricks e os posts técnicos têm acontecido por lá, onde têm público específico. Não vos abandon(ei/arei), prometo.

just in case

Monday, October 17th, 2005

Se alguém andava se perguntando, a posição do delta-bar-delta é “não”.

Monday, October 10th, 2005

Tommy Schelling, de quem eu vivo falando o tempo inteiro ganhou metade do Nobel de Economia.

diários de patinete 7

Monday, October 3rd, 2005

Faz muito frio em São Paulo no inverno.

Free counter and web stats