Mind Bending

A PyCon sempre é cheia de grandes surpresas e ótimas palestras. Mas em certos momentos aparecem palestras que simplesmente te deixa de queixo aberto, este é o cado desta palestra.

Fiquei pensando em como descrever sucintamente essa palestra de Richard T. Saunders. Encontrei apenas essa frase: Esta é uma daquelas palestras que abre a sua mente.

PyCon2011 Logo

PyCon2011 Logo

Uma das coisas mais misteriosas no Python é o módulo pickle. Ele é capaz de serializar praticamente qualquer objeto no Python e, simetricamente, desserializa-lo. A sua utilização chega a parecer mágica, de tão simples e intuitivo que é. Nessa palestra, após uma introdução sobre o que o pickle, outras opções e algumas comparações, o Sr, Saunders explica minuciosamente a lógica de funcionamento do pickle.

Muitos vão dizer que não é necessário saber (ou é uma perda de tempo estudar) como pickle funciona, basta saber usá-lo. Eu acredito que ter esse tipo de conhecimento é um carta na manga! Em um belo dia, quando você estivar lidando com um problema real, seu subconsciente irá lhe cutucar e falar: "Você pode resolver esse problema usando a mesma lógica que o pickle usa!".

Richard T. Saunders utiliza o Python há 10 anos em seu trabalho na corporação Rincon Research e também é professor da matéria de Engenharia de Software na Universidade do Arizona. Em seu trabalho precisou fazer o trabalho de "engenharia reversa" no módulo pickle e como "consequência" de seu trabalho, criou a biblioteca PicklingTools, uma biblioteca open source para realizar a comunicação entre o Python e C++.

Nessa palestra o Sr. Saunders cobre diversos pontos como:

  • Origem do nome pickle;
  • O que é pickle, pickling and unpickling;
  • O que é a serialização;
  • Exemplos de código de pickling e unpickling para salvar o estado de um jogo;
  • Alternativas ao pickle (marshall, XML, JSON e Google protocol buffers);
  • Por que usar o pickle (vantagens e desvantagens);
  • Comparações entre as alternativas do pickle;
  • Versões do pickle (0, 1, 2 e 3) e uma breve história de cada um;
  • Comparação entre as versões do pickle;
  • Análise do código de máquina (opcodes, pilha de valor e a pilha de marcação) utilizada pelo pickle;

Os slides da palestra estão disponíveis pra download em PDF aqui.

Assumo que ao final dessa palestra fiquei extremamente tentado a escrever um módulo "simplificado" do pickle, simplesmente para saber se sou capaz.

Magnun

Magnun

Engenheiro de telecomunicações por formação, mas trabalha com suporte à infraestrutura GNU/Linux, e nas horas vagas é Programador OpenSource (Python e C) desenhista e escritor do Mind Bending Blog.


Comments

comments powered by Disqus