Formerly /u/neoKushan on reddit

  • 0 Posts
  • 26 Comments
Joined 2 years ago
cake
Cake day: June 16th, 2023

help-circle

  • Most developers are writing for developers who have approximately the same skill level and knowledge

    I think you’re correct about this, but I also think that’s part of the problem.

    On the one hand you can have technical tutorials for technical people, but to your point assuming the audience has the same skill level and knowledge is actually a mistake - no two people share the same same life, so while it’s reasonable to assume a certain level of knowledge, you still need to consider that there may be gaps - small gaps but gaps all the same and that it’s worth being explicit about things to avoid ambiguity. A common pitfall I see in a lot of tutorials or guides is not being explicit about file paths (“just add this to the config folder” - which folder? Where?), or not correctly steering the user towards the relevant documentation about configuration values while still expecting them to insert some config file specific to their system, stuff like that.

    The other end of the spectrum - the beginner, to your point might not be the target audience but a lot of people don’t realise that those folks exist. The absolute classic example I see of this is Linux for the Everyman - Lemmy is very big on promoting Linux and moving folks away from Windows/MacOS but there’s a bit of a disconnect because a lot of tutorials exist that base level of knowledge that a complete beginner doesn’t have. So they’re both not the target audience but expected to learn that stuff - and of course it doesn’t work and they stick to what they do know.

    All this is to say, writing tutorials is a skill in itself and part of that skill is knowing who your target audience really is and knowing where your knowledge is his experience from working at something for so long or a basic level of understanding you expect a user to have.


  • It used to be 26, so you could plan shows covering half a calendar year, then over the years it got cut down more and more. And it was probably not a bad thing because you typically had the same budget but meant you didn’t have to do a cheap clip show to pad out the numbers.

    That’s also why you see a lot of shows with 13 episodes, that seemingly arbitrary number is “half” a traditional season. Even Netflix, despite not traditionally caring too much about seasonal stuff or drip feeding week to week, has a lot of 13 episode seasons.

    I guess at some point people wanted even numbers (10) as 13 does feel a bit arbitrary even if there’s a reason for it.

    Personally for me I’d rather have 10 great quality episodes than 26 episodes where maybe 8 of them are great, 10 are okay and the rest are utter dogshit. The problem is that even (what I consider) great shows like Strange New Worlds, despite only having those 10 episodes per season, still has the odd naff episode.

















  • Okay, so I think I can help with this a little.

    The “secret sauce” of Docker / containers is that they’re very good at essentially lying to the contents of the container and making it think it has a whole machine to itself. By that I mean the processes running in a container will write to say /config and be quite content to write to that directory but docker is secretly redirecting that write to somewhere else. Where that “somewhere else” is, is known as a “volume” in docker terminology and you can tell it exactly where you want that volume to be. When you see a command with -vin it, that’s a volume map - so if you see something like -v /mnt/some/directory:/config in there - that’s telling docker "when this container tries to write to /config, redirect it to /mnt/some/directory instead.

    That way you can have 10 containers all thinking they’re each writing to their own special /config folder but actually they can all be writing to somewhere unique that you specify. That’s how you get the container to read and write to files in specific locations you care about, that you can backup and access. That’s how you get persistence.

    There’s other ways of specifying “volumes”, like named volumes and such but don’t worry too much about those, the good ol’ host path mapping is all you need in 99% of cases.

    If you don’t specify a volume, docker will create one for you so the data can be written somewhere but do not rely on this - that’s how you lose data, because you’ll invariably run some docker clean command to recover space and delete an unused unnamed volume that had some important data in it.

    It’s exactly the same way docker does networking, around port mapping - you can map any port on your host to the port the container cares about. So a container can be listening on port 80 but actually it’s being silently redirected by the docker engine to port 8123 on your host using the -p 8123:80 argument.

    Now, as for updates - once you’ve got your volumes mapped (and the number and location of them will depend on the container itself - but they’re usually very well documented), the application running in the container will be writing whatever persistence data it needs to those folders. To update the application, you just need to pull a newer version of the docker container, then stop the old one and start it again - it’ll start up using the “new” container. How well updates work really depends on the application itself at this point, it’s not really something docker has any control over but the same would be if you were running via LXC or apt-get or whatever - the application will start up, read the files and hopefully handle whatever migrations and updates it needs to do.

    It’s worth knowing that with docker containers, they usually have labels and tags that let you specify a specific version if you don’t want it updating. The default is an implied :latest tag but for something like postgress which has a slightly more involved update process you will want to use a specific tag like postgres:14.3 or whatever.

    Hope that helps!