Monkey patch, o patch do macaco! Nao explica muita coisa, nao e? Na comunidade Python e uma expressao bastante comum. Para entender seu significado, vejamos o seguinte exemplo.Considere que temos uma classe Robot escrita no modulo (arquivo python) chamado agents.py.codigo original (agents.py):class Robot(object): def __init__(self): self.position = 0 def ahead(self): self.position += 1 def other_method(self): print "Other method" O monkey patch consiste em susbstituir atributos, metodos, funcoes e ate classes de outro modulo em tempo de execucao. No nosso exemplo, poderiamos fazer um monkey patch do metodo ahead() da classe Robot da seguinte maneira:codigo (patch.py):import agentsdef monkey_ahead(self_like_parameter): print "MONKEY PATCH" self_like_parameter.position += 3if __name__ == "__main__": agents.Robot.ahead = monkey_ahead my_robot = agents.Robot() my_robot.ahead() print my_robot.position my_robot.other_method()Execute python patch.py e tera o seguinte resultado:$ python patch.pyMONKEY PATCH3Other methodO (monkey) patch foi realizado na linha agents.Robot.ahead = monkey_ahead. Aqui a funcao monkey_ahead fez se passar pelo metodo ahead da classe Robot existente no modulo agents.Isso e possivel devido a tipagem dinamica do Python (tambem conhecida como "duck typing").Pelos resultados obtidos, verifica-se tambem que outros metodos (como other_method) e atributos (como position) continuam acessiveis e funcionando.Podemos dizer entao que o monkey patch e um enxerto no codigo. E um remendo! E claramente e algo que deve ser evitado ou, no minimo, usado com extremo cuidado.Fica bastante claro que o uso de monkey patch e totalmente acoplado ao codigo original. E isso e ruim. Se for usar, saiba o que esta fazendo.Outras fontes para consulta:http://www.mindfiresolutions.com/Monkey-Patching-in-Python-1238.php http://stackoverflow.com/questions/5626193/what-is-monkey-patching # E facil, facil... bem mais facil que pensei. :)# It's easy, easy... more easier than I thought. :)# Ant e Subversion sao dependencias opcionais# Ant and Subversion are optional dependenciesaptitude install sun-java6-jdk sun-java6-jre ant subversionwget http://www.red5.org/downloads/0_9/red5-0.9.1.tar.gztar -zxvf red5-0.9.1.tar.gzmv red5-0.9.1 red5mv red5 /usr/local/cd /usr/local/red5sh red5.sh# Acesse http://[IP_SERVIDOR_RED5]:5080/ e siga as instrucoes da pagina.# Access http://[IP_RED5_SERVER]:5080/ and follow the page instructions.# References:# http://www.red5.org/# http://tumbledesign.com/how-to-install-red5-0-9-on-ubuntu-10-04-lts/ -- A sequence is a database object that generates unique numbers, mostly used for primary key values.-- list all sequences in Oracle databases. select * from all_objects where object_type = 'SEQUENCE'-- Reference: http://www.orafaq.com/wiki/Sequence Por algum motivo esdruxulo, o Gnome 3 do Debian testing (ou 7) nao vem com a possibilidade de apagar arquivos com a tecla DEL, tal qual seria mais que natural em qualquer interface grafica. O padrao e Ctrl+DEL. Nesse momento, voce e eu temos duas alternativas:1 - conformar-se e passar a usar Ctrl+DEL para apagar arquivos no Gnome 3;ou2 - dar uma olhada nesse video mais que explicativo e aprender como modificar esse comportamento no Gnome (e ser feliz novamente).For some strange reason, Gnome 3 installed with Debian testing (version 7) doesn't come with the ability to delete files with the DEL key, a more than usual behaviour in any graphical interface. The default is Ctrl + DEL. At this point, you and I have two alternatives:1 - Conform yourself and begin to use Ctrl + Del to delete files in Gnome 3;or2 - look at this great video and learn how to modify this behavior in Gnome (and be happy again). Programar pela ZMI Web e um modo reconhecidamente ultrapassado. (Program in ZMI