A USP e suas polêmicas

novembro 8th, 2011 by admin No comments »

No último dia 27, o debate referente à presença da Polícia Militar no campus da USP voltou à mídia após alguns estudantes serem flagrados fumando maconha na universidade.

Ocupações e manifestações estampam capas de jornais e têm destaques na mídia -  Nas últimas semanas muito vi e ouvi críticas aos que condenam estas manifestações, alegando que ou não vivenciam a realidade da USP, ou que se deixam levar pela mídia. Em certa parte concordo, e por isso evitei manifestar a minha opinião, até porque, acredito que não tinha uma bem formulada – na verdade talvez ainda não tenha – mas vou compartilhar um pouco da que tenho construído.

A questão da segurança
Os argumentos e as causas defendidas pelos manifestantes, são válidas e extremamente lógicas. Tomei a liberdade de utilizar citações de um texto criado por um amigo, estudante da USP e defensor das manifestações:
“(…)A universidade pública, é o lugar em que novos modelos são pensados. Modelos atômicos, modelos arquitetônicos, modelos tecnológicos e modelos sociais! (…) é o lugar de desenvolver e testar esses modelos, seja a fiação do poste que passa por baixo e não por cima, seja tendo muito mais rotatórias que semáforos, seja tendo uma política de segurança vinculada a necessidade dos que vivem nesse espaço! (…)” .
Desta forma, o que é reivindicado é que, levanto em conta o fato da universidade ser uma autarquia, é seu dever cuidar de todas as suas questões, inclusive da segurança, e, uma vez transferindo esta responsabilidade para o estado, a possibilidade de testar um modelo de segurança mais eficiente, apresentando-o à sociedade, vai por água a baixo (convenhamos que não vivemos num estado seguro, mesmo com nossa PM).
Sou da opinião, ao contrário dos manifestantes, de que HOJE a presença da PM no campus pode complementar as medidas propostas para maior segurança:
“(…)Para começar, segurança tem a ver com infra-estrutura. Um campus bem cuidado, com mato cortado e bem iluminado com certeza seria mais seguro. (…) mais circulares permitiriam que as pessoas passassem menos tempo nos pontos expostas ou se aventurassem em longas caminhadas tarde da noite. Se uma guarda é necessária, que seja a guarda universitária, (…) que tenha a função de guardar as pessoas e não os prédios. Que seja incorporada ao quadro de funcionários da universidade e não conte com terceirizados. Que tenha mais mulheres e formação em direitos humanos para casos como estupros. E o mais importante: Ter um campus freqüentado pela sociedade. (…)”
Concordo que a segurança no resto da sociedade é extremamente ridícula, devido a precariedades muito semelhantes às da USP. Desta forma, embora acredite que são válidas as causas e manifestações envolvendo o fato de que a reitoria não deve se omitir apenas transferindo a responsabilidade para o estado, discordo de exigirem que a PM saia do campus e que o acordo seja cancelado neste momento. Por mais arborizada, limpa e frequentada que uma região seja, acredito que um mínimo de ordem (armada e militar) deve existir, para inibir e punir eventuais oportunidades violentas. Se esta mínima ordem é de responsabilidade da guarda universitária, é algo que deve ser debatido, o fato é que HOJE a PM é mais preparada para este tipo de inibição.

 

Maconha
É uma questão para outro post, é uma outra discussão, mas sou da opinião de que qualquer um tem o direito de lutar por sua liberação (no momento e de modo oportuno), inclusive a defendo, mas a partir do momento em que sua utilização causa uma ferida enorme no país (tráfico, violência, etc), não acredito que qualquer um tenha o direto de usar sem qualquer forma de inibição.
De qualquer modo, uma certa parcela dos manifestantes alega que este assunto não é o foco do debate e das manifestações. Por ora, vou considerar esta afirmação como verdade. (Tenho minhas dúvidas)

 

Sobre as manifestações e ocupações
“(…) Principal responsável por toda a situação, a reitoria se aproveitou da enorme demanda por segurança para implantar seu projeto elitista de universidade. Essa demanda foi criada pela própria reitoria, ao ignorar pautas antigas do movimento estudantil e de trabalhadores por uma universidade mais segura. O atual reitor, Rodas, não apenas transfere sua responsabilidade para o estado, como usa o convenio como desculpa para não tomar mais nenhuma providencia com relação à segurança. Claro que muitos dos pedidos do movimento estudantil levam tempo e necessitam de investimento, mas é tudo questão de prioridade: Já faz meses que o convenio foi firmado e milhões foram gastos com prédios administrativos ainda muito mal explicados.”
Assumindo que o modelo de segurança proposto pelos manifestantes seja de fato o ideal, e assumindo ainda que a reitoria faz um total descaso com estas justas manifestações, cuidando apenas de interesses elitistas – a ocupação de prédios HOJE é realmente a melhor forma de manifestação?
“Em momentos de muita polarização e politização dos movimentos sociais, a ocupação é um método histórico de lutas. Nos levantes que vimos acontecer este ano ele foi bastante utilizado, praça Tahir no Egito, praça Puerta Del Sol na Espanha. Ocupações de fabricas também são muito comuns na historia. (…)”
Por mais manipuladora que a mídia seja, é perceptível a desordem na qual os manifestantes protestam e divulgam os seus ideais, bem como a participação de alguns que estão lá descaradamente pela adrenalina ou pela sensação de que são heróis como os estudantes do passado (vide frases como “não posso nem fumar minha maconha em paz”, ou ainda pela bebedeira dos estudantes em momento de ocupação) .
O que quero dizer é que, logicamente, não são todos que estão se lixando para esses ideais, mas me parece óbvio que o modo como as reivindicações do passado se davam, fazia sentido no contexto da época, quando o militarismo reprimia de verdade o livre pensamento.
Afirma-se que a PM reprime reivindicações. Talvez. Na verdade eu sei que existem sim policiais que têm “sangue nos olhos” para bater “em vagabundo” – mas reivindicações feitas com ordem, sem vandalismos, depredação de patrimônios públicos (hipocrisia, na minha opinião) e principalmente divulgação e argumentos referentes às causas (para serem ouvidos pela mídia e pela população), esta repressão ou não existe ou é exceção de alguns policiais desumanos.

 

Resumindo
As causas são válidas? Eu considero que sim.
Na minha opinião o principal problema é a desordem e a maneira como os estudantes descontextualizam as históricas formas de reivindicações.

Implementando Rubycas Server e Client

junho 29th, 2011 by admin No comments »

Aqui na UFABC possuímos uma base para autenticação de usuários centralizada no LDAP. Para evitar desconfortos aos usuários, bem como para facilitar a vida de nós, que desenvolvemos as aplicações e, é claro, as interfaces de login em cada uma delas, comecei a pesquisar maneiras de realizar um Single Sign-On (SSO) para todas as aplicações já em produção e para as futuras.

Inicialmente pensei em simplesmente criar uma sessão genérica que pudesse ser acessada por diversas aplicações, porém, o que parecia ser mais simples e rápido acabou se mostrando menos seguro e infinitamente menos portável. Logo desisti da idéia e comecei a pesquisar outras soluções de SSO.

O Maurício me indicou uma série de sistemas/bibliotecas baseados em diferentes protocolos, todos para Ruby. No meio da lista o Rubycas me chamou atenção, principalmente por utilizar um protocolo já utilizado e implementado em forma de clients para outras linguagens e por possibilitar a autenticação no LDAP.

Não vou entrar em detalhes sobre a história e funcionamento do protocolo CAS de SSO, mas suas primeiras implementações foram feitas em Java, quando se tornou um projeto da Jasig.

Para saber mais sobre como funciona o protocolo CAS visite este link. Basicamente existe um server que é uma interface web que autentica um usuário em alguma base de autenticação (LDAP no caso da UFABC) e redireciona para algum client que é sua aplicação.

RUBYCAS SERVER

A primeira coisa que fiz após ler um pouco sobre o protocolo CAS e sobre o projeto Rubycas foi tentar fazer o download do rubycas-server, seguindo as instruções desta página, instalei a gem rubycas-server em uma nova rvm gemset e segui as instruções destadesta pagina. As dores de cabeça começaram.

A gem possui dependências de gems antigas, o que ocasionou diversos problemas em alguns requires e em alguns métodos. Fiz alguns monkey patch’s para corrigir estes probleminhas, e após brigar muito com seu arquivo de configuração consegui fazer subir um “Frankenstein” no Webrick.

Foi um avanço, comecei a implementar os clients pois estava com pressa, mas mais tarde voltei ao server, definitivamente eu não queria fazer deploy de um Frankenstein:

  1. Clonei este projeto (O projeto!) do Github:  $ git clone git://github.com/gunark/rubycas-server.git meu_diretorio/rubycas-server;
  2. Entrei na pasta do projeto, editei o arquivo rubycas-server.gemspec e troquei a dependência da gem sqlite3 pelo meu adaptador de bd preferido;
  3. Instalei todas as dependências: $ bundle install
  4. Executei $ ./bin/rubycas-server e o arquivo localizado em ./config/config.example.yml foi automaticamente copiado para /etc/rubycas-server/config.yml
  5. Editei o arquivo /etc/rubycas-server/config.yml configurando o meu servidor e porta da aplicação, o meu adaptador de banco de dados, e meu modo de autenticação (LDAP);
  6. Fiz a aplicação subir localmente no Webrick rodando novamente $ ./bin/rubycas-server
  7. Testei a aplicação em http://localhost:<porta_escolhida> e visualizei a interface de login com sucesso!
  8. Para fazer deploy, como centralizamos nossos códigos no SVN, importei o projeto para nosso servidor SVN e fiz o checkout na máquina de produção;
  9. Dentro da pasta do projeto na máquina de produção repeti as etapas 3, 4 e 5, mas no arquivo de configuração não escolhi o meu servidor (webrick, mongrel, phusion passenger – apache, etc);
  10. Como iria publicar o rubycas-server no Apache (com o Phusion Passenger previamente instalado) entrei no diretório /etc/apache2/vhosts.d e criei um novo arquivo de configuração direcionando o meu host para a pasta da minha aplicação;
  11. Reiniciei o Apache e minha interface de login (Rubycas-server) passou a funcionar em produção desde então!

RUBYCAS CLIENT

A instalação e configuração do rubycas-client foi bem menos traumática. Transformei duas de nossas aplicações em dois clients para se autenticarem noserver que eu já tinha configurado:

  1. Instalei a gem rubycas-client;
  2. Entrei no diretório do projeto da minha aplicação;
  3. Editei o arquivo ./config/environment.rb em uma aplicação feita em Rails 2.x.x e ./config/application.rb em uma feita em Rails 3.x.x e inseri o seguinte código:
        require 'casclient'
        require 'casclient/frameworks/rails/filter'
    
        CASClient::Frameworks::Rails::Filter.configure(
          :cas_base_url => "https://<meu_server>/"
        )
  4. Editei o arquivo ./app/controllers/application_controller.rb e inseri o seguinte código no início do arquivo:  before_filter CASClient::Frameworks::Rails::Filter
  5. Apartir deste momento as aplicações já passaram a funcionar como clients. Um client se comporta basicamente da seguinte maneira: Verifica se a sessão cas_user existe, caso positivo cabe à sua aplicação decidir se fornece ou não permissão ao usuário logado, caso negativo redireciona o usuário para o rubycas-server, onde deve ser feita a autenticação, caso o usuário digite seu login e senha corretamente ele é redirecionado para a aplicação anterior (client), com a sessão cas_user contendo uma string com seu nome de usuário;
  6. O client é bastante flexível. A documentação (http://rubycas-client.rubyforge.org/) me ajudou bastante, principalmente para me ajudar a implementar o logout e a fazer os testes automatizados
E foi assim que consegui implementar um SSO aqui na UFABC. A partir de agora vou monitorar o desempenho e a eficiência do sistema e futuramente avaliar a necessidade de implementar ou não o Shiboleth (outro sistema de SSO que se comunica com a federação Cafe, que não entra no caso agora).

Vale lembrar que os clients do CAS podem ser implementados em outras linguagens além do Ruby (Java, PHP, .NET, etc), veja aqui.

Espero que tenha ajudado, ou ao menos dado alguma idéia. Qualquer coisa podem entrar em contato!

A locomotiva, o incêndio e o globo da morte

julho 7th, 2010 by admin 1 comment »

Esta noite não foi legal, não dormi nada bem. Acordei às 4h00 e voltei a adormecer umas 6h00, para acordar definitivamente às 7h30. Neste pequeno tempo de sono tive vários sonhos fragmentados, mas um destes “fragmentos” me chamou mais atenção.

“Eu estava nos fundos de alguma casa, em um grande quintal. Era noite. Havia muitas pessoas, a maioria era irreconhecível, mas o Fernando, meu colega de trabalho, estava lá.

Em uma espécie de garagem estava exposta uma antiga locomotiva. Não sei ao certo como eu sabia, mas ela fora construída por um velho médico, que também estava presente naquele encontro. Todos que estavam lá gostariam de vê-la em atividade, mas ninguém se arriscava em tentar fazê-la funcionar. Ninguém com exceção do Fernando.

Ele montou em cima de uma das partes da locomotiva, tirou uma pesada tampa de ferro e começou a inserir alguns combustíveis e a tentar acender algum fogo. Logo em seguida o Fernando se afastou e se juntou à multidão que aguardava o início do funcionamento daquela máquina.

Todos estavam desconfiados quanto ao sucesso da tentativa de Fernando, até que uma pequena chama surge de dentro da locomotiva. Logo após a euforia dos presentes a chama começou a aumentar. E aumentou. E aumentou mais. Um grande incêndio teve início no galpão onde ela estava. Me lembro até do cheiro de queimado.

Por algum motivo obscuro o Fernando era bombeiro, e por um mistério maior ainda, estava com toda a sua equipe e seus equipamentos, que logo deram início à contenção do fogo.

Em meio à correria e  à passagem de bombeiros e mangueiras, eu avistei um senhor, não tinha barba mas era velho, e estava de branco. Era o médico construtor da locomotiva. Eu pude enxergar o pranto em seus olhos avistando a destruição de sua máquina, me emocionei, criei coragem e fui pedir desculpas ao homem pelo inconveniente. O médico foi extremamente humilde e bondoso. Pediu para não ligarmos, e ficarmos tranquilos pois ele não ficaria bravo. Após eu me desculpar mais uma vez ele me interrompeu e me perguntou se eu já havia ouvido a história sobre o motoqueiro que iria se apresentar pela primeira vez no globo da morte. Eu disse que nunca tinha ouvido falar da história. Então ele iniciou…”

E eu acordei. =(

Juro que tentei adormecer novamente só para ouvir a “parábola do Globo da morte” contada pelo velho médico, mas não consegui.

Pois bem, fica então para a nossa imaginação, ou quem sabe para um próximo sonho. =]

É isso aí, pessoal! Boa noite, bons sonhos e até a próxima!

Digital Media Conference 2010

junho 14th, 2010 by admin No comments »

Update (21/06/2010): Conforme prometido, segue o link para o post no PodMak com as entrevistas gravadas pelo Wesley e por mim na terceira edição do Digital Media Conference – http://www.podmak.com.br/3-digital-media-conference/

Na terça-feira (08/06/2010) recebi uma ligação de meu grande amigo Wesley (@wesleyoliveira).

dmc2010Ele recebeu um convite do Oscar Ferreira (@kakamachine) do PodMak, podcast focado em debater e tratar de assuntos relativos a marketing digital, redes sociais, e-commerce e cibercultura, para cobrir a terceira edição do Digital Media Conference, organizado pela CorpBusiness.

Tive o prazer e a honra de acompanhar o Wesley na cobertura do evento. Assistimos às palestras e debates que contaram com a participação de grandes profissionais de agências e empresas envolvidas no mundo do marketing digital, levantamos questões e pontos que consideramos de interesse do público do PodMak e tivemos o privilégio de bater um papo com alguns dos palestrantes e organizadores do evento.

Não farei aqui a descrição do conteúdo abordado durante o dia no evento, em breve farei um update linkando o post no PodMak com os detalhes da nossa cobertura, fotos do evento e entrevistas que gravamos com alguns dos participantes.

Mas desde já gostaria de fazer alguns agradecimentos especiais:

  • Ao convite do Wesley e do Oscar pela oportunidade;
  • Danilo Pádua (@danilopadua), representante da organização do evento que nos tratou muito bem e nos concedeu uma entrevista comentando sobre a importância da Mídia Digital no contexto atual do mercado;
  • Mirko Mayeroff, CEO do Superdownloads, que também nos concedeu entrevista falando sobre sua empresa e sobre marketing digital, além de ter aceitado nos receber em seu escritório do Super Downloads;
  • Alexandre Canatella (@ale_canatella), responsável pelos cases de sucesso CyberCook, CyberDiet e Vila Mulher, que gravou uma entrevista com a gente comentando sobre seus startups;
  • Rene Mollinedo (@renemollinedo), diretor de marketing, inovação e mídias digitais da Trendylab (http://www.trendylab.com/), com quem batemos um papo e se comprometeu a nos conceder uma futura entrevista;
  • Tiago Baeta (@tbaeta), responsável comercial da iMasters (http://imasters.uol.com.br/), com quem trocamos algumas idéias;

É isso aí! Aguardem o update do link para o nosso post sobre o evento no PodMak!

Até a próxima.

Não “fui” eu!

abril 2nd, 2010 by admin No comments »

Narrei este sonho umas três vezes já. O pessoal do NTI vai começar a desconfiar que invento.

Desta vez não foi totalmente nonsense, mas tampouco foi normal.

“(…) eu programava algo relacionado ao webmail  utilizado na UFABC. Por algum motivo o sistema de login estava falhando e algo deveria ser feito para que eu pudesse prosseguir com meus testes. Tratei de retirar do software o código responsável pela validação de e-mail e senha. Precisava testar de alguma maneira. ((idéia genial!)) – ‘barack.obama@ufabc.edu.br / Sem senha’ – Não, não era o e-mail do presidente dos Estados Unidos, mas sim do nosso coordenador, Gustavo. Pois bem, consegui me logar e acessar os seus e-mails  tranquilamente, finalizei meus testes, me desloguei, modifiquei novamente o código de login para seu estado original (…)

(…) mais tarde Gustavo chega no NTI, senta na frente de seu PC, que estava na mesa da Thais, se loga em seu e-mail e constata que o último login foi realizado em algum horário daquele mesmo dia, embora ele não tivesse o feito pois estava ocupado com outros compromissos. Decidido a localizar o invasor de sua conta, Gustavo localizou alguns vestígios em seu e-mail indicando que a Thais havia realizado alguma alteração em algum lugar. No mesmo momento todos os presentes no NTI direcionam olhares surpresos e de reprovação à Thais, que estava sentada na mesa da Vivian. Gustavo passa a humilhar verbalmente a suspeita. Eu permaneço inerte. Cansada de ser acusada injustamente, Thais se retira abalada da sala, transparecendo e evidenciando a sua inocência, que se tornava notável para Gustavo. Eu fiquei um pouco aliviado pois ninguém seria punido injustamente. O coordenador passa a intimar que o responsável pela ‘invasão’ de seu e-mail se entregasse, para que ele pudesse se retratar com a Thais. Permaneci inerte, com a certeza de que eu jamais seria descoberto e ainda assim ninguém seria punido injustamente (…)”

Repito – não tenho culpa. Algumas falhas de caráter se tornam propriedades de “personagens” que assumo, vez ou outra, em meus sonhos.  Inevitável e comum. Tento refletir e amadurecer com estes fatos inconscientes.

Ps.[1]: Estou com muito sono neste exato momento, meu texto pode conter erros ou estar confuso e incoerente, desculpem-me.

Ps.[2]: Não estou divulgando, portanto obrigado pela visita espontânea ou indicada por terceiros ao meu blog. =]

Boa noite, bons sonhos e até a próxima!