quinta-feira, 30 de abril de 2015

Hoje, 30/4, 20h, eu vou fazer um hangout de constraint programming. A idéia é que me deu vontade de escrever um solver genérico baseado em constraint programming, e já que eu vou fazer do zero, dá para fazer com mais gente assistindo. Se quiser participar, eu vou postar o link aqui.

Se quiser conhecer o assunto antes, wikipedia:

http://en.wikipedia.org/wiki/Constraint_programming

Ainda não escolhi a linguagem mas é C++ ou Go, tendendo mais a C++.

sexta-feira, 24 de abril de 2015

Que triste, eu olhei para a imagem abaixo e o primeiro pensamento que veio na cabeça foi "o que o Bolsonaro está fazendo ali?"


Eu estava querendo relaxar para ir dormir, aí resolvi ler o Knuth porque não tem nada que me acalme mais que ler o Knuth. Mas eu li um mindfuck tão grande que nem sei se consigo dormir hoje.
O SAT é NP-Completo né? Para testar se uma fórmula é satisfiable, você vai precisar de muito, muito esforço computacional, possivelmente exponencial se P != NP.
MAS, e aí vem o mindfuck, e se você testar entradas aleatórias até uma delas resolver a fórmula? A gente pode calcular quantas entradas você precisa, na média, para chegar a um resultado.
E a média é 2 (dois).
Gente, dois. Na média, com dois testes você acha o resultado.
Absolutamente nenhum problema útil da vida prática você consegue resolver com 2 testes aleatórios, e ainda assim a média é dois. Significa que a grande parte, a maior parte do universo dos problemas são os problemas inúteis. As coisas que interessam são um cisco minúsculo no mundão dos problemas possíveis. Não sei se eu fico feliz ou triste com essa conclusão.
Todo mundo falando bem dos gráficos do joguinho novo do Star Wars, mas eu terminei recentemente um jogo que era o oposto, A Dark Room:
É todo em texto, parece uma mistura de Candy Box com Civilization. Cuidado: VICIA, mas pelo menos acaba rápido, dá para terminar com algumas horas de jogo.
Semana passada eu encontrei o Martin Fowler e peguei um autógrafo no meu Refactoring. Esse é o melhor livro que você nunca quer usar, ele ensina todos os truques para transformar código legado feioso em código refatorado bonito. 


quinta-feira, 9 de abril de 2015

Mês passado eu adaptei o Aleste 2 para rodar em cartucho ao invés de disco (a versão em disco era muito ruim, você precisava ficar trocando de disquete no meio do jogo, e tinha pausas enormes de carregamento). Mas eu não tinha conseguido rodar no meu MSX turboR porque aqui no brasil ninguém fabrica cartuchos de msx com a capacidade que eu precisava.

Então eu comprei de um cara na frança. Chegou em duas semanas, rapidinho. Mas eu achei que ele ia me mandar um cartucho, e ele mandou um kit para fazer eu mesmo haha. Agora bora soldar o bichinho, pelo menos a parte difícil que era o smd ele já mandou pronta.

Se alguém quiser o meu port do aleste 2 para rom, o fonte está no github:

https://github.com/ricbit/aleste2



quarta-feira, 8 de abril de 2015

Hoje nasceu a filha do meu irmão, eu tenho três sobrinhos agora. Naturalmente, a primeira coisa que me passou pela cabeça ao saber do nascimento foi escrever uma simulação em python.
Meu irmão tem 50% dos meus genes, o primeiro filho tinha 25%. A segunda também tem 25%, mas não são os mesmos 25%, na média metade é repetido, então somando os dois filhos ele espalhou 37.5% do meus genes. Colocar na conta o outro irmão deixa as correlações complicadas, então eu escrevi uma simulação para ver o total:
Se eu não errei nada, somando os três sobrinhos tem 53% de ricbit vivendo por aí, já é mais do que se eu tivesse um filho! (Se eu tivesse um filho seria só 51.5%).