implementação, exemplos, erros

Oops. Isto ainda não funciona 100%.

Melhorias e automatização do processo. Este o objetivo deste script. Basta criar uma fórmula matemática (ou qualquer texto) no aplicativo lyx, salvar e exportar para TeX (pdflatex), e rodar o wpize.py em cima do arquivo. A última linha vai mostrar uma string, que basta ser copiada e colada aqui para funcionar (claro, dá pra mexer nela para corrigir algumas falhas do lyx, para descobrir alguns códigos $latex \LaTeX$ para símbolos matemáticos veja esta página):

$latex \begin{tabular}{|c|c|c|c|c|} \hline a11& \dots& a1j& \dots& a1n\tabularnewline \hline \vdots& & \vdots& & \vdots\tabularnewline \hline ai1& \dots& aij& & \vdots\tabularnewline \hline \vdots& & & & \vdots\tabularnewline \hline am1& \dots& \dots& \dots& amn\tabularnewline \hline \end{tabular}$
Curiosamente não se consegue colocar pontos diagonais (\ddots=$latex \ddots$) nem subscritos (a_{ij}=$latex a_{ij}$) dentro de tabelas, usando o ambiente tabular, o comando falha e aparece algo como:

$latex \begin{tabular}{|c|c|} \hline \ddots& a_{ij}\tabularnewline \hline \end{tabular}$

O script que faz esta comodidade virar realidade está disponível para download na seção de arquivos. Agora vai uma proposição qualquer para apreciar a beleza da mãe de todas as ciências (gerado por wpize2-nonmath.py propo1.tex):

Proposição 1. Se $latex f: U\rightarrow R$ é uma função diferenciável em um conjunto aberto $latex U$ de $latex R^{2}$, então o gráfico de $latex f$, isto é, o subconjunto de $latex R^{3}$dado por $latex (x,y,f(x,y))$para $latex (x,y)\in U$, é uma superfície regular.

Mais tarde, a resolução de um exercício em que se demonstra esta proposição.

Nota: o wpize.py é só pra fórmulas (não mais de dois $’s), o wpize2-nonmath.py é pra textos, que tenham fórmulas dentro de cifrões ($). O segundo é um fork do primeiro.

Modo de uso: abra o lyx, escreva os textos/fórmulas, salve, exporte para TeX (plain), abra um terminal e execute o script com o nome do arquivo .tex exportado como argumento (é o mesmo do .lyx, só que ao invés de .lyx a extensão é .tex). Na última linha vai aparecer o código pronto pra colar no WordPress.

BR-Linux + obm-l = fórmulas matemáticas no WordPress.com

No site BR-Linux apareceu uma notícia de que o site wordpress.com (onde este blog está hospedado) tem suporte a $latex \LaTeX$! Então, vamos testar, usando uma soma postada na lista obm-l (da PUC):

$latex S_n(x) := \sum_{k=1}^n \frac{\lfloor kx\rfloor}{k} = \sum_{k=1}^n [kx]/k <= [nx], n=1,2,… x\in R$

Funciona, apesar da cor ser diferente.

Este foi feito no software lyx, recém-instalado e usado pela primeira vez (nenhum conhecimento):

$latex \begin{tabular}{|c|c|c|} \hline a& & 1\tabularnewline \hline & & \tabularnewline \hline 2& & b\tabularnewline \hline \end{tabular}$

blergh, tive que “deswrapear” as linhas separadas e colocá-las numa só, pois este comando $latex qualquer_coisa \$ só funciona em uma linha!

Mas isto tira-se de letra: basta usar o sed, ou interativamente, com as macros do editor Emacs.

Dá pra usar o sed pra editar arquivos sem usar arquivos temporários

Esta dica vem do site de notícias Dicas-L, mas como foi algo novo e interessante, resolvi colocar aqui para memória posterior (do tipo ah? onde tinha a dica de como editar arquivos com o sed sem se incomodar com arquivos temporários? me esqueci! ah! mas escrevi sobre isto no meu blog! pois afinal de contas, um dia eu ainda iria precisar disto!)

Então o truque consiste em abrir uma sub-shell que irá abrir o arquivo em questão num processo separado, e esta sub-shell poderá escrever diretamente no arquivo original, pois os dados originais passarão pela memória da sub-shel, não sendo perdidos:

echo "$(sed 's/nao/sim/' teste.txt)" > teste.txt

Continuar lendo

Resolução

Bom, o kernel foi compilado com sucesso, na verdade o problema não era com compatibilidade 32bit <-> 64 bits, mas sim o fato de ter sido escolhido a opção Include IDE/ATA-2 DISK support como módulo ao invés de compilado dentro do kernel, pois desta forma sem este driver o kernel sequer conseguiu acessar o disco rígido para carregar o sistema operacional.

Porém, valeu a experiência: para trapacear o uname -m, não precisa editar o Makefile, basta adicionar as opções no comando, desta forma:

make menuconfig SUBARCH=i386 ARCH=i386

Desta forma aparece o suporte ao VIA C3 ao invés do x86_64 na configuração, e depois para montar o pacote do kernel pelo comando make-kpg (apt-get install kernel-package), tem mais uma opção:

make-kpkg –arch i386 kernel_image

Aproveitando o maior poder de processamento da arquitetura AMD64 (incluídos processador Athlon64 3500+, 512Kb de cache, barramento Hypertransport de 1Ghz).

Estou usando este kernel, e utilizo os módulos

  • para ler sensores de temperatura: it87 i2c-isa i2c-viapro i2c-core
  • … sensor da bateria: battery
  • … modificar o clock da CPU, se preciso: longhaul

Dizem que o brilho das telas LCD dos notebooks atinge meia-vida (perde 50%) depois de 18 meses, o meu chegou no vigésimo, hummm, algum interessado em comprar esta belezinha?

Compilando kernel 2.6.20 para plataforma i386 em em uma máquina AMD64

Instalei o Ubuntu 6.10 num notebook com processador VIA C3, e quis diminuir (ainda mais) o barulho produzido pelo cooler. Porém para isso preciso dos módulos i2c-viapro, i2c-isa e it87, conforme o comando sensors-detect me informou.

Mas no kernel que vem no Ubuntu, não tem estes módulos. Instalei o pacote linux-source-2.6.17, descompactei numa pasta qualquer e fui configurar. Não encontrei os módulos necessários. Então baixei o kernel 2.6.20-rc3 da pasta pool do archive.ubuntu.com. Configurei o kernel com os drivers necessários para sensores, mais uns módulos para regulagem da velocidade do processador, suporte a placa de vídeo, som e rede onboard, enfim tudo pronto para dar um make-kpkg kernel_image. Como o processador é lento, o processo de compilaćão é demorado. Portanto resolvi compilá-lo numa Workstation (sim, posso chamar de workstation pelo poder de processamento) Athlon64 3500+, com Debian unstable versão amd64 instalada.

copiei via rede os arquivos .tar.bz2 do kernel 2.6.20 do repositório oficial Ubuntu e .config da configuraćão feita previamente, e qual não foi a surpresa quando o make-kpkg se recusou a compilar o kernel para a plataforma i386:

dpkg-architecture: warning: Specified GNU system type i486-linux-gnu does not match gcc system type x86_64-linux-gnu.

e nada feito. Então resolvi usar uma jaula chroot que roda em 32 bit, com chroot /var/chroot/sid-ia32.

E não é que também deu erro? Então no make menuconfig, apareciam apenas processadores 64 bit na općão Processor type and features -> Processor family. Mas isto é impossível! Afinal, estou dentro de uma jaula de 32 bits, e o sistema deve saber que deve gerar executáveis 32 bits! Então descobri a raiz do problema: dentro do Makefile, para setar a variável SUBARCH, era pego a saída do comando uname -m, que mesmo dentro da jaula 32 bits, indicava estar rodando numa plataforma x86_64. Então foi fácil: bastou adicionar

SUBARCH := i386

na linha seguinte, hehe. Mas será que vai funcionar? não vai dar kernel panic: unable to mount root filesystem como nas tentativas anteriores? Neste eu já tinha perdido mais tempo do que se tivesse esperado a compilação do kernel terminal no meu bom e velho notebook com processador VIA C3 de 1Ghz. Mas tenho que progredir, e o fim desta história, somente no próximo post.