RSSficado de casa nova

Pois é, agora o RSSficado está em www.rssficado.com.br. O endereço foi um presente lá do pessoal da Baggio, a mesma empresa que hospeda o PHPNUKE.ORG.BR. Ainda há umas coisinhas para serem ajustadas (acesso ao código fonte dos parsers, por exemplo) mas eu conserto isso depois do Ano Novo, quando voltarei da casa dos meus pais 😉

E falando em Ano Novo, um 2004 repleto de alegrias!

Em trânsito

Ontem fui lá na casa do Leonardo. Tinha um encontro lá com ele, a Nathalia e a gurizada mais do que legal da Lagarto a Vapor. O Diego também deu as caras por lá. Muito legal o bate-papo acompanhado de várias cervejinhas geladas. E papo vai, papo vem acabamos assistindo ao Tiros em Columbine do Michael Moore no vídeo. Muito bom o filme, só que tem um pézinho no populismo que é uma beleza… Além disso, há uma certa manipulação de números ali. Por exemplo, não há como comparar o número de mortes por armas nos Estados Unidos com países com uma população menor. E isso é feito a torto e a direito. Outra coisa: é interessante ver como é contraditório o discurso de Moore, que bota Marilyn Manson falando que o que ele faz é entreterimento e isso não conta enquanto programas policiais, que também são entreterimento, afetam nos índices. Ok, dá para dar um desconto, afinal quem consegue apresentar uma conclusão sólida acerca dos motivos da violência em apenas duas horas de documentário? O grande mérito do filme na verdade é o de abrir espaço para a reflexão.

E falando em filmes, hoje de tarde fui ver Fanny och Alexander, do Bergman, na Casa de Cultura Mario Quintana. Não, não tem o que comentar: o filme é simplesmente maravilhoso, e deu. Já tinha assistido o filme antes na TV, e ver na tela grande foi simplesmente emocionante. Belíssimo!

Festerê

Coisa boa poder chegar em casa e lavar os pés. Me odiaria se dormisse com os pés sujos. Fora isso a festa n casa do André foi mito boa. :-)

Update: há de se levar em conta o estado que eu estava quando cheguei em casa e parei na frente do computador… Ô post bizarro esse.

Aleluia!

E inspirado aí no video do \”Wear Sunscreen\” aí vai uma música perfeita para essa época do ano, em que somos mergulhados em liturgias e indagações sobre Deus:

Hallelujah
Rufus Wainwright

I\’ve heard there was a secret chord
That David played, and it pleased the Lord
But you don\’t really care for music, do you?
It goes like this
The fourth, the fifth
The minor fall, the major lift
The baffled king composing Hallelujah

Hallelujah
Hallelujah
Hallelujah
Hallelujah

Your faith was strong but you needed proof
You saw her bathing on the roof
Her beauty and the moonlight overthrew you
She tied you to a kitchen chair
She broke your throne, and she cut your hair
And from your lips she drew the Hallelujah

Hallelujah
Hallelujah
Hallelujah
Hallelujah

Maybe I have been here before
I know this room, I\’ve walked this floor
I used to live alone before I knew you
I\’ve seen your flag on the marble arch
Love is not a victory march
It\’s a cold and it\’s a broken Hallelujah

Hallelujah
Hallelujah
Hallelujah
Hallelujah

There was a time you\’d let me know
What\’s real and going on below
But now you never show it to me, do you?
And remember when I moved in you
The holy dark was moving too
And every breath we drew was Hallelujah

Hallelujah
Hallelujah
Hallelujah
Hallelujah

Maybe there\’s a God above
And all I ever learned from love
Was how to shoot at someone who outdrew you
And it\’s not a cry you can hear at night
It\’s not somebody who\’s seen the light
It\’s a cold and it\’s a broken Hallelujah

Hallelujah, Hallelujah
Hallelujah, Hallelujah
Hallelujah, Hallelujah
Hallelujah, Hallelujah

E não, eu ainda não assisti Shrek.

Kurt Vonnegut says \”Wear Sunscreen\”

É interessante ver como as coisas meio que se entrelaçam… No último dia de aula da trilha de desenvolvimento Java para servidores lá na TargetTrust foi mostrado um vídeo para a turma, como uma despedida e uma mensagem de Natal. Vídeo bonito, com belas imagens, música agradável e um texto que eu tinha a impressão de que já tinha ouvido em algum lugar.

\"\"

O pessoal lá da Target ficou de me mandar por email o nome do arquivo para que eu procurasse lá no Kazaa (ou outro p2p da vida) mas no fim das contas não precisei: ontem eu acessei o blog da Deus e o Diabo e lá eu vejo um post justamente sobre esse vídeo. Baixei ele e fui assistir de novo, e daí que caiu a ficha: Putz, esse é o \”discurso do Kurt Vonnegut\”!

Para quem não conhece a história é a seguinte: em 1997 a colunista do Chicago Tribune Mary Schmich escreveu um discurso de formatura imaginário, que começava com \”Ladies and gentlemen of the class of \’97, wear sunscreen.\”. Não demorou muito tempo e alguém, sabe-se lá porque, resolveu dizer que esse texto era um discurso de formatura proferida pelo Kurt Vonnegut no MIT. Talvez como uma forma de dar maior valor ao texto… Mas, enfim, o caso é que o email circulou até não poder mais lá por 1997/1998. Era comum se receber uma cópia dessa mensagem nas listas de discussão da época, além de comentários de pessoas dizendo que aquela mensagem não era do Kurt, perguntando quem era o verdadeiro autor.

\"\"

No fim das contas o pobre do texto virou uma praga na época. A coisa chegou ao absurdo de que a autora, que por conta desse email circulando por aí, foi acusada de plágio… Surrealismo pouco é bobagem.

Mas o tempo passa, o tempo voa, outras lendas urbanas vão aparecendo e essa aí do Kurt caiu no (meu) esquecimento. Nesse meio tempo o diretor autraliano Baz Luhrmann (de Romeu e Julieta) musicou o texto, chamando-a de Everybody\’s Free (to wear sunscreen), música essa que o pessoal da agência de publicidade DM9DDB pegou e usou para fazer um vídeo, utilizando uma série de imagens de arquivo, além de trechos de outras propagandas (pelo menos me pareceu isso ao ver o cabeludo aos 3:13 do vídeo). E não é que o resultado ficou bonito? Assim sendo fica a dica: assista o vídeo. Vale o download de 75 megas. E para quem quiser saber mais sobre a produção do vídeo e quiser a letra vale a pena ler esse post da Brainstorm #9.

E vamos esperar para ver quando é que alguém vai se animar a fazer uma versão dessa música aqui no Brasil com o Paulo Cesar Pereio ou o Paulo José na locução. Eu bem que gostaria de ouvir um deles falando que eu não sou tão gordo quanto eu imagino que sou. 😉

Família, família

Ontem teve festa de Natal em Taquara City. Foi bem legal, valendo a ginástica que foi ir até lá (tive que pegar um ônibus em Porto Alegre, já que em São Leopoldo já não tinha mais ônibus…). E os meus sobrinhos estão cada vez mais lindos :-)

Mas o engraçado é que hoje de tarde eu já estava me coçando para voltar para São Leopoldo. Não, não consigo mais me sentir à vontade em Taquara, não consigo mesmo. Aliás alguma vez eu me senti à vontade lá? Acho que só quando eu namorei a Márcia…

Fone de ouvidos em computadores

Ainda vou entender porque diabos os computadores desktop não vem com saída para fone de ouvido na frente do computador, e não atrás, na placa de som do computador. Pegue por exemplo o meu caso, onde uso um Compaq Deskpro que tem 52 centímetors de largura. Como o fone tem geralmente um cabo de 1,20 metros, não é de surpreender que o cabo nos conectores arrebentem facilmente. Basta eu me distrair e puf, tá feito o estrago. E o pior: é dificil encontrar fones com cabos mais compridos. Assim sendo, se eu acesso uma página que tem alguma coisa em Flash (como o site da Frank Poole) ou em MP3-streaming (como a Epitonic) tenho que ativar a caixa de som, atrapalhando meus colegas.

E pensar que é extremamente simples para um fabricante botar uma saida para fones na frente do desktop…

Ah! Templates!

Uma coisa que me irrita no que se refere a programação web em geral, especialmente server side includes, é que o HTML é misturado com o código. Assim sendo uma coisa que eu procuro sempre é criar um arquivo template onde há algumas strings que serão substituidas. Por exemplo, pegue esse template tirado lá do Tableless (e substitua o :

<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
	\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"pt\" lang=\"pt\">
<meta name=\"resource-type\" content=\"document\" />
<meta http-equiv=\"pragma\" content=\"no-cache\" />
<meta name=\"revisit-after\" content=\"1\" />
<meta name=\"classification\" content=\"Internet\" />
<meta name=\"robots\" content=\"ALL\" />
<meta name=\"distribution\" content=\"Global\" />
<meta name=\"rating\" content=\"General\" />
<meta name=\"author\" content=\"Diego Alberto Eis, Elcio Luiz Ferreira\" />
<meta name=\"language\" content=\"pt-br\" />
<meta name=\"doc-class\" content=\"Completed\" />
<meta name=\"doc-rights\" content=\"Public\" />

<head>
	<title>_TITULO_</title>
	<style type=\"text/css\">
	<!--
	body{
		background:#EEF;
		margin:0px;
		padding:0px;
		font-family:arial, verdana, helvetica;
		font-size:80%;
	}
	h1{
		background:#966;
		padding:10px;
		margin:0px;
		color:#EEF;
	}
	#esquerda{
		width:150px;
		float:left;
		margin:10px;
	}
	#direita{
		width:150px;
		float:right;
		margin:10px;
	}
	#centro{
		margin:10px 190px;
		padding:10px;
		border-top:1px solid black;
		border-left:1px solid black;
		border-right:1px solid black;
		border-bottom:1px solid black;
		background:#FFF;
	}
	#rodape{
		font-size:90%;
		color:#336;
		padding:10px 30px;
		border:1px solid black;
	}
	-->
        </style>
</head>

<body>
<h1>_CABECALHO_</h1>
<div id=\"esquerda\">
_ESQUERDA_
</div>
<div id=\"direita\">
_DIREITA_
</div>
<div id=\"centro\">
_CENTRO_
</div>
<div id=\"rodape\">
_RODAPE_
</div>
</body>
</html>

Pois é, agora pegue esse template aí, coloque ele na raiz do seu servidor JSP com o nome template.html e use o seguinte código JSP:

<%@page contentType=\"text/html\"
        import=\"java.io.*, java.util.*\"
        errorPage=\"ops.jsp\"
%>
<%
  String template = \"\";
  String thisLine = \"\"; 

  String paginaTitulo    = \"Oi Target\";
  String paginaCabecalho = \"Esse é o cabeçalho\";
  String paginaDireita   = \"Texto do lado direito da página\";
  String paginaCentro    = \"Texto principal da página\";
  String paginaEsquerda  = \"Texto do lado esquerdo da página\";
  String paginaRodape    = \"Texto de rodapé\";

  Date dateNow = new Date();
  paginaCentro = paginaCentro + \"<br />\"; 
  paginaCentro = paginaCentro + \"<br />\"; 
  paginaCentro = paginaCentro + 
                 \"Agora é \" + 
                 dateNow.getHours() + 
                 \":\" + dateNow.getMinutes(); 

  // Le o arquivo template
  BufferedReader br = new BufferedReader (
    new FileReader(
          getServletContext().
          getRealPath(\"/template.html\"))
  );
  while ((thisLine = br.readLine()) != null) {
   template = template + thisLine;
  }

  template = template.replaceFirst(\"_TITULO_\",    paginaTitulo);
  template = template.replaceFirst(\"_CABECALHO_\", paginaCabecalho);
  template = template.replaceFirst(\"_DIREITA_\",   paginaDireita);
  template = template.replaceFirst(\"_CENTRO_\",    paginaCentro);
  template = template.replaceFirst(\"_ESQUERDA_\",  paginaEsquerda);
  template = template.replaceFirst(\"_RODAPE_\",    paginaRodape);
%>
<%= template %>

Pronto! Assim temos a interface separada do processamento. Sim, eu sei, que isso é uma coisa óbvia, mas deixa eu ter um histórico da minha aula de JSP, pô! 😉