The source content for blog.juliobiason.me
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

127 lines
6.0 KiB

+++
title = "Links Comentados de 2020-06-03"
date = 2020-06-03
[taxonomies]
tags = ["links", "rust", "scotty", "python", "pyramid", "cornice", "datetime",
"python 3", "mercurial", "requisições async", "propaganda", "google"]
+++
Scotty, Pyramid e Cornice, Os Problemas Com `datetime.now()`, Mercurial e
Python 3, Acelerando o Python, Biblioteca Async para Requisições HTTP,
Propagandas Digitais, Google e a Web.
<!-- more -->
## [scotty: Transports you to any directory you have visited before](https://github.com/wdullaer/scotty)
Eu tenho usado Scotty por algum tempo já e realmente tem me agradado.
O que Scotty faz é guardar uma lista dos diretórios pelos quais você já passou
e, depois de um tempo, você pode simplesmente fazer `s <diretório>` e cair
diretamente no diretório específico. Não apenas isso, mas `<diretório>` nem
precisa ser o nome correto do diretório; Scotty usa "fuzzy search" para
encontrar o diretório com o nome mais parecido com o que você digitou.
## [How to write a Python web API with Pyramid and Cornice](https://opensource.com/article/20/1/python-web-api-pyramid-cornice)
Pyramid is o framework web para Python menos conhecido por aí. Mas esse post
mostra como é simples fazer uma (simples) API com ele.
## [Stop Using datetime.now!](https://hakibenita.com/python-dependency-injection)
Embora o título seja um pouco "clickbait", o conteúdo é bem interessante. Não
apenas apontando os problemas de se usar `datetime.now()` (não, não é a função
em si que tem um problema, é a forma como usamos o resultado que pode gerar
problemas), mas explicando minuciosamente injeção de dependências em Python.
## [Mercurial's Journey to and Reflections on Python 3](https://gregoryszorc.com/blog/2020/01/13/mercurial%27s-journey-to-and-reflections-on-python-3/)
Ding dong, a bruxa morreu, e o Python 2 também.
Mas ainda existe uma grande base de projetos em Python 2 que precisam ser
convertidos para Python 3, e o Mercurial fez isso, e aqui tem a experiencia do
mantenedor em fazer essa conversão.
Eu entendo que converter um projeto de Python 2 para 3 não é uma tarefa fácil,
mas tem algumas coisas erradas no post. Por exemplo, "the approach of assuming
the world is Unicode is flat out wrong and has significant implications for
systems level applications" (a ideia de assumir que o mundo é unicode é
completamente errada e tem sérias implicações para aplicações que nível de
sistema). O mundo _é_ unicode. É só ler a parte em português desse site. É só
ler um blog em chinês ou japonês para ver como ele é. Você realmente acredita
que essas pessoas não usam aplicações de sistema em lugar algum? Ainda, o que
você acham que são mais usadas: Aplicações de nível de sistema ou nível de
usuário?
Não estou dizendo que a conversão é perfeita -- de certa forma, unicode
simplesmente é uma forma de tratar os bytes que estão por baixo -- mas
reclamar que a mudança fez a _sua_ forma de pensar mais difícil não é desculpa
para não entender para onde o eco sistema está indo -- e também não quer dizer
que o seu projeto específico não é bem-vindo, mas você tem que entender que
está no caso minoritário aqui.
(E também não me surpreende que alguém dizendo que "mundo em unicode está
errado" vem de alguém que vive num país ASCII.)
## [Making Python Programs Blazingly Fast](https://martinheinz.dev/blog/13)
Um conjunto de dicas de como fazer aplicações Python funcionarem mais rápido.
Algumas coisas podem não parecer fazer muito sentido (colocar uma variável
apontando pra outra dentro da mesma classe?), mas o post pelo menos explica
_por que_ isso ajuda na performance.
## [Httpx: A next-generation HTTP client for Python](https://www.python-httpx.org/)
[Requests](https://2.python-requests.org/en/master/) mostrou pra todo mundo
como APIs devem funcionar, mas o projeto meio que ficou parado no tempo, sem
suporte a chamadas async (e alguns outros probleminhas na gerencia do
projeto). Agora existe Httpx, que é outra biblioteca para fazer requisições
HTTP, mas dessa vez com suporte a async e basicamente a mesma interface.
## [No-judgment digital definitions: Online advertising strategies](https://blog.mozilla.org/firefox/online-advertising-strategies/)
Já se perguntou como é que depois de pesquisar alguma coisa -- por exemplo,
"cadeiras gamer" -- de repente começam a surgir promoções e propagandas de
cadeiras na sua rede social?
Nada acontece por acaso, e isso é um efeito de todos os trackers que são
colocados numa página. Mas como é que eles identificam quem é quem é que é a
questão.
Esse artigo da Mozilla, embora pareça meio básico para quem acompanha, mostra
bem como essas coisas funcionam.
## [Google Is Not God of The Web](https://bilge.world/google-page-experience)
Outro título um pouco "clickbait" mas, de novo, conteúdo interessante.
Um ponto que me chamou a atenção foi "Google has the right to dictate 'Best
Practices.'" (Google tem o direito de ditar o que são as "boas práticas") que
apesar do título diz exatamente o contrário.
Imaginem vocês que o Google comece a dar notas de "experiência de uso" para
páginas que adotem o visual do Material. Páginas e páginas que parecem com
aplicativos Android. Mas se você utilizar o seu próprio layout, seu próprio
conjunto de cores, você vai perder pontos. E agora?
Esse é o grande problema da dependência que as pessoas tem com o Google, e
toda a simbiose que o mesmo tem tendo um grupo trabalhando para padrões da
web, um grupo trabalhando para fazer um browser e um grupo pra tirar proveito
do trabalho dos dois anteriores. Quando menos você usar o Google, quanto mais
você usar ferramentas de pesquisa alterativos (DuckDuckGo, Searx, e até mesmo
o Bing), quanto mais você usar outros provedores de email (ProtonMail), quanto
mais vocês usarem browsers que não sejam Chrome (Firefox, Safari, ou algum
outro baseado em WebKit), menor vai ser a probabilidade de que a internet se
torne um ambiente de uma empresa só.
---
Esse post foi feito com a ajuda de
* [HN Tooter](https://mastodon.social/@hntooter)
<!--
vim:spelllang=pt:
-->