29 de abr de 2011

Musiquinhas

Cheguei em casa hoje e o mano me mostrou o seguinte video, dos mesmos caras que fizeram o "Eu sou 1337":



De cara, quando ouvi os primeiros 3 segundos, lembrei da música da primeira fase (Corneria) do Star Fox pra SNES. Pelo visto, foi só por acaso, mas o mano disse que também se lembrou.

Fui, daí, ouvir a música, mas como um amigo meu chamado André tinha me dito eles tinham refeito a música no Star Fox 64, eu fui procurar essa versão. Não achei: tendo encontrado esse canal (que aparentemente tem a trilha inteira), não achei nenhuma música que sequer chegasse perto da música de Corneria. Então, posto aí a versão de SNES presente no canal do OSTation (um dos melhores canais de trilha sonora que eu conheço):



Dando uma olhada nas coisas que tinha "na volta" (i.e., nos videos relacionados), encontrei umas coisas bem legais.

No início vi um monte de videos de gente tocando a música do Fox em versão de piano, mas a única que, no fim, prestou, foi uma que nem mostrava o cara tocando (e, assim, é de procedência duvidável):



Daqui, achei uma que realmente valeu a pena ver:



Aí, encontrei dois videos feitos mostrando o uso de um programa chamado Synthesia. Parece que ele pega usa midi para "gravar" aquilo que o músico instrumentista tiver tocado e depois é capaz de mostrar o midi de forma bastante intuitiva pra o usuário leigo (que não entende nada de música). Um dos videos mostra a Stickerbrush Symphony (também conhecida como Brambles), do Donkey Kong Country 2; o outro - que eu achei ÓTIMO (apesar de eu não gostar de Naruto, eu gosto da trilha e aprendi a gostar especialmente dessa música por influência de meus parentes u.u) -, mostra a Sadness and Sorrow, da trilha sonora do Naruto. É disparada uma das melhores versões dessa música que eu já ouvi até agora.

AAA... encontrei uma música, Requiem for a Dream (é aquela música que usam direto em videos de teoria da conspiração, sabem?) que achei bem boa - mas tem que olhar até o fim, porque a parte loucona está lá.







Por fim, encontrei o grande motivo de eu ter resolvido fazer esse post: um video com a música da Forest Maze, do Super Mario RPG. O nome é Beware the Forest Mushrooms (eu quase fui procurar o nome aqui no meu computador, mas vi que na descrição o cara dizia =D). Achei ÓTIMO! E, melhor ainda, o cara usou o Finale (é o mesmo programa que eu uso)!

Tá aí o video, então:



Enfim... como fazia tempo e eu não aparecia por aqui, achei que seria interessante deixar uma postagem como foram aquelas das minhas férias, cheias de videos interessantes - ao menos pra mim - pra o povo ver =D

R$

21 de abr de 2011

Coding Dojo

Participei, hoje, pela primeira vez, de um coding dojo.

O contador de tempo que a gente tinha lá até que pode-se dizer que era bem parecidinho com esse daí u.u

Para o leitor que talvez não saiba, explicarei como funciona, através de minhas palavras (o que pode confundir ou pode clarear a mente do leitor, randomicamente).

Coding dojo é uma atividade em que se reúne um certo grupo de indivíduos programadores para resolver um problema, seguindo algumas estipuladas regras. A idéia é que os programadores que não conhecem a linguagem de programação usada na reunião (essa linguagem é decidida pelo grupo) tenham contato com ela e aprendam os seus basics - pra mim foi tri bom, porque eu nunca tinha mexido com Python.

Estipula-se um tempo (no nosso caso, foi 5min) durante o qual cada programador poderá permanecer programando. Além disso, sempre haverá alguém "ao lado" do programador do momento, para ajudá-lo. A ordem em que se escolhe o programador do momento é dada através (foi assim no nosso caso, ao menos) de uma fila:

Seja PM o programador do momento, AJ o ajudante do momento, e P = (p1,...,pn) a fila dos programadores da platéia, n sendo o número total de programadores menos 2, o processo de troca de programadores se dá, ao término do tempo estipulado, de forma que

PM <-- AJ   ,    AJ <-- p1   ,   pn <-- PM   ,   pk <-- pk+1   ,   1 < k < n

Eu não entendi se isso é natural de todos os coding dojos ou se é só aqui que ocorre sempre assim, mas a gente usa uma técnica de programação chamada TDD: Test Driven Development. A idéia é que, se o nosso algoritmo resolve o problema que estamos tentando resolver, ele deve passar em alguns testes (podem ser testes bem óbvios, como "a entrada está certa", ou "para dada saída, o algoritmo deveria responder tal resposta"). Assim, formulando testes, vamos literalmente "construindo" um algoritmo que faz aquilo que queremos, com a vantagem de que os casos de possíveis erros são testados já na hora de criar o algoritmo. Além disso, ao solucionar-se um teste, a platéia pode comentar sobre o que poderia ter sido feito para melhorar o código, ou coisas do tipo, refletindo, enfim, sobre o código apresentado na tela (eu não explicitei isso, mas a idéia é que a platéia esteja, como tal, realmente vendo o que está acontecendo no computador onde o programa está sendo desenvolvido, através, por exemplo, de um projetos).

Enfim... eu participei de um coding dojo, e achei bem legal (e aprendi um pouquinho de Python =D). Fiquei feliz, principalmente porque o problema que a gente tava resolvendo era muito tri (fizemos altas referências à teoria das categorias)  e porque nas próximas vezes espera-se que tenhamos mais do que os pouquíssimos cinco que fomos hoje, na estréia da série 2011 dos coding dojo INF/UFRGS.

Por fim, deixo o link do site do Coding Dojo INF/UFRGS:
http://www.inf.ufrgs.br/pet/index.php?option=com_content&view=article&id=7&Itemid=21 

Lá o leitor encontrará o código de todas as reuniões dos dojos de 2010 e - espero eu -, de 2011 (quando tivermos mais dojos =D). Além disso, vale avisar (caso o leitor seja meu colega) que a participação nos dojos poderá valer créditos complementares num futuro creio que relativamente distante u.u

Eras isso...

R$

15 de abr de 2011

Meu sumiço

Peço desculpas, caro leitor, pelo meu sumiço. Andei cheio de coisas pra fazer (um post anterior explica um pouco sobre isso) e não pude escrever durante esse tempo.

Pois bem, estou de volta. Nos próximos posts pretendo falar um pouco sobre as coisas que tenho aprendido na muito maravilhosa cadeira de computação gráfica que tenho feito. Disparado, a cadeira mais legal de todas as que fiz até agora. Muitíssimo legal! Também pretendo continuar com a tradução do Haskell (mal peguei o treco pra ver, me apareceram muitos trabalhos pra fazer e no fim não fiz nada - como um comum nativo falante da língua portuguesa entenderia - ainda D=).

Como me tem sido necessário programar relativamente bastante nos últimos tempos, tenho "descoberto" algumas coisas que, apesar de nem ser grande coisa para quem já conhece, pra mim foi bem útil e interessante. Dessa forma, pretendo ainda fazer um post sobre isso, passando links sobre lugares por onde eu passei que têm informações que me interessaram.

Como eu não passei SÓ por sites de programação, eu também pretendo compartihar algumas bobagens que encontrei por aí, que me agradaram tanto quanto acho que agradariam ao leitor =D

Enfim... é isso: muitos planos, muita coisa pra postar, um pouco de tempo para fazer isso. Vamos ver se arranjo tempo nesse fim de semana para pôr em prática esses meus planos u.u

R$

5 de abr de 2011

Traduzindo o Learn you a Haskell for Great Good


Vou pôr em prática um projeto em que vinha pensando há alguns dias - desde que comecei a ler o Learn You a Haskell For Great Good. Vou ajudar na tradução do referido livro.

Estava há uns dias lendo ele - e parei no capítulo 6, Higher Order Functions (apesar de saber já o que tem ali dentro u.u) - e pensando em como seria bom se o livro estivesse em português. Não por mim: a linguagem do livro é boa e mesmo em inglês não tenho nenhuma dificuldade para entender o que está sendo dito. Mas, tendo procurado no google por material sobre Haskell na internet em português, não achei absolutamente nenhum tutorial de qualidade. Certo é que eu procurei só na primeira página, mas, enfim, admita-se que, se há, é em pequenina quantidade.

Assim, tendo falado com um cara que, pelo que vi, já traduziu três capítulos do livro (me pergunto o motivo, mas os capítulos são o 1, o 8 e o 9 O.o), em conjunto com mais "dois outros programadores" (palavras dele), resolvi ajudar. O projeto é pequeno: no github, tem 6 watchers (contando comigo) e 3 forks; mas creio que a sua utilidade será grande =D

Droga é que finalmente terei de aprender (isso não é tão ruim assim, mas a verdade é que eu estava evitando há um tempo isso) a usar o famigerado github, que sempre me deixa meio assustado - essa coisa de criar um fork com um projeto igual e depois ficar mandando pull requests é meio estranha pra mim D=. Bom é que finalmente estarei fazendo alguma coisa "para a comunidade", como sempre pretendi. Gosto dessa coisa de ser útil para a comunidade, mas nunca fui bom o suficiente para produzir algo bom o suficiente para ser aceito por todos. Acho que agora finalmente poderei me sentir útil ao traduzir um livro que certamente é conhecido por todos aqueles que apredem Haskell.

Enfim... era isso \o/

R$