Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
necrotic
Aug 2, 2005
I owe my brother big time for this!

xtal posted:

Isn't Docker's package management just sweeping the underlying package manager under the rug? Most images use apk, apt-get, rubygems or whatever and aren't reproducible.

Uh, yeah they are?

Adbot
ADBOT LOVES YOU

The Fool
Oct 16, 2003


necrotic posted:

Uh, yeah they are?

What happens when a package is depreciated or otherwise removed?

necrotic
Aug 2, 2005
I owe my brother big time for this!

The Fool posted:

What happens when a package is depreciated or otherwise removed?

Well, obviously it won't work if a source package is removed. That's true of any build system, though.

If you want truly reproducible builds you have to vendor everything you use, that's no different here.

susan b buffering
Nov 14, 2016

The Fool posted:

What happens when a package is depreciated or otherwise removed?

Use the snapshot repository?

rjmccall
Sep 7, 2007

no worries friend
Fun Shoe
As someone who uses Docker exclusively for OS virtualization, I find this semantic debate fascinating.

xtal
Jan 9, 2011

by Fluffdaddy

Volte posted:

The images aren't supposed to be reproducible from the Dockerfile, in fact going to great lengths to ensure that they are is kind of counter to the entire point of Docker. The environments themselves are reproducible, via the images. If the problem is "my environment isn't reproducible because it depends on the whims of apt-get", the solution provided by Docker is "run apt-get one time and then snapshot the output, then never run apt-get again". The scripts that generate the images aren't important to the end user and there's no actual requirement that the average user ever writes or even executes a Dockerfile to use Docker for its intended purpose.

I think that fits the defintion of "sweeping under the rug"

I removed it from my earlier post but NixOS does what Docker does in a considerably better way. I just didn't want someone to poke a hole in NixOS and say that means Docker is good.

Containers on NixOS are reproducible, defined declaratively as opposed imperatively, and use the same chroot + cgroups foundation as Docker. You have a fully integrated package manager and don't have a concept of container imagers versus standard code, you just decide to run certain code inside a container by indenting it two levels. You use the standard UNIX tools instead of Docker wrappers you need to learn. The internetworking can even be set up fully typed and statically guaranteed!

But if Docker is like JavaScript, NixOS is like Haskell.

xtal fucked around with this message at 01:23 on Feb 19, 2020

Jabor
Jul 16, 2010

#1 Loser at SpaceChem
Your description of nixos makes it sound like a simple wrapper around cgroups that doesn't handle package management at all. So I'm not sure it really fills the same role as docker?

xtal
Jan 9, 2011

by Fluffdaddy

Jabor posted:

Your description of nixos makes it sound like a simple wrapper around cgroups that doesn't handle package management at all. So I'm not sure it really fills the same role as docker?

It definitely does include package management, I must have not explained it well. NixOS can run arbitrary packages (nixpkgs) inside containers, but doesn't have a separate concept of container images versus ordinary packages. Containers can also refer to each other by name which is how you have static guarantees about how they communicate.

https://nixos.org/nixos/manual/#sec-declarative-containers

The `docker run` thing can also be replicated on NixOS with something like `nix-shell -p gimp --run gimp` which I do often for apps I don't want to keep around.

xtal fucked around with this message at 01:36 on Feb 19, 2020

Jabor
Jul 16, 2010

#1 Loser at SpaceChem
Okay, so once I've set up my app in a nixos container, how do I ship it to run on some other machine the same way I would send a docker image around?

Do I have to just send the configuration file that defines the container and hope that whatever machine is running it is able to access all the same packages?

xtal
Jan 9, 2011

by Fluffdaddy

Jabor posted:

Okay, so once I've set up my app in a nixos container, how do I ship it to run on some other machine the same way I would send a docker image around?

Do I have to just send the configuration file that defines the container and hope that whatever machine is running it is able to access all the same packages?

Sending the configuration file is one way, but the consumer would have to have access to the Internet (or wherever the packages were originally from.) You can also send the built derivation (which isn't necessarly a container, as you can run it inside or outside a container) and all of its dependencies. This would be something like /nix/store/1.0.0-my-app which depends on /nix/store/1.0.0-ruby which depends on /nix/store/1.0.0-pcre. Since users are permitted to run multiple, isolated versons of the same package, this is totally fine. NixOps, the pseudo-official NixOS devops tool, does it this way.

There are tools to make this efficient, and it's easier to optimize since each package is reproducible and hashed for verification. https://nixos.org/nix/manual/#sec-nix-copy-closure

This is all talking about a hypothetical future where we're all using NixOS, but I would rather focus on an ideal future instead of deal with a short-term hack.

xtal fucked around with this message at 01:44 on Feb 19, 2020

Jabor
Jul 16, 2010

#1 Loser at SpaceChem

xtal posted:

This is all talking about a hypothetical future where we're all using NixOS, but I would rather focus on an ideal future instead of deal with a short-term hack.

Okay. Us here in the real world will continue using the tool that actually works and solves our problems today instead of waiting.

xtal
Jan 9, 2011

by Fluffdaddy
The real world is a steaming pile of crap, so your strategy isn't working very well. We are, after all, in the Coding Horrors thread. Software is in a state of crisis. I think that we need to focus on correctness for once and treat our craft with respect. Layering bandage upon bandage has got us so far.

It's also disrespectful to the people trying to progress the state-of-the-art when you poo poo in the pool and ruin it for them too. Wise people told us we never should have (example) allowed JavaScript, and now those wise people probably have to write JavaScript because morons didn't listen. It must be very frustrating to always have to code for the lowest common denominator.

xtal fucked around with this message at 02:06 on Feb 19, 2020

Volmarias
Dec 31, 2002

EMAIL... THE INTERNET... SEARCH ENGINES...

Jabor posted:

Okay. Us here in the real world will continue using the tool that actually works and solves our problems today instead of waiting.

Alcohol is just one of many tools in the toolbox though.

Jabor
Jul 16, 2010

#1 Loser at SpaceChem

xtal posted:

The real world is a steaming pile of crap, so your strategy isn't working very well. We are, after all, in the Coding Horrors thread. Software is in a state of crisis. I think that we need to focus on correctness for once and treat our craft with respect. Layering bandage upon bandage has got us so far.

It's also disrespectful to the people trying to progress the state-of-the-art when you poo poo in the pool and ruin it for them too. Wise people told us we never should have (example) allowed JavaScript, and now those wise people probably have to write JavaScript because morons didn't listen. It must be very frustrating to always have to code for the lowest common denominator.

There's a mile of difference between actually progressing the state of the art, and ivory-tower "this would be perfect if only the entire world stopped what they were doing and started doing this instead".

(Spoilers: it wouldn't be perfect, you just don't have enough people hammering at it to run into all the pain points that people have already encountered and successfully dealt with in the extant tools).

Xik
Mar 10, 2011

Dinosaur Gum

Volmarias posted:

Alcohol is just one of many tools in the toolbox though.

devops? more like devoops amirite

Space Gopher
Jul 31, 2006

BLITHERING IDIOT AND HARDCORE DURIAN APOLOGIST. LET ME TELL YOU WHY THIS SHIT DON'T STINK EVEN THOUGH WE ALL KNOW IT DOES BECAUSE I'M SUPER CULTURED.
We all have to immediately migrate to the single correct, perfect method. According to this Medium article I just read, it addresses all the weak points of the previous correct, perfect method, which is now deprecated because it is only trash some kind of moron would use.

xtal
Jan 9, 2011

by Fluffdaddy

Space Gopher posted:

We all have to immediately migrate to the single correct, perfect method. According to this Medium article I just read, it addresses all the weak points of the previous correct, perfect method, which is now deprecated because it is only trash some kind of moron would use.

Picture this, but if all of the correct solutions actually came out in the 1960s, and it's been going downhill and in circles since then. The people old and wise enough to realize it are dealing with some resentment over their Cassandra complex.

vvv: I like and agree with your post! Solidarity with Kickstarter and I will redouble my organizing efforts.

xtal fucked around with this message at 02:35 on Feb 19, 2020

susan b buffering
Nov 14, 2016

xtal posted:

The real world is a steaming pile of crap, so your strategy isn't working very well. We are, after all, in the Coding Horrors thread. Software is in a state of crisis. I think that we need to focus on correctness for once and treat our craft with respect. Layering bandage upon bandage has got us so far.

It's also disrespectful to the people trying to progress the state-of-the-art when you poo poo in the pool and ruin it for them too. Wise people told us we never should have (example) allowed JavaScript, and now those wise people probably have to write JavaScript because morons didn't listen. It must be very frustrating to always have to code for the lowest common denominator.

Those “wise” people could have worked on organizing tech unions instead of bike-shedding over what tool they use to build some bullshit enterprise application. There’s very little dignity to be had in this industry because of their hubris.

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
I write javascript and it's not that bad tbh.

Docker is ok and large parts of the tooling could be way better but as a tool, it works

xtal
Jan 9, 2011

by Fluffdaddy

Suspicious Dish posted:

I write javascript and it's not that bad tbh.

Docker is ok and large parts of the tooling could be way better but as a tool, it works

Don't you work at Red Hat or something? Because PulseAudio is the JavaScript of that too.

Absurd Alhazred
Mar 27, 2010

by Athanatos

Jabor posted:

There's a mile of difference between actually progressing the state of the art, and ivory-tower "this would be perfect if only the entire world stopped what they were doing and started doing this instead".

(Spoilers: it wouldn't be perfect, you just don't have enough people hammering at it to run into all the pain points that people have already encountered and successfully dealt with in the extant tools).

I don't know, I'm doing fine in Windows world without containers and without this nonsense, doing state of the art tech I'm not going to get into in order to not doxx myself.

One of the things I do is occasionally get in touch with a library developer and tell them I need a binary that supports a later compiler than they have in their sample I can link to, or else I can't evaluate their product. And they do it! Another thing I do is realize that a library has advanced in a breaking way since we last used it, but I need the latest version to support something else, so guess what? I update our support to the latest version. It takes some time, but it's not hard to do! But you have to do it regularly, or you accumulate technical debt, and block yourself off from future features of important pieces of hardware, and no amount of containerization is going to save you from that.

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
I left red hat 6 years ago, the linux desktop world 4 years ago, and anything linux-adjacent 3 years ago.

Not sure what you're talking about though. You had multiple opportunities to pick actual javascript (gnome-shell, polkit) and somehow landed on pulseaudio of all things...

Kazinsal
Dec 13, 2011

Absurd Alhazred posted:

I don't know, I'm doing fine in Windows world without containers and without this nonsense, doing state of the art tech I'm not going to get into in order to not doxx myself.

I have one project I need to use WSL to compile and that's about as messy as my Windows pipeline gets. Except for one piece of FOSS that I needed to install node in order to compile the build system in order to build an MSVC solution because the developer refused to supply binaries.

We ended up not using the software.

rarbatrol
Apr 17, 2011

Hurt//maim//kill.

Absurd Alhazred posted:

I don't know, I'm doing fine in Windows world without containers and without this nonsense, doing state of the art tech I'm not going to get into in order to not doxx myself.

One of the things I do is occasionally get in touch with a library developer and tell them I need a binary that supports a later compiler than they have in their sample I can link to, or else I can't evaluate their product. And they do it! Another thing I do is realize that a library has advanced in a breaking way since we last used it, but I need the latest version to support something else, so guess what? I update our support to the latest version. It takes some time, but it's not hard to do! But you have to do it regularly, or you accumulate technical debt, and block yourself off from future features of important pieces of hardware, and no amount of containerization is going to save you from that.

At my job, also a windows shop, we relatively recently moved from Newtonsoft.Json 4.5.11 to some version in the 6 range. That's up to... version 12 now? Definitely don't recommend waiting.

Hammerite
Mar 9, 2007

And you don't remember what I said here, either, but it was pompous and stupid.
Jade Ear Joe

Space Gopher posted:

We all have to immediately migrate to the single correct, perfect method. According to this Medium article I just read, it addresses all the weak points of the previous correct, perfect method, which is now deprecated because it is only trash some kind of moron would use.

I just looked at the trash moron wiki and it's not deprecated??? this post is misleading and I am going to bombard you with pedantic tweets about it until you snap and tell me to gently caress off

Hammerite
Mar 9, 2007

And you don't remember what I said here, either, but it was pompous and stupid.
Jade Ear Joe

skull mask mcgee posted:

Those “wise” people could have worked on organizing tech unions instead of bike-shedding over what tool they use to build some bullshit enterprise application. There’s very little dignity to be had in this industry because of their hubris.

Hello? What? Everyone is arguing loudly about docker or containers or some poo poo down here, we can't hear you all the way up there on that horse

Tei
Feb 19, 2011

One of the problems of software is every tool created to make things easier allow worse people to write worse code.

Python enable science and math types to write code, but these people have not concept of usability, portability, maintainability, abstraction leaks, ...

.. so they write 20 lines long scripts that need a entire virtual OS around them to even run.

Hammerite
Mar 9, 2007

And you don't remember what I said here, either, but it was pompous and stupid.
Jade Ear Joe

Tei posted:

One of the problems of software is every tool created to make things easier allow worse people to write worse code.

Python enable science and math types to write code, but these people have not concept of usability, portability, maintainability, abstraction leaks, ...

.. so they write 20 lines long scripts that need a entire virtual OS around them to even run.


Ugh, I hate it when worse people show up. Those guys are the worst.

Soricidus
Oct 21, 2010
freedom-hating statist shill

Tei posted:

One of the problems of software is every tool created to make things easier allow worse people to write worse code.

Python enable science and math types to write code, but these people have not concept of usability, portability, maintainability, abstraction leaks, ...

.. so they write 20 lines long scripts that need a entire virtual OS around them to even run.


Would you prefer they did it in an even worse language like matlab or R? Or maybe in fortran like the good old days?

Antigravitas
Dec 8, 2019

Die Rettung fuer die Landwirte:
I'd rather have a Python module with Fortran inside instead of the severely outdated debian old-old-old-oldstable docker image with pre-heartbleed openssl and f77 inside.

Tei
Feb 19, 2011

Soricidus posted:

Would you prefer they did it in an even worse language like matlab or R? Or maybe in fortran like the good old days?

Thats not the correct path. That would be worse.

I think the best way is to teach them usability, maintainability and all the other isms.

Write. Better. Code.

DoctorTristan
Mar 11, 2006

I would look up into your lifeless eyes and wave, like this. Can you and your associates arrange that for me, Mr. Morden?

Soricidus posted:

Would you prefer they did it in an even worse language like matlab or R? Or maybe in fortran like the good old days?

I actually like matlab for the way it (i) doesn’t change core functionality every time one of the devs has a meltdown and (ii) warns you at least two versions beforehand on the rare occasions when it does

Antigravitas
Dec 8, 2019

Die Rettung fuer die Landwirte:
You probably also admire it for how it indices arrays, you heathen.

Ola
Jul 19, 2004

Every scientist has an opening in their careers for learning to code. One or two semesters. Before that, they can't code. After that, they can't learn any new code.

E: typing some auto

Ola fucked around with this message at 14:27 on Feb 19, 2020

susan b buffering
Nov 14, 2016

Hammerite posted:

Hello? What? Everyone is arguing loudly about docker or containers or some poo poo down here, we can't hear you all the way up there on that horse

i was being partly facetious, when i responded to the post claiming that programming is bad now because people ~decided~ to use certain technologies against the advice of graybeards, as if those decisions were made in a vacuum free from the pesky influence of material reality

DoctorTristan
Mar 11, 2006

I would look up into your lifeless eyes and wave, like this. Can you and your associates arrange that for me, Mr. Morden?

Antigravitas posted:

You probably also admire it for how it indices arrays, you heathen.

It uses the zero for other things, such as the proportion of each module that has no documentation, the number of ‘hilarious’ Monty Python references you will encounter while reading that documentation, and the number of times you will be forced to type something as stupid as ‘import beautifulsoup4’

Tei
Feb 19, 2011

Ola posted:

Every scientist has an opening in their careers for learning done coding. One or two semesters. Before that, they can't code. After that, they can't learn any new code.

Is a same. They say Einstein had poor math skills and had to ask favours to help him up to the task. If Math is the language of physics, code is the language of data. If you pay attention that your math is good, you should also pay attention how your data is processed.

Tei fucked around with this message at 14:42 on Feb 19, 2020

Antigravitas
Dec 8, 2019

Die Rettung fuer die Landwirte:
By the way, speaking of Matlab, this is piece of software I had to install, with DRM written in Matlab.



You can't copy and paste from this dialogue box.

Carbon dioxide
Oct 9, 2012

https://www.youtube.com/watch?v=fA7P3KIqbog

Adbot
ADBOT LOVES YOU

Tei
Feb 19, 2011


Lol at the ArgOS showing after a normal windows boot, meaning that this "OS" is actually a shell running inside windows.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply