Browse Source

Updates

master
Julio Biason 2 months ago
parent
commit
b61510a2f3
  1. BIN
      _images/tng-deanna-troi-mosaic.jpg
  2. BIN
      _images/tng-lavelle-promotion.webp
  3. BIN
      _images/tng-q-snap.gif
  4. BIN
      _images/tng-troi-cowboy.webp
  5. 112
      nao-sou-eu.html

BIN
_images/tng-deanna-troi-mosaic.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

BIN
_images/tng-lavelle-promotion.webp

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

BIN
_images/tng-q-snap.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

BIN
_images/tng-troi-cowboy.webp

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 MiB

112
nao-sou-eu.html

@ -7,11 +7,12 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
<link rel="stylesheet" href="reveal.js/css/reveal.css">
<link rel="stylesheet" href="reveal.js/css/theme/night.css" id="theme">
<link rel="stylesheet" href="dist/reset.css">
<link rel="stylesheet" href="dist/reveal.css">
<link rel="stylesheet" href="dist/theme/night.css" id="theme">
<!-- Code syntax highlighting -->
<link rel="stylesheet" href="reveal.js/lib/css/zenburn.css">
<link rel="stylesheet" href="dist/highlight/zenburn.css">
<!-- Printing and PDF exports -->
<script>
@ -160,10 +161,12 @@
</section>
<section>
<h4>"Vamos fazer um browser em Python!"</h4>
<img src="_images/tng-deanna-troi-mosaic.jpg" class="stretch">
</section>
<!-- tudo agora é script python -->
<section>
<h4>"Vamos fazer um browser em Python!"</h4>
</section>
<section>
<!-- simulador de hardware, pra entregar projeto antes do resto -->
@ -254,6 +257,10 @@
</section>
<!-- surgiu a chance de trabalhar junto de novo -->
<section>
<img src="_images/tng-lavelle-promotion.webp" class="stretch">
</section>
<!-- ... mas virou objective-c -->
<section>
<img src="_images/ent-tpol.webp" class="stretch"/>
@ -263,8 +270,15 @@
Objective-C.
</aside>
</section>
<!-- framework em cima do flask -->
<!-- consuela -->
<section>
<img src="_images/tng-q-snap.gif" class="stretch">
<aside class="notes">
E finalmente surgiu o projeto em Python, com Flask.
</aside>
</section>
<section>
<img src="_images/consuela-lemon-pledge.gif" class="stretch">
@ -277,6 +291,13 @@
</section>
<!-- Django -->
<section>
<img src="_images/tng-troi-cowboy.webp" class="stretch"/>
<aside class="notes">
E em Django.
</aside>
</section>
<section>
<h3>Nova Separação</h3>
@ -326,7 +347,7 @@
<section>
<p><code>
pip install --break-system-packages
pip install <span class="fragment">--break-system-packages</span>
</code></p>
</section>
@ -374,6 +395,14 @@
</section>
<section>
<h3>Problema de HTTP:</h3>
<p>
Anos de surras com wget/curl/etc me ensinaram como
autenticar a requisição e como fazer pip sem
precisar que usuário se autentique.
</p>
<aside class="notes">
Por sorte eu sei como URLs funcionam, e sei como fazer
uma requisição HTTP autenticada que funciona em
@ -383,26 +412,61 @@
<section>
<!-- ferramentas pra python não estão mais sendo escritas em Python (ruff, uv, Pyright) -->
<h3>Para Python, não Python:</h3>
<ul>
<li><code>ruff</code>: Rust</li>
<li><code>uv</code>: Rust</li>
<li><code>Pyright</code>: JavaScript</li>
<li>(<code>ruff-ls</code>: Rust)</li>
</ul>
</section>
<section>
<aside class="notes">
Só pra ter uma ideia: Poetry, que é o primeiro
gerenciador de pacotes pra Python a suportar
o pyproject, costuma entrar em loops e ficar
30 minutos resolvendo dependencias.
O npm é em JavaScript -- JavaScript! -- e resolve
dependencias muitíssimo mais rápido (e olha que é
JS e tudo tem 2000 dependências!)
</aside>
</section>
<!-- parece estar indo pro lado certo, mas extremamente lento (falta de interesse?) -->
<section>
<h3>Algumas melhorias...</h3>
<ul>
<li>GIL-less Python</li>
<li>JIT hook</li>
</ul>
<p class="fragment">
Cadê melhor API para integração com C/C++?
</p>
<aside class="notes">
GIL-less Python pode melhorar performance,
mas a gente sabe que o que precisa de performance
está em C, e eles mesmos tem os controles
de threads do lado deles. GIL-less Python
facilita pra integração desses usos
(e não porque vai ser mais rápido em Python)
JIT... De novo, performance vem de C, e
considerando o eco-sistema, é bem difícil
de conseguir alcançar algo parecido com o
que é o Lua -- e muito menos Java, que tem
40 anos de pesquisa em como fazer um JIT.
</aside>
</section>
<section>
<p>Rust:</p>
<h3>Rust:</h3>
<ul>
<li class="fragment">... não me deixa cruzar a rua sem olhar pros dois lados</li>
<li class="fragment">... não me deixa sair de moto sem usar capacete</li>
<li class="fragment">... não me deixa sair de moto sem usar capacete e protetor</li>
<li class="fragment">... não me deixa tomar banho se não tiver o tapetinho pra não escorregar no chuveiro</li>
</ul>
</section>
@ -435,16 +499,16 @@
</section>
<section data-background='_images/thats-all-folks.jpg'>
</section>
</section>
</div>
</div>
<script src="reveal.js/lib/js/head.min.js"></script>
<script src="reveal.js/js/reveal.js"></script>
<!-- <script src="reveal.js/lib/js/head.min.js"></script> -->
<!-- <script src="reveal.js/js/reveal.js"></script> -->
<script src="dist/reveal.js"></script>
<script src="plugin/highlight/highlight.js"></script>
<script>
// Full list of configuration options available at:
// https://github.com/hakimel/reveal.js#configuration
Reveal.initialize({
controls: true,
progress: true,
@ -455,16 +519,18 @@
transition: 'slide', // none/fade/slide/convex/concave/zoom
// Optional reveal.js plugins
dependencies: [
{ 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/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/zoom-js/zoom.js', async: true },
{ src: 'reveal.js/plugin/notes/notes.js', async: true }
]
// dependencies: [
// { 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/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/zoom-js/zoom.js', async: true },
// { src: 'reveal.js/plugin/notes/notes.js', async: true }
// ]
});
</script>
</body>
</html>
<!-- vim:ts=4:sw=4:sts=4:et -->

Loading…
Cancel
Save