Showing posts with label linux. Show all posts
Showing posts with label linux. Show all posts

2008/10/14


Abaixo os binários!

Um testemunho da minha vida de micreiro, e de usuário dos programas que eu uso.

Gosto muito da minha máquina, uma Compaq v6210br. Podia ser melhor em uma porção de coisas, principalmente podia nunca ter quebrado.

Ela deu uns biziu, madei pra patética assistência técnica da HP, e ela voltou 2 meses depois. Como eles formataram o HD, tou aqui instalando tudo de novo.

Ela rodava bonitinho. A placa de rede sem-fio não lembro se rodava originalmente com o módulo nativo ou por ndiswrapper, mas eventualmente tive que passar a usar um dispositivo de wi-fi por USB, e o que funcionou pra mim foi instalar um Linux 2.6.25 "na marra" (não foi por pacote do Debian (que eu me lembre)) e usar o driver nativo, um tal rt27xx, acho.

A partir daí foi só tristeza, porque a mãquina começou a travar. Não teve mais jeito e precisei mandar pra assistência, que trocou a placa-mãe, e formatou o HD de brinde.

Fui instalar o Debian outra vez, por cima do Mandriva em que não fui inteligente o bastante pra descobrir como fazer pra instalar emacs, e aí mandei um Lenny beta 2 pra ver o que rolava. Usei a instalação "gráfica", que devo dizer que está um xuxuzinho.

Aí fui instalar os dispositivos de rede sem-fio, e ainda o módulo da câmera Logitech que me emprestaram. Peguei os pacotinhos Debian dos kernels 2.6.24 e 2.6.26. Mas foi só tristeza... Não consegui usar a rede nem por ndiswrapper, nem pelo módulos nativos (o da broadcom mudou, agora um tal b43). A câmera funcionou só através do mplayer, mas não no xawtv e nos progs de opencv que tou mexendo.

Resolvi então "apelar", e peguei direto o source do 2.6.27, lembrando da felicidade que eu havia tido antes com outro kernel "em desenvolvimento", o 2.6.25. Rolei lá o make-kpkg, e quando finalmente bootei, a rede funcionou de primeira. Estava na escola, já tarde, e satisfeito arrumei minhas coisas e fui pra casa.

Cheguei aqui, preparei uma cerveja no lado esperando passar por uma sessão de desinsetização pra fazer a câmera funcionar, e não é que a bicha funcionou de primeira??

Feliz da vida, vim aqui dar meu testemunho.

1_ Eu sofro mas eu gosto.

2_ Não tenho a menor vontade de usar nada diferente de Debian. (Talvez Debian com HURD, ou com BSD, mas Debian). Mas não significa que eu não marreto meu sistema com coisas "de fora" de vez em quando, e é assim que é pra ser.

3_ Compilar direto da fonte ao invés de baixar o binário funciona. (às vezes, claro.) É muito bom ver isso, porque essa possibilidade é justamente a diferença mais marcante entre os softwares proprietaristas e livres.

Alguém pode dizer "mas se vc estivesse usando ruíndols teria funcionado de cara, e não precisando recorrer a compilar o kernel mais novo na marra". A estes peço que leiam de novo o item 2.

EDIT: Pra deixar o posto mais útil, uma dica. Pra criar o módulo da nvidia utilizadno a fabulosa ferramenta module-assistant, que te permite (quando está tudo OK) compialr e instalar módulos com o comando (e.g.) "m-a a-i nvidia", tive que alterar o código do pacote original. São mudanças que parece que serão necessárias pra passar do 2.6.26 pro 2.6.27. Segui as dicas desse site aqui.

Foi mais difícil do que o que devia ser, porque não dá pra alterar o código e então rodar o m-a, tem que jogar o código alterado no pacote que ele descompacta... Eu poderia tentar descobrir como criar um patch, mas ia dar muito trabalho.

Aí foi correr pro abraço...

Aliás, outra dica. Por muitos anos passei muita raiva ao mexer com a configuração do X, porque precisava parar de ouvir música (com o xmms, por exemplo), ou então tocar música num console de texto, com mplayer, o que não é confortável. A solução é usar o mpd pra ouvir música, um daemon que fica tocando músicas e pode ser controlado por diferentes clientes, incluindo gráficos, de console (curses) e linha-de-comando. Aí pode reiniciar o X tranqüilo. O cliente que eu uso é o ncmpc, que rodo numa janelinha de xterm com uma fonte pequenininha, fundo branco, e com a opção "auto-center" na lista de músicas... É o melhor tocador que já tive, porque tem um esquema muito simples de navegar pelos artistas ou arquivos. Mas tenho certeza que poucos dividirão comigo este gosto...

2008/09/30


Baixa és tim má

Vivemos num mundo dominados pelos "homem de negócios". Pessoas que deixam o Donald Trump satisfeito, "correndo atrás" das grandes mamatas. Essas pessoas me fazem morrer de raiva todo o dia umas três vezes pelo menos, quando detecto que alguma de suas sábias decisões tornou o mundo um lugar pior de se viver, na minha modesta opinião. Ou na minha modesta existência de ser humano menos importante do que os outros, que não habitam como eu aquele lugar temível: o rabo da gaussiana.

A última decisão destas bestas odiosas foi a seguinte: na excitante parceria TIM - Asus, a empresa está vendendo aparelhos da outra já com uma porção de vantagens extras. Vem num pacotão um eee pc, um minimodem e um plano da TIM pra você usar esse computador com acesso ilimitado através da rede de celular desta.

Achei muito legal essa promoção. Em primeiro lugar porque isso vai desafiar aquela empresa suja que tomou de refém esta cidade: a vex. Outra criação malignamente maquinada pelos tais "homens de negócios", os mentores sinistros de um plano diabólico para infernizar a MINHA vida e dificultar MEU acesso (e de outros ciganos eletrônicos) a redes wi-fi nos estabelecimentos comerciais da cidade...

Em segundo lugar, porque adoro o eee pc. Estou louco pra ter um. A de 7 polegadas mesmo, velhinha, com pouca memória, que seja. Essa máquina me deixa muito mais entusiasmado do que qualquer macbook ou iphone.

...E uma das razões da minha simpatia pelo eee, (de forma alguma principal razão, já que minha avaliação primeira é do hardware) é que a ASUS lançou ele pensando em rodar Linux. Usaram Linux sem nenhum receio, sem pudores desnecessários... Simplesmente foram lá e fizeram a máquina do jeito como tem que ser, com liberdade, sem o temor bizarro que levam as pessoas a insistir em lançar a máquina com aquele selo de aprovação da Micr_soft: "designed for wind*ws".

Parem pra apreciar um pouco isso, gente... Selo de aprovação. Quantos produtos, objetos você vê no seu dia-a-dia que contém um "selo de aprovação" de uma empresa? Uma coisa é controle de qualidade da empresa, outra é fiscalização do governo, ou outras entidades, e.g. de proteção do meio-ambiente. "Selo de aprovação" que nem esse do Bibill é diferente. Só que se você vê um selo de aprovação do George Foreman numa grelha elétrica, você acha engraçado. Mas por algum motivo quando se trata de computadores e notebook, as pessoas pensam diferente, elas exigem a porcaria do selinho de aprovação do Bill Gates...

Bom, a Asus se permitiu fazer uma máquina sem pensar nisso a princípio, fazendo simplesmente uma máquina sem ter em mente já a venda casada. E a máquina era linda.

Aí começaram a comprar, e a tascar lá o wiuqomz XP por causa das inúmeras necessidades incontornáveis que elas têm em suas vidas, e que as prendem de forma irredutível a este SO... O que eu posso fazer? Ajudo as pessoas a experimentarem alternativas o quanto possível, mas se um cara optou de vez, vai lá e instale, oras, não tenho nada com isso. Aproveite que a máquina não foi "designed for Linux", e que computadores são estes dispositivos incrivelmente versáteis e flexíveis, onde se podem tentar instalar diferentes SOs.

Aí entra o homem de negócios. O homem de negócios reparou que aqui no Brasil só "pega" windows. W1nd0w5 XP. Ele sabe que todo mundo quer o eee, e quer com o tal miupoms xp. Aí faz contactos, troca cartões de visita, ligações de blackberry, transmite planilhas do celular, e tals. Aí criam o plano: vender esse produto novo, com menos empecilho o possível. Bota o sistema que "todo mundo combinou usar só esse" pra pegar a maior fatia do bolo, e deixa o resto do bolo morrer de fome, paradoxalmente.

Estou me referindo aqui a uma questão muito bem retratada por Raulzito. É o lance do sapato número 34. Eles decidem que, pra facilitar a vida deles, tem que ser tudo igual, tem que ser uma configuração só de computador pra reduzir custos de coisas como manutenção, atendimento das pessoas, distribuição, etc etc etc. (Muitas vezes defende-se isso dizendo que é uma indispensável economia de escala, e que assim ajuda a levar o serviço a mais pessoas, e se não fosse isso, ah, aí seria elitizado...)

Aí então lançam o super lindo pacote: Asus eee pc com minimodem, plano da TIM e WIND*LS XP instalado. E não existe alternativa! Vejam bem, este é que é o ponto. Não queria que fosse monopólio de Linux, mas sim que vendessem a máquina, e o plano, mas facilitassem pra que se use a máquina e o serviço com o software que o usuário desejar.

Tem uma coisa que acho engraçado é como que o Windonz aparece como intruso nessa história toda. O eee vem (vinha?) tradicionalmente com Linux, então não é de se esperar ver o XP assim fácil. Mas a TIM só anuncia como sendo uma parceria apenas "TIM ASUS" e não "TIM ASUS Maicownosoft"... Porque o terceiro parceiro não é explicitado, se a campanha toda dá uma super atenção pro fato da máquina vir com esse sistema produzido por eles, e que teria um grupo de usuários super fãs de olho nele?

(Eu digo um motivo pra isso. Eles gostam de dar a impressão que o sistema operacional é uma coisa tipo o processador ou um pente de memória RAM, um verdadeiro "componente"... Eles só se identificam juntos da Intel, mantendo a famosa dobradinha vencedora.)

***
Isso poderia ficar por aqui, só rotineira raiva da máquina só ser oferecida com Windogs, mas não. Mas eles não se contentaram dessa vez em simplesmente erradicar a idéia de um sistema diferente daquele com selo de aprovação do William Gates terceiro, que não é à toa que é o homem mais rico do mundo. Não, dessa vez eles resolveram que além de simplesmente tomar as santíssimas decisões de negócios, eles iriam FALAR MAL de Linux. Iam CACETAR. Olha o tipo das coisas escritas no site da TIM:

O netbook vem com o dobro de memória RAM dos netbooks ASUS EeePC 701 comercializados no mercado, vem com Windows XP ( versus Linux do original ) e com o mini modem incluído.


O dobro de memória RAM, pra quem não sabe, é que de outra maneira o Ruíndolls não ia rodar nem a pau. Mas a questão aqui é outra: Eu pergunto: quem escolheu, e o que exatamente estava pensando, quando colocou a palavra "versus" ali em cima? Não é uma palavra meio forte? (Nada é mais importante aqui nesse blog do que chamar a atenção a este tipo de coisa, o uso de palavrinhas específicas nesse tipo de texto publicitário mais elaborado, encharcado de retórica.)

3. Por que o valor do modelo EeePC comprado na loja da TIM é mais alto do que os vendidos nas redes de varejo, que custam em torno de R$ 1 mil?
O modelo EeePC oferecido em parceria com a TIM conta com memória de 1GB, enquanto os demais possuem apenas 512MB. Para esta oferta, o sistema operacional do equipamento é o Windows XP, que apresenta mais recursos do que o Linux implantado no outro modelo. Além disso, a oferta do EeePC adquirido nas lojas TIM inclui o minimodem USB no pacote de dados TIM Web Ilimitado, com velocidade de 1Mbps.


Sinceramente... "apresenta mais recursos"!? Que babaquice. Que coisa superficial, puramente agressiva e desprovida de substância. A que recurso se refere? Será o clipinho animado que auxilia os usuários de word a executar os wizards pra fazer coisas complicadas? Ou será a capacidade de ler os formatos de arquivos proprietários e cheios de segredinhos da Microshoft? Ah, talvez o recurso de aleatoriamente te jogar numa tela azul de GPF, igual o iPod shuffle clama deixar sua vida melhor tornando-a mais imprevisível.

Wimdons sempre vai apresentar mais recursos, porque o software proprietário é difícil de ser portado pra plataforma Linux, (talvez com o wine, mas eu não mexo com isso). Existem obstáculos tanto técnicos quanto legais. Enquanto isso programas livres e abertos podem ser portados bem mais facilmente pras plataformas proprietárias. Assim é natural que existem "mais recursos" do lado de lá das janelas.

Mas quem é que quer saber de "mais recursos", gente? Você tem que se questionar sobre isso. O que importa é ter os recursos que você precisa, oras. Eu pessoalmente preciso de emacs, gcc, octave, python, mozilla, elinks, zsnes, gimp, bitlbee, bitchx... Ah, e APT pra baixar todos esses pacotinhos!... E atualizar os tais "recursos". É uma lista que fiz pensando no que uso no dia-a-dia, diferentes pessoas farão diferentes listas.

Cada um cada um. Questione-se!... Saiba que cada um você é. Não pense em "número de recursos", quanto mais melhor, mas sim em atender o que você requer.

É que nem TV a cabo. Falar em número de canais é enganoso, na prática tem poucos canais com que você realmente importa, e que você realmente vai ver, ou vai vir a gostar. Claro, você os tem que ter à disposição pra vir a conhecer, e eventualmente mudar de opinião... Mas tem gente que já conhece bem seu gosto geral.

Bom, chega. Só informo ainda que o enviado do capeta que vem encarnado na máquina da TIM trata-se do "Sistema Operacional Wi***ws® XP Home Original", e que existem várias "funcionalidades" oferecidas pela máquina, como microfone, USB, wi-fi e "áudio de alta definição" (???). Outra funcionalidade anunciada é:

Instalação de softwares corporativos padrão W*ndo**®


Que blábláblá, "softwares corporativos". Leia-se: triunfo do tomaládácá dos homens-de-negócios.

Falam em "padrão" como se fosse POSIX. Não se compara, desculpem.

2008/09/21


Rusgas informáticas contemporâneas

Respostas prolongadas e cheias de picuinhas a um e-mail provocativo do meu irmão, respondendo depois que eu falei pra alguém assim: "Se fosse Debian era só dar APT..." no meio de uma conversa.

[Eu não saberia nada a respeito de windows, e teria parado de usar em 1996]

Foi mais ou menos em 2001 que parei de usar definitivamente, quando saiu o Windows XP com aquele fundo de tela com a casinha dos Teletubbies... Mas deu tempo sim de ver os primeiros "wizards" de instalação, que deixam a tarefa de administrar o sistema mais divertida e mágica!!

Mas sério, esses programas de instalação mostram lá mil splashscreens, telinhas, perguntam onde vc quer instalar o programa, por exemplo... Porque não joga na droga do "C:\Arquivos de Programas" lá e pronto? (Preferiria "/bin", mas tudo bem.)

E ainda tem aqueles contratos risíveis de 20000 caracteres que vc tem que clicar uma caixinha dizendo que leu... Que dizer dos mil programas que dão problemas bizarros que tem que tentar "mexer no registro" pra ver se resolve? E as reinstalações pra exorcizar programas velhos? E os utilitários alternativos que vigiam o sistema pra você, pra tentar minorar o problema?...

Não é mais legal existir um comando no seu sistema em que você fala "computador, instale o vlc" e ele instala, e pronto? E que você pode confiar quando manda "computador, remova o vlc"? E quanto à miríade de opções de programas disponíveis pra wingonz, ficam em uma miríade de sites diferentes, cheio de anúncios piscantes. Tem que procurar o site certo, e dar download de dentro do browser, e rodar no Explorder, q coisa chata!! Muito mais doido existir um centro de distribuição sóbrio com gente cuidando pra ver se tudo funciona, e um aplicativo para "rule them all".

Isso (apt e cia.) é uma coisa que ninguém nem imaginava ser possível nos idos de 1996, e o mundo proprietarista só vai aderir a isso quando tiver alguma forma de "DRM" pra saber se você pode instalar o programa, e aí tudo vai ter que ser eventualmente pervertido por "piratas de dados" etc, mal posso esperar. Aliás, o biu gaytes deve tar mais interessado é em programinhas em Java que rodam de dentro do IE (e só do IE).

Com apt é possível até mesmo vc fazer um esquema que pega um programa pirata, instala, gera a chave, e já craqueia sem você precisar ver nada! Facilitaria até isso!




[a respeito do progrma Transmission pra bittorrent]

Vi uma versão mais antiga do Transmission, e parece que era mesmo bastante flowdido. Mas a versão que instalei deixa selecionar arquivos dentro do torrent, e tal, de repente ele deu uma melhorada só recentemente. Eu gosto _mesmo_ é de bittornado, com interface via ncurses, mas esse eu nem recomendo a ninguém (exceto talvez metade dos leitores do meu borg) porque as pessoas ficam horrorizadas.

[ Seria um absurdo falar que "facilidade de achar programas e instalar" é uma vantagem do Linux ]

Bom, primeiro que é inacurado falar "vantagem do Linux" já que Linux é somente um componente do sistema completo na sua máquina (ou conjuntos de máquinas integradas). Existe "uma miríade de possibilidades" sabe, inúmeros gerenciadores de janela diferentes, gerenciadores de arquivos, até gerenciadores de pacotes, e ainda diferentes repositórios de pacotes que você pode utilizar. Isso tudo permite criar inúmeras opções pra utilizar Linux, que são as distros. Eu conheço 10 distros de Linux que são melhores do que o Windows.

Os sistemas de gerenciamento de pacotes oferecem são sim um modo de vida muito mais agradável do que o inferno proporcionado aos usuários de uhimpols. Se não tem muitos programas disponíveis, não sei, mas a administração via apt é mil vezes melhor do que qualquer coisa que conheço.

As pessoas tem na cabeça que usar Linux, e especialmente Debian, é difícil pq tem que sair mexendo em coisas complexas e ignotas. O normal é só chamar o apt e pronto. Não tou nem querendo discutir se "na prática funciona mesmo" ou não. Só tou falando que no mínimo a idéia e intenção do apt é algo revolucionário e positivo.


[ falar isso seria tão absurdo quanto falar que AMD pega fogo e que MacOSX é bom porque é melhor pra trabalhar com imagem ]

É, e Photoshop tem "CMYK nativo" né? Qualquer outro programa é inútil por causa disso.

2008/09/02


Cromo gúglico

Entrei no site do google chrome, já prevendo a inexistência de uma versão pra Linux, e bolando o e-mail desaforado que ia escrever pra eles, que seria basicamente:

There is no Linux Version??

I hate you!

Fuck off and die.


Quando entrei, entretanto, notei uma preocupação com isso. Um detalhe imbecil que pode passar desapercebido a muitos... Na primeira página tem falando: "Google Chrome (BETA) para W*n*o*s". (palavrão obscurecido por mim) Ora, se está especificando, ao invés de simplesmente escreito "baixe aqui..." como se não existissem alternativas àquele canhesto sistema operacional, então é porque alguém está se preocupando com outras versões, muito provavelmente uma pra Linux.

Sondando mais a página, me chamou a atenção um botãozão azul, "saiba mais", e escrito um texto que nem li: "sobre o desenvolvimento em software livre (em inglês)." Cliquei e caí numa página assim:

Google Chrome para Linux

O Google Chrome para Linux está em desenvolvimento e uma equipe de engenheiros está se esforçando ao máximo para fornecê-lo a você o mais rápido possível.

Insira o seu endereço de e-mail abaixo para que possamos informar você sobre o lançamento do produto.


Eu pergunto: Tá todo mundo caindo nessa página, ou eles tão me transportando lá porque tem um banco de dados mágico que sabe que eu uso Linux?... Ou talvez simplesmente leram os dados que meu browser manda?... Será que algum leitor de nosso blog usuário do sistema operacional alternativo (se há algum que seja) poderia testar pra nós, se eles tão caindo lá tb?

EDIT: Nosso estimado leitor K-Max confirmou nossas suspeitas, e nós reconfirmamos. Eles realmente lêem o user-agent, e oferecem pros usuários de Linux essa página pedindo desculpas aí.

Achei bizarro substituírem o link de download... Quer dizer que eles não querem que tentemos rodar o chrome dentro do wine, por exemplo? :) (A propósito, que user-agent o pessoal usa no Explorer dentro do wine? %) )

Pra quem quiser experimentar por si mesmo, existe um add-on do firefox que te permite alterar seu user-agent facilmente.

E pra quem nem sabe do que se trata... É uma string que seu browser, um espião delator sujo, envia pros servidores de http tagarelando qual é o seu browser e seu sistema operacional e a cor da sua calcinha. Páginas podres que dependem da plataforma do usuário muitas vezes usam essa informação pra modificar o conteúdo, freqüentemente apenas barrando quem não seja usuário de IE ou de Netscape, e de w1mgows. Aí é so vc pegar tipo esse add-on aí, botar lá a string dum desses browsers alternativos, e mandar brasa.

Alterar o user-agent é freqüentemente necessário quando vc quer usar o wget pra leechar páginas. É uma forma de tentar filtrar sanguessugas digitais, verificar se é um browser ou se é o wget... Aí vc bota lá a string mandando dizer que vc usa um browser recomendado pelo Bihl Gades, e o servidor responde "aaah bom, então tá, pode passar! Pegue todos estes arquivos jpeg de alta resolução sem grilo!"

2008/09/01


Cruzando a janela

Hoje fiz um negócio legal que meus melhores leitores vão saber apreciar!

No meu último trabalho de uma disciplina aqui na Poli (que vou botar no meu site mais cedo ou mais tarde), tínhamos que fazer um par de programas pra rodar no console mesmo (algo que qualquer um tem que concordar comigo que é absolutamente alien no mundo wirdnws desde o XP, senão o 95). Um programa apenas abre um vídeo de entrada e insere uma marca d'água. O outro detecta ela no vídeo gerado.

Fiz tudo usando a FFmpeg. Terminei os programas, funcionou tudo legal. Mas tinha um probleminha: meu professor parece que não usa muito Linux, e queria códigos fonte de quem usou outros esquemas pra programar...

Como o FFmpeg é uma biblioteca pequena, relativamente independente de outra coisas (bem como o programa que eu fiz) então tinha boa chance de que eu conseguisse compilar tudo no widlows sem mudar o código... Mas eu fiz até melhor (agora vem a coisa legal). Resolvi tentar fazer uma compilação cruzada! Gerar o binário pra ele usar na plataforma estranha que ele usa, mas sem eu precisar instalar aquele sistema operacional bizarro nas minhas máquinas: compilar pro uíndious direto do meu Linux!...

Como fazer? Não tem mistério, é só pegar o Mingw32, o que no Debian é apenas questão de dar um apt-get. Aí pega o código fonte do ffmpeg (lá no SVN...), e dá o configure certo, algo como

./configure --disable-ffplay --disable-ffserver --enable-gpl --enable-cross-compile --enable-memalign-hack --target-os=windows --prefix=/usr/local/ffmpeg-mingw32 --cross-prefix=i586-mingw32msvc-


Na hora que vc der o make, ele deve chamar o mingw32 lá pra tudo, e pronto, vc vai instalar as bibliotecas do ffmpeg na versão da plataforma alien num diretório lá num /usr/local da vida. Aí é só compilar o seu programa com o mingw32 tb, e dar os -I e -L certos da vida. No meu caso tive uma dificuldade só lá, deu uns erros assim quando fui compilar:

/usr/local/ffmpeg-mingw32/lib//libavformat.a(rtsp.o): In function `udp_read_packet':
/home/nwerneck/src/ffmpeg/ffmpeg/libavformat/rtsp.c:1251: undefined reference to `_select@20'
/home/nwerneck/src/ffmpeg/ffmpeg/libavformat/rtsp.c:1256: undefined reference to `___WSAFDIsSet@8'
(...)


Mas era só mandar linkar tb uma tal -lw2_32. E aí pronto, gerei as versões binárias pro meu professor rodar meu trabalho na arquitetura estranha que ele usa!... Ah, mas não acabou ainda gente. Tem um detalhe muuuito importante que não pode esquecer. Nesse sistema operacional bizarro existe uma coisa que não pode ser omitida. Algo que é até intuitivo, como tudo que a micoshoft faz, não sei como esqueci de fazer isso.

Seu programa executável nesse tal sistema PRECISA ser um arquivo que o nome termine com a string ".exe". Por exemplo, meu programa chamava "insere", aí tem que mudar o nome pra "insere.exe", por exemplo. Se você não fizer isso o programa SIMPLESMENTE NÃO FUNCIONA. O sistema vai dizer que ele "não soube detectar o formato do programa" uma mensagem de erro super trágica assim.

É só isso, se vc se lembrar de mudar o nome, deve dar tudo certo. Sugere-se tb que o nome não tenha mais de 14 caracteres, contando com a extensão, ou seja, 8 de nome + '.' + 3 de extensão. Não sei porque isso... Vai saber o que esse povo inventa nesses sistema propriatas.

Ah, eu compilei o programa com ligação estática tb, pra ter certeza de que tudo ia funcionar... Isso parece tb que é algo bem comum pra quem trabalha nesse outro sistema aí, então não foi feio.


***
DIGRESSÃO:
A propósito, aprendi algo sobre a FFmpeg muito legal, é a primeira biblioteca que eu vejo que simplesmente abandonou a idéia de fazer "releases", eles mandam você pegar direto o SVN e pronto.

FFmpeg has always been a very experimental and developer-driven project. It is a key component in many multimedia projects and has new features added constantly. New, official "releases" are few and far between. In short, if you want to work with FFmpeg, you are advised to go along with SVN development rather than relying on formal releases. SVN snapshots work really well 99% of the time so people are not afraid to use them.


Traduzindo pra ser legal:
FFmpeg sempre foi um projeto muito experimental, e conduzido pelos desenvolvedores. Ela é um componente chave em muitos projetos de multimídia e tem novidades adicionadas contantemente. Lançamentos oficiais novos são poucos e distantes um do outro. Resumindo, se você quiser trabalhar com a FFmpeg, é aconselhável que você siga o desenvolvimento no SVN ao invés de contar com lançamentos formais. Snapshots do SVN funcionam muito bem 99% do tempo, então as pessoa snão tem medo de utilizá-los.


Isso é muito bacana, por faz algum tempo que o desenvolvimento de software livre vinha desafiando essa visão do mundo dos propriatas (praticante da propriataria de software) de que software é desenvolvido num beco escuro na Zona Fantasma por engenheiros ignotos Lovecraftianos, e empacotados quando eles ficam "prontos".


(Engenheiros na zona fantasma)

Ora, os melhores softwares nunca ficam prontos... Eles estão em constante desenvolvimento e novas características vão sendo incorporadas aos poucos. Essa é a realidade da coisa. Encarar tudo como uma escultura, ou construção de uma casa, é um absurdo. (Aliás, quem já fez uma escultura ou saca, sabe que elas nunca ficam realmente prontas tb... É tudo igual, a diferença é que é tão fácil reformar um programa de computador, que fica mais fácil sucumbir à tentação de dar mais e mais umas mexidinhas...)

Os propriatas de software precisam fazer isso pra ganhar dinheiro, e pra fazer marketing, pra vender aquela ilusão do "software garantido", "com a qualidaaaade do fulano". No mundo livre isso não existe. O que existe é a percepção da realidade que software seguro, é o software velho. Ou você escolhe usar um velho que é comprovado mas menos estribado, ou você vive no avant garde, mas se arriscando a tomar uma cacetada de vez em quando. É por isso que vários projetos criam a idéia do "pacote estável" e o "pacote em testes", e ainda a "distribuição de desenvolviemnto", que é o código no SVN do servidor central onde se gerencia o projeto... No Debian isso é bem claro, existem as diferentes fontes de pacotes em que você pode tentar manter o seu sistema (eventulamente você sempre resolve que precisa de um certo pacote do unstable, ou precisa votlar pra uma certa versão antiga de algum outro pacote...)

O FFmpeg aí jogou no lixo isso tudo. É pegar do svn e pronto!... Você consegue imaginar algo parecido sendo feito por propriatas?? Algo como cobrar uma mensalidade pra você acessar lá a versão SVN do Altokod, ou do C0rreu dal? Duvido que rolasse.

O que os propriatas fazem é manter a versão de desenvolvimento deles em segredo, bem escondida na Zona Fantasma (wikipédia se vc ainda não sabe do que se trata). Aí dá essa ilusão de que "não interessa" aos usuários mundanos. No mundo livre todas versões de tudo tão sempre à disposição. Aí o que acontece? As pessoas vivem angustiadas por se depararem com o comprometimento entre o novo e o seguro... Aí eu pergunto, você realmente prefere viver na alienação?... Ignorance is bliss??...

2008/07/02


Um dia na vida de um micreiro empolgado

Meu notebook HP (Compaq Presario V6210BR) teve um problema na placa de rede sem-fio. Funcionava muito bem, aí de repente começou a funcionar às vezes só, mas uma vez que ela ligava no boot, funcionava direto... Até que um dia parou de funcionar de vez.

Ontem resolvi acabar com o sofrimento, comprei uma dessas interfaces ("placa de rede") wi-fi que ligam via USB. Mas aí é a velha dúvida do usuário de Linux: será que funciona?

Normalmente é só ver o modelo e procurar na Internet pra saber se alguém já rodou. Mas é muito chato ficar indo na loja e na Internet toda hora, então muitas vezes a gente acaba é comprando às cegas mesmo. Comprei assim essa paradinha da D-Link, marca por que eu nutro uma certa simpatia. É tipo um pendrive grossão, com uma base pra ligar ele em pé e ficar parecendo o monolito do 2001.

Primeira tentativa de usar a parada: Liguei na minha máquina, bootei com meu kernel cotidiano, e ela apareceu bonitinho no lsusb. Faltava só tentar usar o ndiswrapper pra rodar o driver original do windows, igual eu fazia já com a finada placa antiga. Mas aí a decepção: eu uso um kernel para 64 bits (óbvio, estamos em 2008 e acho um absurdo pensar em usar coisas de 32 bits), mas o driver que veio é pra 32 bits, aí o ndiswrapper não consegue aproveitar o bicho. Tristeza total.

Aí veio o desafio: estava em casa já, sem conseguir consultar o oráculo internético pra me ajudar. Será que eu conseguia rodar um kernel de 32 bits e usar provisoriamente a paradinha?... Com minha instalação normal não tinha como, porque só estava lá meu kernel do dia-a-dia mesmo, e eu não tenho nem um CDzinho de instalação do debian (falha grave). A única possibilidade seria tentar rodar o knoppix (esse eu sempre tenho um), e tentar usar o ndiswrapper dentro dele.

Copiei os drivers pro meu HD, liguei o knoppix, e rodei o ndiswrapper. Funcionou! Rodei o wpa_supplicant com exatamente o mesmo arquivo de configuração que eu sempre usei, e funcionou também.

Agora era hora do dhcp, e pegar a prancha pra surfar. Qual o que... No knoppix não tem dhclient, único cliente de dhcp que já consegui usar direito; só tem o pump. Confirmando minha desconfiança, o pump não funcionou. Poisé. Só me restava tentar dar um jeito de executar o dhclient do Debian no meu HD. Tentei rodar o /sbin/dhcleint, mas é claro que não funcionou, porque era a versão 64bits... Tristeza: ou eu uso um kernel de 64 bits e rodo o dhclient, mas não o driver, ou rodo o kernel de 32 e rodo o driver, mas não o dhclient...

Mas havia uma última esperança. Acontece que eu tenho um sisteminha chroot na minha máquina, que uso pra rodar coisas chatas como o flash e o acrobat reader. E se por um acaso tivesse um dhclient lá dentro?... Fui conferir, e não é que tinha?? Rodei, de um errinho, e entendi que era só copiar os programas /mnt/sda6/32root/sbin/dh* pro /sbin do knoppix... Rodei de novo o dhcleint na árvore do knoppix, e tcha-nã!... Funcionou!!!...

Agora eu já tinha um procedimento pra entrar na Internet a hora que eu quisesse... Uma seqüência de passinhos me permitindo ler e-mails, entrar no google talk e fazer downloads de drivers e pacotes, que maravilha.

Então pesquisei sobre a minha paradinha D-Link wi-fi/usb DWA-110. Achei vários sites falando sobre usar o ndiswrapper, e alguns até indicavam que seria possível baixar um certo driver 64bits que funcionaria. Acontece que o DWA-110 é baseado num tal chip rt73, que parece ser bastante popular, e um driver de windows pra ele faria o serviço.

Ah! Achei ainda no site da D-Link um download de um driver pra Linux!... Eles não falar nada na caixa, mas no site tem. Só que eu peguei e me pareceu ser uma coisa tosca, que eu só tentaria usar em último caso (um lance não compatível com iwconfig, horrível!)

Acontece que é tão popular o tal rt73, que existe um projeto pra suportar estes dispositivos no Linux nativamente. Procurando, achei vários sites com diquinhas pra tentar usar esse driver...

Tentei baixar o fonte, compilar o módulo pro meu kernel, e nada... Tentei o cvs, tentei o fonte distribuído pelo Debian, e nada...

Aí veio a tentativa lógica: estava com o linux 2.6.22, mas já tinha um 2.6.25 disponibilizado, até com um pacotinho do módulo do rt73 compilado pra ele. Fui lá no knoppix, fiz aquela gambi toda, e downlodeei o pacote com a imagem do linux e com esse módulo. dpkg -i, reboota, e tchans! Funcionou!!

Um bom presságio já me havia indicado que tudo haveria de dar certo no final: Junto dos manuais maçantes e papeizinhos de advogado, na caixa da paradinha veio uma cópia impressa da GPL.

Nisso já consegui ler e-mails no mutt, conversar no freetalk e usar o museek. Mas só isso, no console, porque o X parou de funcionar... Fui dormir já bastante satisfeito.

De manhã compilei o driver oficial da nvidia usando o pacote oficial do Debian. "m-a a-i nvidia", e pronto, que beleza... Depois foi só atualizar o pacote nvidia-glx e correr pro abraço, relatando-lhes essa história através do iceweasel 3.

***

Notem que usei só console pra isso tudo, sem contar o browser na hora de pesquisar as coisas. E mais ainda, que em todo o processo eu fui tendo idéias de coisas pra tentar fazer, e fui sendo eventualmente recompensado com pequenos sucessos. Achei atalhos, fiz gambiarras, descobri caminhos alternativos... E no fim deu certo. Comprei um dispositivo com inúmeros selinhos "aprovado para uso com windows vista" e outras baboseiras, com o vendedor me dizendo que não podia me garantir se funcionaria com Linux ou não, que ele não tinha idéia e que isso era problema meu, mas de noite botei o bicho pra funcionar.

É isso que eu sentia falta no windows. Poder usar meus conhecimentos e poderes hacker pra encaixar as coisas no lugar com durex, e conseguir um sistema minimamente funcional pra então deixar ele mais sólido na base de um apt-get da vida. Meu lema em informática é "pode tudo". O que eu mais gosto de fazer na vida é ver um conjunto de dispositivos, ter um sentimento de "uai, deve ser possível fazer isso aqui... Deve ter um jeito de fazer isso", tentar descobrir como, e conseguir.

Chegou um momento na história do windows em que isso tudo ficou impossível... Se as coisas param de funcionar, vc fica apertando botãozinho de orelha escondida de menu bizarro, ou sei lá, tentando editar o infame "registro". Por mais que você tente escovar bit, não recompensa. Ser engenheiro e usar windows não recompensa mais... No Linux não, esse tipo de piração, essa manobras administrativas detetivescas, elas recompensam. Você não fica com a ilusão de que não adianta porcaria nenhuma ter lido zilhões de livros sobre computação, não, o estudo vale a pena pra quem usa Linux...

Recapitulando: no final das contas tudo se resumiu a instalar pacotes do Debian, eventualmente contruíndo-os com o module-assistant. Difícil foi descobrir, mas agora eu posso simplesmente ensinar pros outros, como estou fazendo agora. Se algum amigo meu que usa Linux no notebook quiser comprar um DWA-110, posso falar pra ele rodar:


apt-get install linux-image-2.6.25-2-amd64 rt73-modules-2.6.25-2-amd64


E a placa de rede vai (deve) funcionar igual sua placa anterior já funcionava. Aí é só atualizar também o driver da nvidia (isso se for o caso):


m-a update
m-a auto-install nvidia


Essas 3 linhas de comando fazem o serviço. Isso é "difícil"?? Acho muito mais fácil do que aqueles maçantes tutoriais ensinando a fazer coisas no windows, em que gastam-se páginas e mais páginas imprimindo screenshots de janelinhas, com textos tentando em vão descrever de forma concisa o que deve ser feito "cliquem em yadayada/zubalula/bliblibli, depois clique em xxy, depois selecione o lalala na combo box (nota: clique na setinha da combo box para que as opções apareçam, e a selecione com o mouse, ou talvez com o teclado (nota: talvez demore um pouco para aparecer as opções, porque o sistema tem que ler todas, e ainda tem o efeito de fade-in...) )".

Esses manuais de windows são terríveis, gastam inúmeras páginas e figuras e imagens com algo que deveria ser reduzido a uma simples operação.

Em administração de sistemas aquela história de que uma imagem vale mil palavras é o contrário... No windows gastam-se mil imagens (todas janelinhas ícones e botões) para se configurar sistemas, o que é melhor realizado com arquivos texto pequenos e comandos simples.

As pessoas não querem chegar no dia da interface falada? Não querem poder ligar o computador, e pedir, como na música dos Mutantes: "computador me responde"?... O que está mais próximo disso, a interface de linha-de-comando, onde se enunciam frases de uma forma dialética, ou aquelas milhares de janelinhas que são como quebra-cabeças, charadas a serem decifradas, testes de QI?

Essas janelinhas do mundo windows são como testes de QI, ou talvez aqueles brinquedinhos de criança em que tem os buracos de um formato e vc tem que encaixar as pecinhas no lugar certo... Adultos não brincam com isso, eles preferem conversar. Preferem estudar o que tem que ser dito, e então dizer. Fazem as coisas porque concordam que é a forma de ser feita, e não porque tem uma coleira ou cerca os obrigando a ir nesa ou aquela direção (janelinhas que te obrigam a apertar o botão certo, etc...)

Os programadores de interfaces gráficas chamam essas janelinhas deles de "diálogos", mas o quão dialética elas realmente são?

2008/02/29


Hacker também é gente

(Hoje eu vim aqui para escrever algo sério, que já não pode mais ser ignorado!)

Só outro dia que finalmente me chamou a atenção uma coisa meio forte, que a gente tá vendo por aí achando super engraçado, mas se você pensar sobre isso vai ver que não tem graça nenhuma.

Eu não sabia, até começar a procurar briga outro dia no meiobit.com, que existe um certo sentimento entre novos usuários de Ubuntu (e outras distros) de querer falar mal de outras pessoas acusadas de serem “usuários xiitas” de Linux (ou “zelotes” se vc for gringo), radicais da “velha-guarda”, cegos e insensíveis e sei lá mais o que. Fazem coisas como, por exemplo, pegar no pé do Stallman, acusando ele e outros micreiros barbudos hippies freaks engraçados de serem responsáveis pelo Linux e o FOSS em geral “não darem certo”. Ainda por cima ficam botando foto de Naruto nos fóruns da vida, e reclamando de qualquer coisinha que os outros fazem de que não gostam.

(Um pequeno parêntesis: estou me referindo a como tem moleque por aí reclamando de uma coisinha ou outra que acontece nesta ou naquela distro, e falando mal de um ou de outro jeito de fazer as coisas. Duvido que quando usavam wimdoms entrassem em fóruns falando mal de como outros usuários de windious trabalham, ou mesmo que enviassem os famosos “relatórios de erros” para a empresa chamada Microsoft, ou que contactassem seus revendedores como os programas daquele dito sistema operacional sempre recomendam fazer. Quando usam software proprietário são perfeitas ovelhinhas. Quando chegam no mundo livre ((o verdadeiro, não o S/A)), onde podem ser ouvidos, começam a tirar foto na frente do espelho achando que são fortes. São pessoas se perdendo no efeito color of the bikeshed sem se darem conta!...)

Essa “nova onda” de usuários de Linux e FOSS se caracteriza por unir pessoas descoladas, alternativas e irreverentes sem profundos conhecimentos em informática, e que também são usuários de computador que não possuem aquelas necessidades profundas e intensas de usuários especializados que infelizmente dependem para viver de software proprietários, como o chamado Adobe Photoshop ou o chamado Autocad. Não possuindo tais amarras, eles não tem muitos problemas em migrar pro mundo Linux.

Estes neófitos se preocupam pouco com detalhes técnicos de como as coisas funcionam por baixo, e muito mais com “usabilidade” dos sistemas. Não querem saber de terminal de texto ou de editar /etc/X11/xorg.conf, quanto mais utilizando o vim, ou o emacs. Este último, além de ser visto como algo inerentemente ruim por ser um editor de texto, seria ainda pior por ter sido criado pelo próprio Stallman, tido como o capeta maior do software livre (quer dizer, noutro sentido, sem ser o capetinha do BSD). E não se limitam a ficar na deles, procurando ícones secretos desenhados em estilo cristalino nos KDEs da vida. Não eles gostam de FALAR MAL de que gosta de trabalhar de qualquer outro jeito diferente. Eles querem mais do que permitir uma interface no Linux mais parecida com o Wirrows. Eles querem que SEJA SÓ assim... Pegam o bonde andando e querem não só sentar na janelinha e conversar com o motorista, mas ainda chutar pra fora as pessoas que estão sentadas no corredor por opção.

O gozado é que essa pessoal tá aí finalmente conseguindo realizar o antigo sonho de “levar o software livre para o desktop”, mas falam mal dos usuários “caretas” e “chatos” com a mesma antipatia que se vinha antes de usuários de SOs proprietários!!... Tipo, antigamente FOSS era coisa daqueles hackers sujos e renegados ali, que eram sujos e renegados por mais outros motivos, e a luta pelo FOSS era apenas mais uma coisa em comum. Agora tem um grupo de pessoas que está usando o FOSS, mas que discrimina os velhos hackers freaks do mesmo jeito!!! São os mesmos winners bullies patetas de sempre, invadindo a cultura que era um dos poucos refúgios dos velhos hackers geeks e nerds, e mandando eles saírem fora do pedaço.

Puxa, antes tudo bem, era cada um na sua, berrando pros outros do outro lado da rua. Mas como alguém tem coragem de ficar falando mal de desenvolvedores livres, e usar o produto deles?

...Alguns desses programadores nerds hackers freaks da vida achavam que um dia iam “dominar o mundo” fazendo programas que todo mundo ia achar legal. Que iam ser os chefes, e “mostrar pra eles”. Ledo engano. Os winnners da nova geração tão chegando com seus 16 aninhos de idade, pegando os programas e chutando a mão que os ofereceu, seguindo a eternamente retornante síndrome do jovem iconoclasta. Os velhos usuários de FOSS debatiam sobre seus produtos serem utilizados por "Joe User" ou por "Aunt Tillie". Jamais imaginavam que eles seriam antes popularizados entre os “Alex DeLarge” das novas gerações.



A coisa que eu só percebi agora, e que mais me motivou a fazer esse desabafo, é como é discriminadora, sem-consideração e injusta aquela campanha bonitinha do Ubuntu. Ubuntu, todos sabem, é uma distribuição cuja característica mais importante, a maior vantagem, é que “é baseado em Debian”, assim como a maior vantagem do OS X da empresa chamada Apple é que ele “tem partes aproveitadas do BSD”. E eu sempre me pergunto, porque ficar com o derivado se vc pode pegar o original?...

A campanha de marketing do Ubuntu gira em torno do slogan "Linux for human beings", ou “Linux para seres humanos” (não sei se é um slogan bacana e bem-bolado, uma frase de efeito que agradaria os l4mm3rtards, que parecem ser tão preocupados com esse tipo de coisa.)



Tipo. Não tem dúvida de interpretação, todo mundo sabe o que isso significa: seria que até chegar o Ubuntu, a distro super-mouse salvadora, as outras distos seriam difíceis, ruins, capengas e mal-acabadas, e ainda: seriam utilizáveis apenas por pessoas que não são seres humanos.

Tem ofensa maior do que isso? Falar que uma pessoa não é um ser humano? Que é alguma espécie grotesca de monstro abominável, criatura Frankensteiniana, um Shubb Nigurat ante-diluviano?

Acaba que essa campanha extremamente ofensiva e insensível representa tudo isso que está me revoltando. O pessoal está aí realmente popularizando o Linux e o FOSS, mas os esquisitos que criaram isso tudo continuam sendo discriminados. Eu sinto até que tava começando a ter uma onda de achar ser nerd legal, porque tem tantas coisas legais que eles fazem que estão começando a fazer parte da vida de todos. Mas agora agora o Ubuntu conseguiu separar as duas coisas!!... Ufa!!, pensam os n00btardeds, já posso voltar a falar mal desses loosers, e finalmente usar tranquilo esse tal desse Linux aí.

Empresas grandes e famosas de tecnologia, como a Micro$ofp, a Apple, a IBM, a HP e sei lá mais quem, tem todas em comum o fato de “encapsularem” seus engenheiros. Seus produtos parecem caídos do céu, só quem lida com os clientes são marqueteiros, comunicadores sociais, publicitários, políticos et cætera. O pessoal do Ubunto tava sentindo que faltava fazer isso. Jogar no porão os engenheiros, devolvê-los para aquele poço insano onde não entram seres humanos, e transformar finalmente o Linux em mais um produto que vem numa caixinha bonita e confiável, sem os horrores inomináveis e não-euclideanos sonhados por aquelas mentes obscuras e aterradoras que são os programadores não-humanos de computadores...

E nõs, pesquisadores de inteligência artificial (o RMS era um), achando que ainda faltava muito até vermos os primeiros programas feitos por entidades que não fossem seres humanos.

Primo Levi, um químico nerd italiano que teve a infelicidade de viver numa era onde nerds eram ainda mais duramente discriminados e repreendidos, já perguntava se a sociedade o estava tratando como um homem: escreveu o livro “É isto um homem?” sobre suas experiências com um certo tipo de gente que falaria mal do Stallman se tivessem nascido 50 anos depois. (Vejam bem, eu acredito que existe bem mais de um tipo de gente que falaria mal do Stallman, o livro de Levi é só sobre um desses vários tipos de pessoas, homens humanos, que o fariam e fazem.)


Levi ainda tinha dúvida. E há que se ter dúvida mesmo, existem muitas formas de discriminação, e uma das coisas que diferenciam elas é o quanto que a parte discriminadora considera a discriminada como humano. Alguns discriminadores só querem colocar certos colegas humanos à parte, por serem uns mais iguais do que os outros. Outros já falam em menosprezar pessoas “sub-humanas”... Alguns fazem pior, não dão nem a graça do relativo “sub-”, mas apenas desqualificam em sua totalidade, como no caso do Ubuntu, e remove do discriminado mesmo qualquer menção à possibilidade arrogante de se considerar um humano.

Isso tudo que eu escrevi não é piada não. É só rir pra não chorar.

2008/01/28


Scripts for the Midnight Commander crossjazz DJ thing

Since the public asked for it, here are the scripts I use to load the stuff in my system. (I hope to make a small page to let everything there soon.)

the scripts reside in /usr/local/bin. I write files at /var/local/ to know whether there is already a song playing at each track. The first script just opens xterm with mplayer in it, and after the song is over, erase the signal file at /var/local/

nwerneck@cyberon:~$ cat /usr/local/bin/CJa
#!/bin/bash
(xterm -T CJa -geometry 80x12+10+400 -e mplayer -ao jack:port=inA "$1"; rm /var/local/crossjazzA) &

nwerneck@cyberon:~$ cat /usr/local/bin/CJb
#!/bin/bash
(xterm -T CJb -geometry 80x12+510+400 -e mplayer -ao jack:port=inB "$1"; rm /var/local/crossjazzB) &


Notice that "inA" is the name of the A input ports of my jack / gtkmm application, that I named crossjazz. You can change this for the name of a port in another crossfade program you want... You don't even need a crossfade application, actually, you can happily do a DJ job just playing thing straight to the system output... You don't even need jack!... But of course, it depends on what you want to do... Suit yourself. And also notice that the "geometry" parameter opens the windows at proper (configurable) places.


Next script tests the files and opens the next available track (first tried is A)
nwerneck@cyberon:~$ cat /usr/local/bin/CJ
#!/bin/bash

if ( ! test -e /var/local/crossjazzA ); then
CJa "$1";
touch /var/local/crossjazzA;
else if ( ! test -e /var/local/crossjazzB ); then
CJb "$1";
touch /var/local/crossjazzB;
fi; fi;


Then you must configure Midnight Commander's bindings file to call CJ when trying to open music files, for example:

regex/\.([oO][gG][gG])$
Open=CJ %f
View=%view{ascii} ogginfo %s

regex/\.([mM][pP]3)$
Open=CJ %f
#Open=run-mailcap audio/mpeg:%f
#Open=if [ "$DISPLAY" = "" ]; then mpg123 %f; else (xmms %f &); fi
View=%view{ascii} mpg123 -vtn1 %f 2>&1 | sed -n '/Title:/,/Comment:/p;/^MPEG/,/^Audio/p'


Last thing to configure is VTWM. Here are the important lines:


"F5" = : all : f.warpto "mc*"
"F6" = : all : f.warpto "CJa"
"F7" = : all : f.warpto "CJb"
"F8" = : all : f.warpto "crossjazz"


Where crossjazz is my mixer application. Notice that the xterm windows had to be properly named for this to work.

I'll post the crossfade code some day now!... Stay tuned! :) I'll make a small page for it. I want to make a compressor... The songs have sooo much different volumes! :(

***

Este post é pra publicar os scripts do meu revolucionário sistema de discotecagem baseado no midnight commander!...

2008/01/22


The Midnight Disc Commander

This is the story about how I crated my own DJ system to use in my Linux box. It is based on midnight commander, mplayer and a small JACK/GTKmm application. Here is the screenshot!

Free Image Hosting at www.ImageShack.us

(( If you are interested in computer audio, you might enjoy this text I wrote about a measurement of the filters in an M-Audio Fast Track Pro... ))

I'm about to go to my brother's birthday party, where I'll serve as a DJ for a bit. For the first time I'll use my notebook to play the songs. It is a Compaq with an AMD Sempron 3500+, and has Debian. I'm an old-school guy, and my window manager is VTWM.

There are lots of Linux programs for disc-jockeys. Mixxx and xwax are two fine programs that emulate vinyl turntables, and let you scratch and make loops... Mixxx can be used with joysticks and other specialized hardware. They also measure the BPM of the musics, and let you change the speed, and apply effects... And of course, they have a window for you to select the files you want to load.

I was going to use mixxx, but I decided it was not good for me. I didn't want all the options, and I wanted easier access to do the few things I was going to do: load new songs alternating the tracks, and make a crossfade.

I searched for other Linux program with the "crossfade" and "playlist" features, but most of them only make the crossfade between the currently playing song and the next one, emulating the work I wanted to do by hand.

So, I realised Linux had advanced applications for composer-DJs, and DJ-emulator programs, but no proper application for a humble "just play the tunes" DJ like me... I believe idjc would be the closest to my wishes, but I couldn't run it. Plus it is based on QT, and I prefer GTK, or console applications, possibly with ncurses.

As a JACK fan, I even considered using something as puredata to do the work. But in the end I decided that all I needed was a small program to make the mixing (directed to do just the cross-fading), then I could select and play the songs with other programs. I decided to do something the unix way, full of pipes and running external applications...

I couldn't find a proper simple JACK mixer program, so first I made my own. It has a scrollbar to select the mixing level, and a bunch of radiobuttons to change the mixing style between linear, fixed-then-linear, sudden and quadratic. The jack part just outputs the weighted sum of the two inputs. There is also a simple first-order IIR filter in the scrollbar reading, to make the transitions more continuous and slow.

To load the songs in the two tracks I made two small bash scripts. This was already enough to work from two xterm windows.

Then I started to enhance my general interface. I created scripts that open an xterm windows and call mplayer inside it. Mplayer already lets you pause and move forward, backwards and to the beginning of the song using the keyboard. I created key short-cuts in my vtwm configuration so F6 F7 F8 alternate between the two tracks (mplayer) and the mixer windows.

Finally, to browse through the files and load the songs in the tracks, I decided I wanted something similar to moc... I wanted something like midnight commander... Then I thought: "hey, why not midnight commander itself???" And voilà!... I configured MC to load my magical script when I select ogg or mp3 files!... The result is the screenshot above. The mc window won the F5 short cut, so I never have to use the mouse. Just push buttons, the way I like it!...

It is not enough to use Linux to play your songs, you have to make your own mixer program and make it interact with midnight commander! THIS is a true DJ hacker! ;)



The system worked successfully. The house almost went down with Search and Destroy and Territorial Pissings!... You can see the pictures of the party at my picasa album.

The greatest success, of course, was being cited at Music Thing. Thanks for the attention, guys! :)



I have detailed some more my system at this later blog post. The mixer program is still not in the Internet, but I can send to anyone interested... It's a very basic jack client integrated into a GTKmm application.