38

Jr: I'm having a problem with my environment, can you help me?

Me: Sure! Did you switch to the latest Ubuntu LTS
so that your environment matches the rest of the dev team like you were asked to do the last 3 times?

Jr: No, I like Windows better because linux is too complicated. Can you just figure out how my environment is suppose to work and than fix what I did wrong please?

Me: No. Let me know if you ever need help with the our standard dev environment. Good luck!

Comments
  • 26
    There is nothing wrong when you use a different environment. But then you’re also all on your own.

    Give him a few months, he should be tired of it by then. Make sure to tell him how smooth everything works under your environment. ;)
  • 4
    "You go off the reservation I will not come after you."

    https://youtu.be/Zrr-9gpQnJY?t=132

    Personally I prefer Windows but ... if I joined a new workplace I'd probably adopt whatever the common dev environment is first for a long while before I went off the reservation ... and then it's on me.
  • 3
    The default work environment we use is Linux. However, I also develop one application that is for Windows. I was being expected to develop and test this in a VirtualBox running Windows 10. VirtualBox is a buggy POS that fails in many areas. I finally told them I need a box for Linux and one for Windows. VMs that don't work correctly are not a solution.

    Things are utterly broken in VirtualBox:

    OpenGL, disk transfer, and networking. And these are the things I have experienced failures so I know about them. Who knows what else has failed that I don't know about.

    Most of my work is thankfully for Linux though. I also develop that Windows app in both Linux and Windows. So most of the dev time is actually spent in Linux.
  • 2
    @Demolishun Strange, I've never had these issues in VirtualBox with windows before.

    I probably don't have as much experience as you doing it though, as I avoid windows as much as possible!
  • 4
    @lungdart Its corner case type stuff. Like building a bootable usb disk, talking to a networked printer, and lack of OpenGL support beyond 1.2. I had to install mesa drivers in windows 10 to get my app to work. Unless I ran my app with software emulation of opengl. It does not accurately reflect how an real box would operate.
  • 4
    In most companies, it's exactly the other way round with everyone using Microsoft or Apple environment and good luck if you're one of the two Linux users.
  • 1
    Use fucking vagrant, be happy.
  • 1
    @Demolishun how about qemu?
  • 0
    @electrineer We have started using that for some things. It seems to be better than virtualbox.
  • 6
    Cool story. Coding is maybe 1/2 of what software development is about, and that's being generous. If more than half of your time is writing code, you'll be replaced as soon as a cheaper alternative comes along. Real software development is about understanding the problem, understanding how other people approach the same problem, trying out different approaches, keeping track of what your options are in terms of hardware, performance, tools, new technologies, ...

    With that in mind, fuck your environment. If you need a set of services, add a docker compose file. If you need specific system-wide configuration to work, put it in a vagrant file. You should do that even if everyone uses the same OS, because there's absolutely no reason for developers to manually set up the environment on every machine they want to use. And fuck you for refusing to help other developers do the most important part of their work on a system they're comfortable with, and treating them like code monkeys.
  • 1
    @hitko In some ways I agree, but at the same time, there are skills a dev needs to develop.

    When I started working at the company I am at now I was expected to learn how the build system worked by following a set of instructions that setup the environment. A good developer should be able to extract the applicable information for a different environment. So my company treated this as a "test" to see if I was a good fit. It was part of their probation period. I am not a junior, and perhaps that is what they were trying to find out.
  • 1
    Setting up Vagrant and / or Docker in a heterogeneous networks is a _bad_ idea.

    I remember all the jolly pain that occurs when the project becomes just a tad too complicate...

    Slow FS speed. Mysterious self destruction. Network issues. Dev training. Fun with Updates. TLS woozas....

    If there is a dev support admin, maybe. But that's a scenario I've never seen so far.

    While vagrant and docker solve a lot of issues, they need to be maintained and supported. And most devs have zero knowledge... And even less motivation to keep things in proper shape, organize themselves so that the environment stays the same et cetera...

    When an admins job becomes to hold hands half of the days because a dev cries for help as his environment has an ouchie, it's time to quit.

    Homogenous networks are stressful enough.

    In my opinion, devs should get an office laptop with regular hardware.

    Servers should be under admins control. They can do whatever fuck they want as long as they use the environment provides by the servers.

    That's what eg. docker context is made for.

    This prevents also people from keeping their stuff isolated on their machine... Without any backup.
  • 1
    @hitko it's not my job to learn his environment so I can fix it. He's on his own of he wants to go a different route.

    I haven't used Windows since 2000, I don't know what he expects me to do.
  • 2
    @lungdart @hitko I can relate to both sides.

    On the one it is really sweet having the windows guy be in a Linux users shoes. Just that a linux user usually gained the skill to adapt stuff for his os anyways.

    Basically a "Linux: compile it yourself" in reverse and so so sweet revenge. Every damn linux software of interest has a windows port. But usually not the other way around.

    On the other hand, I really love docker related things. Having exactly the same environment is really great and removes almost all "It works on my machine" problems. Updating by reinstalling the base image/os also prevents any upgrade degradation.
  • 1
    @LinusCDE Getting Ubuntu to run doesn't require any preliminary knowledge whatsoever. Getting it to run well is a different question, but there are plenty of resources, both online and in the form of coworkers. And if it's a Linux shop then they probably don't use any well-known Windows-only software so that's not really relevant.
  • 2
    @LinusCDE I started wrapping everything, even monolithic applications in containers. It's just so much easier than writing environment setup markdown files and debugging the weirdest issues with node versions or even the dev's default C compiler.
  • 2
    @N00bPancakes
    But I always go off the reservation!

    The best way to understand how things work, is to break it, then fix it, and repeat. The end result will be a "Zen like" understanding of of all enviroments and how things work. Another side effect - bottomless hatred of all things with a cpu, or a brain, and by "brain" I mean the useless lump of crap some people carry inside their head.

    I have seen some shit.
    ....
    Whatever.

    Also - using WSL + Docker is a great approach!
  • 1
    For more information, we do use Docker. But Docker compose keeps failing with path issues in wsl.

    I'm not going to troubleshoot Docker compose errors in wsl for anyone but my own stupid ass.
  • 0
    @homo-lorens Yeah. I really love them.

    I set up my servers to have 95% of my services in docker-compose files.
    Each service gets it's own directory which also contains the volume directories or stuff like custom Dockerfiles.

    I really like the philosophy to "treat containers like cattle". All the required state should always be in containers. Makes updates really easy (even automatic with watchtower).

    The nice bonus effect is, that I can trivially migrate services to new servers. I just need to copy over the directory, maybe change the ports and done.
  • 0
    @lungdart Forgot to ask, If he couldn't just use Ubuntu in WSL. I guess that answers it.

    I personally used Windows 8.1 last. I can help with a fair amount of stuff, but anything more complex and I don't care. I still use some windows VirtualBoxes from time to time, but I'm never really exposed to issues that creep up over a longer time. It's about 5 years since I switched now.
  • 2
    "I like Windows better because Linux is too complicated"

    Of course it has nothing to do with the fact that he has been using Windows for his whole life and Linux is unfamiliar to him. No, Linux is just too complicated.
  • 0
    Docker on wsl2 helps out a bit. Still far from perfect. But all least there are some basic file permissions that actually work now. Using Linux for Linux target environment always wondered the best for me. Even though I always used a different distro or different version of that distro.
  • 1
    @hjk101 yeah. We're targeting Ubuntu 20.04 but I'm on mint 20. It's up to me to work out any issues that arise from my environment differences.
  • 0
    Why Jr doesn't have a company computer with Ubuntu pre-installed?
Add Comment