2009/05/23


Como definir um atalho para alternar a marcação de quebra de linha no modo longlines do emacs

Hoje fiz meu primeiro script mais complicadinho usando o lisp do emacs.

Acontece que estou fazendo uma mudança de hábitos. Eu costumava digitar textos do LaTeX no emacs no modo com quebra de linha e com o texto justificado. Só que isso não permite fazer buscas facilmente no texto por strings que tenham espaço no meio, porque se a justificação tiver botado mais um ou dois espaços, não bate. Então estou passando a usar o modo longlines, com o texto apenas alinhado à esquerda para visualização, mas na prática cada parágrafo é uma linha.

Como o longlines quebra o texto pra visualização, às vezes a gente fica sem saber se em algum lugar tem mesmo uma quebra de linha ou não. Pra isso ele tem os comandos longlines-show-hard-newlines, e longlines-unshow-hard-newlines, que ativam e desligam a colocação de um símbolo nos lugares em que realmente há quebra de linha. Parece até coisa de editores de texto tipo WIMP, como o OpenOffice e o ABI word, assim.

Pois bem, acontece que eu queria botar isso num atalho, porque eu só gosto de ver isso rapidamente pra tirar dúvidas. Então queria atribuir a uma única tecla um ligar e desligar desse show-hard-newlines. Não daria então pra fazer isso simplesmente atribuindo o comando, sendo que são dois!...

O que eu fiz foi colocar o seguinte script no meu "dotemacs":


;; Ativa longlines
(defvar my-state-hard t)
(defun my-toggle-longlines-show-hard-newlines ()
"Toggle longlines-show-hard-new-lines"
(interactive)
(if my-state-hard
( progn (setq my-state-hard nil) (longlines-show-hard-newlines) )
( progn (setq my-state-hard t) (longlines-unshow-hard-newlines) )
) )
(global-set-key (quote [(meta control return)]) 'my-toggle-longlines-show-hard-newlines)

Primeiro eu defino uma variável, que vai dizer se o "show-hard-newlines" tá ligado ou não. Aí eu defino uma função que confere o valor, e inverte, ligando ou desligando o lance conforme o caso. A função faz portanto um "toggle" da variável, e do modo.

Funcionou muito bem! Aqui mesmo, enquanto escrevo esse post, eu também estou usando isso. Escrevo os posts com o longlines tb pq se eu mandar o texto com quebras de linha elas são forçadas, e aí perde a formatação no browser.

2009/05/22


O papel da densidade do papel

Vi numa mensagem neste fórum que o cálculo da largura [da lombada] de um livro em milímetros seria realizado pela seguinte fórmula: número de páginas vezes a gramatura, dividido por 2000. Por exemplo, 80 páginas, gramatura 90 (bem comum para livros), daria 80×90÷2000 = 3.6mm.

Para entender essa fórmula, e o significado da constante 2000, é só botar a unidades de medida na fórmula.

Primeiro que não interessa quantas páginas, e sim quantas folhas. Como são duas páginas por folha, a fórmula deveria ser N [folhas] × P [g/m^2] ÷ 2000 [?] = l[mm]. A gramatura é dada por gramas por metro quadrado, e o resultado é em milímetros... O número de folhas é linear, e está simplesmente multiplicando o tamanho de uma única folha, então vamos esquecê-lo.

Vamos reescrever esta fórmula deixando tudo como multiplicação, e passando o resultado pra metros: P[g/m^2] × (1/1000) [?]= l×1000[m]. Pra sobrar uma unidade de metros no fim, esse valor deveria ser [m^3/g], o inverso da densidade volumétrica. Jogando o fator mil pro lado direto, temos enfim: P[g/m^2] ÷ 1000000 [g/m^3] = l[m]. Esse 1000000 aí, ou uma tonelada por metro cúbico, é a densidade volumétrica do papel. A gramatura dividida pela densidade volumétrica dá a espessura do papel. Da mesma forma, a gramatura dividida pela espessura dá a densidade...

Se você ler aquele fórum, vai ver que começa justamente falando diferentes valores para diferentes papéis. Todos aqueles valores na verdade circundam esta constante aí, de uma tonelada por metro cúbico. Segundo o que está ali, teríamos os seguintes valores de densidade:



off-set: 75,90,120 [g/m^2] / 0.11, 0.12, 0.16 = 681.82, 750.00, 750.00 [g/m^3]
couché brilho: 75,90,120 [g/m^2] / .07, .08, .11 = 1071.4, 1125.0, 1090.9 [g/m^3]
couché fosco: 90,120 [g/m^2] / 0.09, 0.12 = 1000, 1000 [g/m^3]

Os valores deveriam ser iguais para todas gramaturas de cada material... O couché fosco teria essa densidade de 1ton/m^3 da fórmula que o outro cara disse, o couché brilho seria um pouco mais denso, e o off-set teria a densidade menor, de 750kg/m^3. Ou seja, para uma mesma gramatura o off-set precisa de mais papel por metro quadrado, portanto deve ser mais grosso.

Talvez os valores não estejam perfeitamente iguais pra cada material apenas por causa dos arredondamentos de quem produziu estes "valores mágicos", mas existe uma possibilidade científica de haver essas diferenças: papéis como o couché brilho, se não me engano, recebem camadas de certos materiais sobre o papel. Assim sua gramatura é determinada pela gramatura duma camada de papel somada a uma camada desse outro material de espessura constante, e aí o valor realmente não seria o mesmo pras diferentes gramaturas... Mas duvido que seja isso que aconteceu aqui.

Então é isso, anotem esse número: a densidade do papel couché é aproximadamente uma tonelada por metro cúbico (tipo a densidade média de um CARRO!), e off-set é 3/4 disso. Agora sabendo a gramatura de um papel vc pode se virar pra achar a espessura, e sabendo a espessura vc pode se virar pra achar a gramatura.

2009/05/19


O lobo que soprou nas bolhas dos porquinhos



Estou adorando ver os delírios e mais completas aloprações insólitas das pessoas tentando explicar por aí, em comunicações rápidas de blogs tweeters e outras buzzinas digitais, do que se trata o tal Wolfram|alpha lançado essa semana.


Quase todo mundo insinua que vai concorrer com o Google. Insinuam ainda que vai concorrer com a Wikipédia... Alguns juntaram isso, disseram que o alpha seria "Google + Wikipedia".


Vamos começar por aí. Inventar um "Google + Wikipédia"? Ora, mas isto é o mais completo absurdo! Em primeiro lugar, já é perfeitamente possível utilizar o Google pra fazer buscas na Wikipédia. É assim, aliás, que eu mesmo quase sempre consulto a Wikipédia: a partir do Google. Faço isso porque o mecanismo da Wikipédia é meio fraquinho, e não considera errinhos de sintaxe, por exemplo (aliás, acho que estão mudando mas nem sei.)


Agora vejamos. O que é o Google? A bem da verdade, em boa parte do tempo o Google _É_ a Wikipédia. Tem muitas consultas que você faz no Google que o primeiro link que aparece é a bendita. Vai lá, procura no Google (no gringo!): "Platypus" (ornitorrinco). O que parece? Pra mim apareceram primeiro resultados de imagens, e a seguir? Wikipedia. E depois um monte de bobagem.

A Wikipédia é o destino natural pra qualquer busca de conteúdo enciclopédico. É o lugar para se ler sobre temas como a pequena era do gelo, a hipótese da língua inglesa ser uma língua crioula, ou ainda encontrar coisas como listas detalhadas de posições sexuais.

O Google serve pra achar coisas na Internet como um todo. É uma ferramenta meia-boca pra achar todo tipo de coisas, porque os sites por aí são todos meia-boca, e se você soubesse exatamente onde tem algo, estaria indo direto, ao invés d e procurar no Google.

Exceto, é claro, quando vc usa o Google como uma terceira função: o de catálogo de bookmarks. Eu tenho muitos sites que eu só acesso pelo Google. Escrevo lá a busca que eu sei que vai mostrar o site, aí entro. É preguiça de usar os bookmarks do meu browser, e de decorar o endereço... Eu decoro a busca do Google. Se o Mozilla tivesse um jeito fácil de buscar nos meus bookmarks, talvez eu usasse.

E existem, é claro, outros produtos do Google como busca de imagens, vídeos, o gmail, etc, mas isso não vem ao caso, tamos falando só do lance de buscas.

Agora vamos voltar na segunda função, a mais "geral". Imagina que você quer encontrar uma certa informação tipo a população de um país ou o PIB per capita de um continente, achar a série histórica. Esse tipo de informação pode ser um inferno de achar. Fica tudo espalhado. Achar essas coisas no Google pode ser um inferno, porque ele te dá inúmeros falsos positivos. E aí você fica lá tentando e tentando escrever as palavras mágicas que vão fazer aparecer os dados do seu interesse.

Aí que entra o Wolfram|alpha... Não se limita a isso, mas é um dos melhores exemplos.

O W|a, como eu vejo, começa como um grande almanaque. Eles juntaram, e irão manter, um grande banco de dados com muuuitas coisas, bem estruturadinho, e com consultas preparadas pra todos esses diferentes dados.

Por exemplo, eles tem dados como população de países e cidades, e PIB, tudo ao longo de anos. Mas ele faz muito mais do que simplesmente mostrar os valores... Ele gera gráficos sob demanda. Se você pede pra ver o PIB de diversos países junto, ele plota sobreposto. Ele também faz _contas_ na hora. Você pode mandar plotar a série subtraindo, dividindo...

Isso tá bem à frente do que o Google pode oferecer. O Gugo até tem função de calculadora e conversão de unidades de medida, por exemplo, mas o W|a tem nas consultas que envolvem computação um objetivo primário. O Google oferece calculadora mais assim, como um vídeo cassete que marca as horas...

E o W|a já coletou algumas coisas bem interessantes. Tem um banco de dados de pessoas, e eu consegui plotar linhas do tempo marcando quando várias pessoas viveram, algo que gosto muito de ver. Sair pelo Google achando essas informações, caindo lá na Wikipédia ou nas biografias daquela universidade da Escócia (st. andrews?) é bem chato. Poder mandar plotar, e ver que Galileo e Descartes morreram pouco antes de Newton e Leibniz nascerem, isso sim é bem mais interessante.

Outro banco legal é o de filmes! Sim senhor. Podes crer que a partir de hoje, quando quiser me lembrar de algum detalhe sobre algum filme (quem dirigiu/escreveu) vou usar esse site muito mais do que o Google, a Wikipédia ou mesmo o imdb. Ele mostra as informações de forma concisa, e ainda bota tudo em colunas pra vc comparar os filmes...

A atenção a alguns detalhes revelam a essência do espírito do Wolfram|alpha. Sempre que datas de eventos históricos são mostradas, aparece do lado, em letras pequenas e cinzas, a quantos anos atrás é isso. Datas de morte de pessoas ainda dizem com quantos anos elas morreram, e períodos de tempo vem tanto em minutos quanto em horas.

O negócio é uma ferramenta de informar. Não é uma ferramenta de buscar páginas da Internet com o Google, e não é uma enciclopédia editada colaborativamente por pessoas de todo o planeta. É uma terceira coisa.

Talvez as pessoas queiram ver o Wolfram|alpha como um substituto do Google ou da Wikipedia porque hoje são alguns do s lugares a que elas recorrem pra achar certas coisas. Mas a verdade é que estes dois aí não estavam cumprindo alguns dos papéis que o W|a vai cumprir. A gente vai no Google é mais por falta de onde ir mesmo. Quem sabe o Google vai começar a apontar a gente pro Wa pra alguns tipos de consulta, igual ele já aponta pra Wikipédia?

Aliás, é bom lembrar também. Uma das funções da Wikipedia é apontar o leitor pra referências. Sim, muito se fala da Wikipedia não ter referências, mas isso é mentira. Tem muitos artigos que trazem no fim ótimas referências, e ótimos links pra páginas da web relacionadas ao assunto.

O W|a também tem suas fontes. E todos artigos mostram suas fontes, e... Surpresa! Umas das fontes é ninguém menos do que a Wikipédia.

Como diabos um site poderia pretender "substituir a Wikipedia", e citá-la como fonte? É óbvio que eles pretendem ser algo diverso da Wikipédia. A Wp é só uma fonte pro Wa, assim como o Wa vai ser alguém que a Wp vai sugerir você visitar de vez em quando.

É uma nova ferramenta gente. Expandam suas mentes, por favor...

Vale a pena mencionar que o pessoal do Wolfram está botando um esforço extra pra fazer consultas a partir de linguagem natural. Hoje no Google até tem gente que faz isso já, escreve lá "Quem veio primeiro, o ovo ou a galinha??" Assim mesmo, com mais de uma interrogação, e tal. Não sei quanto o Google já se comporta de acordo com o jeito que vc escreve, ao invés de considerar aquela string apenas um "saco de palavras", mas no W|a eles querem realmente conseguir interpretar melhor o que é escrito ali. Até mesmo porque eles tem o poder de responder às consultas de uma forma que o Google não faz, fazendo contas, gerando gráficos, etc.

O Stephen Wolfram, dono da empresa que fez o site, é um velho pesquisador de IA e de lógica e computação. Também o são muitas pessoas trabalhando hoje no Google. Quer dizer, muitos lá são pesquisadores e tal, mas poucos são VELHOS... Talvez a velhice do pessoal do Wolfram venha a ser o grande diferencial. Velho não tem tempo pra procurar coisa em diversos sites, muitos deles cheio de bobagem e banner de pornografia. Velho não tem paciência pra anúncio, e anúncio é uma coisa bem central no universo Google, que inventou o adsense.

O Wolfram|alpha tem umas integrações com o Mathematica, o principal produto do Wolfram. Isso daí mostra parte do espírito do negócio, e mostra de uma vez por todas que esse é um site bem diferente do Google e da Wikipédia. Que dia você acha que vai entrar no Google pra brincar de plotar florzinha? Nunca. Talvez quem sabe um "Google plotter", talvez usando o Google spreadsheet... Mas não se compara.

O futuro do W|a é você poder ir lá sair pegando dados e comparando de forma sofisticada, efetivamente escrevendo pequenos programinhas em linguagem natural. Isso não tem nada a ver com as propostas do Google e da Wikipédia...

A Wikipédia pode ter muitos dados sobre Antares. Lá você vai ler que o nome tem a ver com "ser contrário a Marte", vai ler sobre o nome em outras culturas, vai ver algumas fotos (as que não violarem direitos autorais, né), e outras coisas. E dados básicos. No W|a não tem esses dados profundos, só tem as coisas mais básicas, características físicas, fala no máximo a constelação. Isso, e plota pra você um maravilhoso mapa astral mostrando a estrela no céu, hoje. Se bota uma data, ele dá as coordenadas pra aquela data!... (não mostrou o mapa.. ainda! :) )

O Google pode até criar um "applet de astronomia" ou o escambau naquela página de "iGoogle" ou sei lá como chama, mas não tem nada a ver com o que é o Google, né? O Google de verdade é aquele calendário bizarro de páginas ruins. Qualquer coisa mais sofisticada do que isso eles tão empurrando pra fazer aquele lance de transformar o seu browser em um desktop de um meta-sistema operacional, algo a que não sou muito favorável... O Wolfram|alpha vai justamente na contramão, partindo da idéia de consultas, que é a coisa central do Google "roots", "hard core", e botando ali os tais applets. Você consulta e ele te dá uma página de respostas. É tudo o que a gente queria em um grande número de situações, mas o Google funcionava meio como um intermediário, atrapalhando nossa chegada até os dados nus e crus!...

Enfim, sei lá, não sei mais o que dizer. Bem vindo Wolfram|alpha, os que vão deixar de morrer de curiosidades insaciáveis o saúdam!