Memória cultural

29 de Junho de 2010, por Desconhecido - 22 comentários
"Exaltado seja o Filho, nosso salvador;
s
ua soberania seja suprema, sem rival algum.
Q
ue seja o pastor dos homens, suas criaturas"

Cântico cristão? Não. É um trecho do Enûma Eliš, poema épico babilônico que, entre outras coisas, narra a batalha entre Marduk - uma espécie de deus dos ventos e tempestades -  e Tiamat - deusa primordial associada a águas caóticas - e a subsequente criação do mundo e da humanidade e o estabelecimento de Marduk como o rei dos deuses e presidente sobre a assembléia de deuses. Marduk era o Filho - no sentido de que não pertencia às primeiras gerações de deuses, e era o salvador, no sentido de que salvara esses deuses - seus pais - da fúria de Tiamat, que pretendia destruí-los. 

Tudo bem, eu distorci um pouco uma tradução do acadiano para o inglês (obviamente eu não sei ler acadiano, aliás... nenhuma língua antiga) para encaixar as coisas. O inglês traz:

"Most exalted be the Son, our avenger;
Let his sovereignty be surpassing, having no rival.
May he sheperd the black-headed ones(1), his creatures" 
--- The Ancient Near East, Volume I - an anthology of texts and pictures, James Pritchard

 

Segundo o próprio tradutor, "black-headed ones" é um termo comum em acadiano que significa raça humana. E de "vingador" para "salvador" foi uma pequena aposta. Não sei se o termo original permite essa tradução. 

Obiviamente esse trecho de hino religioso foi produzido em um contexto muito diferente do cristianismo, muitos e muitos séculos antes do início dessa religião e para decorar um mito muito diferente do mito cristão. 

Entretanto é bastante conhecido entre os estudiosos do antigo oriente próximo que havia bastante intercâmbio cultural entre esses povos, e que há paralelos interessantes entre textos babilônicos, inclusive o Enûma Eliš, e trechos do antigo testamento, uma compilação de textos hebraicos. O cristianismo, que rapidamente se transformou em religião greco-romana, recebendo todo tipo de influencia dessa outra cultura, nasceu no oriente próximo, como uma seita apocaliptica judaica e obviamente carregou consigo boa parte dessa herança.

Para mim é um quase inevitável ficar imaginando se esse tipo de hino religioso não fazia parte do estoque cultural daquelas pessoas, se eles não conheciam esses termos e até que ponto a imagem do Filho divino, do pastor, do salvador, não eram parte de uma memória cultural  que eventualmente achou expressão no apocalipticismo judaico e na nova seita que nascia com a morte do pregador galileu Yeshua de Nazaré. 

 



A Manada e o indivíduo

6 de Novembro de 2009, por Desconhecido - 44 comentários

Eu achei que não fosse querer escrever nada sobre o episódio da garota que foi molestada por uma turba na Uniban porque estava usando um vestido curto, e achei que as pessoas tinham mais ou menos um consenso estabelecido sobre o fenômeno que aconteceu e o julgamento médio das pessoas - excetuando algumas anomalias bizarras - era o mesmo.

Mas lendo hoje o meu twitter fico sabendo da coisa mais inesperada e ridícula:

A Universidade Bandeirante informou em anúncio publicado em jornais paulistas neste domingo, 8, que decidiu expulsar a aluna Geisy Arruda de seu quadro discente. A estudante do curso de Turismo sofreu assédio coletivo no último dia 22 de outubro por ir ao campus de São Bernardo do Campo da faculdade com um vestido curto.
No anúncio publicitário, entitulado 'A educação se faz com atitude e não com complacência' a universidade diz que tomou a decisão após uma sindicância interna constatar que a aluna teve uma postura incompatível com o ambiente da universidade, frequentando as dependências da unidade em trajes inadequados. Para a Uniban, Geisy provocou os colegas ao fazer um percurso maior que o habitual, desrespeitando princípios éticos, a dignidade acadêmica e a moralidade.

A universidade afirma ainda que foi constatado que "a atitude provocativa da aluna resultou numa reação coletiva de defesa do ambiente escolar".

http://www.estadao.com.br/noticias/vidae,uniban-expulsa-aluna-assediada-por-usar-vestido-curto-na-aula,462814,0.htm

Meus grifos. Fiquei pasmo por alguns segundos quando li isso. Continuo não sabendo o que escrever sobre isso. É daquelas (raríssimas) coisas que ultrapassam a minha capacidade de me manter calmo e tentar entender as razões do outro(i). Me dá vontade de abandonar a racionalidade e mandar todo mundo ''tomar nos seus respectivos cus'' como dizia um antigo amigo meu da faculdade. (não venham reclamar do palavrão, ''não estou aqui para fazer amigos'', como diz outro amigo meu)

E é justamente aí é que a gente percebe o poder da manada. São essas as notas que a Manada tange em nossas mentes, as notas escuras que todo mundo tem lá no fundo. A Manada ultrapassa nosso raciocínio e os nossos freios morais. O ''custo psicológico'' de ofender meus freios morais e atentar contra a estabilidade do meu ambiente social é grandemente reduzido quando estamos em grupo. E é aí que essa mesma vontade que eu tive de abandonar a razão vence(ii). A Manada é o super-organismo imbecil a quem rendemos nossa individualidade quando em grupo. Para alguns deve ser quase um transe místico(iii).

Claro que isso não exime ninguém da imputabilidade pelos atos que realiza sob influência da Manada. O indivíduo ainda é racional e ainda escolhe submeter-se ou não a esse ''espírito coletivo'' destrutivo.

Note que não uso aqui a palavra espírito num sentido místico - estou falando de um comportamento emergente, de uma reação coletiva. Como o meu orientador costuma dizer, parece que nós sempre gostamos de personalizar reações emergentes: damos nomes em maiúsculas, usamos artigos definidos e pronomes pessoais. Assim chamamos Cosmo à ordem coletiva do universo e à aparente causalidade coletiva dos fatos, chamamos Natureza à fenomenologia ecológica, às cadeias alimentares, à evolução por seleção natural e à ordem biológica, e chamamos Mente aos fenômenos coletivos produzidos por uma infinidade de células nervosas no nosso Sistema Nervoso Central

Esses fenômenos coletivos em nada diferem, na minha percepção, dos fenômenos coletivos que observamos em outras instâncias mais físicas, menos pessoais e com menos implicações humanas - sendo a emergência do ferromagnetismo a partir da interação de uma infinidade de ''pequenos magnetos'' o mais célebre.

A Manada também é um fenômeno coletivo. Possui a assinatura evidente - quase a definição - de um fenômeno coletivo: não é possível explicar seu comportamento baseando-se apenas no comportamento de cada indivíduo separadamente, mas é necessário entender a interação entre eles.


O inadmissível nesse fato, o espantoso e o inesperado, não é a reação da turba que molestou a garota. Isso é uma coisa até compreensível  (o que não a torna menos absurda). O que me espanta é a reação, supostamente individual e raciocinada, da diretoria da Uni(tale)ban. Expulsar a garota e defender os agressores. Culpar a vítima e proteger os que deveriam ser investigados e expulsos. Atacar o comportamento individual e abraçar a irracionalidade coletiva.

Não estou dizendo que a garota é a heroína da liberdade individual também. É provável que o vestido da garota fosse inadequado. É provavel que ela tenha provocado as pessoas. É provavel que eu nunca me aproximasse dela e se a conhecesse julgasse uma pessoa inadequada, vulgar e ela provavelmente não faria parte do meu círculo social se estudasse na mesma escola que eu. Mas isso não importa.

Nada do que se enquadra na categoria ''comportamento individual dentro da lei, que não incomoda a saúde, a dignidade e o livre-arbítrio de outrem'' deve ser reprimido com essa violência, ainda mais reprimido por uma turba. E, como disse um jornalista(iv) bem odiado por aqui, mesmo que ela estivesse ofendendo uma lei, ela tem o direito de ser reprimida por um agente da lei e não ser moralmente linchada pela Manada.

Espero mesmo que essa não seja a última vez que ouvimos falar desse caso e que haja autoridade capaz de investigar e punir aquela turba de chimpanzés que chegou a ameaçar a garota de estupro. Sobre a expulsão, bem... a Uniban é uma instituição privada e tem o direito de recusar um aluno se quiser - até onde eu sei (advogados por favor me iluminem quanto a isso se eu estiver errado). Mas aquela turba precisa de punição.

 

Notas

(i)  Outra dessas coisas é o judiciário ter que praticamente implorar para que uma decisão judicial seja respeitada. Coisas incompreensíveis... mas isso é outra estória.

(ii) Vontade que eu me esforcei para controlar para escrever aqui algo relativamente civilizado aqui. Talvez se eu estivesse na minha Manada...

(iii) A @elenavolpato no twitter recomendou que eu lesse sobre os conceitos junguianos de Sombra e Persona. Deve ser semelhante ao que eu entendo por Manada e indivíduo. Enfim... preciso ler.

(iv) Antes de falar ''mimimi, não leio a Veja, mimimi, não gosto do Reinaldo Azevedo, mimimi, blog de direitista'', apenas leia o que ele escreveu. Ignore a fonte e interprete o conteúdo - é mais inteligente agir assim. Eu também não sou o maior fã dele e frequentemente discordo dele. Mas frequentemente eu também concordo com ele. Acontece, pombas.



Como chegar na USP?

5 de Novembro de 2009, por Desconhecido - 55 comentários

É tão frequente por aí na internet que pessoas de fora da cidade de São Paulo perguntem como se chega na Cidade Universitária  que eu acho estranho não ter nenhuma informação no próprio site da USP. Eu já passei pela experiência de chegar aqui e precisar ir na USP sem conhecer nada da cidade, é realmente horrível. A cidade inspira terror.

Mas é realmente fácil chegar na USP. Há várias opções. Aqui eu vou colocar as quatro opções que na minha opinião são as melhores para quem está vindo de ônibus para a cidade e precisa chegar na Cidade Universitária ou no campus da USP Leste (EACH). 

A primeira coisa para se ter em mente, que muitas pessoas não sabem antes de vir a São Paulo, é que a Cidade Universitária é ENORME. É uma grande região da cidade, fechada por muros. O ônibus entra dentro do campus e roda quase meia hora lá dentro, então tenha paciência. 

É importante que você saiba direitinho em que prédio quer ir, porque dentro do campus há dezenas e dezenas de prédios. Tenha o cuidado de conseguir direitinho essa informação porque nem sempre as pessoas sabem onde fica o serviço que você quer. É sempre bom saber em que unidade fica o prédio. Os cobradores e motoristas nem sempre conhecem onde ficam as coisas no campus. Pergunte para as pessoas que estão no ônibus. O melhor mesmo é ver no mapa do Google Maps antes de fazer qualquer coisa. Note que o Google Maps tem uma base de dados bem acurada de todas as opções de transporte público em São Paulo. Basta clicar na opção ''Como Chegar'', dar os dois endereços (ou marcar no mapa) e clicar em ''Transporte Público''. Ele te dará duas ou três opções de ônibus/metrô/trem para chegar onde deseja. 

Campus Butantã - Cidade Universitária

Partindo do Terminal Rodoviário do Tietê

Quem está descendo no Tietê tem a opção de pegar o ônibus Cidade Universitária na Av. Cruzeiro do Sul. Mas sinceramente eu acho essa uma péssima opção. Se você tem hora marcada, pode esquecer. Esse ônibus demora pelo menos 2 horas e meia para chegar na USP, mesmo em uma dia sem trânsito. A melhor opção é cortar caminho pelo metrô, que fica dentro da rodoviária.

Tome o metrô no sentido Jabaquara, desça na estação Paraíso ou na estação Ana Rosa (tanto faz, eu prefiro usar a Ana Rosa porque tem bem menos movimento). Agora tome o metrô da linha verde sentido Vila Madalena.

A partir daí existem cinco opções. Qual é a melhor opção depende de onde você vai no campus, porque nem todos os ônibus fazem o mesmo caminho uma vez lá dentro. Verifique no Google Maps ou no site da SPTrans o caminho do ônibus e veja se ele passa onde você quer. 

As opções são:

1) Descer na estação Consolação, sair da estação e andar na Rua Augusta sentido Jardins até o primeiro ponto de ônibus. Alí passam dois ônibus Cidade Universitária, um azulzinho e um laranja, linhas 107T e 7181.

2) Descer na estação Consolação, andar até o cruzamento da Avenida Paulista e a Rua da Consolação. No cruzamento há dois pontos de ônibus: sentido centro e sentido bairro. O que interessa é o ponto de ônibus sentido bairro. Daí pega o Butantã-USP, linhas 702U e 7411.

3) Descer na estação Clínicas, sair pela Av. Dr. Arnaldo. Lá você deve atravessar a avenida para o outro lado e andar um pouquinho para a sua direita para achar um ponto de ônibus na frente do cemitério. Lá você deve pegar o Butantã-USP, linhas 701U, 177H, 177P e 724A.

4) Descer na estação Vila Madalena, sair da estação pela saída principal. Descendo a escadinha logo depois da porta há um pequeno terminal de ônibus. No finalzinho do terminal de ônibus, no último ponto que fica na mesma calçada da saída da estação, você pega o ônibus Rio Pequeno, linha 7725.

Todos esses ônibus também servem para voltar e eles passam perto sempre das estações de metrô onde você desceu para pegá-los. Para pegar a volta basta esperar o ônibus no outro lado da rua onde você desceu.

Há outras opções: ponte orca, pegar trem da CPTM, usar outras linhas de ônibus, mas sinceramente eu não recomendo. Ou vai demorar muito, ou você vai ter que andar um trecho chato a pé, ou você vai ter que pegar ônibus em uma região da cidade que eu não recomendo se você não sabe andar por lá. Esses são os caminhos mais fáceis, em locais bem tranqüilos de se andar, relativamente rápidos.

 

Partindo do Terminal Rodoviário da Barra Funda

Descendo no terminal Barra Funda eu só conheço uma opção: 

1) Pegar o metrô (metrô, não CPTM, ambos ficam dentro da rodoviária) para a Sé (sentido Corinthians-Itaquera). Descendo na Sé você deve fazer baldeação para a linha azul, sentido Jabaquara e descer nas estações Paraíso ou Ana Rosa. Daí você toma o metrô da linha verde no sentido Vila Madalena e segue uma das quatro opções acima. 

Se alguém souber de caminhos melhores do que esse (pensando nos critérios: rapidez, segurança, andando pouco e se expondo pouco) me dá um toque que eu coloco aqui.

Campus USP Leste - EACH

É bem mais fácil chegar na USP Leste do que na Cidade Universitária. 
Partindo do Terminal Rodoviário Tietê

Partindo do Tietê você deve pegar o metrô, sentido Jabaquara. Desça na estação Sé e tome o metrô da linha vermelha, sentido Corinthians-Itaquera e desça na estação Brás. 

Na estação Brás tome o trem da CPTM, na linha 12 Safira, sentido Calmon Viana. Depois de mais ou menos meia hora você deve chegar na estação USP Leste. Desça nessa estação. Uma das saídas da estação cai dentro do campus da USP Leste. 

Outra opção é descer na estação Tatuapé da linha vermelha do metrô (ao invés de descer no Brás) e então pegar o CPTM (mesmo linha acima). A desvantagem é que para tomar o CPTM daí você tem que pagar a passagem de novo pois não há integração (e provavelmente não vai conseguir ir sentado no trem).

A única observação é na volta. Se você voltar por volta das 18 horas tome cuidado na hora de descer no Brás. Nesse horário a estação estará LOTADA. Quando eu digo lotada eu quero dizer que na estação vai ter mais gente do que na sua cidade natal. E toda essa gente quer entrar no trem ao mesmo tempo que você quer sair, então se proteja com os braços e empurre, senão você não sai do trem. Saia pela primeira porta de cada vagão - quando está muito lotado os funcionários da estação reservam a primeira porta de cada vagão apenas para desembarque, o que ajuda pra caramba. Mas isso não é sempre, então esteja pronto para a maior muvuca do universo. 

Partindo do Terminal Barra Funda

Partindo da Barra Funda, tome o metrô sentido Corinthians-Itaquera e desça no Brás ou no Tatuapé e siga as mesmas instruções acima. 

Circular

Na Cidade Universitária (campus Butantã) há duas linhas de ônibus circular gratuito para quem circula no campus. Elas rodam praticamente todo o campus. 

Entretanto eu não sei o itinerário que o circular faz e o site da USP é UM LIXO e não tem informação nenhuma sobre isso. Aliás, obter informação sobre qualquer coisa da USP na internet é praticamente impossível, então se você quiser usar o circular é melhor ligar lá e perguntar o itinerário ou mandar um e-mail e rezar pela resposta.

(0xx11)3091-4974
circular@usp.br




Recuperando notícias da Web com um script Python

4 de Novembro de 2009, por Desconhecido - 22 comentários

 

Eu estava planejando estudar um pouco de natural language processing, information retrieval e lingüística computacional, um assunto que eu sempre achei muito promissor e interessante. Há um pacote para Python chamado Natural Language Toolkit, com várias ferramentas supimpas e até alguns corpora de texto em português. Mas como eu sou um cara chato eu quero montar o meu próprio corpus de texto me baseando talvez em buscas específicas e poder ver como os resultados dos algoritmos variam mudando as fontes e os assuntos. 

A minha primeira tentativa bem sucedida foi tentar baixar em grande quantidade artigos da Folha de São Paulo para o meu computador. Isso me serviu para aprender a usar algumas boas bibliotecas Python que eu não conhecia: o BeautifulSoup, o feedparser e o pacote de expressões regulares.

Neste post eu queria descrever um pouco dessas bibliotecas e um pouco dos problemas de se conseguir informação desse tipo na internet - informação que a princípio está lá, é "acessível" e "pode ser usada". 

O primeiro problema é legal: eu provavelmente não posso usar esse corpus de notícias que eu baixei. Sinceramente estou pouco ligando - na minha cabeça se um texto está na web é como se estivesse jogado no meio da rua, eu posso pegar e usá-lo para o que eu quiser desde que eu não tente ganhar dinheiro vendendo o texto (posso vender o livro que contém o texto se eu quiser) sem autorização do autor.

Superado esse problema vamos aos problemas técnicos de acessar o texto:

  • A forma mais fácil de obter uma seqüencia de textos de notícia é usar um RSS, entretanto é praxe dos RSS de jornais e revistas não colocar o texto todo no feed mas apenas um sumário. Então a utilidade do RSS é apenas fornecer o link para  a notícia e eu tenho que baixar a notícia no site mesmo. Além disso o feed apenas contém as 10 ou 15 últimas entradas e não um registro histórico completo então preciso de alguma forma de acessar uma lista dos feeds dos últimos anos. 
  • Os sites de jornal são bonitos, cheios de barras, colunas, tabelas e propaganda. Isso é muito legal, mas quando você quer pegar apenas o texto da notícia é um saco. Seria muito fácil se os programadores que fizeram o site fossem muuuuito legais e marcassem direitinho o html, mas não é assim.

 

Então o roadmap é: (1) aprender a parsear um feed RSS usando um script, (2) fazer um programa que olhe um html e consiga extrair a notícia e (3) encontrar um histórico do RSS que eu quero baixar. Após muita navegação na web eu consegui resolver os três problemas usando ferramentas muito legais e simples de usar.

O problema (1) é resolvido usando o Universal Feedparser, uma biblioteca para parsear RSS automágicamente. A interface é beeeem intuitiva. Vamos a um exemplo simples com o feed da Folha.

Posso então fazer:

[code=py]

import feedparser
url_feed = "http%3A//feeds.folha.uol.com.br/folha/emcimadahora/rss091.xml"

feed = feedparser.parse(url_feed)
for post in feed.entries:
    print post.title, post.link

[/code]

Esse código vai imprimir os títulos e links de todas as notícia. O que está acontecendo é que a função feedparser.parse simplesmente olha para o XML e retorna o seu conteúdo em um objeto do tipo dict:

[code=py]

>>> print feed.keys()
['feed', 'status', 'updated', 'version', 'encoding', 'bozo', 'headers', 'etag', 'href', 'namespaces', 'entries']

[/code]

O problema número (3) (já volto para o 2) acabou sendo resolvido depois de hoooooras de busca na web. Eu sabia que devia haver solução, uma vez que o google reader é capaz de mostrar feeds antigos. Encontrei, finalmente, esse post no blog de dicas sobre o Google. O Google Reader não apenas é um leitor de RSS, mas ele também salva o histórico de todo feed que alguém já leu e esse histórico pode ser acessado em um feed no endereço:

http://www.google.com/reader/atom/feed/FEED_URL?r=n&n=NUMBER_OF_ITEMS

Onde FEED_URL deve ser substituido pela (dã) URL do feed que te interessa e NUMBER_OF_ITEMS é o número de itens que você quer recuperar. 

As duas limitações são: o número máximo de itens é 5000 (eu gostaria de ter muito mais, mas por enquanto é o que dá pra fazer) e você deve estar logado no sistema de login do Google para conseguir fazer isso. 

Isso é um saco... eu não sabia logar no Google através de um script e estava quase desistindo quando achei essa pergunta no StackOverflow (o MELHOR site para resolver dúvidas de programação de qualquer espécie).

A solução é simular um cookie na hora de acessar a página do Google Reader. A biblioteca urllib2 (que está na biblioteca padrão do Python) consegue fazer isso. Aí embaixo vai uma função para produzir um cookie para acessar qualquer página do Google:

[code=py]
import urllib
import urllib2

def getGoogleSID(user,passwd):
    # Authenticate to obtain SID
    auth_url = 'https%3A//www.google.com/accounts/ClientLogin'

    auth_req_data = urllib.urlencode({'Email': user, 'Passwd': passwd})
    auth_req = urllib2.Request(auth_url, data=auth_req_data)
    auth_resp = urllib2.urlopen(auth_req)
    auth_resp_content = auth_resp.read()
    auth_resp_dict = dict(x.split('=') for x in auth_resp_content.split('\n') if x)
    SID = auth_resp_dict["SID"]
    header = {}
    header['Cookie'] = 'Name=SID;SID=%s;Domain=.google.com;Path=/;Expires=160000000000' % SID    

    return header

def retrieveGooglePage(user,passwd, url):
    header = getGoogleSID(user,passwd)
    request = urllib2.Request(url, None, header)
    openurl= urllib2.urlopen(reader_req)
    text = reader_resp.read()
    return text

[/code]

A função getGoogleSID gera o cookie adequado que é depois usado na função retrieveGooglePage, que retorna todo o conteúdo de uma página do google com com um certo url como se você estivesse logado como o usuário fornecido. Essa função pode ser usada para obter o feed que eu me referi acima.

Então o que pode ser feito é: obtém-se o feed das últimas 5000 notícias e desse feed se obtem os links para as notícias no site da Folha. Agora é necessário parsear o html do site para obter o texto. Aí é que entra a biblioteca BeautifulSoup. Essa biblioteca é um parser de html muito bem feito e fácil de usar.

Uma página em html parseada no BeautifulSoup vira uma estrutura de dados (uma árvore) adequada para extrair conteúdo facilmente. Para dar um exemplo vou colocar abaixo uma  função que extrai a data da notícia. 

Por sorte o programador da página foi suficientemente bonzinho para marcar no html onde está a data da notícia. Aí vai um trecho do html de uma notícia:

[code=html]

<div id="articleDate">