Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

41
Potter x Voldemort: Lições Ofidiglotas da Prática Pythonica Rodrigo Senra - [email protected] PythonBrasil[6] - Curitiba - PR 1

description

Slides from my presentation at PythonBrasil 2010 in Curitiba

Transcript of Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Page 1: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Potter x Voldemort:Lições Ofidiglotas da Prática

Pythonica

Rodrigo Senra - [email protected][6] - Curitiba - PR

1

Page 2: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

•Eu, Vocês e Python

•Potter x Voldemort: o porquê !

•Hack Maligno: Depurador Omnisciente

•1 palavra dos patrocinadores

Anatomia do Blá

2

Page 3: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Apenas um rapaz latino americano...

• Desenvolvedor e Projetista de Softwarena HI Tecnologia (desde 2008)

(no mercado desde 1996 )

• Engenheiro de Computação Graduação-MSc-(PhD quase acabando) IC-Unicamp

• Entusiasta de Python(primeiro contato em 1997)

3

3

Page 4: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Cenas dos últimos capítulos...

[1] 2005 - BigKahuna

[2] 2006 - Show PyrotécnicoIteradores, Geradores,Hooks,Decoradores

[3] 2007 - Show Pyrotécnico IIRouting, RTSP, Twisted, GIS

[4] 2008 - ISIS-NBP Bibliotecas Digitais

[5] 2009 - Rest, Gtw e CompiladoresSFC(Rede Petri) + ST(Pascal) > Ladder

4

Page 5: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Python: 1001 utilidades

5

Page 6: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Interface IPTABLES (Python > Linux Kernel)

Servidor de Streaming (RTSP)

Sintetizador de Voz (CPqD’s TextoFala, MRCP)

Alta-disponibilidade para Clusters Linux

Gerador de tráfego - TCP/UDP

Gerenciamento de Riscos (Com JS)

Monitoramento Remoto (Zenoss before Zenoss)

Automação de Força de Vendas

Bibliotecas DigitaisSistemas de Cadastros Governamentais

Rastreamento de pornografia em Intranet

Python: 1001 utilidades

5

Page 7: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Interface IPTABLES (Python > Linux Kernel)

Servidor de Streaming (RTSP)Sintetizador de Voz (CPqD’s TextoFala, MRCP)

Alta-disponibilidade para Clusters Linux

Gerador de tráfego - TCP/UDP

Gerenciamento de Riscos (Com JS)

Monitoramento Remoto (Zenoss before Zenoss)

Automação de Força de Vendas

Bibliotecas DigitaisSistemas de Cadastros Governamentais

Rastreamento de pornografia em Intranet

Python: 1001 utilidades

6

Page 8: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Quem está aí ?

7

Page 9: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Quem está aí ?✓Profissionais de

Informática

7

Page 10: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Quem está aí ?✓Profissionais de

Informática

✓Desenvolvedores

7

Page 11: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Quem está aí ?✓Profissionais de

Informática

✓Desenvolvedores

✓Estudantes

7

Page 12: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Quem está aí ?✓Profissionais de

Informática

✓Desenvolvedores

✓Estudantes

✓Professores

7

Page 13: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Quem está aí ?✓Profissionais de

Informática

✓Desenvolvedores

✓Estudantes

✓Professores

✓1ª vez na PyConBrasil

7

Page 14: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Quem está aí ?✓Profissionais de

Informática

✓Desenvolvedores

✓Estudantes

✓Professores

✓1ª vez na PyConBrasil

✓Membros APyBr

7

Page 15: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Quem está aí ?✓Profissionais de

Informática

✓Desenvolvedores

✓Estudantes

✓Professores

✓1ª vez na PyConBrasil

✓Membros APyBr

• Nenhuma resposta acima!

7

Page 16: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

O porquê do título !

8

Page 17: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Duelo de linguagens

9

Page 18: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Duelo de linguagens

9

Page 19: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Duelo de linguagens

10

Page 20: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

11

Page 21: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

import java.io.*;import java.util.*;import java.text.*;public class sumcol {public static void main(String[] args) { int count = 0; String line; try { BufferedReader in = new BufferedReader( new InputStreamReader(System.in)); while ((line = in.readLine()) != null) { count = count + Integer.parseInt(line); } } catch (IOException e) { } System.out.println(Integer.toString(count));

Java

11

Page 22: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

import java.io.*;import java.util.*;import java.text.*;public class sumcol {public static void main(String[] args) { int count = 0; String line; try { BufferedReader in = new BufferedReader( new InputStreamReader(System.in)); while ((line = in.readLine()) != null) { count = count + Integer.parseInt(line); } } catch (IOException e) { } System.out.println(Integer.toString(count));

Javausing System;class App {public static int Main(String[] args) { int count = 0; for (String line = Console.In.ReadLine(); line != null; line = Console.In.ReadLine()) { count += System.Convert.ToInt32(line); } Console.WriteLine(count.ToString()); return(0); }

C#

11

Page 23: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

import java.io.*;import java.util.*;import java.text.*;public class sumcol {public static void main(String[] args) { int count = 0; String line; try { BufferedReader in = new BufferedReader( new InputStreamReader(System.in)); while ((line = in.readLine()) != null) { count = count + Integer.parseInt(line); } } catch (IOException e) { } System.out.println(Integer.toString(count));

Javausing System;class App {public static int Main(String[] args) { int count = 0; for (String line = Console.In.ReadLine(); line != null; line = Console.In.ReadLine()) { count += System.Convert.ToInt32(line); } Console.WriteLine(count.ToString()); return(0); }

C#import syscount = 0while 1: line = sys.stdin.readline().strip() if not line: break count += int(line)print count

Python

11

Page 24: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

import java.io.*;import java.util.*;import java.text.*;public class sumcol {public static void main(String[] args) { int count = 0; String line; try { BufferedReader in = new BufferedReader( new InputStreamReader(System.in)); while ((line = in.readLine()) != null) { count = count + Integer.parseInt(line); } } catch (IOException e) { } System.out.println(Integer.toString(count));

Javausing System;class App {public static int Main(String[] args) { int count = 0; for (String line = Console.In.ReadLine(); line != null; line = Console.In.ReadLine()) { count += System.Convert.ToInt32(line); } Console.WriteLine(count.ToString()); return(0); }

C#import syscount = 0while 1: line = sys.stdin.readline().strip() if not line: break count += int(line)print count

Pythonimport sys, itertoolsprint sum(itertools.imap(int, sys.stdin))

Python

11

Page 25: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Truth lies on statistics!

12

Page 26: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

13

Page 27: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

2000

DC#

Mac OSXLinux

WindowsME

2000XP

Vista7

40

Plankalkü

Transistor

50

FortranLISP

Harddisk

CircuitoIntegrado

60

COBOLSIMULABASICLOGO

ITSOS360

MULTICS

Mouse

InterrupçõesVirt.MemARPANET

RS-232

70

PascalC

SmalltalkProlog

UNIXCP/MVMS

Floppy

Micro-processador

PONGTCP/IP

Ethernet

80

AdaC++PerlSQL

LISAMacintosh

UNIXMS-DOSWindows

1.0-2.0OS/2

MINIXAIX

HPUXSCOGNURISC

90

JavascriptPython

JavaPHP

BeOSLinuxSolaris

Windows2.0 - 98

OpenBSD

ISAWWW

Go

13

Page 28: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

http://www.tiobe.com14

Page 29: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

http://www.tiobe.com14

Page 30: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

x86 Ubuntu™ Intel® Q6600® one core - http://shootout.alioth.debian.org/ 

15

Page 31: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Hack MalignoDepurador Omnisciente

16

Page 32: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Omniscient Debugger

Bil Lewis

2006-01-11http://video.google.com/videoplay?docid=3897010229726822034#

“... describes the concept that debuggers shouldknow everything about the run of a program, that they should remember every state change, and be able to present to you the value of any variable at any point in time. Essentially, omniscient debugging means that you can go backwards in time.”

In 1969, Bob Balzer implemented a version of omniscient debugging for Fortran that ran on a mainframe and had a TTY interface(see “EXDAMS—Extendible Debugging and MonitoringSystem,” ACM Spring Joint Computer Conference, 1969)

17

Page 33: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

18

Page 34: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Quem assistiu (ontem)a palestra

MetaPython Reciclado do JS ?

Vamos ter que usar aquela fábrica

de metaclasses ?

19

Page 35: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Hora da Demo

Dá tempo de vero Python em ação ?

É possível ?Seria pedir muito ?

20

Page 36: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Uma palavra dos patrocinadores...

21

Page 37: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Uma palavra dos patrocinadores...

21

Page 38: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Perguntas ?Comentários ?

22

Page 39: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Até crianças

podem lidar com Python!

23

Page 40: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Até crianças

podem lidar com Python!

23

Page 41: Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pythonica

Obrigado a todos pela atenção.

Rodrigo Dias Arruda Senrahttp://rodrigo.senra.nom.br

[email protected]

As opiniões e conclusões expressas nesta apresentação são de exclusiva responsabilidade de Rodrigo Senra.

Não é necessário requisitar permissão do autor para o uso de partes ou do todo desta apresentação, desde que não sejam feitas alterações no conteúdo reutilizado e que esta nota esteja presente na íntegra no material resultante.

Imagens e referências para outros trabalhos nesta apresentação permanecem propriedade daqueles que detêm seus direitos de copyright.

24