terça-feira, 16 de junho de 2026

Lacunas de Vocabulário

Não é incomum encontrar uma palavra nova num livro ou mesmo conversando com uma pessoa. Sempre encontro palavras interessantes com Saramago ou com pessoas de Caçapava do Sul, a qual, tenho certeza, merece o seu próprio dicionário, dado que essa cidade tem um vocabulário muito particular.

Tenho também certeza que existem lacunas de vocabulário que quase todo mundo compartilha, como os coletivos, assim como há vocabulários específicos de determinadas profissões, faixas etárias, ou grupos sociais.

Entretanto, há palavras que eu julgava universais e nos últimos tempos descobri, para minha grande surpresa, que uma em particular não o é: dúzia. Em três ocasiões nos últimos meses, deparei-me, sempre num balcão de padaria, com pessoas que não sabem do que se trata e não consigo encontrar uma explicação para este fenômeno recente.

Há ainda coisas que são vendidas às dúzias: ovos e caixas de leite, por exemplo. Portanto, sei que ainda é uma palavra relevante. Uma grosa, por outro lado, eu entendo que pouca gente conheça a medida. Almude tampouco. O conjunto de pessoas que conhece grosa e almude posso delinear como o dos netos de alfaiates portugueses. Dada a escassez, tanto de pessoas, como de motivos para usar ambas as palavras, elas vão ficar acumulando pó na minha cabeça.

A dúzia parecia-me uma parte fundamental da língua, como a palavra sim, a qual, estranhamente, há língua que não possua. Pode-se viver sem o sim? Pode-se. Sem o não, tenho dúvidas. Pode-se também viver sem a dúzia; o doze faz bem o papel, embora pareça-me mais natural comprar uma dúzia de ovos que comprar doze ovos.

Sinto que, se tirássemos o sim, as conversas ficariam mais ricas, ao passo que, se tirássemos dúzia, perderíamos um floreio latino que embeleza nossa língua.

Vou insistir com a palavra, mas doravante com ímpeto didático adicional.

segunda-feira, 18 de maio de 2026

O Conto da Aia Brasileira

Maria nasceu numa casinha pequena, longe da estrada. A casinha não tinha nem luz nem água corrente. O ano era 1954, logo depois da morte de Getúlio, o pai dos pobres, e a localidade era o interior de Caçapava do Sul. Ela não foi a primeira Maria a nascer ali, mas foi a primeira que vingou.

Quando completou dois anos, ou mais ou menos isso, dado que ninguém estava contando, o pai de Maria decidiu levá-la à cidade para registrá-la. Ouviu dizer que era importante. Foi até lá sem refletir sobre o nome. Quando o escrivão indagou, teve que pensar um pouco e, finalmente, concluiu que "coloca Maria aí" era o que precisava ser dito.

Aos 6 anos, os pais de Maria decidiram levá-la à sede da fazenda, na esperança de que lá pudesse viver um pouco melhor e, quem sabe, aprender a ler. A esposa do Capitão não precisou pensar muito: era mirradinha e não sabia fazer quase nada, mas não custava nada e ela poderia adestrar a negrinha que logo ela seria útil. Ela não sabia mesmo fazer muita coisa já que a casinha em que morara até então era desprovida de meios. Sabia varrer, sabia buscar água, sabia fazer arroz, ou assar um lagarto com lenha.

Ela cresceu num quarto cheio de ferramentas que era muito frio no inverno e muito quente no verão. Trabalhava todos os dias e descansava um pouco quando a família ia à cidade. Melhor alimentada, ela foi crescendo e ganhando corpo. Tornou-se uma adolescente vistosa: pernas firmes e uma bunda que os homens não conseguiam ignorar. Pedrinho e Fernando, os filhos do Capitão, certamente não a ignoraram. Ela já era moça e os filhos do Capitão eram os únicos machos que não cheiravam mal e não eram muito mais velhos que ela; os únicos adolescentes que ela conhecia no mundo.

Primeiro foi o Pedrinho. Numa noite quente, ele apareceu no quartinho e a convidou para um banho no açude. Pedrinho era bonito e ela não pensou muito no que estava fazendo; precisava de um pouco de afeto. Semanas mais tarde, foi o Fernando. Talvez o Pedrinho o tenha incentivado.

É impossível calcular se foi sorte ou azar ela não ter emprenhado, porque a vida de Maria era como a natureza: ela simplesmente é. A mulher do Capitão notou que algo acontecia e reparou como os homens esticavam os olhos em direção ao traseiro de Maria.

Um dia um amigo do Capitão veio de Santa Maria trocar um dedo de prosa e assar um churrasco. O amigo, Doutor Antônio, professor da Universidade, era viúvo e ele mesmo já não tinha muita saúde, porque bebia e fumava muito. Antônio gostou muito da negrinha da casa. A mulher do Capitão percebeu uma saída e sugeriu ao amigo levar a moça: se der um jeito no cabelo, fica até bonitinha.

Doutor Antônio propôs um negócio. Maria casaria com ele e viria morar em Santa Maria. Em troca, ela poderia estudar e, quando o Doutor morresse, ela herdaria alguma coisa e poderia seguir sua vida. Talvez ela tivesse que cuidar dele por uns 20 anos e logo estaria livre. A mulher do Capitão, por outro lado, deixou claro que ela não poderia mais ficar na fazenda. A vida decidiu por ela mais uma vez.

Maria estudou um pouco em Santa Maria. Ela tinha dificuldade e quando chegou à quinta série o Doutor achou que bastava para cuidar da casa. Nos anos 1970, uma mulher precisava de autorização do marido para abrir crediário, para ter um emprego, os passaportes eram familiares e o portador era o chefe da família, e uma mulher não podia pernoitar sozinha num hotel. Maria não ficou sabendo de nada disso, porque o Doutor viajava sozinho. Talvez ele tivesse vergonha da esposa.

Essas limitações todas eram só para as mulheres ricas, as quais ela invejava um pouco. As da novela pareciam livres, mas só existiam nos sonhos.

Muito antes de completarem 20 anos de casados, o Doutor ficou seriamente doente e faleceu. Maria cuidou do Doutor nos últimos e terríveis dias; sentiu pena do velho que estava sofrendo como um cão. Os filhos do Doutor vieram lá de São Paulo e organizaram tudo. Sem saber como tomar posse do que lhe tinha sido prometido, ela acabou com um pouco de dinheiro que os filhos ofereceram para não a deixarem completamente desprovida e também para incentivá-la a sair do apartamento o quanto antes.

Ela passou a trabalhar como doméstica, morando em quartinhos, às vezes quentes, às vezes frios, sempre sem ventilação. Pelo menos na fazenda ela pudera dar uma volta pelo campo e tomara banho de açude.

terça-feira, 12 de maio de 2026

Templates de Serviços com o systemd

Aos poucos estou começando a gostar do systemd. Minha última descoberta foram os templates, os quais permitem usar um único arquivo de configuração para gerenciar vários sistemas semelhantes.

Eu administro vários bancos Oracle que possuem integração com outros bancos via um mecanismo muito precário chamado Heterogeneous Services. O FDW do Postgresql é muito melhor, mas não é importante para esta discussão.

Infelizmente, o Oracle desliga os listeners desses serviços sem qualquer motivo aparente. Então, resolvi experimentar criar um serviço do systemd para cada um. Eu não queria ter que criar um arquivo para cada serviço, então descobri os templates.

Criei um arquivo chamado hs-listener@.service. O arroba indica que é um template.


[Unit]
Description=Oracle HS Listener %I
After=network.target

[Service]
Type=forking
User=grid
Group=oinstall
Environment="ORACLE_HOME=/u02/app/23.0.0.0/gridhome_1/"
ExecStart=/u02/app/23.0.0.0/gridhome_1/bin/lsnrctl start listener_%i
ExecStop= /u02/app/23.0.0.0/gridhome_1/bin/lsnrctl stop  listener_%i
Restart=always

[Install]
WantedBy=multi-user.target

Dentro do template, %I e %i serão substituídos pelos parâmetros usados a seguir. O %I não é formatado, mas o %i é.


  systemctl enable hs-listener@db2
  systemctl enable hs-listener@pgsql
  systemctl enable hs-listener@mysql
  systemctl enable hs-listener@sqlserver
    

Como se pode perceber, isso evita ter que criar vários arquivos semelhantes.


  systemctl start hs-listener@db2
  systemctl start hs-listener@pgsql
  systemctl start hs-listener@mysql
  systemctl start hs-listener@sqlserver
  

E isto evita ter que investigar o que houve com o listener uma vez por mês.

sexta-feira, 8 de maio de 2026

Pontuação Mínima para Permanecer na Série A

Há um consenso de que, em geral, 45 pontos bastam para permanecer na Série A. Resolvi verificar matematicamente qual a pontuação mínima e com qual probabilidade ela aparece.

O campeonato tem 20 times que jogam entre si 2 vezes, então há 380 jogos. Para simular todas as possibilidades de resultados, seria preciso contar de 0 até 3381-1.

Não há tempo para isso tudo. Então resolvi simular 10 milhões de campeonatos e tabular os pontos do 16º colocado em cada um.

552
31651
604850
6262349
33866748
104000747
194632146
237819145
202239044
126684743
60903842
23276041
7253840
1906539
424438
78437
13336
2135
234

Em dois casos apenas o 16º tinha somente 34 pontos e em 5 casos, seriam precisos 52 pontos para não ser rebaixado.

52100%
5199,99995%
5099,99679%
4999,93631%
4899,31008%
4795,92341%
4685,52334%
4566,06013%
4442,27822%
4322,05432%
429,38585%
413,29547%
400,96787%
390,24249%
380,05184%
370,0094%
360,00156%
350,00023%
340,00002%

As probabilidades acumuladas mostram que, em 66% dos casos, 45 pontos são suficientes para manter-se na Série A. As chances melhoram substancialmente com 46 e 47 pontos. A partir de 48, a classificação é praticamente garantida.

Várias execuções mostraram que a média do 16º colocado é ~44,74 pontos, o que reforça a sensação de que 45 pontos é uma pontuação relativamente segura.

Nestas simulações, todos os times têm chances iguais; na vida real, alguns times ganham muito e outros perdem muito. Então, uma simulação mais interessante teria que considerar uma variedade de times. Em 2009, o Coritiba foi rebaixado com 45 pontos e este foi o time melhor pontuado a cair. Outros times já foram rebaixados com 44 pontos, mas nunca um time foi para a Série B com 46.

quarta-feira, 6 de maio de 2026

Crescimento dos Barramentos de Endereçamento

O processador 6502 tem um espaço de endereçamento de 64KB. Pode parecer muito, mas são apenas 256 páginas de 256 bytes. Um programador atento vai logo ficar íntimo de todos os bytes. Os bytes F abaixo indicam o número da página e os 0 indicam os bytes dentro da página, como uma máscara de rede.


 &FF00
 

O 8086 possuía um espaço de endereçamento de 20 bits, o que resulta em 1MB ao todo. Isso pode ser visto como 256 blocos de 4KB.


 &FF000
 

O 286 possuía 24 linhas de endereçamento, as quais permitem endereçar 16MB ou 4096 blocos de 4KB.


 &FFF000
 

O 80386 expandiu o endereçamento a 32 bits (4GB), ou 1M (20 bits) blocos de 4KB.


 &FFFFF000
 

Os processadores atuais costumam usar endereços de 48 bits (64K * 4GB), embora usem endereços físicos de 40 bits (1TB). Isso equivale a 4M páginas de 4KB.


 &FFFFFFFFF000
 

Se com 36 bits para indicar a página, a coisa complica deverasmente, com um barramento de 64 bits podemos jogar a toalha. Seriam 1M * 4GB páginas, ou 4T de páginas de 4KB.


 &FFFFFFFFFFFFF000
 

sexta-feira, 17 de abril de 2026

Geração de Senhas no Linux

O Linux tem um dicionário de palavras em /usr/share/dict/words (não sei se todas as distribuições usam o mesmo caminho). Uma bom uso dessa lista de palavras é a geração de senhas.


 grep -Pv "\W" /usr/share/dict/words | shuf -n 3 | xargs | tr ' ' '-'
 earning-artistes-steatoses

O grep permite selecionar as palavras compostas apenas por letras; o shuf escolhe 3 aleatoriamente; o xargs as junta numa linha só; o tr troca os espaços por traços.

Se eu quiser gerar uma senha numérica, posso usar o shuf da seguinte maneira:


 shuf -i 10-99  | shuf -n 3 | xargs | tr -d ' '
 726580
 

Ele vai gerar todos os números entre 10 e 99 (todos com 2 dígitos) e escolher 3. Então, ele elimina os espaços e o resultado é um número com 6 digítos.

Uma forma de gerar uma senha longa é calcular o md5 de um arquivo. Como forma de agregar informação, podemos adicionar os nanossegundos do relógio.


 find . -type f | head -n 1000 | shuf -n 1 | \
   (xargs md5sum; echo $(date +%N)) | \
   xargs  | md5sum
 83be018d2a490823ef949005bd7789e7  -
 

Neste caso, estou procurando por um arquivo qualquer (limitei a 1000, para não vasculhar o disco todo).

Como openssl sempre está disponível, pode-se também usá-lo para gerar senhas:


 openssl rand -base64 12
 IZgLy20O0GjWP2ze
 

Podemos também pegar uns bytes de /dev/urandom (ou /dev/random ou /dev/arandom - leia a documentação sobre cada um) e passá-los por md5sum. No exemplo abaixo, peguei 100 bytes e gerei uma senha de 16:


head -c 100 /dev/urandom | md5sum | head -c 16
0643e4947c026e48

quarta-feira, 1 de abril de 2026

O Maior Som do Mundo

Meu avô paterno instalou caixas de som em todos os cômodos da casa. Assim, ele podia escutar rádio onde estivesse. Eram pequenas caixas de madeira nos quantos dos quartos. Agora, imagine um sistema semelhante que cobria um país inteiro. E esse país era o maior país da terra.

Em 1925, a União Soviética começou a instalar rádios a cabo em todos os prédios da Rússia (República Socialista Federativa Soviética da Rússia - RSFSR). Sendo ainda um país muito pobre, rádios convencionais eram muito caros para serem amplamente adotados. Em 1920, um radio custava US$200 nos Estêites; o preço baixou a US$35 até o fim da década, mas isso representaria quase US$700 em verdinhas de 2026. Então, optou-se por uma solução cabeada: isso simplificaria os receptores até o ponto de serem pouco mais que caixas de som.

Dentro da caixinha há apenas 3 componentes: um transformador, um controle de volume, e um alto-falante. Portanto, o equipamento era muito barato. O sinal era transmitido de Moscou para as regiões em cabos de telefone. Depois, o sinal era convertido em um sinal de 960V (ouch) e transmitido para as cidades. Em cada cidade, uma estação local reduzia a voltagem a 240V. Finalmente, cada prédio baixava o sinal para os 30V que chegavam a cada apartamento. Então, graças a um produto muito barato, todo mundo podia receber notícias, mesmo que fosse um único canal do governo.

Durante a Segunda Guerra, ou a Grande Guerra Patriótica, todos os radios convencionais foram confiscados para impedir que os cidadãos soviéticos recebessem falsas notícias transmitidas pelas forças invasoras. Os rádios cabeados, entretanto, foram mantidos e resultaram ser muito úteis para avisos de emergências, principalmente porque o sistema permitia que uma região específica apenas fosse notificada.

Alto-falante da época de Stalin

Em 1962, o sistema alcançava 48 milhões de pessoas (de 220 milhões). Em 1964, a RSFSR determinou que todos os prédios habitacionais em construção fossem já equipados com o cabeamento necessário. Em seu ápice, nos anos 1980, 90% da população (~250 milhões de ~270 milhões) tinha acesso ao sistema; apenas os habitantes de localidades remotas não eram servidos.

Ainda em 1962, um sistema mais complexo foi adotado a fim de permitir mais canais. Usando Amplitude Modulada (AM), outros dois canais eram oferecidos em 78kHz e 120kHz. Isso exige um receptador mais complexo, mas os receptadores originais continuavam a operar com o sinal padrão. Um quarto canal, de 52kHz, foi planejado e anunciado em 1990, mas a dissolução da URSS levou o projeto ser encerrado abruptamente.

Os plugues eram idênticos aos de eletricidade, mas marcados com a palavra RADIO (РАДИО) para evitar confusões.

Apesar de ser chamado de rádio, as caixinhas eram realmente alto-falantes e, portanto, pode-se dizer que este foi o maior sistema de som do mundo: o único a alcançar 11 fusos horários.