Dojo Ojod (ou Scrapheap Challenge)

No mês passado participamos de uma atividade promovida pela ThoghtWorks Brasil em Porto Alegre e organizada pelo Carlos Villela (CV). Eles aproveitaram a ocasião do FISL12 para organizar esse pequeno evento no confortável escritório que fica dentro do campus da PUC-RS. Foi pequeno em relação ao número de participantes (acho que éramos em uns 30), mas enorme em divertimento e aprendizado.

A brincadeira era uma espécie de Dojo, com regras um pouco exóticas. A ideia original foi do Nat Pryce e do Ivan Moore, e eles chamaram de Scrapheap Challenge, por causa do programa de TV, mas eu resolvi re-batizar para Dojo Ojod (um palíndromo de Dojo ao contrário), pois foi exatamente assim que o CV definiu (e que eu concordo muitíssimo): um Dojo ao contrário.
Continue reading

Using your Hack abilities to help Japan

I’ve just received this message from Elizabeth Sabet, and I’d like to share it with all my friends. If you can help, please go ahead! Use your technical skills for the good of others:

As we watch with shock and profound sadness the tragedy unfolding in Japan and across the Pacific rim in the wake of the Sendai earthquake, our hearts and sympathies are with the families affected and their loved ones around the world. Both personally and professionally, we are deeply sensitive to the challenges now facing that region.
Continue reading

Monkey Patch em Javascript

Monkey Patch é uma técnica de programação bem conhecida para modificar código runtime em linguagens dinâmicas (Smalltalk, JavaScript, Objective-C, Ruby, Perl, Python, Groovy, etc.) sem alterar o código fonte original. Programadores Ruby estão bem acostumados a criar novos métodos para classes já existentes. O Rails faz isso em várias classes do Ruby, por exemplo, adicionar o método to_xml à classe Hash. A maneira de fazer isso em ruby é:

  class String
    def meu_novo_metodo
       return self + "-> alterada"
    end
  end
  # "essa string".meu_novo_metodo retorna "essa string-> alterada"

Continue reading

Dojo Kake

O modelo de Dojo que estamos acostumados é o Dojo Randori, aquele em que temos uma dupla programando (o piloto e o co-piloto) e um telão para mostrar para o resto da plateia o código que está sendo feito. A cada 5 ou 7 minutos o co-piloto ocupa o lugar do piloto e alguém da plateia ocupa o lugar do co-piloto. No Randori, todo desenvolvimento é sempre feito usando TDD.

O Dojo Kake é uma modalidade diferente de Coding Dojo. Continue reading

Random Hack of Kindness

This weekend I was working at the first Random Hack of Kindess mundial edition. There were 4 people in our team and we worked on a project called Urban Fact (Fato Urbano in Portuguese). The main idea of this project is to emphasize GOOD orBAD facts in your city. If you see someone throwing the garbage over the streets, just take a picture and post it on twitter using #urbanfact hashtag (or #fatourbano). This picture automatically  goes to the project website, where people can vote, comment and share with friends.
Continue reading

#QCON – Functional Programming, Music and Art

Last month, at QCON, I was in a great talk about functional programming languages (like Haskell) and their benefits to the Art world. The title of the talk was “How Functional Programmers can
Help, Inspire, or even Be Artists”. First of all I’d like to emphasize that all good programmers are artists, and as Richard Gabriel said 6 years ago, we programmers should be trained like artists. This is the major problem of our Computer Science Courses.

We all know artificial intelligence and computer tools are getting better and better. Right know we can easily produce things like this video:

Continue reading