Commented Links for 2020-07-19

Building Executables Unix Way, Really Used Data Structures and Algorithms, Zig Foundation, Rust on Linux, Bad AI, Git Ignore, What is CI and CD.

Traditional Unix Toolchains

While the title may give some impression that it will talk about common unix tools (and pipes, and && and ||), it actually talks about the process the unix compilers take on converting your C code into an executable.

It is a bit succinct, but succinct in the right places. It gives a good explanation on the whole process, the involved tools and their jobs in the process.

Data Structures & Algorithms I Actually Used Working at Tech Companies

When doing job interviews, we get asked about a lot of stuff. But what do we actually use? Kinda reminds of that joke about the job interview asking to invert a binary tree and the job is just to move a button 2 pixels to the left.

But it is good to know what is actually useful, in real life applications. And not just some CRUD or whatever, but what goes into Skype and Uber.

Announcing the Zig Software Foundation

Zig is a small language aimed to fix the problems with C.

What impressed me here is that the Rust community had talks about making a foundation, so the language would be open to everyone, but still didn't manage to make it.

So, kuds to Zig developers for creating their foundation!

Linux kernel in-tree Rust support

Alright, so it seems the Linux developers finally opened to doors to new languages in their tree.

What feels "wrong" here is that Linus is saying that "Rust support" should always be up, so if something breaks, they can point that it was broken anyway. The "wrong" part is that this, obviously, puts visibility on things that don't work instead of focusing on the things that do work. What if there are a couple of modules working fine, but only one fails? Obviously everybody will point out that the support doesn't work and people should stick with what still works.

But Linus, you know...

Awful AI

Not every AI is good. Not every AI will help you find an open spot for that meeting with everyone. Not every AI will tag your photos with locations and loved one -- but they would tag any black people as "gorillas". Or maybe say who may be gay or not (and think how those people would be affected on countries that see homosexuality as a crime). The list goes on and on.

Create a comprehensive .gitignore for your project, based on your language and tools.

The real difference between CI and CD

What does CI and CD do? What they are there for?

I've been thinking about doing a presentation for people starting with in development about each of those -- 'cause, you know, there are a bunch of people still thinking git push on your computer and git pull on the production server is a good decision...