Tagged with dicas

StepMania-SVN-20090129-linux

Hey, hey, olá de novo! Bom, não sei se ainda se lembram dos ‘latest news’ de ontem com a história da PIU Pro PC e o Stepmania 4 do SVN que estava eu tentando compilar. Pois bem, disse que haveria um post mais completo, e ei-lo aqui! Vamos à história completa:

Dizia eu, ontem, que consegui uma versão da PIU Pro para Windows. Pois bem, no intuito de fazê-la funcionar (temas, noteskins e tudo o mais) baixei o SM 4.0 a partir do repositório de código SVN do projeto e procedi com a compilação. Tudo correu muito bem, e correria com você também, desde que você instale as bibliotecas necessárias — listadas abaixo (nome de pacotes para o Ubuntu 8.10, os nomes dos pacotes para outras distribuições podem variar):

libxrandr-dev
libgl1-mesa-dev
libgl1-mesa-dev
libpng12-dev
libjpeg62-dev
zlib1g-dev
libogg-dev
libvorbis-dev
libmad0-dev
libavcodec-dev
libavformat-dev
libtheora-dev
libasound2-dev
libgtk2.0-dev

O “bug” sobre o qual eu falei ontem na realidade não era bem um “bug” no StepMania com relação ao som, mas sim uma falha da minha parte em instalar a biblioteca ‘libasound2-dev’, que permite a compilação do suporte para ALSA no binário do Stepmania. Falando nisso, postei uma thread lá no fórum do SM falando sobre esses detalhes de compilação.

Compilado e funcionando, peguei apenas o binário do programa (stepmania) e a uma biblioteca compartilhada correspondente (GtkModule.so) e posicionei na pasta da PIU Pro, pra ver o que ia acontecer. Muito embora o tema padrão não funcione de jeito nenhum, todo o restante (músicas, rolls, noteskin rhythm, etc.) funciona perfeitamente! Fica [quase] igual à máquina mesmo, exceto pelo tema do jogo. Confiram aí umas screenshots pra ver que não estou mentindo! (as setas ficaram meio bizarras, mas dá pra ter uma idéia)

Tela de recordes (Best Scores)
Tela de opções
Tela de seleção de músicas
Jogando Dignity
Jogando Utopia

Se quiser testar o StepMania 4.0 SVN, sinta-se à vontade para baixar o build que fiz hoje (29-01-2009) e disponibilizei nos servidores do PW. Só para Linux, ok? (não tenho Mac e/ou Windows mesmo…) Here goes: http://pwfriends.com.br/banks/sm_builds/StepMania-SVN-20090129-linux.tar.gz

Alguns detalhes:

  • Para executar, você só precisa das bibliotecas de runtime, não das de desenvolvimento (i.e. nenhum pacote -dev); não esqueça da aceleração OpenGL, bibliotecas de som mad e ogg e de fechar qualquer programa relacionado com som se você ver alguma mensagem parecida com “/dev/dsp: device or resource busy
  • Se houver interesse por builds regulares (uma vez por mês, ou por semana), ou dúvidas/problemas com a configuração, sem problemas: mande para fbscarel@gmail.com

Cheers && gg

Etiquetado , ,

Line-wrap e caracteres acentuados

Trabalhando na tradução do FAQ do OpenBSD, percebi que essa história de line wrapping em 72 colunas e a substituição de caracteres acentuados pode se tornar um saco. Ora, vamos automatizar, não é mesmo?

Para resolver o dos caracteres acentuados, substituindo “á” por “á” , por exemplo, é muito fácil. Fiz um script com várias chamadas sucessivas ao sed (não muito inteligente e/ou eficiente, mas resolve o problema), assim:

#!/bin/ksh
# Script to swap accentuated chars for its html counterparts
# using sed, brute-force style

cat $1 |

# Uppercase chars
sed 's/Á/\Á/g'   |
sed 's/É/\É/g'   |
sed 's/Í/\Í/g'   |
sed 's/Ó/\Ó/g'   |
sed 's/Ú/\Ú/g'   |

sed 's/Ã/\Ã/g'   |
sed 's/Õ/\Õ/g'   |

sed 's/Â/\Â/g'    |
sed 's/Ê/\Ê/g'    |
sed 's/Ô/\Ô/g'    |

sed 's/À/\À/g'   |
sed 's/Ü/\Ü/g'     |
sed 's/Ç/\Ç/g'   |

# Lowercase chars
sed 's/á/\á/g'   |
sed 's/é/\é/g'   |
sed 's/í/\í/g'   |
sed 's/ó/\ó/g'   |
sed 's/ú/\ú/g'   |

sed 's/ã/\ã/g'   |
sed 's/õ/\õ/g'   |

sed 's/â/\â/g'    |
sed 's/ê/\ê/g'    |
sed 's/ô/\ô/g'    |

sed 's/à/\à/g'   |
sed 's/ü/\ü/g'     |
sed 's/ç/\ç/g'

O line wrapping foi um tanto quanto mais fácil, já que o Joseph Myers fez uma versão interessante de seu programa wrap em C para 72 colunas (por padrão, o valor é customizável), o que resolve o problema sem esforço. O link está bem aqui: http://www.myersdaily.org/joseph/unix/wrap.html. Ele também explica o programa em detalhe, caso estejam a fim de ler um pouco. Finalmente, um exemplo de como usá-lo:

$ ./wrap < INFILE > OUTFILE

Cheers!

Etiquetado

Sony Ericsson W200 + OpenBSD

Continuando a cumprir as promessas de sexta-feira, vamos agora aos detalhes da configuração do Sony Ericsson W200 no OpenBSD.

Comentando o telefone, primeiramente, estou bastante satisfeito até o momento: por cerca de R$150 (pelo menos foi quanto eu paguei nele), você leva um telefone com uma interface de usuário consistente, bons recursos para registro de contatos e eventos e um MP3 player bastante aceitável. O cartão de memória de 256M que o acompanha é suficiente para algumas poucas músicas, mas o upgrade para o de 1G pode se tornar necessário, talvez até antes do que eu estivesse esperando.

Downsides, há vários: a câmera VGA, como era de se esperar, é inútil, porém esforçada. Há alguma latência entre um menu e outro, deixando a navegação um pouco lenta. Além disso, quando conectado à USB, o telefone pára de receber chamadas, ficando em modo ‘file-transfer’ apenas, o que é ruim. No Sony Ericsson W800i, por exemplo, isso não acontecia. Mas, por esse preço, não tinha como esperar muito mais que isso, não é?

Vamos à configuração. Ao conectar o telefone à USB (e esperar cerca de vinte a trinta segundos), o dmesg (OpenBSD 4.4 -current GENERIC.MP #34) nos apresenta o telefone:

umodem0 at uhub2 port 3 configuration 1 interface 1 "Sony Ericsson Sony Ericsson W200" rev 2.00/0.00 addr 2
umodem0: data interface 2, has CM over data, has break
umodem0: status change notification available
ucom0 at umodem0
umodem1 at uhub2 port 3 configuration 1 interface 3 "Sony Ericsson Sony Ericsson W200" rev 2.00/0.00 addr 2
umodem1: data interface 4, has CM over data, has break
umodem1: status change notification available
ucom1 at umodem1
ucom0 detached
umodem0 detached
ucom1 detached
umodem1 detached
umass0 at uhub2 port 3 configuration 1 interface 0 "Sony Ericsson Sony Ericsson W200" rev 2.00/0.00 addr 2
umass0: using ATAPI over Bulk-Only
scsibus1 at umass0: 2 targets, initiator 0
sd0 at scsibus1 targ 1 lun 0: <SEMC, Int.Memory, 0000> ATAPI 0/direct removable
sd0: drive offline
umass1 at uhub2 port 3 configuration 1 interface 1 "Sony Ericsson Sony Ericsson W200" rev 2.00/0.00 addr 2
umass1: using ATAPI over Bulk-Only
scsibus2 at umass1: 2 targets, initiator 0
sd1 at scsibus2 targ 1 lun 0: <SEMC, Mem-Stick, 0000> ATAPI 0/direct removable
sd1: drive offline

Tudo OK até aí. Temos dois dispositivos ucom(4) via umodem(4), dando suporte a modem USB, e dois dispositivos sd(4) via umass(4), que corresponde a um USB Mass storage device.

Observe que há dois dispositivos sd(4): sd0 e sd1. Depois de montá-los ambos, percebi que o primeiro corresponde à memória interna do aparelho, e o segundo ao memory stick do mesmo. Podemos intuir isso através do output do df para o sd0 (atente para o Size 27.3M):

# mount /dev/sd0i /w200i/
# df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/wd0a     1008M   40.7M    917M     4%    /
/dev/wd0d     1008M   10.0K    958M     0%    /tmp
/dev/wd0e      6.9G    1.1G    5.5G    16%    /usr
/dev/wd0f      9.5G    6.1G    2.9G    68%    /var
/dev/wd0k     73.3G   18.2G   51.4G    26%    /mnt
/dev/sd0i     27.3M   15.0K   27.2M     0%    /w200i

E sd1 (agora, Size 228M):

# mount /dev/sd1i /w200i/
# df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/wd0a     1008M   40.7M    917M     4%    /
/dev/wd0d     1008M   10.0K    958M     0%    /tmp
/dev/wd0e      6.9G    1.1G    5.5G    16%    /usr
/dev/wd0f      9.5G    6.1G    2.9G    68%    /var
/dev/wd0k     73.3G   18.2G   51.4G    26%    /mnt
/dev/sd1i      228M    112M    116M    49%    /w200i

Relembrando para quem esqueceu: a montagem foi feita a partir da partição i (sd0i, sd1i) devido ao output do disklabel(8) para os dispositivos. A partição c corresponde ao dispositivo todo (assim como em HDs IDE ou SATA convencionais), e não deve ser montada. Já a partição i corresponde aos dados propriamente ditos. Veja o output do disklabel(8) para o sd0, para tirar a dúvida:

# disklabel sd0
disklabel: warning, DOS partition table with no valid OpenBSD partition
# /dev/rsd0c:
type: SCSI
disk: SCSI disk
label: SEMC Int.Memory
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 3
total sectors: 55994
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0           # microseconds
track-to-track seek: 0  # microseconds
drivedata: 0

16 partitions:
#                size           offset  fstype [fsize bsize  cpg]
c:              55994                0  unused      0     0
i:              55973                1   MSDOS

Beleza, vamos continuar. Coloquei uma entrada no /etc/fstab para facilitar o trabalho de montagem a cada vez que o dispositivo é plugado, montando a partição de dados do memory stick em /w200i:

/dev/sd1i /w200i msdos rw,noauto 0 0

Vamos montar e ver o que tem lá dentro, então:

# mount /w200i/
# ls /w200i/
dcim         memstick.ind mp3          mssemc       mstk_pro.ind

Sem problemas! Ao que parece, a pasta mp3 é utilizada para guardar as músicas do mp3 player (óbvio, não?), e a pasta dcim, as fotos da câmera VGA do celular. Para adicionar arquivos, basta copiar, mover e remover normalmente como qualquer outro sistema de arquivos montado. Eu já coloquei algumas músicas, como os senhores podem ver:

# ls -R /w200i/mp3/
katyperr seuro193

/w200i/mp3/katyperr:
fingerpr.mp3 ifyoucan.mp3 imstillb.mp3 mannequi.mp3 selfinfl.mp3 ursogay.mp3
hotncold.mp3 ikisseda.mp3 lost.mp3     oneofthe.mp3 thinking.mp3 wakingup.mp3

/w200i/mp3/seuro193:
baddesir.mp3 hungup.mp3   neverend.mp3 smegamix.mp3 tryme.mp3
doctorlo.mp3 ikeike.mp3   numberon.mp3 spaceboy.mp3 videokil.mp3
hotvampi.mp3 lookabom.mp3 saveapra.mp3 tooyoung.mp3

Algumas dicas finais: o telefone lê as ID3 tags dos arquivos MP3, portanto é uma boa idéia deixá-las certinhas antes de copiar para o memory stick, assim os nomes aparecerão corretamente no MP3 player do celular. Um programa bem simples para cumprir essa tarefa, e disponível nos packages do OpenBSD, é o id3ed:

# pkg_info | grep id3ed
id3ed-1.10.4        interactive console id3 tag editor

Outra dica: algumas vezes, arquivos MP3 possuem uma qualidade excessivamente alta, o que acarreta muito espaço ocupado no filesystem. Muito embora isso normalmente não seja um problema em desktops, no caso de celulares passa a ser uma variável importante. Para compactar os arquivos e economizar preciosos megabytes, o LAME pode se mostrar uma ferramente valiosa, e também está disponível nos packages do OpenBSD. Ele possui muitos parâmetros de configuração, consulte lame(1) para a lista completa.

# pkg_info | grep lame
lame-3.98.2         lame ain't an MP3 encoder

Cheers!

Etiquetado ,

Latest news [Fri Jan 16 17:54:28 BRST 2009]

[OpenBSD] faq/faq1.html concluído até a seção 1.7. Provavelmente na segunda-feira estará pronto.

[OpenBSD] Esse fvwm (http://en.wikipedia.org/wiki/Fvwm) é legal mesmo, e nem tentei usar algum config customizado ou algo assim, ainda. Estou com o padrão do OpenBSD 4.4. Screenshots semana que vem.

[vim] Agora estou utilizando o vim em full-time para as traduções/scripting/etc., dentro de um xterm -geometry 72x25 (padrão de número de colunas dos arquivos www no site do OpenBSD). É só ir se acostumando devagar com os keystrokes mais-do-que-básicos do modo de comando pra edição ficar BEM mais rápida que em qualquer outro editor. Quer tentar também? Só ficar ligado nesse cheat sheet aqui: http://www.viemu.com/vi-vim-cheat-sheet.gif

[Sony W200 + OpenBSD] Achei que ia dar alguma treta para montar o filesystem do W200 e transferir arquivos, mas foi tranquilíssimo. Na segunda posto detalhes da configuração. Por ora, fiquem com o dmesg (da parte pertinente, evidentemente):

umodem0 at uhub2 port 3 configuration 1 interface 1 "Sony Ericsson Sony
Ericsson W200" rev 2.00/0.00 addr 2
umodem0: data interface 2, has CM over data, has break
umodem0: status change notification available
ucom0 at umodem0
umodem1 at uhub2 port 3 configuration 1 interface 3 "Sony Ericsson Sony
Ericsson W200" rev 2.00/0.00 addr 2
umodem1: data interface 4, has CM over data, has break
umodem1: status change notification available
ucom1 at umodem1
ucom0 detached
umodem0 detached
ucom1 detached
umodem1 detached
umass0 at uhub2 port 3 configuration 1 interface 0 "Sony Ericsson Sony E
ricsson W200" rev 2.00/0.00 addr scsibus1 at umass0: 2 targets, initiator 0
sd0 at scsibus1 targ 1 lun 0: <SEMC, Int.Memory, 0000> ATAPI 0/direct re
movable
sd0: drive offline
umass1 at uhub2 port 3 configuration 1 interface 1 "Sony Ericsson Sony E
ricsson W200" rev 2.00/0.00 addr 2
umass1: using ATAPI over Bulk-Only
scsibus2 at umass1: 2 targets, initiator 0
sd1 at scsibus2 targ 1 lun 0: <SEMC, Mem-Stick, 0000> ATAPI 0/direct rem
ovable
sd1: drive offline

[rtorrent] Uma beleza esse cliente bittorrent modo texto, usando ncurses e escrito em C++. E com esse tutorial (http://kmandla.wordpress.com/2007/05/02/howto-use-rtorrent-like-a-pro/) não tem como não aprender a usá-lo, é realmente tranqüilo. Citando o tutorial, não tem o que os programas de renome façam que ele não faça (em termos de funções básicas, pelo menos), e gastando uma fração dos recursos de um, digamos, Azureus (que é em Java). Duvida? Então olha o que o top fala dele:

PID   USERNAME   PRI  NICE  SIZE    RES STATE    WAIT      TIME    CPU   COMMAND
23361 fbs        2    0     7540K   13M sleep/0  kqread    1:57    0.00% rtorrent

[PIU PRO] Tou indo pra lá logo mais! =D

Abraço!

Etiquetado , , ,
Seguir

Obtenha todo post novo entregue na sua caixa de entrada.