Publicado por: lezz | Outubro 10, 2009

Configurando o mutt com algumas teclas de atalho rápidas

Hoje fui verificar as abas que eu tinha abertas no firefox e resolvi fechar
algumas, mas não sem ver o que tinha preparado para mim mesmo.

Encontrei uma aba com a configuração do mutt http://blog.steve.org.uk/tags/mutt/
.

Algumas coisas bem práticas como por exemplo:

  • Para ver todas as mensagens (.a)
  • Só as mensagens do dia (.t)
  • Somente mensagens novas (.n)
  • Todas as mensagens recebidas ontem (.y)

macro index .n “l~N\n”
macro index .a “l~A\n”
macro index .t “l~d<1d\n"
macro index .y "l~d1d\n”

Só isso já valeu ver o blog, mas tem mais uma porção de coisas interessantes ;-)

Publicado por: lezz | Outubro 2, 2009

moneylog + emacs

Tenho usado o moneylog há alguns meses.

Como uso bastante o emacs, acabei escrevendo algumas funções em elisp para facilitar a minha vida ;-)

O código abaixo lista as funções, que fazem o seguinte:

  1. i-register — Uso: M-x i-register — insere um registro na posição atual
  2. i-reg-ccredit — Uso: M-x i-reg-ccredit — insere um registro de cartão de crédito
    Nota: As variáveis ”fechamento” e

    ”diaspgtoaposfechamento” configuram o comportamento de pré-preenchimento da

    data de pagamento. No meu caso, a fatura fecha dia 7 e o pagamento é dia 17, ou seja 10

    dias após o pagamento

    (setq fechamento 7)

    (setq diaspgtoaposfechamento 10)

    Para mudar, basta colocar os dias correspondentes ao seu cartão de crédito.

    Nota2: O comportamento padrão da função é procurar por um registro já inserido e

    inserir o registro atual após o último registro com a data de pagamento do cartão.

    Caso não encontre um registro pré-existente, o registro é inserido na posição atual ;-)

  3. i-reg-gas — Uso: M-x i-reg-gas — insere um registro de consumo de gasolina.
    Eu uso essa função para poder controlar o consumo de combustível da moto :D .   Esta função utiliza as duas anteriores para inserir um registro imediato ou de cartão de crédito.

    Exemplo de registro:

    2009-MM-DD -22.26 ccredXX, posto, moto| @MM.DD Gasolina para a Moto. otot}15872.9} opar(170.2) l{9.279{ R/l$2.399$ km/l _18.342_ aditivada

    Explicação:

    • Odômetro Total — otot}15872.9}
    • Odômetro Parcial — opar(170.2)
    • Litros Abastecidos — l{9.279{
    • Preço por Litro — R/l$2.399$
    • Km/l – Calculado automaticamente — km/l _18.342_
    • Tipo da Gasolina — aditivada
  4. i-atualiza-dados-dev — Uso: M-x i-atualiza-dados-dev –Atualiza o arquivo moneylog.txt no diretório ../moneylog-dev . Como eu uso tantouma versão quanto a outra, atualizo sempre os dados. Nota: Para que

    essa função funcione, é necessário ter as seguintes marcações no arquivo

    moneylog.html:

    ## começo

    no começo dos dados e

    ## fim

    ao final dos dados.

    Ah, mais uma coisa, ainda. Para tornar as funções disponíveis dentro do emacs

    você pode fazer de duas maneiras diferentes:

    1. Uma mais rápida e só para a sessão corrente:

    + abra o arquivo moneylog.el e digite

     M-x eval-buffer

    dentro do buffer do moneylog. A partir daí é só abrir o moneylog.html e usar as funções.

    2. Uma outra mais permanente:

    adicione ao seu arquivo .emacs o seguinte:

    (setq load-path (append load-path '("/diretorio/do/moneylog_el/")))
    (load-library "paren")
    

    e pronto, na próxima vez que vc iniciar o emacs estarão lá as funções ;-)

    Espero que seja útil para mais alguém ;-)

    Se alguém tiver alguma sugestão, é só entrar em contato ;-)

    Ah, o Código :)

    ;;; moneylog.el --- Provide a way to enter moneylog logs
    
    ;; Copyright (C) 2009  Leslie Harlley Watter
    
    ;; Author: Leslie Harlley Watter
    ;; Keywords: 
    
    ;; This file is free software; you can redistribute it and/or modify
    ;; it under the terms of the GNU General Public License as published by
    ;; the Free Software Foundation; either version 3, or (at your option)
    ;; any later version.
    
    ;; This file is distributed in the hope that it will be useful,
    ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
    ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ;; GNU General Public License for more details.
    
    ;; You should have received a copy of the GNU General Public License
    ;; along with GNU Emacs; see the file COPYING.  If not, write to
    ;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
    ;; Boston, MA 02110-1301, USA.
    
    ;;; Commentary:
    
    ;; This file should be used with moneylog (www.aurelio.net/moneylog)
    
    ;;; Code:
    
    (defun i-register (&optional tag)
      "Inserts/format an account record. It should be used with moneylog
       2009.08.15	-29.00	bicicleta	|  Mesa para a bicicleta"
      (interactive)
    ;; pre-fills the today variable with today's date
      (setq today (format-time-string "%Y-%m-%d"))
      (setq rdata (read-string "Data (2009.06.15): " today ))
      (unless (equal rdata "")
      (setq rvalor (read-string "Valor (110.00 ou -110.00): "))
      (unless (equal rvalor "")
      (setq rtags (read-string "Tags (poupanca,visa,ccred): " tag))
      (setq rcomentario (read-string "Comentario: "))
      (unless (equal rcomentario "")
        (insert (format "%s\t%s\t%s| %s\n" rdata rvalor rtags rcomentario )) ;
    ))))
    
    (defun i-reg-ccredit (&optional tag)
      "Inserts/format an account record. It should be used with moneylog
       2009.08.15	-29.00	visa	| Mesa para a bicicleta"
      (interactive)
    ;; pre-fills the today variable with today's date
    ;; fechamento is the date where the credit card closes it's bills
      (setq fechamento 7)
      (setq diaspgtoaposfechamento 10)
      (setq dia (string-to-number (format-time-string "%d")))
      (if (<= dia fechamento)
          (setq mes (format-time-string "%m"))
          (setq mes (format "%02d" (% (+ (string-to-number (format-time-string "%m")) 1 ) 12 )))
      )
      (setq today (format "%s%s-%s" (format-time-string "%Y-") mes (+ fechamento diaspgtoaposfechamento) ))
      (setq rdata (read-string "Data Vencimento (2009.06.15): " today ))
      (unless (equal rdata "")
      (setq rvalor (read-string "Valor (110.00 ou -110.00): "))
      (unless (equal rvalor "")
      (setq rtags (read-string "Tags (ccred): " tag))
      (setq bdate (format-time-string "%m.%d"))
      (setq rdatacompra (read-string "Data compra (mm.dd): " bdate))
      (unless (equal rdatacompra "")
      (setq rcomentario (read-string "Comentario: "))
      (unless (equal rcomentario "")
      (setq atual (point))
      (goto-char (point-max))
      (goto-char (if (equal (search-backward rdata (point-min) t) nil)
    				 atual
    			   (search-backward rdata (point-min))
    			   ))
      (beginning-of-line)
      (forward-line 2)
        (insert (format "%s\t%s\t%s| @%s %s\n" rdata rvalor rtags rdatacompra rcomentario )) ;
    )))))
    
    (defun i-reg-gas ()
      "Inserts/format a gas account record. It should be used with moneylog"
      (interactive)
    ;; prefills month variable to be concatenated to default tags
      (setq fechamento 7)
      (setq diaspgtoaposfechamento 10)
      (setq dia (string-to-number (format-time-string "%d")))
      (if (<= dia fechamento)
          (setq mes (format-time-string "%m"))
          (setq mes (format "%02d" (% (+ (string-to-number (format-time-string "%m")) 1 ) 12 )))
      )
    ;; here starts the real gas function
      (setq tiporeg (read-string "tipo Registro (C|I) (Credito/Imediato): "))
      (unless (equal tiporeg "")
      (if (equal tiporeg "C")
    	  (i-reg-ccredit (concat (concat "ccred" mes) ", posto, "))
    	(i-register (concat (concat "ccred" mes) ", posto, "))
    	)
      (setq odomtotal (read-string "Odometro Total: "))
      (unless (equal odomtotal "")
      (setq odomparc (read-string "Odometro Parcial: "))
      (unless (equal odomparc "")
      (setq litabast (read-string "Litros Abastecidos: "))
      (unless (equal litabast "")
      (setq precolitro (read-string "Preço por Litro: "))
      (unless (equal precolitro "")
      (setq kmporlitro (number-to-string (/ (string-to-number odomparc)(string-to-number litabast))))
      (setq tipogas (read-string "Tipo ( aditivada / comum ): "))
      (unless (equal tipogas "")
    	(backward-char 1)
        (insert (format " otot}%s} opar(%s) l{%s{ R/l$%s$ km/l _%s_ %s \n"  odomtotal odomparc litabast  precolitro (substring kmporlitro 0 6) tipogas )) ;
    )))))))
    
    (defun i-atualiza-dados-dev ()
      "Atualiza os dados no arquivo moneylog.txt em ../moneylog-dev/."
      (interactive)
      (goto-char (point-min))
      (search-forward "## começo")
       ; grab the current line
      (beginning-of-line)
      (setq myStartPos (line-beginning-position))
    
      (goto-char (point-min))
      (search-forward "## fim")
      ; grab the current line
      (end-of-line)
      (setq myEndPos (line-end-position))
      ; get the strings between start and end point
      (setq myStr (buffer-substring myStartPos myEndPos))
    ;;  (message "%s" myStr)
      (pop-to-buffer (find-file-noselect "../moneylog-dev/moneylog.txt"))
    
      (goto-char (point-min))
      (search-forward "## começo")
       ; grab the current line
      (beginning-of-line)
      (setq myStartPos2 (line-beginning-position))
    
      (goto-char (point-min))
      (search-forward "## fim")
      ; grab the current line
      (end-of-line)
      (setq myEndPos2 (line-end-position))
      ;; delete the region
      (delete-region myStartPos2 myEndPos2)
      (goto-char myStartPos2)
      (insert myStr)
      (basic-save-buffer)
      (message "Arquivo Atualizado" )
    )
    
    (provide 'moneylog)
    ;;; moneylog.el ends here
    

    Pra facilitar a vida daqueles que leram até aqui, o arquivo de código também

    pode ser encontrado aqui

Publicado por: lezz | Setembro 22, 2009

Emacs + Weblogger

Procurando por uma solução para publicar os posts do blog sem ter que entrar no
browser. Eu não me sinto à vontade em escrever um post longo no browser,
qualquer Ctrl+W mata muito tempo de trabalho, enquanto que no emacs, bom, estou
bem mais acostumado e confortável ;-)

Vamos ver se usando esse weblogger.el (http://nethazard.net/weblogger.tar.gz) eu
posto mais frequentemente no blog agora :P

Bom esse link ajudou a acertar a linha de comando na hora do setup :)
http://support.wordpress.com/xml-rpc/

http://lezz.wordpress.com/xmlrpc.php

Great! Funcionou ;-)

A página original que mostra a interface do weblogger que estou usando é essa:
http://blog.nethazard.net/emacs-weblogger-mode-with-wordpress-tags-support/

Publicado por: lezz | Agosto 7, 2009

procurando por um termo em um XML com javascript

Esses dias eu precisei buscar um resultado dentro de um arquivo XML que o servidor retornava, tudo isso em javascript.

Google daqui, google de lá, cheguei num exemplo aqui: http://perfectionlabs.com/quicks/advanced-javascript/DOMParser/

Adapta daqui, e de lá, cheguei na funçao alertContents pra fazer o parse do XML que era retornado:

— xml retornado —
<?xml version=\”1.0\” encoding=\”UTF-8\”?>
<captcha>
<result>true</result>
</captcha>
— end xml ———

— javascript —
function alertContents() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
// cria um novo parser do XML
var xmlDoc = (new DOMParser()).parseFromString(http_request.responseText, “text/xml”);
// procura pelo conteudo da tag <captcha><result>, como só tenho uma tag, resolve fácil
var resultado = xmlDoc.evaluate(“.//captcha/result”, xmlDoc, null, XPathResult.STRING_TYPE,   null).stringValue;
alert(“Captcha value is: ['" + resultado + "']“);
return resultado;
} else {
alert(‘There was a problem with the request.’);
}
}
}
——————-
esse link também é bastante útil para as expressões de pesquisa: https://developer.mozilla.org/en/Introduction_to_using_XPath_in_JavaScript

Publicado por: lezz | Julho 9, 2009

configurando? som snd_hda_intel no Debian

É mais um relato que outra coisa, mas como eu estava sem som até hoje no desktop, vai aqui a configuração para lembranças futuras :)

A placa de som:

00:1b.0 Audio device: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (rev 05)

A configuração:

leslie@atlas:/etc/modprobe.d$ grep intel sound.conf alias snd-card-0 snd-hda-intel options snd-hda-intel index=0 model=auto

O X da questão está no model = auto.

Os módulos de som carregados:

leslie@atlas:/etc/modprobe.d$ lsmod | grep snd
snd_hda_intel         325688  4
snd_pcm_oss            32832  0
snd_mixer_oss          12320  1 snd_pcm_oss
snd_pcm                62596  3 snd_hda_intel,snd_pcm_oss
snd_seq_dummy           2660  0
snd_seq_oss            24992  0
snd_seq_midi            5728  0
snd_rawmidi            18528  1 snd_seq_midi
snd_seq_midi_event      6432  2 snd_seq_oss,snd_seq_midi
snd_seq                41456  6 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_seq_midi_event
snd_timer              17800  3 snd_pcm,snd_seq
snd_seq_device          6380  5 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_rawmidi,snd_seq
snd                    45604  15 snd_hda_intel,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_seq_oss,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
soundcore               6368  1 snd
snd_page_alloc          7816  2 snd_hda_intel,snd_pcm

E é claro, acertar a saída da placa de som para a saida verdinha :D

Espero que esse relato ajude alguém. Ah, kernel:

leslie@atlas:~$ uname -a Linux atlas 2.6.26-2-686 #1 SMP Thu May 28 15:39:35 UTC 2009 i686 GNU/Linux

Após algum tempo utilizando o emacs ao atualizar para a versão 22 comecei a ter a mensagem:

Warning: desktop file appears to be in use by PID XXXX

ao iniciar o emacs. Eu uso o desktop.el para recriar os buffers que estava usando ao fechar o emacs.

Algumas das minhas configurações:

———————————————————————————-

(add-to-list ‘desktop-globals-to-save ‘file-name-history)
(add-to-list ‘desktop-modes-not-to-save ‘dired-mode)
(add-to-list ‘desktop-modes-not-to-save ‘Info-mode)
(add-to-list ‘desktop-modes-not-to-save ‘info-lookup-mode)
(add-to-list ‘desktop-modes-not-to-save ‘fundamental-mode)
(add-to-list ‘desktop-modes-not-to-save ‘planner-mode)
(setq desktop-enable t)

————————————————————————————

Para resolver o problema da mensagem, bastou colocar a seguinte linha no .emacs

———————————————————————————–

(desktop-save-mode 1)

———————————————————————————–

e voi lá, sumiu-se a mensagem que me aborrecia …

Publicado por: lezz | Abril 29, 2009

Edição de Vídeo com Linux?!

Esses dias precisei editar um vídeo AVI, simplemsnete recortar ele para uma apresentação e não tinha a menor idéia do que utilizar pra fazer esse serviço no Linux.

Na realidade eu até tinha alguma idéia, já tinha ouvido falar do Cinelerra (http://www.cinelerra.org).

Instalei o Cinelerra no debian, tão fácil quanto um apt-get install cinelerra e fui tentar usar….

Ele pode ser muito bom para edição profissional de vídeo, mas pra mim que não tinha tempo nem conhecimento sobre edição profissional, mostrou-se bem complicado de entender …

Mais algumas pesquisas, encontrei o Kino (http://www.kinodv.org/) outro com interface gráfica bonito, mas não me acertei com ele… pressa é o que há de mais sacana …

Pow, eu não queria ter que usar o ffmpeg na unha (se bem que já estava lendo a man page dele….), então eu usei mais um pouco o google e encontrei a menção a um tal de Lives num blog …

Eh, o Lives (http://lives.sf.net) se mostrou bem mais interessante para o  que eu tinha que fazer…

apt-get install lives e pronto ???

Não ainda… Se vc quiser salvar a edição, pelo menos no debian vai precisar do pacote lives-data :/ (que não é dependência, mas sugerido :) e também traz a tradução para o portugues ;-)

Gostei desse programa, que “simplezinho” resolveu meu problema, mostrando a trilha de vídeo e as trilhas de áudio e permitindo que eu recortasse uma por uma ;-)

Fica o lembrete da instalação dos dois pacotes para quem precisar editar algum vídeo no Linux ;-)

Meu problema era ler os e-mails em HTML e em texto puro em momentos alternados. Hora eu precisava ler os e-mails usando o browser, para poder ver as firulas/frescuras que apareciam somente no HTML, ora eu precisava responder com o texto que tinham colocado no HTML, respondendo em texto puro mesmo.

Eu gosto de usar o mutt, e uso ele já há algum tempo e agora resolvi colocar essa funcionalidade para funcionar.

Quero poder ver o e-mail em html no browser e incluir o texto na resposta, porém
responder em texto puro.

As configurações tiveram um sem número de referências que eu coloquei em http://del.icio.us/lezz/mutt ;-)

A idéia toda consistem em ter 2 entradas no arquivo mailcap e comandos no mutt para alternar entre os modos de visualização.

Vamos por partes, vou apresentar primeiro todos os ingredientes da receita, e depois o “modo de fazer”

Incluir no Arquivo ~/.muttrc

macro index \e9 "unset wait_key\n echo 1 >/tmp/browser\nset wait_key\n"
macro index \e0 "unset wait_key\n echo 0 >/tmp/browser\nset wait_key\n"
macro pager \e9 "unset wait_key\n echo 1 >/tmp/browser\nset wait_key\n"
macro pager \e0 "unset wait_key\n echo 0 >/tmp/browser\nset wait_key\n"

Inclir no arquivo no ~/.mailcap as entradas:

text/html; firefox %s ; copiousoutput ; needsterminal ; nametemplate=%s.html; test=~/bin/mostraBrowser.sh
text/html; w3m -dump %s; copiousoutput; nametemplate=%s.html

Criar o arquivo mostraBrowser.sh em ~/bin

#!/bin/bash
# se o arquivo /tmp/browser contiver 1 vai pro firefox, se estiver no X caso contrario usa o mutt
if ! [ -e /tmp/browser ]; then
   echo 0 > /tmp/browser
fi
BROWSER=`cat /tmp/browser 2> /dev/null| cut -d ' ' -f 1`
if [ $BROWSER -eq 1 ]; then
    /home/leslie/bin/RunningX;
    if [ $? == 0 ]; then
         exit 0;
    fi
else
    exit 1;
fi

Modo de fazer:

1) Crie todas as entradas anteriores nos arquivos mencionados ;-)

2) Ao ler os e-mails, pressione <Esc> 9 (esc nove) para mudar para visualização no firefox e <esc> 0 (esc zero)

para ler o arquivo usando o w3m.

Você pode usar qualquer combinação de teclas e o programma RunningX pode ser encontrado em http://www.fiction.net/blong/programs/mutt/autoview/RunningX.c

NOTA: Se você tiver o firefox aberto, o mutt abrirá uma nova aba no firefox existente, caso contrário, iá abrir uma nova sessão do firefox. Eu pessoalmente inicio primeiro a sessão do firefox e depois deixo o mutt abrir uma nova aba, porque senão, para voltar ao mutt, tenho que fechar o firefox.

Feliz Páscoa!!!

Publicado por: lezz | Março 19, 2009

Trocar VGA -> Datashow sem tecla de função

Apareceu na listaDebian Users PT uma mensagem do Givaldo de Cidra com a seguinte dica:

————————————————————————————————

xrandr –output VGA –auto
xrandr –output VGA –off

Para configurar a resolução do datashow:
xrandr –output VGA –auto –mode 1024×768

veja:
http://www.thinkwiki.org/wiki/Xorg_RandR_1.2

———————————————————————-

Bom pra configurar a resolução do Datashow :D

Publicado por: lezz | Março 19, 2009

Só para NERDS

There are only 10 types of people in the world —
those who understand binary, and those who don’t.

There are only 10 types of people in the world —
those who understand ternary, those who don’t, and those who mistake it
for binary.

If only DEAD people understand hexadecimal, how many people understand
hexadecimal?
57005.

Why do mathematicians always confuse Halloween and Christmas?
Because 31 Oct = 25 Dec.

Postagens Antigas »

Categorias