Links Comentados de 2020-07-19

Criando Executáveis no Estilo Unix, Estruturas de Dados e Algoritmos Realmente Usados, Fundação Zig, Rust no Linux, IA Ruim, Git Ignore, O Que É CI e CD.

Traditional Unix Toolchains

Embora o título possa dar a impressão que vai ser falado das ferramentas comuns de unix (e pipes, e && e ||), na verdade o post fala sobre o processo que os compiladores unix fazem quando estão convertendo seu código C em um executável.

Pode ser um pouco sucinto, mas e sucinto nos lugares certos. Explica bem todo o processo, as ferramentas envolvidas e o que elas fazem no processo inteiro.

Data Structures & Algorithms I Actually Used Working at Tech Companies

Quando estamos fazendo entrevistas de emprego, somos perguntados sobre um monte de coisas. Mas o que realmente é usado? Me lembra aquela piada de que as pessoas são perguntadas, na entrevista, para escreverem um algoritmo para inverter uma árvoce binária, mas o trabalho é mover um botão 2 píxeis para a esquerda.

Mas é bom saber o que é realmente utilizado, em aplicações de verdade. E não apenas em algum CRUD ou algo do tipo, mas o que acontece em aplicações como Skype e Uber.

Announcing the Zig Software Foundation

Zig é uma pequena linguagem que se colocou para resolver os problemas com C.

O que me impressionou aqui é que a comunidade Rust tem falado sobre criar uma fundação, para que a linguagem fique aberta para todos, mas até agora não conseguiram fazer.

Então, parabéns para os desenvolvedores do Zig por criarem a sua fundação!

Linux kernel in-tree Rust support

Parece que os desenvolvedores do kernel do Linux finalmente abriram as portas para novas linguagens na área de desenvolvimento.

O que me parece "errado" aqui é o Linus dizendo que o "suporte a Rust" deve estar sempre ligado, e se algo quebrar, eles podem apontar que o suporte estava quebrado. A parte "errada" disso é que, obviamente, bota visibilidade nas coisas que não funcionam ao invés das que funcionam. O que acontece se tiverem módulos que funcionam corretamente, mas um deles falha? Obviamente que todo mundo vai dizer que o suporte não funciona e que as pessoas devem continuar com o que funciona.

Mas Linus, sabe como é...

Awful AI

Nem toda IA é boa. Nem toda IA vai te ajudar a encontrar um horário disponível para todo mundo pra uma reunião. Não é toda IA que vai colocar as tags nas suas fotos com localizações e as pessoas que você gosta -- mas que vão também marcar pessoas negras como "gorilas". Ou talvez dizer quem é gay ou não (e pense como isso afetaria essas pessoas em países que consideram homossexualidade um crime). E a lista continua.

gitignore.io

Crie um .gitignore para todas as coisas do seu projeto, baseado na linguagem e ferramentas que você usa.

The real difference between CI and CD

O que CI e CD fazem? Para que eles servem?

Eu tenho essa ideia de fazer uma apresentação para pessoas que estão começando com desenvolvimento sobre isso -- porque, vocês sabem, ainda existem pessoas que acham que fazer um git push no computador e git pull no servidor de produção e uma boa decisão...