Um advogado dirigia distraído quando num sinal de PARE passa sem parar, mesmo em frente a uma viatura do BOPE.
Ao ser obrigado parar, toma uma atitude de espertalhão:*
Policial:*- Boa tarde. Documento do carro e habilitação. *
Advogado:*- Mas por que, policial? *
Policial:*- Não parou no sinal de PARE ali atrás. *
Advogado:*- Eu diminuí? e como não vinha ninguém…rs *
Policial:*- Exato.. Documentos do carro e habilitação. *
Advogado:*- Você sabe qual é a diferença jurídica entre diminuir e parar? *
Policial:*- A diferença é que a lei diz que num sinal de PARE, deve parar
completamente. Documento e habilitação. *
Advogado:*- Ou não policial, eu sou Advogado e sei de suas limitações na
interpretação de texto de lei, proponho-lhe o seguinte: Se você conseguir me
explicar a diferença legal entre diminuir e parar eu lhe dou os documentos e
você pode me multar. Senão, vou embora sem multa. *
Policial:*- Positivo, aceito. Pode fazer o favor de sair do veículo Sr.
Advogado?
O Advogado desce e então os integrantes do BOPE baixam o cacete, pancada pra
tudo quanto é lado, tapa, botinada, cassetete, cotovelada, etc.
O Advogado grita por socorro, e implora para pararem pelo amor de DEUS.
E o Policial pergunta:
- Quer que a gente PARE ou DIMINUA? *
Advogado:*- PARE!… PARE!…. PARE!… *
Policial:*- Positivo… Documento e habilitação.
Diferença entre Pare e Diminua
Configurando o X + teclado no Testing
Ontem resolvi fazer uma atualização do meu note, bem em meio a um monte de datas
críticas (eita idéia de girico)…
Situação: ao finalizar o upgrade de lenny + sid + experimental (sim, eu
tinha pacote de todos esses repositórios, para compilar o digikam direto do fonte) para
testing, o que ocorre?
O teclado não volta mais no X. Nada de teclado nem mouse.
Damn!
Solução: reboot e editar o grub para entrar em modo single, remover o gdm que
entrava logo no boot e me impedia de acessar o console (sem teclado
) e
ver o que podia fazer ….
Bom, fui por onde eu conseguia navegar, e vendo configurações aqui e ali … e
nada.
Já tinha removido e reinstalado o X uma porção de vezes para ver se não tinha
nada de resquício de configuração perdida no meio do caminho quando resolvi
fazer a coisa do jeito certo. Procurar e olhar e ver as configurações.
Comecei tentando a configuração mais óbvia:
<code>
dpkg-reconfigure keyboard-configuration
</code>
e nada de acertar o raio do mapa de teclado, que hora funcionava no console,
hora não.
O Felipe (faw) após me indicar os comandos
<code>
dpkg-reconfigure console-setup
</code>
verificar os locales me lembrou da configuração do console-data, que eu havia
esquecido:
<code>
dpkg-reconfigure console-data
</code>
<pre>
< faw> Selecionar mapa de teclado da lista de arquiteturas
< faw> qwerty
< faw> Brazilian
< faw> Standard
</pre>
Ah, faltou eu contar que meu teclado é um abnt2 ;d
e eu não encontrava mais aonde ficava esse raio de configuração.
Depois de configurar o teclado no console, o X voltou a funcionar com teclado a
contento
/etc/default/keyboard
<code>
# If you change any of the following variables and HAL and X are
# configured to use this file, then the changes will become visible to
# X only if HAL is restarted. In Debian you need to run
# /etc/init.d/hal restart
# The following variables describe your keyboard and can have the same
# values as the XkbModel, XkbLayout, XkbVariant and XkbOptions options
# in /etc/X11/xorg.conf.
XKBMODEL="acer_laptop"
XKBLAYOUT="br"
XKBVARIANT=""
XKBOPTIONS="terminate:ctrl_alt_bksp"
# If you don’t want to use the XKB layout on the console, you can
# specify an alternative keymap. Make sure it will be accessible
# before /usr is mounted.
# KMAP=/etc/console-setup/defkeymap.kmap.gz
#KMAP=/etc/console-setup/cached.kmap.gz
</code>
/etc/default/console-setup
<code>
# Change to "yes" and setupcon will explain what is being doing
VERBOSE_OUTPUT="no"
# Setup these consoles. Most people do not need to change this.
ACTIVE_CONSOLES="/dev/tty[1-6]"
CHARMAP="UTF-8"
# The codeset determines which symbols are supported by the font.
# Valid codesets are: Arabic Armenian CyrAsia CyrKoi CyrSlav Ethiopian
# Georgian Greek Hebrew Lao Lat15 Lat2 Lat38 Lat7 Thai Uni1 Uni2 Uni3
# Vietnamese. Read README.fonts for explanation.
CODESET="Lat15"
FONTFACE="Terminus"
FONTSIZE="12×6"
if [ -f /etc/default/keyboard ]; then
. /etc/default/keyboard
fi
</code>
Eh, por hora é isso. Fica como uma nota pra mim mesmo o ocorrido.
Mais uma vez, valeu FAW ;D
—————-
Followup rápido
Tudo isso começou porque o meu X simplesmente insistia em congelar no meio do nada. E dai eu ia lá perder as coisas que estava fazendo.
Algo que eu aprendi foi fazer:
# grep EE /var/log/Xorg.0.log
no meu caso aparecia um erro de DRM / DRI que eu posto aqui depois
A solução mesmo, após usar o google um bocado, foi compilar um novo kernel (eu estava com um 2.6.27).
Agora com o kernel 2.6.31 já não tenho mais o problema com o X
Livro “The Fifth Elephant”
Hoje terminei finalmente a leitura do livro “The Fifth Elephant” (O quinto
elefante) do autor Terry Pratchett.
Um livro que me proporcionou muitas risadas e vários horários de almoço de muito
boa leitura.
O humor ácido e satírico do autor é incomparável!
Leitura recomendada sem sombra de dúvidas
Para mais informações a respeito do livro:
a capa do livro que eu tenho: 
em inglês: http://en.wikipedia.org/wiki/The_Fifth_Elephant
em portugues acredito que só nas livrarias
Boa leitura a todos,
Leslie
Publicado em Uncategorized | Tags:books, readings, terry_pratchett
Uma tarde ao ar livre
Nada como passar alguns momentos escutando uma música boa em um lugar agradável.
Mesmo dentro de um turbilhão de coisas acontecendo na vida, achei um momento
para passar em um lugar que me faz bem (ao ar livre).
Gostaria de poder trabalhar nessa liberdade, notebook + conexão GPRS e estar em
um lugar agradável
Será que é pedir demais?
Publicado em Sem categoria
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
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:
- i-register — Uso: M-x i-register — insere um registro na posição atual
- 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
- 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
. 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
- 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 herePra facilitar a vida daqueles que leram até aqui, o arquivo de código também
pode ser encontrado aqui
Publicado em Uncategorized | Tags:emacs, moneylog
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
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/
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 em Uncategorized | Tags:DOMParser, javascript, XML
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
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
Publicado em Uncategorized
emacs + desktop.el – corrigindo erro na inicialização
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 …
Categorias
- Acessories
- Bike
- books
- cable
- carro
- coffee
- configuration
- datashow
- debian
- eclipse
- emacs
- filter
- git
- graphviz
- imagens
- images
- eepc
- java
- javascript
- ldp-br
- mobile computing
- modem
- mutt
- open office
- pacotes
- pessoal
- piadas
- powerpoint
- procmail
- professor
- programs
- shellscript
- trac
- trip
- udev
- Uncategorized
- viagem
- video
- videos
- vivozap
- work
- Xorg
- xrandr