segunda-feira, 20 de agosto de 2007

IRC Bot, Remote Tic-tac-toe e outros ...

Bom pessoal, eu não tenho muito o que falar hoje além de coisas que todo mundo já está cansado de saber. Bem, as novidades dessa semana são que eu vou viajar daqui alguns dias pra fazer um curso de instalação e configuração de redes wireless na Escola Superior de Redes da RNP, em brasília. Por algum motivo que eu desconheço, isso reacendeu a centelha do programador que há muito tempo existiu dentro desse que vos fala. Por isso, hoje vou falar dos meus projetos pessoais ...

Bem, primeiramente vamos falar do projeto primordial, o Bot de IRC. Para aqueles que me conhecem do knal #DelphiX na antiga Brasnet e hoje na Freenode, eu estou desde 2002 desenvolvendo, aprimorando, mexendo aqui e ali no código do meu bot. Até o momento eu já desenvolvi a camada de protocolo com alto grau de coesão e acoplamento mínimo ... Poderia ser menor, mas estava com preguiça de fazer todo um refactoring no código dele. Então, esse bot que estou mexendo há séculos voltou a se tornar uma prioridade em minhas atividades extra-curriculares. Estou corrigindo um erro de buferização na camada de recepção de dados e, com a graça os bons ventos, na próxima semana ele deverá estar fazendo sua primeira aparição na rede IRC em quase 5 anos de existência.

Em segundo lugar, vem o código do projeto que eu estou desenvolvendo para competir com um amigo meu pra ver quem termina primeiro um jogo da velha on-line, cliente e servidor. Estamos mais ou menos em pé de igualdade. Só que no começo não foi assim. Como eu tinha mais experiência de análise e projeto que meu amigo, enquanto ele estava programando eu estava rabiscando umas folhas e quando ele estava a procura de erros no seu código, eu estava codando. Só que minha análise não foi perfeita. E cá estou eu a procurar uns erros difíceis de serem detectados. Não é pq estou usando threads, mas porque depois que o servidor estava praticamente pronto e foi a teste pela primeira vez que descobri uma série de falhas estruturais no código deste, o que me levou a reavaliar toda a análise que eu fiz no começo. Tudo isso para um jogo da velha ... Imagine se fosse um software de gestão escolar ?? ahuahauah Ah, para constar, eu estou usando meu tcc nesse jogo, aplicando avançadas técnicas de reinforcement learning e de redes meurais MLP para criar um jogador que demora um século para aprender a jogar direito hauahuahuahauhau

Em terceiro lugar, algumas pessoas estão extremamente curiosas para saber quando é que eu irei postar mais uma daquelas histórias cabulosas que eu escrevo. Calma pessoal, o Conspiração Palmas, A Dominação Global está saindo do forno. Não é fácil escrever sobre uma sociedade nos limites da percepção humana e continuar vivo ainda ... Só lhes adianto que o tópico novo envolverá transporte coletivo e ... Shopping ... Esperem ...

E por último, o mais velho de todos os projetos, e o mais complexo de implementar até o momento. O meu compilador. Não é o mesmo que eu fiz na faculdade, aquele é simplório demais para fazer o que eu pretendo. Este está sendo baseado no set da linguagem Oberon-2, uma das linguagens com a sintaxe mais simples e ao mesmo tempo, bastante completa. Aqueles que procurarem algum código em Oberon-2 verão que ele se parece muito com o Pascal. E de fato, a linguagem foi criada pelo criador do Pascal, Niklaus E. Wirth. Pascal foi uma de uma série de linguagens desenvolvidas pelo célebre professor, que desenvolveu as seguintes linguagens: Euler, Algol W, Pascal, Modula, Modula-2, Oberon, Oberon-2 e a última linguagem da qual participou ativamente do desenvolvimento, chamada Component Pascal, além de ter desenvolvido a linguagem PL/0 para demonstrar as técnicas do desenvolvimento de linguagens. Bom, o interessante é que vou usar o set da linguagem Oberon-2 e que num futuro o compilador, que não gerará código de máquina, mas bytecode, será transformado em um componente de scripting plugável em aplicações. Um futuro um pouco distante e nebuloso, já adianto a todos.

E para aqueles que estão um pouco decepcionados com meus atrasos nas postagens dos resumos do Senhor dos Anéis, que ainda nem comecei, e da crônica, eu só posso me desculpar, pq recentemente eu tive que usar o meu pendrive (que não é meu, é da ETF) para fazer uns backups, e como eu já tinha backups dos dados do pendrive, eu detonei sem dó, e até hj não refiz o backup no pendrive ... Sempre me lembro na hora que mais preciso dos dados hehehe

Eh isso. Hj não vou postar mais nada de interessante não. Estou cansado, com preguiça e irritado com o vim que insiste em bagunçar a identação dos meus arquivos. Ah, só para constar, eu finalmente consegui compilar minha aplicação em C++ sem nenhum erro que me irritasse, agora estou convertendo algumas aplicações antigas, para aprender e entender mais da sintaxe dessa linguagem ... Acho que amanhã vou aproveitar e tb compilar o kernel 2.6.22.3.

Gente, mas eu falo né !! Fala sério !! Flws !! É isso !! Finalizo com alguns quotes que eu sempre uso nos meus e-mails ...
--
Wirth's law
"Software gets slower faster than hardware gets faster"

Murphy's Law
"Any given program will expand to fill all the available memory"

Anonymous Law
"Theory is when you know everything but nothing works.
Practice is when everything works but nobody knows why.
We have put together theory and practice: there's nothing that is working... and nobody knows why"