Links for 2020-04-21

Visualizing You Docker Compose, MongoDB vs PostgreSQL, Assignment Statement, How to Understand Systems, Learning Haskell, Losing Your YouTube Account, IDEs For Students

Nautilus: A Docker Compose Charting Tool

Not sure if you're designing your Docker Compose properly? This tool can draw every container, their names, volumes and so on.

Comparison of JOINS: MongoDB vs. PostgreSQL

Ok, short summary: Yes, MongoDB doesn't have joins and you have to do them yourself. You can write your own (very long) aggregations to make it work like joins in relational databases, but the speed is atrociously slow.

Now, why am I sharing this? 'Cause one of the points of using MongoDB (or any other NoSQL database) requires denormalizing your data first. It takes more space due duplication, it can lead to some inconsistencies, but you need to keep thins in mind when using those database -- and sometimes, it is exactly what you need.

How to avoid the assignment statement

Surely using other languages than C can give you a lot of control over this kind of stuff, but the suggestions here are valid for any languages.

And before you think it's because "assignment statement considered harmful", no, that's not it. It's just some tricks into doing things that will give you less headaches in the future.

Systems that defy detailed understanding

Instead of "How to avoid problems" or "How to fix common issues", the author explains how to understand what you're dealing with. And I can get behind this: Before you fix something, you need to understand how the system works.

(Maybe that's why I like Contracts so much: It describes what a system consumes and what it produces and what every thing in the final product means. This reduces the chance of being misunderstood.)

What I Wish I Knew When Learning Haskell

While most of "Thinks I Wish I Knew" posts actually mean "Stupid things I did in So and So that I shouldn't", this is actually a very complete introduction to Haskell.

YouTube Accidentally Permanently Terminated My Account

While this was solved and the account reinstated, this kind of report just shows the perils of not controlling your platform: In a whim, everything you have could vanish.

I don't mean "You need to buy your own hack, put your own blades, and lease your own internet connection to have a site on the web", but when the policies over your content are not managed by yourself, you're about to get a lot of pain.

Stop Making Students Use Eclipse

I kinda make this same point some time ago: While it is nice and dandy that you can press a button and make a code run -- or make a full deployment -- when you're actually learning a language, those things are actually a problem than a solution.

Sure, creating a build is hard and making a deployment even harder, but when people who are learning to code are not taught how those things work, 'cause they can "just press a button", they will never learn. Without exposing them to the hardship of what is to make code -- and building and deployment are two facets of this -- they can never learn how to make a CI/CD, for example.