Me interesso muito por interfaces, projetos de ferramentas e com entender como a mente humana funciona (ciência cognitiva).
Hoje, enquanto completamos aí os 40 anos do tal mouse, que todos amam e idolatram, enquanto procurava informações sobre uma tal linguagem de programação Forth, que é parecida com algo que eu estou inventando --- Aliás, sempre fico meio feliz e meio triste quando estou inventando algo e descubro que já existe. Feliz porque já existe, e triste porque não é famoso/importante o bastante pra eu já conehcer --- Neste momento venho finalmente conhecer não só o Forth, mas um tal computador chamado Canon Cat, criado por um tal Jef Raskin que aparentemente e infelizmente não recebe nem um décimo da atenção de Douglas Engelbart ou Ted Nelson (o que já é pouco). Eu até gosto dos dois, mas essas idéias do Raskin, que foi um dos criadores do Macintosh, tão me deixando com uma impressão muito boa!...
O tal livro dele, The Humane Interface, parece bem interessante.
Infelizmente, o sujeito morreu em 2000. RIP...
2008/12/14
Ratos ou homens?
2008/11/10
Olhando por novas janelas
Todos sabem que sou um antigo usuário e grande fã do VTWM, mas meu coração hoje foi balançado por um concorrente. Mais novinho, cheio das chinfras, e por default com uns keybindings muito bons, o awesome está balançando meu coração. Convido todas pessoas como eu, de gosto refinadíssimo e sempre crítico de suas ferramentas, procurando coisas novas que realmente funcionam e fazem sentido (sem nunca perder os clássicos de vista), a testar. Vocês podem ver um screenshot no site oficial, mas tem que realmente mexer no trem pra ver como é...
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/18
Fechando o círculo de fogo na Suíça
Muito boa a qualidade da webcam do LHC. Entrem lá antes de ler o resto, e apreciem por uns instantes, dá pra ver a cada 5 segundos mais ou menos um dos momentos em que uma rajada de neutrons de carga negativa atinge o bloco de Bórax no centro do aparelho, o que causa umas faíscas roxas.
***
Viram que legal?? Muito bom, né? Contribuição de nossa leitora misteriosa, Mme. Z!
Poisé, essa webcam todo mundo pode acessar, tá funcionando bem. Mas lembra quando rolou lá a inauguração do LHC? Eu fiz a maior propaganda, fiquei acordado até tarde... E pra nada! Foi triste. O servidor deles parece que só conseguiu transmitir o tal webcast para um número bastante reduzido de máquinas, e quem não sentou na cadeirinha na hora certa, dançou. Pelo menos eu pude acompanhar pela BBC...
A ironia de tudo é que algo que se fala muito sobre o CERN é ele ter sido o berço da "WWW", esse conjunto específico de protocolos, paradigmas e programas utilizados que formam os serviços que muitos eludem-se ao acreditar que constituem o todo e o fim último da Internet.
Eu fico triste ao constatar que o CERN deu uma aceleração Lorentziana na WWW e ajudou a espalhar a Internet por todo o lado, mas anos depois disto, num momento em que os olhos do mundo se concentraram sobre a instituição, eles promovem um evento na Internet que serviu mais foi pra mostrar como a ferramenta está aquém de nossas necessidades. (ferrmenta - Internet, e não o LHC! :) )
Não conseguiram montar um servidor de vídeo violento, nem rolou mirror, nada... A solução era o que? Multicast né, gente. É usar de fato tecnologias já pesquisadas pra resolver essas coisas, montar uma rede mais flexível, e finalmente implementar por aí o IPv6 e outras milongas mais.
Ou talvez nem isso, não tem uns sites por aí que retransmitem seu vídeo?? Porque ninguém botou o trem lá? Mesmo que tivesse tb, creio que eu teria tido dificuldades pra achar...
***
Tudo bem que a pesquisa deles é outra história correndo em paralelo, e o tal nascimento da WWW que teria ocorrido lá não é algo tão deslumbrante assim. Mas dá pra ter uma impressão de que a WWW saiu do CERN nos anos 90, deu meia volta, e mordeu o calcanhar dos próprios naquele dia. Eles criaram lá esse monstrinho cheio de interfaces que me dão raiva, e que até onde eu sei não concretiza as visões de caras como Douglas Engelbart ou Ted Nelson, e demonstraram naquele dia uma fraqueza da ferramenta. Não rolou!! Sei lá as razões, não rolou, fiquei tristinho. O ciclo histórico se completou, mas não pude acompanhar pela internet enquanto o ciclo de partículas ia se fechando dentro do aparelho.
(Mas façamos justiça ao fato de que pelo menos não precisava de Fresh pra abrir o stream).
Estamos vendo a tal web 2.0 surgir, mas por baixo ela continua mais ou menos a mesma. Muita mudança plástica, nem tanta mudança estrutural. Muitas ferramentas sendo desperdiçadas, seja por interesses de monopolização, seja por pura ignorância ou preguiça.
Quem sabe o incremento de força no CERN não seja o prenúncio agora de uma nova etapa na história da Internet?... Tem muita coisa pra acontecer. Eles estão até envolvidos já com o problema de distribuir o processamento dos dados que vão coletar. Tomara que nasça desses desafios tecnológicos o que vai ser de verdade uma "nova" web.
***
Não posso terminar sem antes notar outra forma como a web teria agora retornado de forma meio negativa ao CERN, fechando um ciclo numa rebelião anti-progenitora. Quem falou melhor sobre isto foi o John Ellis, que nesta palestra muito boa (e extensa) mostra aproximadamente aos 40 minutos como que a web foi/está sendo utilizada pra espalhar FUD e desinformação sobre o LHC, e até mesmo desvairadas mensagens ameaçadoras carregadas de ódio.
É outra renovação que tem que ocorrer na Internet. Um terceiro tipo de "web 2.0". Além das ferramentas fundamentais e do jeitão dos sites, o conteúdo tem muito pra ser melhorado. Os usuários precisam amadurecer. O mundo precisa amadurecer, virar 2.0. Ouçam meu apelo, pessoas 1.0. Apelo ao qual acredito que se juntariam a mim esses dignatários todos que citei anteriormente, e outras pessoas de bom-senso como os estimados leitores deste humilde blargh. O apelo é: "Vê se cresce!!"
2008/08/02
Se era importante, tá na Internet
Muita coisa pra escrever, mas tá difícil esses dias. Entr eoutras coisas, tou participando do google code jam, estou devendo um artigo explicando como resolvi o problema C da etapa de qualificação.
Queria só escrever um testemunho a respeito de algo que já vinha querendo escrever. É sobre como é bacana usar console e ter arquivinhos de configuração fáceis de editar, em arquivos texto...
Primeiro que com interfaces modo-texto, via "console", ou seja lá o melhor nome pra isso, é tudo mais fácil de explicar, é sempre mais fácil ajudar as pessoas, sempre mais garantido. Manual ensinando a resolver problemas do sistema em interfaces gráficas é uma piada, os caras se matando pra tentar explicar como abrir sei lá qual janela, e em qual widget cabuloso precisa apertar com sei lá qual botão. Em terminal é só mandar um "escreva o comando apt-get moo", e pronto, o cara vai rodar o comando, vai funcionar, vai fazer o serviço, e ele nem tem q entender nada do que fez.
Imagine só se fosse possível fazer uma "macro" de movimentos de mouse, q ao invés de vocë explicar cmo pilotar o mouse pra cehar no lugarzinho certo, o cara simplesmente cliclicasse, ou arrastasse o ícone mágico da tal macro, aí o mouse dele simplesmente iria lá nas tais janelas certas do sistema e fizesse o tal procedimento... náo ia ser mágico, uma máo na roda? Poisé, em terminal isso já existe, já é assim, é só copiar o tal do texto que mandarem no manual, e pronto.
Melhor ainda, utilizando terminal eu posso ajduar amigos meus pedindo pra eles executarem comandos via e-mail, ou via mensagem eletrönica instantânea. É tudo mais fácil, eu falo "roda xxxyyyzzz e me fala o que aparece escrito" A pessoa pode executar e me mandar a saída sem nem ler nem entender. Não que eu goste da alienação, mas não é justamente isso que usuários menos interessados costumam procurar? Puxa, eu podendo pedir pras pessoas executarem comando, e lendo as mensagens de erro, posso ajudar muito mais do que se toda hora tivesse que explicar onde clica ro que, e depois pedir pra pessoa me dizer se náo tem alguma luzinha suspteira piscando em se l[a qual cantinho da tela...
Poisé, agora quanto aos arquivos de configuração. Não sei se quem usa widnow stme costume de ir adequando a interface mais a seus gostos. Em gerenciadores de janelas mais sofisticados é costume ter uma porção de opções, quanto por exemplo a quais janelas podem ficar em cima, com ganharem foco automaticaemnte, ou quais ficam grudadas no monitor quando você mud apra outro desktop virtual... Ops, o windows nem mesmo tem desktop virtual, né??? Se tem não se usa, e justamente porque deve ser difícil configurar.
Então, eu uso o vtwm (tem gente que tira onda comigo de que é muito podrão e usa xfce... learn with the mastahr! ;) ) e tenho meu gerenciador todo configuradinho com todo tipo de mania minha, características que faço questão ter. A própria cor das janelinhas é algo que escolhi num longo e cuidadoso processo, e me incomoda qqr coisa diferente. (E quem usa windows até pode muda ra cor, mas quem muda??... No twm é a coisa mais natural do mundo.)
Masentão. Acontece que quando agente muda d euma máquina pr aoutra, pra configurar tuuudo de novo é chaot né. Então o que se faz é simplesmente ter uma cópia do seu arquivo de configuração usual, e utilizar em cada sistema em q vc tem conta. Então quando vc vai mandar sua máquina pra assistência técnica formatar e partir ao meio com um machado, e vai passar uns dias usando outro notebook emprestado, é importante vc fazer uma cópia da configuração.
Eu devia ter feito isso outro dia, que mandei meu compaq pra oficina, mas acabou que esqueci!... Já estava aqui sofrendo usando um vtwm cor-de-rosa, sem minhas teclas de atalho de todo dia...
Aí me lembrei. Eu mandei a pouco tempo minha configuração pro site oficial do vtwm!!... Estava lá
pra todo mundo da Internet pegar se quisesse. Fui lá eu, o criador original qu eperdeu sua cópia, e simplesmente recuperei, como se fosse um becape.
Poisé, dizem que tem coisas na vida que são assim, vc perde porqu enão tava bem guardado, e no fundo no fundo o que não tá bem guardado são as coisas que você nem se importava tanto, né... O que importa você guardou bem. Como esse arquivo. Como ele é bom, importanto pra mim e pra outros, acabou que ele ganhou uma página na Internet. Já o Linus Torvalds falou um dia, que esse negócio de backup em casa não tá ocm nada, o bom é fazer coisas que sáo super boas e legais, e deixar qu eela seja copiada livremente pela Internet.
**
E só aproveitando que estamos falando sobre diferentes arquiteturas plataformas et cetera, queri aregistrar uma coisa que é verdade a tempos, e continua sendo verdade, mas as pessoas inda não apredeneram a dar a devida importância. Instalei o skype aqui na minha máquina. Peguei o pacote oficial do site deles. Ele tem 30% a menos do tamanho do arquivo de instalação do windows. Porque isso gente? Porque que programas de windows tem que ser tão maiores? Não consigo pensar que seja apenas questão de haver ali progrmainhas extras que ajudam a instalr e configurar... Isso é um sistema admirável? Eu acho é um desrespeito com a humanidade, obrigar que arquivos muito maiores do que o necessário trafeguem pela rede, o que semrpe atrapalha todo mundo, pior do que tränsito de carro.
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/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!
(( 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.
