Month: November 2006

Máquina de Antikythera decifrada

Finalmente descobriram que a máquina de Antikythera se trata de um aparelho usado para calcular a posição da Lua e outros astros segundo a teória eliptica de Hipparchos.

O instrumento foi criado por volta do ano 100 AC:
http://www.nytimes.com/2006/11/30/science/30compute.html?ei=5088

Um texto interessantíssimo sobre esta máquina pode ser lindo em:
http://www.ceticismoaberto.com/ciencia/antikythera.htm

Agora só precisamos recriar o aparelho.

Phrasal verbs

Resolvi criar este post com expressões em inglês usadas no cotidiano e phrasal verbs:

A:
above all = acima de tudo
at first glance = à primeira vista

at will = à vontade

B:
back out = desistir
bail out = resgatar
bows out = arrastar-se, retirar-se
break away = fugir
break into = invadir
bring up = criar uma criança, levantar um assunto
buckle up = preparar-se
burst out = explodir

C:
came out = saiu
carry out = realizar, executar
cheat on = trair
chew out = repreender
chill out = acalmar-se
clouds up = embaçar
clunk along = fazer barulho
conked out = apagado

cut back = cortar

D:
dole out = racionar, distribuir

E:
eke out = suprir

F:
feel like = ter desejo de fazer algo, vontade de,
ferret out = desentocar
fizzle out = fracassar
freak out = perder o bom senso
figure out = descobrir

G:
get on = se relacionar bem com alguem, se dar bem com alguém
get rid of = livrar-se de
get up = levantar
give up = abandonar, desistir

H:
half-baked = mal-acabada (half-baked ideas = ideias mal-acabadas)
hand over = entregar, transferir, entregar (para polícia)
hash things out = esclarecer as coisas

huddle up = amontoar-se
hunker down = agachar

I:
in bartering over = em troca de (usado num acordo comercial)

J:
just about = quase

K:
keep on / go on / carry on = ficar, continuar
kick off = começar
kick out = expulsar

L:
Lean on = confiar
left over = sobrando, sobra
let down = decepcionar
lies in = encontra-se em
look forward to = ansioso para ver ou para ter algo
look up = verificar
look up to = admirar
looking for = procurando
lumber along = avançar

M:
make up = inventar uma estória, recuperar
missing out = perdendo algo, deixando de aproveitar

P:
peter out = esmorecer, esgotar, falhar
pitch in = contribuir com com algo, fazer sua parte, dedicar-se intensamente ao trabalho
pick up = 1) pegar, 2) aprender
pull out = tirar, arrancar
pull over = parar
put away = guardar

put off = adiar, postergar
put up with = tolerar alguém, aguentar alguém

R:
rang out = soou
rule out = excluir
run out of = acabar, ficar sem

S:
set off = desencadear, começar, zarpar
shear off = cortar fora, reduzir
shelling out = pagar
shore up = escorar, fortalecer
singling out = destacar, selecionar, denunciar
stand out = destaca (stood out = destacou-se)
stood out = destacou-se

T:
tear out = arrancar
thawed out = descongelado
the time has come for = Chegou o momento para
throw out = jogar fora, rejeitar, expulsar
trade off = troca, permuta, acerto, concessão

W:
watch out = cuidado
weed out = eliminar
wiped out = dizimado
wake up = acordar
worn out = esgotou, gasto, cansado, exausto
wound up = acabou

Salada mista

Precisei fazer um agente snmp para controlar remotamente a interface do baja-by-wire. Assim eu poderia atual no velocimetro e no tacometro de forma remota.

Para isso crei um agente contendo 3 variáveis (speed, rpm e temperature.

Então usando a IDE Glade criei um aplicativo GTK usando o componente GTKScale. Este componente comunica via memória compartilhada com o agente MIB do SNMP.

Para testar eu executo o snmpd:
# snmpd -c /etc/snmpd.conf

Em seguida executo o aplicativo gtk:
# ./control

E para verificar se está tudo funcionando executo o comando:
# snmpwalk -c meters -v 1 localhost 1.3.6.1.4.1.12619

Conforme vou mudando o slider do programa em GTK a saída do comando acima vai mudando.

Configurando o touchscreen eGalax no Linux

Carregue o módulo usbtouchscreen:

# modprobe usbtouchscreen

Rotacione os eixos X/Y que estão invertidos:

# echo Y > /sys/module/usbtouchscreen/parameters/swap_xy

Agora precisamos instalar o módulo evtouch no X, baixe-o do site:
http://stz-softwaretechnik.com/~ke/touchscreen/evtouch.html

Acrescente em /etc/X11/XF86Config-4 ou xorg.conf:
Section “InputDevice”
Identifier “touchscreen”
Driver “evtouch”
Option “Device” “/dev/input/event3”
Option “DeviceName” “touchscreen”
Option “MinX” “100”
Option “MinY” “1850”
Option “MaxX” “1930”
Option “MaxY” “250”
Option “ReportingMode” “Raw”
Option “Emulate3Buttons”
Option “Emulate3Timeout” “50”
Option “SendCoreEvents” “On”
EndSection

Para calibrar acrescente:
Option “Calibrate” “1”

Na sessão “InputDevice” acima e execute o calibrate.sh

Meu primeiro pacote para o OpenEmbedded

Resolvi portar o ipatience para o iPaq, então criei um pacote para o OpenEmbedded.
Pedi um bom tempo resolvendo erros que ocorreram durante a criação do pacote, e após fazê-lo funcionar descubro que os fontes do pacote não devem ser enviados ao repositório do openembedded, mas sim baixado direto do site do projeto.

Então tive que modificar a estrutura do pacote para fazer isso, no final deu tudo certo, e o pacote pode ser visualizado em:

http://bugs.openembedded.org/show_bug.cgi?id=1574

A conclusão que cheguei é que é preciso ter paciência para portar o ipatience. Não resisti à piadinha infâmia. Francamente, estas aqui são bem piorer: http://infamia.blogspot.com

GStreamer-ERROR

Provavelmente você já obteve esta msg de erro:

GStreamer-ERROR **: No default scheduler name – do you have a registry ?
aborting…

Or:

Failed to create the player: Couldn’t initialize scheduler.
Did you run gst-register?

Para resolver este problema apenas execute gst-register-0.8 como usuário normal, ou seja, com o usuário que você está tentando usar para ouvir a música.

Configurando o iPaq para acessar internet

Para que o iPaq possa acessar a internet através do computador usando a conexão USB entre eles devemos:

No computador:

echo "usbnet" > /etc/modutils/usbnet
update-modules

editar o arquivo /etc/network/interfaces:

auto usb0
iface usb0 inet static
address 192.168.2.200
netmask 255.255.255.0
broadcast 192.168.2.255

No iPaq:

auto usbf
iface usbf inet static
address 192.168.2.202
netmask 255.255.255.0
network 192.168.2.0
gateway 192.168.2.200

Ao invés de usar aquelas regras chatas do iptables vamos usar o programas “firestarter” para fazer o trabalho sujo pra nós:

1) Vá em Editar -> Preferências
2) Clique em Configurações da Rede
3) Dispositivo conectado à Internet: eth0
4) Dispositivo conectado à Rede Local: usb0
5) Habilitar o compartinhamento de conexão internet

Pronto!

Criando projetos com o Automake

Recentemente precisei criar um makefile para poder compilar o ipatience para o iPaq. O autor original (Keith Packard) criou um Imakefile que é usado pelo projeto do X11, não é surpresa, afinal Keith é um dos desenvolvedores do X, é dele a criação do Kdrive.

Vamos ao passo-a-passo:

Primeiro criei um Makefile.am:
bin_PROGRAMS = ipatience

ipatience_LDADD = $(X11_LIBS) $(FLTK_LIBS) -lfltk -lm

ipatience_SOURCES = \
aces.cc \
calc.cc \
canfield.cc \
cards.cc \
eight.cc \
freecell.cc \
golf.cc \
klondike.cc \
main.cc \
montana.cc \
spider.cc \
spiderette.cc \
tabby.cc \
table.cc \
towers.cc \
vegas.cc \
wish.cc \
yukon.cc

INCLUDES = $(X11_CFLAGS) $(FLTK_CFLAGS)

ipatiencedir = $(pkgdatadir)

ipatience_DATA = na.xpm

EXTRA_DIST = xmms-dock-master.xpm wmxmms.xpm

Em seguida criei um configure.in:

AC_INIT(main.cc)

AM_CONFIG_HEADER(config.h)

AM_INIT_AUTOMAKE(ipatience, 0.1)

AM_MAINTAINER_MODE

AC_PROG_CXX
AC_ISC_POSIX
AC_HEADER_STDC
AC_ARG_PROGRAM
AM_PROG_LIBTOOL

AC_SUBST(CFLAGS)
AC_SUBST(CPPFLAGS)
AC_SUBST(LDFLAGS)
AC_SUBST(X11_CFLAGS)
AC_SUBST(X11_LIBS)
AC_SUBST(FLTK_CFLAGS)
AC_SUBST(FLTK_LIBS)

AC_OUTPUT([
Makefile
])

Vamos instruir ao automake para criar os arquivos pendentes:

automake –add-missing

Os demais arquivos que aparecem como required na saída do comando acima devem ser criados manualmente, um simples touch resolve.

Agora vamos gerar o configure:

autoreconf

Pronto!