Colofão

Adverte-se aos curiosos que se imprimiu esta obra nas oficinas da gráfica Vida&Consciência em 16 de julho de 2009, em papel off-set 90 gramas, composta em tipologia Walbaum Monotype de corpo oito a treze e Courier de corpo sete, em plataforma Linux (Gentoo, Ubuntu), com os softwares livres LaTeX\textrm{LaTeX}, DeTeX\textrm{DeTeX}, Vim, Evince, Pdftk, Aspell, SVN e TRAC.

Da contracapa de uma bela edição de “Viagem em volta do meu quarto” (Xavier de Maistre) publicada pela Editora Hedra.

Tornou-se instantaneamente minha editora preferida. Não é fantástico (e de evidente bom gosto) os editores usarem e divulgarem Gentoo, LaTeX, Vim e SVN?

Receita do sorvete de creme com cobertura de chocolate

Lembram daquela analogia clássica de software livre e culinária? Me lembrou que [felizmente] podemos usar, estudar, modificar e distribuir receitas. Eis aqui, portanto, minha primeira contribuição culinária aos leitores deste blog: a receita do sorvete de creme belga com cobertura de chocolate, que aprendi com minha tia no verão passado.

Resultado

A forma ideal de preparar esta receita é com três pessoas. Como isso nem sempre é possível, recomendo criar três threads ou fazer uma coisa de cada vez (aparentemente as partes dessa receita são comutativas). Cada um dos itens abaixo é uma das três partes e no fim dou as instruções de como juntar tudo.

Mas antes de mais nada, requisitos operacionais:

Recipientes necessários

  • Uma panela
  • Duas tigelas ou recepientes semelhantes (que não será preciso esquentar)
  • Uma daquelas formas de pudim que deixam um buraco no meio do que você prepara

Eletrodomésticos necessários

  • Um fogão
  • Um freezer ou geladeira com congelador forte

E agora vamos aos fatos:

#0: Creme belga

Ingredientes necessários

  • Uma lata de leite condensado
  • Uma lata de leite (i.e., uns 300ml)
  • Três gemas (o resto do ovo você vai usar no item #1)
  • Uma colher de maizena

Como fazer

  1. Misture tudo numa panela*
  2. Esquente até ferver**

* Aqui está a primeira dificuldade da receita: Como separar a clara e a gema do ovo? Eu tentei quebrar o mínimo possível a casca e deixar cair a clara em outro recipiente pra depois pegar a gema.

** Mexa bem e não deixe queimar. Queimar pode ser fatal.

#1: Creme chantilly

Ingredientes necessários

  • Três claras (o resto do ovo você vai usar no item #0)
  • Três colheres de açúcar
  • Uma lata de creme de leite sem soro

Como fazer

  1. Bata as claras num recipiente que não precisa ser uma panela (não é pra esquentar). Bata bem e só elas. Isso é importante! Eu acabei juntando tudo antes de bater e com isso meu sorvete não ficou com a consistência ideal.
  2. Adicione açúcar e mexa bastante.
  3. Adicione o creme de leite e novamente mexa.

#2: Cobertura de chocolate

Ingredientes necessários

  • Dez colheres de achocolatado em pó
  • Cinco colheres de água*

* Eu também acho estranho falar em colher de água… Se preferir pense em 15-20ml.

Como fazer

  1. Misture bem!

Final: Juntando tudo

  1. Misture os itens #0 e #1 (creme belga e creme chantilly) e mexa.
  2. Coloque cobertura em todos os cantos daquela forma de pudim deixando ela toda preta por dentro.
  3. Coloque os cremes misturados nessa forma sobre a cobertura.
  4. Ponha no freezer e espere algumas horas até ele ficar com consistência de sorvete e duro a ponto de poder desenformar.

Quando o ponto chegar, desenforme e (se você fez tudo certo) bom apetite!

fluxbox-ddate no Gentoo

Criei um ebuild para o Fluxbox com uma USE flag “ddate” baseado no fluxbox-1.1.1-r2 (que é o último ebuild no Portage neste exato momento). Usando ele, é possível ter o calendário santo-discordiano no Fluxbox do Gentoo.

Siga os passos abaixo para ter Fluxbox com suporte a ddate no seu Gentoo.

Baixando o ebuild e colocando ele num overlay

% wget https://tiagomadeira.com/wp-content/uploads/2010/08/portage-fluxbox-1.1.1-0.tar.bz2
% su
% mkdir -p /usr/local/portage/x11-wm
% tar xjvf portage-fluxbox-1.1.1-0.tar.bz2 -C /usr/local/portage/x11-wm

Modificando o /etc/make.conf pra adicionar suporte ao overlay

Abra com seu editor preferido (e obviamente como root) o /etc/make.conf e adicione ao final dele:

PORTDIR_OVERLAY="/usr/local/portage"

Depois disso é necessário rodar um emerge --sync (ou eix-sync se você usa o eix :))

% emerge --sync

ACCEPT_KEYWORDS e USE flag

Marquei o pacote como instável. Para usar, se seu /etc/make.conf não tem ACCEPT\_KEYWORDS=”~amd64″ (ou ~suaarquitetura se você não usa amd64), edite (criando, caso não exista) o arquivo /etc/portage/package.keywords adicionando:

=x11-wm/fluxbox-1.1.1-r10 ~amd64

(substitua ~amd64 por ~suaarquitetura)

Se você também não tem uma USE flag “ddate” no /etc/make.conf, é necessário editar o arquivo /etc/portage/package.use (também crie se não existir), adicionando:

x11-wm/fluxbox ddate

E agora?

Basta instalar o Fluxbox usando o emerge, como você faria com qualquer pacote normal:

% emerge -av fluxbox
These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   U   ] x11-wm/fluxbox-1.1.1-r10  USE="ddate imlib nls slit toolbar truetype vim-syntax -gnome -newmousefocus -xinerama" 0 kB [1]

(note que a versão é 1.1.1-r10 e tem a USE flag ddate)

Ele não baixa o pacote inteiro do ddate, mas apenas aplica, além dos patches do Gentoo, um pequeno patch (de umas 40 linhas) que altera o ClockTool.cc.

Screenshot do emerge

Divirta-se!

Calendário santo-discordiano no Fluxbox

Acabei de implementar o calendário santo-discordiano no Fluxbox 1.1.1 (última versão).

Link para download do código: fluxbox-ddate-1.1.1-0.tar.bz2

Se você usa Arch Linux, não precisa baixar e compilar manualmente. Basta usar o pkgbuild que o Rev. Beraldo fez para o AUR: aur.archlinux.org/packages.php?ID=40364.

Se você usa Gentoo, não precisa baixar e compilar manualmente. Basta colocar o ebuild que eu fiz num overlay: fluxbox-ddate no Gentoo.

Versões compiladas .deb, .rpm, .tgz etc. e ebuilds, pkgbuilds etc. são bem vindos! Me passem que eu coloco um link aqui!

Como baixar e descompactar

Como você faria com qualquer outro pacote .tar.bz2…

$ wget https://tiagomadeira.com/wp-content/uploads/2010/08/fluxbox-ddate-1.1.1-0.tar.bz2
$ tar xjvf fluxbox-ddate-1.1.1-0.tar.bz2
$ cd fluxbox-ddate-1.1.1-0

Como compilar

Versão simples:

$ ./configure
$ make
$ make install

Versão complicada:

$ export CFLAGS=-O2 -march=native -msse4.1
$ export CXXFLAGS=$CFLAGS
$ ./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu \
  --enable-nls --disable-xinerama --enable-xft --disable-gnome --enable-imlib2 \
  --enable-slit --enable-toolbar --sysconfdir=/etc/X11/fluxbox
$ make -j3
$ make install

Encontre seu meio termo (ou use a simples) e divirta-se!

Como iniciar um Fluxbox

Inicie o X e peça pra ele abrir a versão que você compilou do Fluxbox da seguinte maneira:

$ startx /usr/local/bin/fluxbox -- :1

(Lembre-se de mudar /usr/local para o --prefix que usou no ./configure)

Esta linha funciona dentro de uma sessão do X (abre outra), por causa do -- :1.

Como usar a data discordiana

Clique com a tecla direita no relógio do seu Fluxbox e Edit clock format. Se você usar um formato de data convencional, do falso calendário (como deve estar usando no momento), nada de especial acontecerá. O segredo está no |fnord|.

Quando você coloca um |fnord| no formato, o Fluxbox interpretará tudo que veio antes como formato de data discordiano.

(Para escolher o formato de data ideal, você pode digitar man ddate num terminal.)

Exemplos de uso:

  • Formato: %c → Saída: Sat 28 Aug 2010 11:50:26 PM BRT
  • Formato: %e of %B of %Y|fnord| → Saída: 21st of Bureaucracy of 3176
  • Formato: %d %b %Y|fnord|, %H:%M:%S → Saída: 21 Bcy 3176, 23:50:26
  • Formato: %.|fnord| → Saída: All Hail Discordia!

Dúvidas, sugestões?

Contate a glândula pineal.

Como funciona o código?

O Fluxbox usa a função strftime para formatar a data do relógio. Isso acontece na linha 274 do arquivo src/ClockTool.cc. Modifiquei este trecho do código adicionando cerca de 23 linhas que separam a string do formato de data no |fnord| e passam o que vem antes dele como parâmetro para uma chamada de sistema pro ddate (sim, de fato pra próxima versão é melhor copiar o código do ddate ou reimplementar pra não ter este overhead) e o que vem depois continua indo pro strftime.

Ficou assim:

char s[255], u[255];
strcpy(s, m_timeformat->c_str());
char *t = strstr(s, "|fnord|");
time_string_len = 0;
if (t != NULL) {
	*t = '�';
	sprintf(u, "ddate +'%s'", s);
	FILE *ddate = popen(u, "r");
	if (fgets(time_string, 255, ddate)) {
		time_string_len = strlen(time_string);
		time_string[--time_string_len] = '�';
		fclose(ddate);
	}
	t+= 7;
} else {
	t = s;
}
time_string_len+= strftime(&time_string[time_string_len], 255 - time_string_len, t, time_type);

Known bugs

  1. Colocar ‘ (aspas simples) no lado esquerdo do |fnord| faz com que a data discordiana não apareça.
  2. Requer util-linux-ng e faz uma chamada de sistema ao ddate uma vez por segundo.
  3. Não trabalha ainda com horas métricas.
  4. … me informe se achar mais algum!

Screenshots

Screenshot 1

Screenshot 2

Screenshot 3

Despoema nauseabundo

Inspirado por esse tuíte.

A ignorância me dá náuseas.

A ignorância de pessoas que se dão ao luxo de chamar outros de ignorantes me dá náuseas.

A ignorância de pessoas que se dão ao luxo de chamar de ignorantes as pessoas que se dão ao luxo de chamar outros de ignorantes me dá náuseas.

A ignorância de pessoas que se dão ao luxo de chamar de ignorantes as pessoas que se dão ao luxo de chamar de ignorantes as pessoas que se dão ao luxo de chamar outros de ignorantes me dá náuseas.

A ignorância de pessoas que se dão ao luxo de chamar de ignorantes as pessoas que se dão ao luxo de chamar de ignorantes as pessoas que se dão ao luxo de chamar de ignorantes as pessoas que se dão ao luxo de chamar outros de ignorantes me dá náuseas.

Ad infinitum.

PS: Esse post (como a ignorância do autor desse blog) também me dá náuseas.

PPS: Consultei o Houaiss duas vezes pra escrever o título desse post: a primeira pra confirmar que “despoema” não existe, a segunda pra confirmar que “nauseabundo” existe.

© 2005–2020 Tiago Madeira