Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Python: a arma secreta de todo mundo

Python: a arma secreta de todo mundo

Apresentação feita especialmente para RoadSec São Paulo 2015

Luciano Ramalho

November 12, 2015

Transcript

66 slides
  1. Quem é @ramalhoorg? • 1978: programador de calculadora • 1994:

    CTO do BOL na Abril S/A • 2010: Garoa Hacker Clube • 2015: Technology Principal na ThoughtWorks em São Paulo 12/11/15 4
  2. Da ideia ao contrato • 2013: – Ideia: escrever um

    livro em vez de uma dissertação – Julho: Palestra na OSCON (O'Reilly Open Source Convention, PDX) – Setembro: Contrato assinado. Estimativa: 300 páginas 12/11/15 6
  3. O meio da maratona • 2014: – Julho: escrevendo em

    tempo integral++ – Outubro: Early Release (147 p.) revisores técnicos: 1º feedback 12/11/15 8
  4. Sprint final • 2015: – Março: “manuscrito” terminado – Julho:

    pós-produção terminada – Agosto: lançamento da 1ª edição – Setembro: +vendido no site oreilly.com – Novembro: edição brasileira (Novatec) 12/11/15 10
  5. Fluent Python: feito com Python • Texto editado em Asciidoc,

    sistema de documentação escrito em Python (+ rico que Markdown) • Exemplos testados com doctest, parte da biblioteca padrão de Python 12/11/15 15
  6. Python no Cinema “Havia uma guerra entre linguagens de scripting

    para CGI. A guerra acabou e Python ganhou.” André de Souza, Átomo VFX 12/11/15 20
  7. Caso concreto: Quanta Post • Replicar 100 figurantes para preencher

    a platéia de um teatro com 1500 lugares 12/11/15 24
  8. Caso concreto: Quanta Post • Sem Python: 1 semana •

    Com Python: 1 tarde • ½ página de código 12/11/15 28
  9. Uma combinação rara • Confortável para pequenos scripts – simples,

    enxuta, ágil, poderosa como Perl • Viável para grandes projetos – classes, packages, namespaces como Java 12/11/15 38
  10. Exemplo: spreadsheet 12/11/15 41 >>> from math import pi, sin

    >>> from planilha import Planilha >>> p = Planilha(sin=sin, pi=pi) >>> p['a1'] = '.5' >>> p['a2'] = 'pi' >>> p['b1'] = 'a1*a2' >>> p['b2'] = 'sin(b1)' >>> p['b2'] 1.0
  11. lis.py >>> from lis import repl >>> repl() lis.py> (*

    7 3) 21 lis.py> (define resposta (* 6 7)) lis.py> resposta 42 lis.py> (define ! (lambda (n) (if (= n 0) 1 (* n (! (- n 1)))))) lis.py> (! 4) 24 lis.py> (! 5) 120 lis.py> (! 197) 1000784055840808212213038949713447365990477612414564315637204371915587 3432356267992999140703669669355669473784819547723849774666136777791800 6944650646265409257583733981874437495228286501182991424477395086576066 3534673533357987278378353286942804393055226030731188238628318646302096 5564236109229237840670256867960885535047680000000000000000000000000000 0000000000000000000
  12. Estudo de caso: Scapy • Ferramenta “estado da arte” em

    sua categoria • Aproveita recursos avançados de Python, como sobrecarga de operadores, para proporcionar facilidade e praticidade ao usuário 12/11/15 54
  13. Python em IoT • Pré-instalado em todas as placas que

    rodam GNU/Linux • Roda em alguns microcontroladores – Projeto MicroPython: https://micropython.org/ • Muitas bibliotecas auxiliares 12/11/15 56
  14. Pingo means “Pin, go!” • Biblioteca multi-plataforma para controle de

    pinos programáveis • Projeto do Garoa Hacker Clube • Software livre, código no GitHub – Docs: http://pingo.io – Repositório: https://github.com/pingo-io 12/11/15 58
  15. Demo: Pingo interativo 12/11/15 59 >>> from pingo import *

    >>> ard = detect.get_board() >>> ard <ArduinoFirmata '/dev/tty.usbmodemfa1341'> >>> ard.pins {'0': <DigitalPin @0>, '1': <DigitalPin @1>, '2': <DigitalPin @2>... >>> p13 = ard.pins[13] >>> p13.mode = OUT >>> from time import sleep >>> while True: ... p13.toggle() ... sleep(.1) ...
  16. • Consultoria global de TI – foco em agilidade: Martin

    Fowler, C/Scientist – uso crescente de Python em clientes • Colabora com software livre – OpenStack (RackSpace, NASA, +500...) – Pixelated: end-to-end encrypted e-mail (LEAP Platform) 12/11/15 61
  17. Invista em Python • Facilidade de uso == retorno rápido

    • Versatilidade == retorno duradouro • Estudar Python é um dos melhores investimentos que você pode fazer em sua carreira 12/11/15 65

More Decks by Luciano Ramalho

Other Decks in Technology