Fim do Netscape
Dezembro 29, 2007
Quando abro meus feeds para a última olhada antes de dormi, dou de cara com a notícia: Netscape anuncia que vai cessar o desenvolvimento de seu browser.
O Netscape 4.0 (ou 3.0 ou 2.0… não lembro) foi o primeiro navegador que usei, lá no ano 96 do século passado quando eu tinha modem de 26Kbs e fazia as pesquisas no Alta Vista. A voraz equipe de marketing da Microsoft - só eles para fazer aquela tranqueira do Explorer 4.0 dar certo - o afastou da WEB. E nos últimos anos o Firefox fechou os pregos do caixão.
A última vez que usei o Netscape(V 8.0) não tinha aquela glória do passado.
O tempo passa, o tempo vôa e a poupança barberindos continua numa boa…
Hack: ODF + StringTemplate
Dezembro 27, 2007
Precisei fazer um gerador de relatório para um pequeno projeto, o problema que era algo muito bem formatado, com tabelas e fontes de diversos tipos, no início pensei em usar HTML + StringTemplate mas padrões abertos funcionam na prática.
Os arquivos ODF são pastas zipadas com conteúdos como imagens e arquivos xml que definem o documento. Mais especificamente o arquivo content.xml que define a formatação junto com o texto. Mas não foi nem nescessário saber as tags para o hack (Ok, gambiarra).
StringTemplate
StringTemplate é uma biblioteca para java. A funcionalidade dela é substituir em Strings os trechos demarcados previamente com outras Strings. Com um exemplo é mais fácil.
String message = "Ola $NAME$ e tchau $MESSAGE$.";
StringTemplate template = new StringTemplate(message);
template.setAttribute("NAME", "Renan careilhos");
template.setAttribute("MESSAGE", "e va para o inferno");
System.out.println(template.toString());
Imprime: Ola Renan calheiros e tchau e va para o inferno.Os trechos demarcados previamente, na terminologia da StringTemplate, são as palavras circuladas por ‘$’ e se chamam attributes.
ODF4J
ODF4J é uma biblioteca para java criada para ler pacotes ODF. Ela é mantida pelo projeto OpenOffice.
A Gambiarra
Como o texto e formatação de um arquivo ODT é um text/xml, então não precisamos nos dar o trabalho nem de sair do Writer, podemos colocar os atributos da StringTemplate ali mesmo. Tipo esse documento
Em baixo um trecho do projeto.
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import org.antlr.stringtemplate.StringTemplate;
import org.openoffice.odf.OdfPackage;
import org.openoffice.odf.OpenDocumentFactory;
public class OdtExamReportGenerator implements ExamReportGenerator {
private StringTemplate odtTemplate;
private OdfPackage odfPack;
public OdtExamReportGenerator(File template) throws IOException {
//Abre o documento ODT
odfPack = OpenDocumentFactory.load(template);
// Lê a o arquivo principal, content.xml, para um buffer auxiliar
StringBuffer buffer = new StringBuffer();
BufferedReader reader = new BufferedReader(new InputStreamReader(odfPack.getXMLInputStream("content.xml")));
String line;
while ( (line = reader.readLine()) != null ) {
buffer.append(line);
}
// Cria o template
odtTemplate = new StringTemplate(buffer.toString());
}
public void generateReport(Exam exam, String filename) throws GeneratorException {
try {
odtTemplate.setAttribute("NOME", exam.getName());
odtTemplate.setAttribute("TIPO", exam.getType());
odtTemplate.setAttribute("NUMERO", exam.getNumber());
// O método store insere ou substitui no pacote ODF um arquivo, seguidos dos bytes e do tipo MIME text/xml
odfPack.store("content.xml", odtTemplate.toString().getBytes(),"text/xml");
// Salva o pacote ODF.
odfPack.save(filename);
} catch (FileNotFoundException ex) {
throw new GeneratorException(ex.getMessage(), ex);
} catch (IOException ex) {
throw new GeneratorException(ex.getMessage(), ex);
}
}
}
E por último…
Não testei com templates muito grandes, e além do mais, ODF gera bastante XML. Mas duvido que java não tenha peformance para analisar templates de relatórios do INPS.
Ao Som Do Mar E Á Luz Do Céu Profundo - Livro
Dezembro 14, 2007
Lembra do tempo em que a gurizada jogava bola em campinhos, quando a sexualidade era mística e o amor impossível, dos carnavais sem a cobertura da Globo. Nem eu. Mas provavelmente algum parente com mais de 50 já deve tê-lo relatado os áureos tempos em que jogava peladas em campos da cidade com nomes bem convidativos como “campo do caveira” ou “campo da mangabeira”.
Ao Som Do Mar E Á Luz Do Céu Profundo, escrito por Nelson Motta. A história passa no final dos anos 50, e como o autor indica no título, ao usar a frase do hino nacional, conta a “vidinha” entre os pobres e a classe média de um bairro do Rio de Janeiro com a chegada do diplomata americano Col. Simon e sua filha, Carol, vindos direto da California. É narrado desde dos jogos de futebol da gurizada até a dor de cotovelo dos marmanjos chorando as pitangas em bares. A cuíca não chega a roncar mas apresenta uma boa taxa de sacanagem tropical, como era de se esperar de Nelson Motta. A atmosfera do carnaval do Rio daquela época foi um dos melhores pontos da trama. Mas Motta, para min, pecou em algumas partes da história por dar um ar de novela das 8. No overall, muito bom como romance POP.
¡FEO!
Dezembro 10, 2007
No livro ¡FEO!, escrito pelo argentino Gonzalo Otálora, o autor narra seus problemas com a beleza durante a juventude. Agora Otálora está fazendo uma campanha enfrente a Casa Rosada para que seja criado o imposto para - ou melhor, contra - os belos. Bem, me simpatizo com a ideia, nós os feios merecemos…
Claro que o cara não tá falando sério, o intuito foi “chamar para o debate”. Aliás, expressão que nós gaúchos adoramos e enchemos o saco das outras unidades federativas.
Se você não gostou da ideia, pode conhecer o outro lado da moeda. Que se mueran los feos, ficção do francês Boris Vian, sei lá do que se trata mas é um belo título de livro.
Links: Blog do autor, matéria da BBC
Jogos livres - OpenArena e pingus
Dezembro 8, 2007
Joguei no fim de semana OpenArena e pingus - sedentarismo³.
OpenArena
A ID tinha liberado engine do Quake III mas não o conteúdo do jogo, então uma comunidade desenvolveu um pacote de mapas GPLeados, você nem prescisa do jogo original . É só abaixar e jogar. Algumas distribuições tem nos seus repositórios. Instalei usando a Mandriva 2008.
Estamos falando de Quake: Sem historinhas, sem estratégia, só tiro e porrada. Todo o brilho e carnificina do modo multi-player estão no OpenArena.
Pingus
Clone do famoso lemmings. O jogo não oferece dificuldade nas fases default (o “Tutorial Island”) mas você pode jogar na fases beta. Para jogar as fases betas. Vá na shell e entre no diretório que foi instalado, na Mandriva 2008 ([Update] A maioria da distros também tem o pingus em seus repositórios) foi /usr/share/games/pingus.
$cd /usr/share/games/pingus
$cd data
$pingus –level=<level_a_jogar>
Onde <level_a_jogar> é um arquivo .pingus. A pasta levels contém outras pasta contendo os arquivos de níveis.
Exemplos:
$pingus –level=levels/playable/stone1-marcotte.pingus
$pingus –level=levels/volcano/volcano5-grumbel.pingus
Paris expõe obras eróticas escondidas por 150 anos
Dezembro 6, 2007
“A Biblioteca Nacional da França (BNF), em Paris, traz pela primeira vez uma exposição de livros e gravuras que foram mantidos escondidos do público durante mais de 150 anos devido ao seu conteúdo considerado altamente erótico e imoral.” (Fonte: BBC)
The Hustler - Filme
Dezembro 6, 2007
Passou hoje no corujão o filme Desafio à Corrupção ou seu título original The Hustler, top 212 no IMDB, com Paul Newman e George C. Scott (o mesmo que fez o general Patton). Lançado em 1961, preto e branco, concorreu varias nomeações ao Oscar. Incrível como muitos filmaços passam de madrugada.
O filme mostra Eddie Ligeiro (Paul Newman), um jogador de sinuca profissional que passa a vida a jogar em salões, e claro, as partidas valem grana. Ele tem muito talento, mas o jogo é um coadjuvante na trama, na verdade Eddie não está muito bem vida, se entrega a bebida e a obsessão e conhece uma outra companheira de fundo do poço, Sarah (Piper Laurie). Entre tubarões da sinuca, degenerados, perdedores natos e criminosos, Eddie e Sarah buscam a redenção, ou não.
Algumas coisas interessantes:
Lembram quando o Homer em os Simpsons diz em cima da mesa de sinuca: “Não me chamam de gordo Springfield só porque sou morbidamente obeso”. Não tinha entendido até ver o filme.
Um Diálogo do filme:
—————-
Gordon: O Gordo tem mais caráter num dedo que você no corpo inteiro.
Eddie: Talvez até lá eu ganhe mais caráter.
Gordon: Talvez você morra de velhice antes.
—————–