2009/04/17


Trem de doidos

"São Paulo é a locomotiva do Brasil." Uma enorme potência industrial e financeira que é quem bota esse país pra frente. Eles adoram sê-lo por isso, mas recentemente percebi muitas outras formas como São Paulo se encaixa tão bem na visão de uma locomotiva.

Primeiro porque se tem uma coisa que paulista gosta é de pegar um dispositivo bem potente e veloz, como uma locomotiva, e prender a ele cargas altamente inerciais, vagões e mais vagões de carvão. Eles tem aquela mania de correr pra pegar sinal fechado, é um esporte local, tem tudo a ver. Tudo a ver também são os carros esportivos que são vendidos por aqui em lojas exclusivíssimas, e que efetivamente andam pela cidade. É impressionante poder ver uma Masserati ou Porsche desfilando pelas ruas entre os graffitis desbotados e vendedores ambulantes, mas é sempre triste constatar que estes veículos passam a maior parte de seu tempo retidos em engarrafamentos, como todo mundo. A azáfama da carroceria vermelha frustrada pelo simples excesso de pessoas nas vias.

É claro que estou falando de muito mais do que os problemas de transporte. Ô gente boa de criar burocracias sem sentido pra atrapalhar sua vida, e conter o fluxo do seu rio, tornando-o um lago inerte como o Pinheiros ou Tietê.

Na verdade é inacurado falar de congestionamentos e de assoreamento enquanto eu falava de trens. A inércia causada por carga excessiva não é a mesma coisa da inércia causada por um livre caminho médio curto. De fato, se tem uma vantagem em trens é que eles não ficam presos em engarrafamentos, e passam por poucos cruzamentos e curvas. Quer dizer, isso em teoria e potencial, porque na prática os metros de Sampa ficam sim parados porque o da frente não saiu da estação ainda... É triste. Só não é menos triste do que as ocasiões em que produtos ficam retidos para entrar no porto de Santos.

Mas é verdade, trens se caracterizariam por essa possibilidade de poder correr em liberdade. E quer saber? Isso faz parte da cultura aqui em São Paulo. Eles adoram a idéia de existir um único caminho sobre o qual todas pessoas devem andar, uma única reta traçada no solo a ferro e fogo, da qual não se pode desviar um único milímetro, apenas o quanto os amortecedores permitirem. Uma única falha no caminho de ferro, qualquer desvio não-planejado que seja, implica num descarrilamento grave, é morte.

E tem os horários. É pra sair tudo na hora certinha. Eu não critico isso, quem gosta de esperar trem que não saiu ou chegou no horário?

[DIGRESSÃO DESIMPORTANTE]
Mas acho que falta um pouco de cultura de tratamento de falhas por aqui. O trem que atrasou não foi uma "vítima de algum imprevisto com que precisamos lidar", não, ele é "o trem errado que está atrapalhando". É o ponto fora da reta, outlier a ser descartado.

Eles bem gostaria de poder descartar um trem que chegou cedo ou tarde demais, é uma pena que as leis atuais proíbam isso, não permitam tratar veículos do transporte público como tratamos, por exemplo, pacotes IP.

Pra quem não sabe, uma das forças do protocolo TCP/IP, e das redes Ethernet, é essa flexibilidade que existe em podermos descartar datagramas. Qualquer pacote que começa a atrapalhar é simplesmente suicidado, e o barramento de uma rede em estrela é um bafafá onde volta e meia duas pessoas começam a falar ao mesmo tempo, e nessas horas elas precisam educadamente decidir parar de falar, para tentar de novo um tempo mais tarde (escolhido aleatoriamente). Esse problema existe devido ao fato da velocidade da luz ser baixa demais, as soluções são ou fazer isso, ou criar algum tipo de protocolo altamente "burocrático", tipo existe me redes em anel, ou em ATM...

Eu tou falando em redes, na verdade, porque ouvi na cantina outro dia um grupo de alunos conversando sobre redes. Um dos alunos expressou um enorme espanto em saber que essas redes que usamos, que parecem funcionar tão bem, pudessem ser na verdade "puro acochambramento" por baixo, essa coisa avacalhada, sem tabelas de horário, sem rotas pré-estabelecidas e sem "farol" retendo datagramas esportivos ou públicos em cruzamentos aqui e ali.

É uma pena que aqueles alunos, apesar de conhecerem redes em anel, aparentemente desconheciam detalhes de seu funcionamento, gostaria de saber se conhecendo melhor eles não se tornariam adeptos dessas outras redes mais "burocráticas"...

***

É gozado, aliás, essa relação dos paulistas com a aleatoriedade. É algo meio distante da cultura local, como mostra essa estranheza com a política estocástica da rede Ethernet. Outro dia num laboratório tentei ensinar um aluno a apresentar todas entradas possíveis a um circuito eletrônico simulado. A forma de fazer isso é agrupar os bits de entrada num barramento, e mandar o programa atribuir valores a esse barramento de forma incremental. Em outras palavras, "0, 1, 2, 3, 4...". Assim você varre todas as possibilidades.

O que os alunos costumam fazer antes de aprender isso é sair clicando meio aleatoriamente nos níveis, numa certa política estocástica para explorar um espaço que seria, na visão ainda-não-iluminada deles, amplo demais para ser exaustivamente explorado. Engraçado ver que enquanto estou dizendo que paulistas seriam certinhos demais e ignoram o mundo das aleatoriedades, justamente nessa ocasião em que eu prego a mais absoluta ordem e determinismo, eles se sintam bem fazendo o oposto.

Enfim, tentei ensinar como fazer, mas depois de explicar, o aluno continuou falando que eu tinha dado um jeito de gerar as entradas possíveis do circuito "tudo aleatório", como se meu método fosse agrupar aqueles bits e gerar a mais perfeita algazarra informacional, numa eficiência de imprevisibilidade e entropia que seria maior do que os sorteios que ele estava antes fazendo no olho e no dedo (no mouse). ele achou que dei um "boost" na aleatoriedade dele, enquanto que na verdade eu fui na direção oposta, ordenei tudo!

***

[CONCLUSÃO INTERESSANTE]
Aí eu fico pensando: Se São Paulo é a locomotiva do Brasil, o que somos nós, o resto?

Minas é bem conhecida pelas velhas "Marias-fumaça", e por ter mais estradas do que outros estados, com carros, ônibus, jipes radicais, bikes, motos, e também as velhas "jardineiras". Mas serão esses os veículos adequados para a alegoria?

Não, a figura que se contrapõe mais com a locomotiva paulistana ainda a dos retirantes nordestinos, naquele quadro do Portinari...

Eu sugiro um meio-termo entre os nômades da seca nortista, caminhando sem veículos, e as "serpentes metálicas" futuristas do sul-maravilha: é o carro-de-boi!

O carro de boi, é claro, é muito mais lento que uma locomotiva, e jamais se revelaria um método eficiente de transporte para carregar kilos e mais kilos de soja, minério e açúcar até Santos, para entregar aos estrangeiros ricos que precisam deles mais do que nós.

Mas o carro de boi tem as suas vantagens, possui até algumas características que pesquisadores tentam com muita dificuldade dar aos veículos mais modernos.

Eu trabalho com inteligência artificial e robótica móvel. Sei que tem gente por aí se descabelando tentando construir um carro inteligente, capaz de estacionar sozinho por exemplo, ou de se reabastecer de forma autônoma. Fala-se muito em seguimento de alvos também, simples como uma bolinha vermelha, ou complexos como uma pessoa. A passagem da informação de sensores métricos ativos como laser e sonar para a visão é uma ladeira que só hoje estamos terminando de galgar depois de décadas.

Gente! O carro de boi já faz isso tudo!

Tou falando sério, o boi te segue, usando informação visual, ou na pior das hipóteses seguindo a cordinha que vc amarra no nariz dele, algo que ainda nem foi pesquisado com robôs. E ele come sozinho, melhor ainda, ele come a grama que vê no caminho, ou na porta da mercearia enquanto você entrega o leite que a esposa do boi produziu de manhã e toma uma cachacinha.

A gente fica aqui "prevendo" um futuro em que vamos conviver com robôs que fazem isso aí como se já não existissem coisas similares hoje e ontem. Bom, no dia que isso acontecer não vai ser nada de novo, vai ser apenas a "reinvenção do carro de boi", não muito diferente da "reinvenção da roda" de aço ao invés de madeira.

O trem foi a reinvenção da roda, mas melhorada, claro. A roda virou de aço, enquanto que o carro de boi tem rodas de madeira. O carro de boi é barulhento pra burro, e o trem... Bem, o trem é mais barulhento ainda!

Mas agora os trens vão ficar inteligentes, vão poder andar em duas dimensões ao invés de apenas trilhos e estradas. E vão fazer um pouco menos de barulho, e vão interagir conosco realizando tarefas simples, seguindo informações visuais e comendo sozinho. É a reinvenção do carro de boi, mas melhorado, claro. É o "carro-de-boi de ferro", de silício e silicone, mas sem chifres.

2009/04/07


Rascunho da minha linguagem

Faz tempo que estou querendo inventar uma linguagem de programação. Isso aqui é um rascunho de algumas características fundamentais que ela vai ter.

Ela brota da forma como eu vejo qualquer programa: sempre apontando exatamente onde ocorrem os desvios e testes de quebra de laço... Podemos dizer que ela nasce como uma apologia ao goto! Mas não do jeito "tabu" que a instrução existe no FORTRAN e C, etc. A idéia é tornar natural escrever um "laço infinito" que possui pontos de interrupção.

Eu não gosto da forma as linguagens estruturadas fazem a gente considerar os diferentes tipos de laços como coisas muito distantes entre si, quero evidenciar as semelhanças, e como as diferenças são sutis.

E o mais importante: quantas e quantas vezes não vemos blocos do tipo "for(;;)" e "while True:" por aí? Isto não é natural. Digo, não é natural essa forma de representar isso, porque fazer esses laços é algo bem natural. Na minha linguagem o "laço infinito" será algo natural.

Um único goto no fim de um bloco pega mal porque não existe aquela sintaxe bonita marcando o ponto pra onde esse goto aponta... Eu não quaro ter "gotos selvagens", eu quero ter blocos sim.

Quero algo assim:

[
print x++
break if x>10
]

O que está dentro desses colchetes é um laço "infinito", "incondicional"... Se você não botar esse "break", não vai ter fim, e pronto.

Aquilo é um "do..while". Um "while.. do" é obtido simplesmente colocando esse teste no início...

[
break if x>10
print x++
]

Agora, podemos fazer coisas intermediárias tb.

[
x=x+y
break if x>10
y+=1
print y
]

Não sei dar agora um bom exemplo de quando isso é útil, mas já aconteceu mais de uma vez na minha vida deu ver laços com pedaços de programa repetido pra cima ou pra baixo dele, só porque o ponto de quebra do laço não podia ser no meio do bloco. Mas nessa minha linguagem isso pode acontecer naturalmente.

Em C dá pra programar assim, mas os "for(;;)" pra todo lado ficariam feio pra burro não?...

É muito comum também ver programas por aí com blocos que possuem "múltiplas terminações"... Um goto que aponta pra terminar a função de um jeito ou de outro. Isso economiza o trabalho de escrever uma funçãozinha adhoc. Quero achar um jeito bom de escrever isso tb...

2009/03/19


A velha escola

Estou estudando um assunto que envolce uma mutitude de algoritmos, todos meio parecidos entre si. Faz algum tempo que já estava sabendo que eles eram relacionados com o famoso algoritmo de Metropolis-Hastings, mas hoje descobri que existe outro algoritmo ainda que envolve tudo isso... É o famoso recozimento simulado.

Sou um grande fã de recozimento simulado, que só vim a conhecer em meu mestrado, e sempre que lhe descubro uma aplicação fico muito feliz. Imaginem meu espanto hoje ao finalmente entender então que toda essa multitude de algoritmos são na verdades variações em torno deste grande obelisco algorítmico. Fiquei meio pasmo.

Conversei com um great old one sobre isso, sobre se não poderíamos pegar alguns desses problemas e simplemente enfrentar de cara, de baixo pra cima, como uma otimização através de recozimento simulado. A resposta, que tenho certeza que seria compartilhada por muitos professores e ainda mais por alunos, foi mais ou menos assim: "poisé, é mesmo, só que se vc escrever isso não vão comprar sua idéia, vc não vai publicar artigo nem ganhar dinheiro da fapesp. Tem que inventar outro nome aí, dar uma disfarçada."

É tipo isso. Muita coisa que tamos vendo por aí são um recozimento simulado forjado! É, não pude resistir à piada... Não é linda a iron-ia disso tudo? AHAAHHAHA!!!!

***

Acontece que recozimento simulado é old school.E a ciência anda cada dia mais na direção de ser dominada por sofistas, que se especializam mais nas políticas e retóricas vazias de "fazer seu nome" do que na coisa de fato. E ser old school pega mal.

Mas querem saber? Old school is the only school. Não quero papo furado, dêem-me a coisa original, a coisa verdadeira.

Malditos simulacros de descoberta!...

Mas eu pensei nisso, que só a old school é a verdadera school, foi ouvindo o disco novo do Metallica (pirateado) no meu player, que consertei essa semana com meu ferrinho de solda. Estava muito emocionado no ônibus ouvindo aquilo, em parte porque enquanto apreciava a música, os sons, os timbres, me chamou a atenção como que apesar de todos efeitos e produção, dá pra ouvir alguns barulhos na música que são considerados meio que "ruídos indesejáveis", meio que coisas que "não deveriam fazer parte" do som. É o barulho da palhetada, barulho da corda deslizando no traste, essas coisas. Como guitarrista e como estudioso da guitarra em meu mestrado, ouvir isso me faz pensar muito.

Uma coisa que eu pensei foi "eu troco toda uma discografia do DJ Tiesto por quaisquer 10 segundos de solinho de guitarra desse disco, essa coisa feita por músicos de verdade." (Não me levem a mal, não é discriminação contra música eletronica. Tou falando daquele processo de ensaiar, tocar, compor... O próprio Metallica andou afastado disso até esse último disco.)

E bateu aquele saudosismo... Lembrei de uma vez que conversei com um menino que disse que ouvia "new metal", e não tinha idéia do que fosse o "metal" desqualificado, não conhecia nada de Black Sabbath, Led Zeppelin ou um Iron Maiden que fosse. Outro dia ainda me espantei também com uns jovens com quem ando falando, que não assistiram ao último filme do Tarantino... Tipo, como assim!?! Não sabia que existia gente hoje em dia, especialmente jovens, que estivessem se importando pouco com o Tarantino!... Eu sempre falo que uma das coisas que marcou o início do que considero "os anos 90", foi o Pulp Fiction. Vai ver que isso agora marca o fim dos anos 90, o mesmo diretor não ter mais apelo aos jovens, a quem tem a idade que eu tinha na época...

É meio triste pensar que o que te importa não é mais mainstream. Mas sempre há conforto em saber que doido mesmo era o old school. Sempre é bom ouvir aquela celebridade dizendo "bom mesmo é Jimmy Reed", "Arthur Big Boy Cudrup"... O old school permanece vivo em quem realmente importa, a ciência de verdade ainda existe pra quem realmente tem noção das coisas, naquelas raras conversas reservadas, francas, onde o alívio de um "ah bom" salva meses de trabalho incerto.

E foi nesse momento no ônibus, indo pra universidade, ouvindo ao som daquele dispositivo computacional fajuto demais comparado à importancia que o sinal por ele gerado tem pra mim, que reparei na camiseta de um garotinho de uns 8 anos de idade que estava no banco à minha frente. Era preta, do Megadeath.

História verídica!... Causo acontecido, de fato, com este que vos fala.

2009/02/16


Bernoulli Warcraft

A um tempo atrás escrevi sobre sorteios de Benoulli. Agora me deparei com um exemplo muito interessante de como esse tipo de variável aleatória pode influir em nossas vidas.

Em algumas aventuras no World of Warcraft você precisa coletar um certo número de itens para cumprir um objetivo. Esses itens "caem" de NPCs que você mata, são os famosos drops pra completar as quests. Só que muitos destes drops são estocásticos, existem probabilidades devc conseguir pilhá-los dos cadáveres de suas vitimas.

Por exemplo, na aventura Beer Basted Boar Ribs você precisa pegar 8 costelas de Javali. Acontece que elas aparecem quando você matas os javalis apenas com uma probabilidade de uns 44%. Então você começa a matar, mata mais de 8 javalis, e não completou, vê o drop rate, se conforma, mata mais 8, e continua sem completar a missão... Então você se pergunta "afinal de contas quantos javalis será que eu tenho que matar pra conseguir??"

A resposta dessa pergunta requer que modelemos tudo como um processo estocástico. Esse número de javalis que serão mortos antes de obtermos nossa meta é modelado pela chamada distribuição binomial negativa. O gráfico a seguir (feito com o pylab) mostra a probabilidade de termos que matar N javalis para terminar a referida quest.



Como podemos ver, é quase impossível matar só 8 javalis e conseguir pegar as 8 costelas necessárias. A chance de você matar 17 e conseguir as 8, que pode parecer natural dado o "drop rate" de pouco menos de meio, não é tão grande assim, é quase 50%. Se você quiser ter certeza que vai conseguir obter essas 8 costelas (por exemplo, se você quisesse sair matando pra só depois vir atrás e procurar entre os mortos), vc ia ter que matar lá uns 25 javalis.

2009/02/04


Criancice

Homenagem a meu irmão, cunhada e sobrinho, essa música (que não consegui botar no blip.fm) tem mais de uma coisa a ver comeste post.


Yes I am a child...of ugly times, Oh yea, my people have committed some ugly crimes, and in the process of me breaking free, I have inherited a painful legacy.

I have even created some ugly children for you to adopt, That you have chosen to embrace, You embrace the ugly, the dying freak, Only because he is a part of you and you are afraid to speak.

Deep down, way down, in the depths of you, He is ready to take over and rape the last drops of insanity in your mind, Let him out, let him out, let him run wild and scream free, Get crazy and forget about music, what it was, what it is, Or what it is supposed to be.

Give in to the dirty, give in to the funky, Give in to the gypsy, give in to the nigger in your soul, Fly free, fly free, and then we will see something beautiful...

OH LORD,- YES I'M A NEW BORN CHILD... OH YEA,- A BEAUTIFUL NEW-BORN CHILD,-

Newborn Child -- Eric Burdon and War 1971

2009/02/03


World of Warcraft no Linux, com controle dualshock

Ontem finalmente consegui pela primeira ver jogar World of Warcraft, e minha conclusão depois dos primeiros momentos foi: andei desperdiçando minha vida sem estar jogando até hoje!

Quando meu irmão começou a jogar, duvidei que jamais pudesse rodar no Linux, de tão legal que imaginei que seria o jogo. Só que andei descobrindo recentemente que o wine já tá rodando muito bem esses jogos 3d estribados. Nessas férias fiz um esforço pra jogar o Battlefield pelo wine, e fui muito bem recompensado. Após esta experiência positiva, fui procurar saber e descobri que o WoW é até mesmo considerado um dos jogos que roda melhor pelo wine!

Instalei então o wine 1.1.11 pelo apt, e fui no site da Blizzard. Baixei o tal instalador, que me mandou liberar 15GB de espaço. Liberei, e então começou o download... Mandei botar logo o novo Wrath of the Lich King. O DL foi OK, mas infelizmente deu um problema no final da instalação. Procurei na Internet, e descobri que vãrias pessoas já tiveram esse problema, incluindo usuários de windows, o que me deixou mais esperançoso. Mandei então instalar o WoW básico, e aí funcionou. O donwload foi perfeito, limitado mais pela minha rede e HD do que qualquer coisa.

Mandei abrir o jogo, e aí começou o tal update, que é obrigatório. Aí tive um problema... O programa de fazer o update tava muito lento, até tava baixando, mas ocupando muito minha CPU sem fazer nada. Pesquisei na Internet de novo, e vi mais pessoas reclamando desse programa, muita sugerindo inclusive fazer o tal download alternativo do programa de fazer o update. Procurei pelos mirrors aqui e aqui, e eventualmente achei um servidor rápido o bastante (mais de 100kB/s). Rodei o programa do primeiro patch, de 3.0.1 pra 3.0.2, e depois desse o updater começou a funcionar direito, então todos outros updates fiz através dele. A partir daí entrei loguei e já comecei a jogar!

O jogo funciona muito bem, muito rápido. Deve ser o jogo com a melhor relação bonito/rápido que joguei na vida.

Agora vem a parte mais legal de todas. Como jogo num notebook, no escuro, é muito difícil ver as teclas no teclado, e usar o touchpad. Fiquei logo com vontade de tentar jogar usando meu "joystick", ou "gamepad", ou controle dualshock. aí descobri de novo na Rede que o WoW não suporta joystick nativamente!... Ainda li que tem uma empresa aí vendendo um programinha pra deixar você ligar seu controle de xbox no computador e jogar...

O que eu fiz? Simplesmente instalei o fantaśtico driver "joystick" do X, que deixa vc usar o controle como mouse ou teclado, associando do jeito que quiser!!... Já estou no fine-tuning. Aqui vai a minha configuração atual:


...
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
InputDevice "joy0" "SendCoreEvents"
...

Section "InputDevice"
Identifier "joy0"
Driver "joystick"
Option "Device" "/dev/input/js0"
Option "MapButton1" "key=0x0031"
Option "MapButton2" "key=0x0032"
Option "MapButton3" "key=0x0033"
Option "MapButton4" "key=0x0034"
Option "MapButton5" "button=1"
Option "MapButton6" "key=Control_L"
Option "MapButton7" "key=space"
Option "MapButton8" "button=3"
Option "MapButton9" "key=0x0079"
Option "MapButton10" "key=0x0063"
Option "MapButton11" "key=0x0036"
Option "MapButton12" "button=3"

Option "MapAxis1" "mode=accelerated keyhigh=Right keylow=Left"
Option "MapAxis2" "mode=accelerated keyhigh=Down keylow=Up"
Option "MapAxis3" "mode=none"
Option "MapAxis4" "mode=relative axis=x"
Option "MapAxis5" "mode=relative axis=y"
Option "MapAxis6" "mode=accelerated axis=x"
Option "MapAxis7" "mode=accelerated axis=y"

EndSection

...

2009/01/29


Minha aura reparadora

Eu tenho tipo uma aura mágica, um campo de força místico que se manifesta às vezes quando eu chego perto de alguém que está mechendo com algo que não está funcionando. Quando eu chego, ou quando eu mecho na coisa, aí funciona. É incrível. Eu quero até fazer uma história um dia em que tem um santo engenheiro que quando entra na sala todos programas compilam, e todos cubos de rubick saltam nas mesas, resolvendo-se.

Meu computador começou a dar vários problemas recentemente. Minha aura não é tão forte assim... Cooler fazendo barulho, bateria morreu, e o pior de tudo: um terrível mal-contato no teclado, afetando as teclas esc, janelinha, F7, backspace, g, h e ~/^. O mais chato de tudo é que foi bem quando comecei a usar a "janelinha" com o awesome (meu novo gerenciador de janelas), e o esc eu uso muito no emacs.

Convivendo com o problema, comecei a suspeitar de algum mal contato em algum único fiozinho do teclado (teclados funciona com pares de fios que fazem contato...) Mas não abri pra resolver eu mesmo porque é meio difícil abrir notebook. Acabei levando num lugar e pedi pra dar uma revisão, limpar e ver se eles arrumavam o teclado.

O cara da oficina aceitou, já me fazendo um discurso aterrador sobre a possibilidade do teclado ter se desgastado a ponto das teclas não estarem fazendo o contato, o que seria irreparável, e me mandou me preparar pra gastar 300 reais num teclado novo. Ainda me ofereceu uma bateria nova, outros 300 conto.

Paguei 90 reais pro cara fazer uma limpeza e tentar resolver o teclado. Melhorou sim, mas ficou "quase bom", ainda tava dando o mal-contato de vez em quando... É de deixar puto, pagar essa grana, a máquina melhorar, mas não ficar perfeita. Não sei se prefiro isso ao serviço simplesmente não ter sido feito.

Hoje, depois de muito trabalho em achar uma chave de fenda que prestasse --- no Savassi só se acham sex-shops, finalmente abri a máquina e resolvi olhar eu mesmo como andava a conexão do teclado.

Abri, desconectei o cabinho, passei a ponta da chave de fenda pra tirar a ferrugem, coloquei de novo, e fiz uma descoberta importante: uma peça que prende o cabo está soltando do lugar, talvez seja preciso prender com algo. (cola quente? :) )

Montei de novo, e agora está funcionando 100%, nenhuma "engasgada" do teclado ainda... Porque funciona comigo e não com o técnico? Claro que deve ser pura sorte, mágica. Nada de material, qualificável ou compreensível. Nada mundano, certamente.

PS: Não mencionei algo crucial. A máquina voltou com o teclado mal-encaixado. O teclado é tipo uma bandeija de metal, e uma das pontas ficou pra fora do friso de plástico que emoldura ele. Quando remontei, botei no lugar certo. É a marca do serviço mal-feito, o cara remontar tudo "pros cocos". Será que não sou eu o abençoado, mas sim os outros que são amaldiçoados, e tudo que montam fica ainda meio capenga? :)

2009/01/16


Barbas de molho

Relatório de férias. Hoje fui passear na minha saudosa Avenida Paraná. Fui na AMJ comprar umas tralhas eletrônicas, sonhar com meus projetos: fazer o TK85 sem fio, fazer um joystick, e agora mais outro: montar um amplificador com um TDA7169ASA.

Aí fui atrás do que estava mesmo procurando: um aparador de barbas. Eu queria especificamente um daqueles que tem em barbeiro que é só o aparador "linear" (tipo máquina de cabelo), pretinho, quadrado, com uma tomadinha pra ligar na parede e recarregar. Procurei por toda a cidade e não vi nenhum desses, só máquinas caras.

Procurando o shopping oi acabei caindo no shopping Xavante. Primeira vez que fui lá, achei bem legal, tem bastante coisa. Tipo um mercado central do novo século. Não só lá como todo o centro ali em volta tá bem legal, do jeito que a gente gostaria que fosse desde uns vinte anos atrás.

Lá no fundão do galpão achei uma única lojinha vendendo um aparelho parecido com o que eu quaria, com a diferença que tinha um bercinho pra recarregar. Custava 65, o que achei um pouco caro. Queria pagar com cartão e o cara me falou pra procurar outra loja dele lá no uai shopping, que lá tinha cartão.

Fui no tal uai shopping, que é o mais novo desses três (Oiapoque, Xavante e o Uai). Aqule parece mesmo um shopping, e tipo pra zelite!... Achei a tal loja, e lá tinha dois modelos de barbeador como eu queria: um phillips de 80 conto, e um Powerpack BR-390 de $35. Perfeito!! Finalmente achei. Hoje vou cortar a barba pela primeira vez desde o ano passado. Viva Taiwan.

2009/01/06


Tirando poeira da velha maquininha (ou: brincando com meu TK85)

Estou de férias na casa dos meus pais. Revendo aqui minhas raízes... Entre elas, revi o primeiro micro que jamais usei (acho que era o segundo que meus pais já tiveram), um TK85.

TK85 era o "genérico" brasileiro do britanico Sinclair ZX81. Uma maquininha baseada no Zilog Z80, com uma ROM com um interpretador de BASIC. Tem uma saída pra TV (P&B), entrada prum tal joystick gambiarrado, e portas de áudio pra usar um toca-fitas (K7) pra carregar e gravar "arquivos".

Antigamente as coisas eram feitas pra durar, né. Com o carregamento de arquivos é via áudio, dá pra simplesmente usar a placa de som pra substituir o toca-fitas!... Se fosse baseado em RS-232 ou porta paralela, nem tinha jeito de fazer nada. Mas com a placa de som dá pra entrar na Internet num computador "normal", converter o arquivo pra um arquivo de som, e carregar os programas no TK85.

Pra gerar o arquivo de áudio eu usei o tal p2raw que vem nesse pacote aqui: http://www.xs4all.nl/~odemar/zx81/zxtools.zip

Arrumei depois uma coleçao de joguinhos e programas por aí também, tem coisa tipo biorrítimo, e programa de adivinhar um bicho que voce pensar fazendo perguntas, essas coisas, todos "clássicos"...

Enfim, aqui tem uma foto minha jogando tetris no TK85, ligado numa TV modernosa. Esse jogo nao é "da época", foi feito recentemente pelo autor desse emulador.



É isto aí, diversao de férias da melhor espécie!... Eu vou tentar agora fazer um joystick pra mim. Outra idéia é ligar umas baterias no TK85 e deixar ele "sem fio".

2008/12/14


Ratos ou homens?

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...