Python enthusiast, pytest core developer, testing and CI aficionado. Find me at https://xitter.cf/t.co/JG4SaWU5SJ.

Florianópolis, Brazil
Joined October 2014
Woot! Announcing my #pytest book 🤗: packtpub.com/web-development… Please RT for reach! 😁
8
95
4
170
Minha vovó tem como passatempo bordar, ela elabora panos de prato com vários enfeites. Ela vende para amigos, familiares, etc, mas agora a gente colocou alguns no Mercado livre pra poder divulgar mais facilmente: bit.ly/3U0WWph bit.ly/4eZO5Mm :hug:
3
254
I wrote down my thoughts on the latest release of uv and what it means for Rye and other tools in the space. In short: you all should be looking at uv and start to rally around it. lucumr.pocoo.org/2024/8/21/h…
7
49
7
287
22,099
Today, we're shipping a series of features that move uv beyond a pip alternative, and into an end-to-end solution for managing Python projects, command-line tools, single-file scripts, and even Python itself. A single, unified tool. Like Cargo, for Python. It's very fast.
102
460
147
3,320
506,619
Bruno Oliveira retweeted
🎉 We're thrilled to announce, Rattler joined the Conda family! 🎉 A special thanks to our colleague @baszalmstra, the original owner and main maintainer. github.com/conda/rattler
1
7
37
1,248
Bruno Oliveira retweeted
Sou surdo-cego-cadeirante. Campanha: arrecadar fundos de minha vida da carreira de programador Fim: 15 de agosto PIX: [email protected] Vejam vídeo, mostro os equips de acessibipdde. Deem RT. No final do post, um documentário no $you$tube sobre mim. Segue um pouco da minha hitória. Amigos, Comecei a ficar surdo com os 14 anos. Eu já era cego nessa idade, fiquei cadeirante, pois a artrite entrevou as pernas. Não falo muito, mas os braços, alguns dedos, inclusive que digito, são também entrevados. A audição, a partir dos 14 anos, ia embora e voltava. Quando voltava, a audição estava cada vez mais baixa. Um dos momentos mais marcantes da minha vida como PCD foi quando eu estava dormindo e acordei totalmente surdo. Foi uma das primeiras de surdez sotal. Nisso, acordei com claustrofobia, foi pesado demais. Eu gritava com a mão esqkuerda tentando centralizar o grito na orelha, para ver se vinha som e reduzia a claustrofobia. Nada. Nulo. Zero. Minha mãe e seu ex vieram correndo e eu já estava no chão, pois me joguei caindo sentado de desespero. Sabe quando a pessoa tem claustrofobia e fica ofegante? Eu fiquei assim. Tudo escuro e silencioso. Minha mãe me acalmava alisando meu peito. O ex dela escreveu em letra de forma no meu peito a palavra "Jó" significando o personagem bíblico Jó O ex padrastro quis dizerque@ "Jó foi pior" para tentar me acalmar. Consegui controlar a claustrofobia, mas a audição demorou a voltar e, quando voltou, como já disse, voltava mais baixa. Com os 19 anos, fiquei surdo-cego-cadeirante total . O tempo passou, portas foram abrindo. Lutei, fui atrás, dei meu melhor em palestras, ganhei simpatizantes. Obtive displys Braille e etc. Hoje, com 35 anos programo em IntMUD, Swift, PHP, sei C, ;sei C++. Uma loucura iiso, desafia a capacidade humana. Pensando aqui, uma verdadeira prova de resistência. E resisti. Avante! Documentário sobre mim: youtu.be/CQ4jbVDbSek
37
168
10
873
106,770
When Your CEO Is A Dinosaur 🦖 Original Audio: Nick Harron #remotework #ceo #office #animation #animationmeme #mushroom #bird #understudio
9
1
31
3,000
Replying to @MorbidKnowledge
Anyone else tired of seeing random videos and memes in replies that are completely unrelated to the original tweet?
50
14
1
977
77,812
Bruno Oliveira retweeted
how I squeeze 60K RPS out of SQLite on a $5 VPS: There are tons of tutorials on how to setup SQLite, and sometimes they contradict each other. Here is what worked for me. 1. Configuring PRAGMAs. We need to send the following PRAGMA commands right after opening the connection: PRAGMA journal_mode = WAL; - enables write-ahead log so that your reads do not block writes and vice-versa. PRAGMA busy_timeout = 5000; - sqlite will wait 5 seconds to obtain a lock before returning SQLITE_BUSY errors, which will significantly reduce them. PRAGMA synchronous = NORMAL; - sqlite will sync less frequently and be more performant, still safe to use because of the enabled WAL mode. PRAGMA cache_size = -20000; - negative number means kilobytes, in this case 20MB of memory for cache. PRAGMA foreign_keys = true; - because of historical reasons foreign keys are disabled by default, we should manually enable them. PRAGMA temp_store = memory; - moves temporary tables from disk into RAM, speeds up performance a lot. Do NOT use cache=shared! Some tutorials recommend configuring it, but this is how you get nasty SQLITE_BUSY errors. It is disabled by default, so you don't have to do anything extra. 2. Use immediate transactions If you know that transaction can possibly do a write, always use BEGIN IMMEDIATE or you can a get SQLITE_BUSY error. Check your framework, you should be able to set this at the connection level. 3. Open two connection pools Another trick is to open 2 connection pools, one for reads only and another for reads/writes. Set the connection limit of write pool to 1, and the connection limit of the read pool to some reasonably high number, e.g. number of your CPU cores. 4. Bonus: how I configure sqlite with Go Here is the code in go I use to configure the sqlite connections: ```go func SQLiteDbString(file string, readonly bool) string { connectionParams := make(url.Values) connectionParams.Add("_journal_mode", "WAL") connectionParams.Add("_busy_timeout", "5000") connectionParams.Add("_synchronous", "NORMAL") connectionParams.Add("_cache_size", "-20000") connectionParams.Add("_foreign_keys", "true") if readonly { connectionParams.Add("mode", "ro") } else { connectionParams.Add("_txlock", "IMMEDIATE") connectionParams.Add("mode", "rwc") } return "file:" + file + "?" + connectionParams.Encode() } func OpenSqliteDatabase(file string, readonly bool) (*sql.DB, error) { dbString := SQLiteDbString(file, readonly) db, err := sql .Open("sqlite3", dbString) pragmasToSet := []string{ "temp_store=memory", } for _, pragma := range pragmasToSet { _, err = db.Exec("PRAGMA " + pragma + ";") if err != nil { return nil, err } } if readonly { db.SetMaxOpenConns(max(4, runtime.NumCPU())) } else { db.SetMaxOpenConns(1) } return db, nil } ```
26
131
15
1,599
223,980
Bruno Oliveira retweeted
I got a good quote in this story about that dumb Zoom Idea to have "digital twins" attend meetings in your place
24
59
7
439
117,587
VITÓRIA MUITO IMPORTANTE DOS TRABALHADORES! 💪🏻 URGENTE! Empresa de TI do Mercado Livre, Meli Devlopers é condenada após ação do Sindpd Nesta segunda-feira (03), a Justiça do Trabalho condenou a MeLi Devlopers Brasil, empresa de tecnologia da informação do grupo Mercado Livre, em ação pelo descumprimento da Convenção Coletiva de Trabalho da categoria nos últimos cinco anos. A decisão é resultado de uma ação movida pelo Sindicato dos Trabalhadores em Tecnologia da Informação de São Paulo (Sindpd-SP), que pediu a condenação da reclamada ao cumprimento das normas coletivas firmadas pelo Sindpd e Seprosp, de forma retroativa, aplicáveis a todos os empregados e ex-empregados. "Estamos cobrando o que é de direito dos trabalhadores. A empresa aplicou uma Convenção estranha a categoria para não aplicar os direitos dos empregados. Foram 208 horas por ano a mais de trabalho sem remuneração. É muito grave! É precarização da categoria profissional, prática de concorrência desleal e prática antissindical ao orientar erroneamente a representação sindical. ", avalia o presidente do Sindpd, Antonio Neto. Entre os pedidos estão o pagamento das diferenças pela aplicação dos reajustes salariais nas datas-bases, o pagamento de 4 horas extras semanais, com adicional de 75%, de forma retroativa, para todos os empregados e ex-empregados, aplicando-se o divisor de 200 horas, o pagamento de diferenças de adicional noturno que, nos termos das normas coletivas juntadas, é de 30%, e outras diferenças a serem apuradas, devendo elas ser pagas com a aplicação das multas convencionais, juros e correção monetária do período. "O fato de o Mercado Livre ter criado uma empresa especializada e de ter transferido parte de seus empregados de TI para ela, evidencia a especialização de suas atividades, tanto que houve a demanda de se constituir um novo estabelecimento, com estrutura física própria, mão de obra especializada e dotação de orçamento individualizado, para a consecução de seus fins que, como foi demonstrado pelas provas dos autos, são diversos daqueles perseguidos pelo grupo, como um todo.", diz trecho da decisão, assinada pelo magistrado Ricardo Sanchez. Braço de TI do grupo Mercado Livre, a MeLi possui mais de 2.300 funcionários, entre eles analistas, desenvolvedores, gerente de projetos, desenvolvedores de softwares e designer de softwares. O juiz da 3ª vara de Osasco, do Tribunal Regional do Trabalho da 2ª Região (TRT-2), condenou a empresa ao pagamento retroativo dos últimos 5 anos para todos os trabalhadores e ex-trabalhadores (com contratos extintos a partir de 21/09/2021) dos seguintes itens: - Diferenças salariais com base nos reajustes garantidos pelo Sindpd na Convenção Coletiva de Trabalho; - 4 horas extras semanais, com adicional de 75%; - Reflexos da alteração de jornada de 44 horas semanais para 40 horas semanais nos seguintes itens: horas extras, férias, abono de férias, FGTS, 13º salário, multa indenizatória (trabalhadores demitidos sem justa causa) e aviso prévio; - Diferenças no adicional noturno, uma vez que a CCT do Sindpd tem horário diferenciado das 22 horas às 06 horas; - Pagamento de multas previstas em Convenção Coletiva; À decisão cabe recurso. Somente pelo cálculo preliminar de horas extras não pagas pelo uso da jornada de 44 horas, um trabalhador que ganha um salário de R$ 10 mil deve receber cerca de R$18,2 mil, por ano trabalhado. "A decisão é uma importante vitória não só para os trabalhadores da MeLi Devlopers e para o Sindpd, mas para toda a categoria que quer respeito à legítima representação sindical e à Convenção Coletiva de Trabalho da nossa categoria. Vamos em frente!", comemorou Antonio Neto. Continua 👇🏻
34
165
42
1,459
117,352
Bruno Oliveira retweeted
“We need to stop pretending this is okay.” My video on the Rails drama is done. I am done with it as well. There’s enough information out now that you have no excuse for being wrong here. If @thdxr, @taylorotwell and I all agree, we’re probably right about something
34
13
7
487
238,827
Bruno Oliveira retweeted
My next open #pytest trainings: - #Europython 2024, July 8th – 14th 2024 (3h), Prague 🇨🇿: ep2024.europython.eu/session… - CH Open Workshoptage, Sept 2nd 2024, HSLU Rotkreuz 🇨🇭: pretalx.com/workshoptage-202… - 3 day in-depth training via @pyacademy, March 4th – 6th 2025, Leipzig 🇩🇪 / Remote
1
3
5
1,361
Bruno Oliveira retweeted
Carl Sagan.
46
2,038
197
8,013
279,153
Bruno Oliveira retweeted
Hey folks! I'm the creator of Python Pillow & today is my birthday. Can I ask a favor? I'm looking for a new role & I'd appreciate a RT aclark.net/resume/ I'm passionate about open source & making a living doing open source. Next move? Thank you @willmcgugan for the nudge ❤️
5
66
4
111
16,857
Bruno Oliveira retweeted
I received so many messages about pipx that I updated "Why not tell people to "simply" use pyenv, poetry or anaconda" (bitecode.dev/p/why-not-tell-…) to include a paragraph about it.
1
1
1
241
Bruno Oliveira retweeted
My @PyConDE #pytest training is done! ✨ Slides/code: github.com/The-Compiler/pyte… Next: - deep dive: June 11th to 13th, remote, via @pyacademy: python-academy.com/courses/p… - July 8th - 14th (3h), Prague, at @europython - deep dive: March 4th to 6th 2025, remote/Leipzig, via @pyacademy
4
10
780