Cheirinho de carro novo

Este blog está de equipamento novo: agora ele roda em um servidor virtual da Dreamhost, a mesma empresa que o hospeda desde o princípio, em dezembro de 2005.

A novidade é justamente o fato de agora estar em um servidor virtual (VPS) só meu – nas duas décadas anteriores ele rodou em um servidor compartilhado, a forma mais barata de hospedagem comercial de servidores web, em que as páginas de diversos sites (de proprietários diferentes) compartilham os mesmos recursos1.

Só que na semana passada o provedor me avisou que eles cansaram de fingir não perceber que eu excedia em muito os termos do nosso contrato, e me mandaram tomar jeito.


Foto de uma sala de servidores em racks, com uma seta apontando para um deles, na qual está escrito Trilux.org.
O blog está naquele ali, terceira porta Ethernet à esquerda.

Aí, pra resumir, gastei 2 dias fazendo um bom backup de tudo que eu tinha rodando no servidor compartilhado (vários arquivos com data de 2005 e 2006, incluindo o diretório deste blog), e movendo tudo pro VPS, com ganho de desempenho e de estabilidade.

Eu não precisava desse desempenho e dessa estabilidade adicionais, afinal não tenho nenhum projeto crítico rodando nesse provedor (exceto, talvez, o Termais), mas eles estão certos: por conta de nosso contrato já ter décadas, e de alguns dos meus sites serem volumosos e populares, eu excedi por anos a fio os limites previstos no contrato.

Aí mudei, deu tudo certo e estamos de casa nova.

 
  1.  Não que no VPS deixe de haver compartilhamento de recursos, mas é de outra forma, e não é a mesma lista de recursos.

O espírito punk combina muito bem com a cultura hacker

Hoje a pauta é sobre o movimento punk e a cultura hacker - não é sobre músicas, nem programar computadores (que também gostamos).

Uma vez eu fui ali tomar um café com a vizinha Melissa e a gente conversou sobre o conceito do que é ser punk - não o estilo, nem a música (também legais!), mas os fundamentos: o faça-você-mesmo, o agir localmente, o apoio mútuo, a rejeição a discriminações.

Ou seja: as coisas que permanecem mesmo quando a pessoa não calça coturnos e nem tem o cabelo verde.


Foto de uma mulher jovem, sorrindo para a câmera, de boné preto virado para trás, com uma camiseta preta onde se lê “What's more punk than the publica library?”, e com tatuagens perto do seu pulso direito.
“O que é mais punk que uma biblioteca pública?”, pergunta a camiseta de Lesley Garrett – que, como voluntária, coordena uma biblioteca móvel em sua cidade.

Durante aquele café memorável, eu e a Melissa notamos que algumas atividades super punks, tipo ser bibliotecário, cultivar uma horta comunitária e reformar as suas roupas, são coisas que também se conectam (inclusive por via dos princípios e fundamentos) com a cultura hacker – o que ajuda a explicar a razão de ter tanta conexão entre esses dois grupos nas comunidades virtuais.

Vindo de uma vida inteira de imersão tecnológica, a cultura hacker – caracterizada pelo compartilhamento e por valorizar ir além das restrições, mas não necessariamente daquelas formas que você vê nos filmes – está presente em muito do que eu vejo e faço, a exemplo de coisas como o baralho de dicas de Linguagem Simples que eu criei desconsiderando minhas limitações artísticas, simplesmente porque queria que ele existisse, para poder usar.

Esse faça-você-mesmo comunitário, sustentável e independente é punk e é hacker, é muito prático mas também é filosófico. E é um bom combo, quando o alinhamento existe.

As décadas foram passando e, pra mim, esse enfoque hacker que eu pratico foi se aproximando cada vez mais do espírito punk, também, no sentido de permanecer tecnológico mas cada vez mais preferir projetos que promovam o apoio mútuo (ou o apoio a quem recebe pouco apoio), as soluções independentes e a rejeição a discriminações.

Esse faça-você-mesmo comunitário, sustentável e independente é punk e é hacker – e é também filosófico, em algum nível. No futuro talvez eu aprofunde essas ideias, porque a aplicabilidade prática delas cresce em momentos de incerteza global e de proximidade de crises – já que promove a resiliência e as soluções independentes.

Por enquanto, vou colocando em prática sem aprofundar, mesmo – e compartilhando, seja pelo exemplo ou por palavras, com quem queira ouvir.


Nota: para uma visão sobre outra faceta do punk (o estilo punk, que já há décadas virou também uma vertente do pop), postei no ano passado uma brevíssima reflexão histórica em: “Os punks de boutique, cantados pelo The Clash”.

História e glória do grep, o filtro fundamental do Unix

O grep é um dos filtros mais populares do Unix, e serve para localizar textos ou padrões em arquivos ou fluxos.

Sua popularidade é tamanha que ele frequentemente está presente já nas lições iniciais de cursos de Linux, e seu nome passou a ser usado como sinônimo para o ato de pesquisar, até mesmo em editores de texto para outros sistemas.


Banner com o nome do grep

O grep parece corriqueiro, mas tem muitos detalhes interessantes, e hoje vamos conhecer um pouco mais sobre os bastidores e a sua história.

A utilidade prática do grep contribuiu para sua ampla disseminação. Por exemplo, eu lembro de ter usado uma versão 8 bits, para MSX, nos anos 1980, e usei muito as versões para DOS e Windows, na década seguinte.

O nome vem da sequência de teclas para acionar a mesma funcionalidade de pesquisa (Global / Regular Expression / Print) no venerável editor 'ed', lá nas origens do Unix.

Mas o grep não é muito posterior ao ed. Os dois são de 1973 (que também é o mesmo ano em que eu nasci).

A versão inicial do grep – que se chamava simplesmente s (de "search") – foi escrita pelo próprio Ken Thompson, um dos pais do Unix. Após ter sido modificada a pedido de um colega, e já com o nome de grep, a ferramenta foi incluído na versão 4 do Unix (1973).

Existe uma lenda de que o grep foi escrito em apenas uma noite, após o tal pedido, mas Thompson nega, e afirma que foi um mal entendido - ele já havia escrito o código antes, e não havia divulgado.

grep x grep

Quem usa distribuições Linux provavelmente tem instalado o ágil GNU Grep, cuja versatilidade é grande a ponto de ter gerado um fato raro: levou a versão BSD do grep, tradicionalmente vista como rival, a adotar os parâmetros longos (como --ignore-case) que a versão integrante do GNU popularizou.

Já o BSD Grep está presente nos próprios BSDs e em outros sistemas Unix não-GNU, como o sistema operacional do Mac, por exemplo. No meu Mac o grep default veio do FreeBSD, e eu instalei por cima o do GNU.

Ambas as implementações do grep possuem algo em comum: também podem ser chamadas pelos comandos alternativos egrep e fgrep - para fazer buscas, respectivamente, por expressões regulares mais completas (extended, ou ERE), ou por strings fixas.

A sintaxe das ERE (do comando egrep) é aquela que é familiar a programadores deste século, onde caracteres como ?, +, |, () e {} têm significado especial por default. O comando grep "seco" interpreta uma sintaxe básica, chamada BRE.

Limitações do passado, consequências presentes

O egrep e o fgrep foram incluídos a partir da versão 7 do Unix (1979) - porém só o grep faz parte do padrão POSIX; a razão da existência dos outros 2 comandos é por conveniências de implementação, considerando as limitações dos computadores da época.

Hoje em dia, egrep, fgrep (e outras variantes como rgrep e bzgrep) são meros links para o mesmo executável do grep, e podem ser acionados também como parâmetros da linha de comando: "grep -E" e "grep -F", respectivamente.

Porém faz tempo que as limitações dos anos 1970 não estão mais presentes. Desde 2007 o GNU grep marcou como obsoletos os comandos egrep ou fgrep. Mas muitos usuários (e seus scripts) continuaram a chamá-los.

Assim, a partir da versão 3.8 do GNU Grep (de 2022), o uso com os nomes de egrep e fgrep passou a gerar um aviso de obsolescência, lembrando que que podem ser substituídos pelo grep com parâmetros.

O manual até mostra um script de uma linha para manter o nome original, no futuro.

Para mim, a sintaxe completa (ou ERE) das expressões regulares é a mais natural, e sou leitor de manual, então sabia do caso e há anos passei a usar "grep -E" nos meus scripts.

Sugiro que você faça o mesmo, e evite assim uma incompatibilidade quando eles resolverem arrancar o de vez o band-aid...

Indo além

O grep é um utilitário maduro, mas sempre há espaço para evolução, e a já mencionada versão GNU 3.8 trouxe algumas novidades: vários casos novos de sintaxe ambígua passaram a ser tratados e, para quem usa expressões regulares do Perl, o suporte evoluiu da implementação PCRE para a PCRE2.

As versões do grep lançadas desde então (2022 em diante) tiveram foco também em corrigir ou complementar o suporte às expressões regulares estilo Perl.

Se você quer explorar as possibilidades do grep e da fauna de utilitários e bibliotecas que tiram proveito da mesma tecnologia, recomendo muito a 5ª edição do livro Expressões Regulares, do Aurélio Marinho Jargas/Novatec.

E se quiser ir além das funcionalidades históricas do grep, pode explorar alguns dos seus sucessores, como o ripgrep, rak, The Silver Searcher e The Platinum Searcher; estes últimos também são conhecidos como ag e pt, dos respectivos elementos na tabela periódica.

A história se repete como farsa, ou no mínimo como rima

Aprendi Unix no AIX, na primeira metade dos anos 1990, e vem de lá a minha memória dos parâmetros do tar, de como sair do vi, e outros aprendizados essenciais.

Depois, na segunda metade da mesma década, vieram meus tempos de HP-UX, que vinha com conjuntos de manuais impressos a partir das man, também. A coleção era maior que a Barsa!


Logotipo do HP-UX e tela de uma estação HP rodando o ambiente gráfico CDE
Logotipo do HP-UX e tela de uma estação HP rodando o ambiente gráfico CDE

E o HP-UX tinha uma coisa interessante: para alguns comandos, trazia tanto a versão "original" quanto a do BSD. Por exemplo, tinha o df e o bdf. Foi nele que eu aprendi a programar em awk, habilidade que me serve muito bem até hoje.

O HP-UX não vinha com as coisas do GNU, mas a HP publicava um informativo que trouxe um dia uma rotina pra compilar o GCC a partir do cc oficial dele, e aí usar o gcc para compilar os demais componentes do GNU que a pessoa quisesse ter.

Foi do HP-UX que eu pulei para o Linux, a princípio num aprendizado em paralelo, em que predominava o primeiro, mas o segundo logo passou a ser o carro-chefe.


Aliás hoje em dia no Mac eu vivo algo similar ao que o HP-UX fazia com as versões BSD dos comandos: o MacOS é um Unix derivado do BSD e vem com os comandos do BSD, aí a gente instala os pacotes do GNU e fica com versões diferentes pra usar: awk e gawk, date e gdate, etc.

Cuidado com esse site de pirataria de livros

Quem acompanha a cena da pirataria de livros tem que tomar cuidado com esse site, que monitora e lista a disponibilidade de vários sites do ramo:

🏴‍☠️ https://open-slum.org

mas cuidado pra não clicar em nenhum link dele, senão você pode acabar indo parar em algum site de pirataria de livros, hein

500 Caracteres, ed. #004: atlas lunar, drinks de Lenin e fotos de raios

🌔🗺️ O fantástico e recente atlas chinês do globo lunar

✈️⛈️ O piloto de 767 que fotografa tempestades no Pacífico

📃🖋️ Como o Markdown conseguiu competir com o Word

🪙🥃 A moeda soviética que virou sinônimo de bons drinks

⛏️🏰 As relíquias romanas encontradas por acidente em Londres

Qual você curtiu mais?


🐘 Veja o original desta edição, no Mastodon.

🗞️ A newsletter 500 CARACTERES é publicada integralmente no Fediverso, e nela eu acumulo histórias interessantes, em posts individuais na tag #newsletter, que depois agrupo na forma de um índice como este, para facilitar a disseminação.

💥 O objetivo é compartilhar curiosidades e histórias que possam ter escapado à atenção coletiva – e não notícias ou novidades. Portanto, prepare-se para links nem tão recentes, mas igualmente atrativos, coletados a partir do meu acervo.

O futuro da música é ainda pior

Hoje quando eu estava naquela área cinzenta entre dormindo e acordado, me veio um pensamento muito distópico: agora com a IA generativa vai ficar muito mais fácil pegar qualquer música chiclete ou qualquer grande sucesso do passado e fazer aquelas versões "sambô", versões chipmunks, versões violão de barzinho, versões bossa nova etc.

O futuro da música é ainda pior do que ter músicas "originais" feitas por IA: estaremos sujeitos a um ciclo infinito de versões derivadas

Incentivo também faz parte da inclusão

Uma coisa que quem já está no mercado de trabalho pode fazer pela inclusão das pessoas menos representadas é INSISTIR para que elas se inscrevam e levem a sério a seleção pras vagas.

Reiteradas pesquisas demonstram que os públicos privilegiados (tipicamente homens brancos cis het) se inscrevem quando acham que tem 50%~60% da qualificação exigida, enquanto quem é de populações vulneráveis está acostumado a enfrentar viés e só se inscreve quando tem evidências de 100% do que foi pedido, o que facilita ainda mais o cenário dos privilegiados, e dificilmente ajuda quem já tem o cenário contra si.

500 Caracteres, ed. #003: caracóis, Katniss e Queen

🐌⚔️ Um meme medieval REAL: cavaleiros X caracois

🍣🏆 Como o sushi fez sua transição de exótico pra pop

👗🥻 Vestido como o da Katniss Everdeen, na vida real

🦑🌊 O mágico vídeo viajante das criaturas abissais

🚀🎸 O dia em que o guitarrista do Queen ajudou a NASA a pousar no asteróide


🐘 Veja o original desta edição, no Mastodon.

🗞️ A newsletter 500 CARACTERES é publicada integralmente no Fediverso, e nela eu acumulo histórias interessantes, em posts individuais na tag #newsletter, que depois agrupo na forma de um índice como este, para facilitar a disseminação.

💥 O objetivo é compartilhar curiosidades e histórias que possam ter escapado à atenção coletiva – e não notícias ou novidades. Portanto, prepare-se para links nem tão recentes, mas igualmente atrativos, coletados a partir do meu acervo.

500 Caracteres, ed. #002: SNES, Antártida, e apito asteca

📆🇮🇸 O sucesso da semana de 4 dias na Islândia

🚜🏙️ O prédio que foi empurrado pro terreno ao lado

🏃🏻🕹️ O fenômeno da velocidade moderna do SNES

🧊💬 O novo sotaque regional nascendo na Antártida

🌬️☠️ O aterrorizante apito cerimonial asteca


🐘 Veja o original desta edição, no Mastodon.

🗞️ A newsletter 500 CARACTERES é publicada integralmente no Fediverso, e nela eu acumulo histórias interessantes, em posts individuais na tag #newsletter, que depois agrupo na forma de um índice como este, para facilitar a disseminação.

💥 O objetivo é compartilhar curiosidades e histórias que possam ter escapado à atenção coletiva – e não notícias ou novidades. Portanto, prepare-se para links nem tão recentes, mas igualmente atrativos, coletados a partir do meu acervo.