Browse Source

Complete

master
Julio Biason 1 week ago
parent
commit
c981a61828
  1. BIN
      _images/ds9-dax-bathlet.jpg
  2. BIN
      _images/ds9-dax-eyebrows.gif
  3. BIN
      _images/ds9-dax-kick-ass.gif
  4. BIN
      _images/me-background.png
  5. BIN
      _images/tng-troi-cowboy2.gif
  6. BIN
      _images/tos-kirk-sidelook.webp
  7. BIN
      _images/voy-janeway-congratulations.webp
  8. BIN
      _images/voy-janeway-correct.webp
  9. 214
      nao-sou-eu.html

BIN
_images/ds9-dax-bathlet.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

BIN
_images/ds9-dax-eyebrows.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 1005 KiB

BIN
_images/ds9-dax-kick-ass.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

BIN
_images/me-background.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

BIN
_images/tng-troi-cowboy2.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

BIN
_images/tos-kirk-sidelook.webp

Binary file not shown.

After

Width:  |  Height:  |  Size: 643 KiB

BIN
_images/voy-janeway-congratulations.webp

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 MiB

BIN
_images/voy-janeway-correct.webp

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 MiB

214
nao-sou-eu.html

@ -7,9 +7,12 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
<link rel="stylesheet" href="dist/reset.css"> <!-- <link rel="stylesheet" href="dist/reset.css"> -->
<link rel="stylesheet" href="dist/reveal.css"> <!-- <link rel="stylesheet" href="dist/reveal.css"> -->
<link rel="stylesheet" href="dist/theme/night.css" id="theme"> <!-- <link rel="stylesheet" href="dist/theme/night.css" id="theme"> -->
<link rel="stylesheet" href="reveal.js/css/reveal.css">
<link rel="stylesheet" href="reveal.js/css/theme/night.css" id="theme">
<!-- Code syntax highlighting --> <!-- Code syntax highlighting -->
<link rel="stylesheet" href="dist/highlight/zenburn.css"> <link rel="stylesheet" href="dist/highlight/zenburn.css">
@ -85,20 +88,18 @@
<h2>Quem?</h2> <h2>Quem?</h2>
</section> </section>
<section data-background="_images/avatar-hd.png"> <section data-background="_images/me-background.png">
<div class="semi-opaque"> <div class="semi-opaque">
<h3>Júlio Biason</h3> <h3>Júlio Biason</h3>
</div>
<div class="semi-opaque">
<div>
<ul class="empty"> <ul class="empty">
<li>Programador a 30 anos</li> <li>Programador a 30 anos</li>
<li>Programando em Python desde 1998</li>
<li>Praticante de mototerapia</li> <li>Praticante de mototerapia</li>
<li>Trekkie</li> <li>Trekkie</li>
</ul> </ul>
</div> </div>
</div>
</section> </section>
<section> <section>
@ -174,6 +175,10 @@
<section> <section>
<h4>"Vamos fazer um browser em Python!"</h4> <h4>"Vamos fazer um browser em Python!"</h4>
<small>
- Bando de sem-noção na universidade, eu incluso.
</small>
</section> </section>
<section> <section>
@ -311,22 +316,65 @@
<h3>Nova Separação</h3> <h3>Nova Separação</h3>
</section> </section>
<!-- java --> <section>
<!-- rust do lado --> <img src="_images/tos-kirk-sidelook.webp" class="stretch">
<aside class="notes">
Mas aí eu resolvi mudar de empresa, acabei caindo num
projeto Java.
</aside>
</section>
<section>
<!-- <img src="_images/voy-janeway-congratulations.webp" class="stretch"> -->
<img src="_images/ds9-dax-kick-ass.gif" class="stretch">
<aside class="notes">
Por fora, eu comecei a olhar para Rust, porque era o
burburinho que tava se falando na época -- e eu tava
entediado com Java, e queria aprender algo novo.
"Uma linguagem que não muda a sua forma de pensar em
programação, não vale a pena ser aprendida -- Alan Perlis"
</aside>
</section>
<section> <section>
<h3>Mais do Mesmo</h3> <h3>Mais do Mesmo</h3>
</section> </section>
<!-- django, mas nada de impressionante --> <section>
<!-- rust do lado, de novo --> <img src="_images/tng-troi-cowboy2.gif" class="stretch">
<aside class="notes">
Quando eu consegui voltar pro Python, eu voltei também
com Django. E aí a situação já tava morna, era algo
como "mais do mesmo", "caí na rotina"...
</aside>
</section>
<section> <section>
<h3>O Começo das Brigas</h3> <!-- <img src="_images/voy-janeway-correct.webp" class="stretch"> -->
<img src="_images/ds9-dax-eyebrows.gif" class="stretch">
<aside class="notes">
Por algum motivo, eu continuei tentando aprender Rust.
Várias coisas "clicaram" do jeito certo com a
linguagem.
Teve inclusive um pequeno projeto que eu fiz com
websockets que precisava de performance (dados vindos
com muita frequencia) e que entraria com outro projeto
em C++, mas controle de dependências em C++ é um porre
do inferno, e eu estava preocupado que Python não teria
a performance necessária. No fim, até meu chefe (que
fez a parte em C++) disse que o código ficou bonito.
</aside>
</section> </section>
<!-- Diana Troi e Luxwana Troi --> <section>
<!-- Diana Troi quando perdeu a capacidade de sentir emoções --> <h3>O Começo das Brigas</h3>
</section>
<!-- Múltiplas versões, incluindo não-mantidas --> <!-- Múltiplas versões, incluindo não-mantidas -->
<section> <section>
@ -347,26 +395,54 @@
Tem que funcionar em todas. Tem que funcionar em todas.
("Vou usar o Walrus operator! Olha que lindo!" "Não tem Walrus no 3.6") ("Vou usar o Walrus operator! Olha que lindo!" "Não tem
Walrus no 3.6")
Não só isso, mas cada desenvolvedor tem uma máquina
diferente, tem alguns ainda usando OpenSUSE15 (que
perdeu suporte em 2018!) e não querem mudar porque para
o que eles precisam fazer, funciona.
</aside> </aside>
</section> </section>
<!-- distribuição de coisas -->
<!-- packaging? what? exe quebra tudo -->
<section> <section>
<img src="_images/tng-enterprise-explodes.gif" class="stretch"> <img src="_images/tng-enterprise-explodes.gif" class="stretch">
<aside class="notes"> <aside class="notes">
Install no WSL quebrava pacotes por culpa da versão do Python no sistema. Tentar distribuir scripts nesse ambiente é sofrimento
que não termina mais. É versão diferente de Python, é
diferenças entre distribuições.
Install no WSL quebrava pacotes por culpa da versão do
Python no sistema.
Gerado EXE (com Nuitka) começou a explodir o Git. Gerado EXE (com Nuitka) começou a explodir o Git.
</aside> </aside>
</section> </section>
<section>
<img src="_images/ds9-dax-bathlet.jpg" class="stretch">
<aside class="notes">
Adivinha quem veio me salvar desses problemas?
</aside>
</section>
<section> <section>
<p><code> <p><code>
pip install <span class="fragment">--break-system-packages</span> pip install <span class="fragment">--break-system-packages</span>
</code></p> </code></p>
<aside class="notes">
A gota d'água veio quando eu fui tentar empacotar um
script dentro de um docker pra rodar por dentro do
sistema de CI (e evitar todos os problemas que eu tava
tendo até o momento). Peguei a versão mais nova do
Ubuntu, criei meu docker file com "run apt update",
"run apt upgrade", "run apt install python", "run pip
install [pacote]" e fui agraciado pela mensagem que eu
tenho que ter um virtualenv.
</aside>
</section> </section>
<section> <section>
@ -375,16 +451,30 @@
<section> <section>
<img src="_images/tng-picard-slow-facepalm.gif" class="stretch"> <img src="_images/tng-picard-slow-facepalm.gif" class="stretch">
<aside class="notes">
Quer dizer que não tem uma forma de isolar instalações
de Python?
</aside>
</section> </section>
<section> <section>
<img src="_images/tos-kirk-slap.gif" class="stretch"> <img src="_images/tos-kirk-slap.gif" class="stretch">
<aside class="notes">
POR QUE DIABOS EU TENHO QUE USAR VIRTUALENV ENQUANTO
QUE O DEBIAN NÃO PRECISA?
</aside>
</section> </section>
<section> <section>
<h3>Despedida</h3> <h3>Despedida</h3>
</section> </section>
<section>
<img src="_images/tng-data-goodbye.gif" class="stretch">
</section>
<!-- rust tá resolvendo tudo de forma melhor, mesmo que mais trabalhoso --> <!-- rust tá resolvendo tudo de forma melhor, mesmo que mais trabalhoso -->
<section> <section>
<img src="_images/friendship-py-ended.jpg" class="stretch"/> <img src="_images/friendship-py-ended.jpg" class="stretch"/>
@ -401,20 +491,42 @@
</section> </section>
<section> <section>
<img src="_images/tng-data-goodbye.gif" class="stretch"> <img src="_images/tng-picard-sigh.gif" class="stretch">
</section> </section>
<section> <section>
<img src="_images/tng-picard-sigh.gif" class="stretch"> <h2>Falando sério...</h2>
</section> </section>
<section> <section>
<h2>Falando sério...</h2> <h3>O Projeto</h3>
<p>Não é o padrão de 90% das instalações do Python, em que
ele pode ser completamente isolado (Docker) ou roda em
uma máquina apenas (CD).</p>
</section> </section>
<section> <section>
<h3>Problema de HTTP:</h3> <p>... mesmo assim, quanto tempo se sabe que distribuição
de pacotes é um porre e não se olha isso com seriedade?</p>
<aside class="notes">
Outro problema que pode se ter com pacotes é que a
lista de dependências pode forçar atualizar coisas que
a gente não quer.
Armin Ronacher -- Flask -- postou recentemente uma
idéia de como ter múltiplas versões de um mesmo pacote
num projeto.
Aliás, cadê vendoring?
Cadê PyPI privado?
</aside>
</section>
<section>
<h3>Problema de HTTP:</h3>
<p> <p>
Anos de surras com wget/curl/etc me ensinaram como Anos de surras com wget/curl/etc me ensinaram como
autenticar a requisição e como fazer pip sem autenticar a requisição e como fazer pip sem
@ -462,10 +574,6 @@
<li>JIT hook</li> <li>JIT hook</li>
</ul> </ul>
<p class="fragment">
Cadê melhor API para integração com C/C++?
</p>
<aside class="notes"> <aside class="notes">
GIL-less Python pode melhorar performance, GIL-less Python pode melhorar performance,
mas a gente sabe que o que precisa de performance mas a gente sabe que o que precisa de performance
@ -518,15 +626,39 @@
<img src="_images/so-salary-2024.png" class="stretch"> <img src="_images/so-salary-2024.png" class="stretch">
</section> </section>
<section>
<h2>Enfim...</h2>
</section>
<section>
<ul>
<li>Gerenciamento de dependências é um porre a anos --
e isso ninguém quer botar a mão.</li>
<li>Para aplicações isoladas, "distribuição" é ok. Não
é pro resto.</li>
<li>A sintaxe é o que tá segurando Python no mercado.</li>
</ul>
</section>
<section>
<p>CodeShow: <a href="https://www.youtube.com/watch?v=tJYKrViTvJM">
O MAIOR PROBLEMA DO PYTHON FINALMENTE RESOLVIDO
</a></p>
<small>
Várias soluções criadas, <strong>nenhuma oficial</strong>.
</small>
</section>
<section data-background='_images/thats-all-folks.jpg'> <section data-background='_images/thats-all-folks.jpg'>
</section> </section>
</div> </div>
</div> </div>
<!-- <script src="reveal.js/lib/js/head.min.js"></script> --> <script src="reveal.js/lib/js/head.min.js"></script>
<!-- <script src="reveal.js/js/reveal.js"></script> --> <script src="reveal.js/js/reveal.js"></script>
<script src="dist/reveal.js"></script> <!-- <script src="dist/reveal.js"></script> -->
<script src="plugin/highlight/highlight.js"></script> <!-- <script src="plugin/highlight/highlight.js"></script> -->
<script> <script>
Reveal.initialize({ Reveal.initialize({
@ -539,18 +671,20 @@
transition: 'slide', // none/fade/slide/convex/concave/zoom transition: 'slide', // none/fade/slide/convex/concave/zoom
// Optional reveal.js plugins // Optional reveal.js plugins
// dependencies: [ dependencies: [
// { src: 'reveal.js/lib/js/classList.js', condition: function() { return !document.body.classList; } }, { src: 'reveal.js/lib/js/classList.js', condition: function() { return !document.body.classList; } },
// { src: 'reveal.js/plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, { src: 'reveal.js/plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
// { src: 'reveal.js/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, { src: 'reveal.js/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
// { src: 'reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }, { src: 'reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
// { src: 'reveal.js/plugin/zoom-js/zoom.js', async: true }, { src: 'reveal.js/plugin/zoom-js/zoom.js', async: true },
// { src: 'reveal.js/plugin/notes/notes.js', async: true } { src: 'reveal.js/plugin/notes/notes.js', async: true }
// ] ]
}); });
</script> </script>
</body> </body>
</html> </html>
<!-- vim:ts=4:sw=4:sts=4:et --> <!--
vim:ts=4:sw=4:sts=4:et
-->

Loading…
Cancel
Save