Pinned Tweet
Woot! Announcing my #pytest book 🤗:
packtpub.com/web-development…
Please RT for reach! 😁
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:
Bruno Oliveira retweeted
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…
Bruno Oliveira retweeted
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.
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
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
Bruno Oliveira retweeted
Replying to @allenholub
There is a way... and @allenholub I quoted you in this one. brightball.com/articles/stor…
Bruno Oliveira retweeted
Zulip 9.0 was released today! This is a major release, with over 5,300 new commits merged since Zulip 8.0. Larger font size and line spacing, major improvements for composing messages, and much more! blog.zulip.com/2024/07/25/zu… #opensource #teamchat
Bruno Oliveira retweeted
When Your CEO Is A Dinosaur 🦖
Original Audio: Nick Harron
#remotework #ceo #office #animation #animationmeme #mushroom #bird #understudio
Bruno Oliveira retweeted
Replying to @MorbidKnowledge
Anyone else tired of seeing random videos and memes in replies that are completely unrelated to the original tweet?
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
}
```
Bruno Oliveira retweeted
Strong agreement vibes with this article. I love Rust but there are strong productivity warts that need fixing. We made very similar learnings at @getsentry dioxus.notion.site/Dioxus-La…
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

ALT When we specifically asked Simon Willison about Yuan's comments about digital twins, he told Ars, "My fundamental problem with this whole idea is that it represents pure AI science fiction thinking—just because an LLM can do a passable impression of someone doesn't mean it can actually perform useful 'work' on behalf of that person. LLMs are useful tools for thought. They are terrible tools for delegating decision making to. That's currently my red line for using them: any time someone outsources actual decision making authority to an opaque random number generator is a recipe for disaster."
Zoom CEO envisions AI deepfakes attending meetings in your place trib.al/XvvrK1F
Bruno Oliveira retweeted
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 👇🏻
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
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
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 ❤️
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.
pytest 8.2.0 just released to PyPI!
Some new improvements to namespace package support, verbose output, among other things.
See the CHANGELOG: github.com/pytest-dev/pytest…
#pytest
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




















