O UTF-8 começou em um jogo americano
Ken Thompson e Rob Pike projetaram o UTF-8 em uma única noite. Thompson resolveu o layout dos bits em um jogo americano e voltou ao laboratório e o implementou antes de a noite terminar.
grep já foi um comando de editor
O nome grep vem do comando g/re/p do ed: encontre globalmente linhas que casam com uma expressão regular e as imprima. Uma pequena linha de comando acabou virando o nome de um programa e depois um verbo.
- DEVICE
- /dev/audio0
- TRACK
- 04 / 04
- ARTIST
- —
- TITLE
- —
- TIME
- 00:00 / 00:10
user@vladymir:~$ mpg321 ~/music/track01.mp3 High Performance MPEG 1.0/2.0/2.5 Audio Player Version 0.3.2 Playing MPEG stream from track01.mp3 ... MPEG 1.0 layer III, 192 kbit/s, 44100 Hz stereo File: 01 - test tone — 220 Hz.mp3 [00:00 / 00:10] >......... volume: [######--] 70% keys: p pause/resume < previous > next - volume down + volume up q stop mpg321> ▮
gabinetes bege / fósforo verde / bons manuais
Computadores antigos recompensam atenção porque suas restrições são visíveis. São lembretes úteis de que estilos de interação e fronteiras de sistema eram escolhas, não leis da natureza.
Ken Thompson e Rob Pike projetaram o UTF-8 em uma única noite. Thompson resolveu o layout dos bits em um jogo americano e voltou ao laboratório e o implementou antes de a noite terminar.
O Plan 9 recebeu o nome do filme de Ed Wood, Plan 9 from Outer Space. Seus terminais foram chamados de Gnot, por causa de outro filme de Ed Wood, e a coelha Glenda ecoa o filme Glen or Glenda.
O nome grep vem do comando g/re/p do ed: encontre globalmente linhas que casam com uma expressão regular e as imprima. Uma pequena linha de comando acabou virando o nome de um programa e depois um verbo.
A Lua foi criada na PUC-Rio, no Brasil. Seu nome é a palavra portuguesa para "lua", então o projeto pede explicitamente que as pessoas escrevam Lua, e não LUA em caixa alta.
O Mars Pathfinder sofreu reinicializações repetidas causadas por inversão de prioridade. Os engenheiros reproduziram o problema na Terra e habilitaram a herança de prioridade remotamente, porque o código necessário já estava presente no sistema operacional da nave.
O comando Unix yes imprime y para sempre por padrão, mas pode repetir qualquer argumento: yes "ainda testando". Ele é útil para alimentar outro programa com entrada previsível — e surpreendentemente eficaz para expor o custo da saída no terminal.
Dados dois arquivos ordenados, comm produz três colunas: linhas exclusivas do primeiro, linhas exclusivas do segundo e linhas compartilhadas pelos dois. Opções como -12 suprimem colunas, transformando-o em uma ferramenta compacta de interseção de conjuntos.
O Make tradicional exige que as linhas de receita comecem com um tab. A sintaxe sobreviveu por décadas, tornando-se tanto uma convenção reconhecível quanto uma fonte recorrente de erros de formatação invisíveis.
Os operadores do Harvard Mark II colaram no livro de registro uma mariposa encontrada em um relé e a descreveram como o "primeiro caso real de um bug sendo encontrado". A palavra bug já significava defeito técnico; a mariposa tornou a piada literal.
Em 1971, Ray Tomlinson enviou o primeiro e-mail de rede entre duas máquinas e escolheu o @ para separar o usuário do host — um caractere quase nunca usado em nomes. A primeira mensagem foi algo esquecível, e Tomlinson disse mais tarde que a enviou para si mesmo.
Em 1971, Bob Thomas escreveu o Creeper, geralmente considerado o primeiro programa de computador autorreplicante. Ele não fazia mal: exibia uma mensagem e se movia para outro PDP-10 na ARPANET. Um programa chamado Reaper foi escrito para limpá-lo — talvez o primeiro antivírus.
foo, bar e baz — os nomes de placeholder usados em exemplos de código — vêm de FUBAR, gíria de guerra para "Fouled Up Beyond All Recognition". O foo apareceu cedo na cultura hacker e se fixou como nome de exemplo canônico, seguido por bar e uma trilha de variações.
O ping, a ferramenta de alcance de rede, foi escrito por Mike Muuss em 1983 e recebeu o nome do pulso do sonar ativo — um som curto emitido e refletido de volta. O nome combina tanto com o comportamento que depois inventaram um acrônimo, "Packet InterNet Groper".
O termo spam para mensagens indesejadas vem de um esquete de 1970 do Monty Python em que o cardápio de uma lanchonete repete a palavra "spam" até abafar todo o resto. Quando os primeiros usuários da Usenet inundavam grupos, o spam sem fim do esquete virou a comparação óbvia.
Quando Linus Torvalds começou o kernel em 1991, ele o chamou de Freax — uma mistura de "free", "freak" e o "x" de Unix. O administrador do servidor FTP achou o nome feio e, sem perguntar, publicou os arquivos num diretório chamado "linux". O nome pegou.
O comando tac é cat escrito de trás para frente, e se comporta de acordo: imprime as linhas de um arquivo em ordem inversa, a última primeiro. Útil para virar um log cronológico de cabeça para baixo e deixar as entradas mais novas no topo.
O comando rev inverte os caracteres de cada linha da entrada. É uma ferramenta de um truque só, mas combina bem com outras quando o texto precisa ser processado a partir do fim — por exemplo, campos alinhados à direita ou buscas invertidas.
O comando nl numera as linhas de um arquivo — um trabalho que faz com opções surpreendentes: numerar só linhas não vazias, controlar o formato ou numerar páginas lógicas. Um cat -n simples faz uma versão grosseira, mas nl é a ferramenta que leva a numeração a sério.
O comando factor imprime os fatores primos de cada número que recebe. Hoje é quase uma curiosidade, mas vem de uma longa tradição de utilitários aritméticos do Unix, e continua sendo uma forma rápida de decompor um inteiro sem abrir uma calculadora.
O comando seq imprime uma sequência de números — um por linha por padrão, com controle sobre início, fim e passo. É o ajudante silencioso do corpo de um loop: em vez de escrever um contador à mão, scripts de shell chamam seq para gerar o intervalo.
O comando look imprime linhas que começam com um dado prefixo, usando uma busca binária que assumia uma lista ordenada de palavras como /usr/share/dict/words. É o ancestral silencioso do corretor ortográfico — uma forma rápida de ver se uma palavra existe ou de listar complementos.
O comando paste mescla as linhas correspondentes de arquivos, colocando-as lado a lado separadas por um tab. Ele transforma vários arquivos de uma coluna só numa tabela em um passo — o primo textual do colar de planilha, feito inteiramente no shell.
O comando join combina dois arquivos ordenados por um campo comum, do jeito que um banco de dados junta tabelas. Ele é exigente — os arquivos precisam estar ordenados pelo campo de junção — mas, para dados de texto plano, traz uma fatia de poder relacional à linha de comando.

