A Tangent on Vagrant
I was working on a separate post about ansible when this topic came to me. I find teaching interactively is more effective than just talking at someone. As a result, I was working an accompanying demo repo, which uses vagrant. Vagrant’s parent company is taking vagrant in a direction that will make it inaccessible to people who expect freedom and privacy from their software. As a result, using it as a lynchpin for a project intended to be shared with others was not a sustainable choice.
If you haven’t used vagrant before, it is a clean, beautiful layer on top of virtualbox(etc) that enables you to write configurations for a vm in a simple ruby config file. This makes vm’s portable, repeatable, ephemeral, and free of clicking. There are a few alternatives out there, namely lima and virter, but there’s nothing quite like vagrant. Lima has limited templates and is only available for *nix systems. Virter has a smaller community and a slow pulse on github.
Catering to the Fearful
Some people have teaching in their veins. Either you gravitate towards sharing your passion with others, or you think it’s a waste of your time. There’s probably a bit of a context-dependent spectrum there, but generally those are the two responses you get out of people.
When you spend enough time teaching others, if you’re any good at it you have to step into their shoes. Often. A recurring theme is what is the barrier to entry of the end user.
The ‘right’ solution is probably to switch over to lima: - larger list of vm templates than virter - Apache 2.0 License - doesn’t require the person I’m teaching to compile software (virter) - available for *nix users (but not windows) - popular amongst mac users
But here’s why I’m going to hang on to vagrant until they shut the doors to the vagrant box collection – humans have very limited bandwidth.
The Reality of Obstacle Perception
In the modern era of llm’s (“AI”), we are increasingly becoming a society where any activity that takes more than a few seconds of thought is promptly abandoned.
If start to finish of having something working reads like If You Give a Mouse A Cookie most people are not going to get through the setup in one sitting.

It doesn’t matter how small or easy each of the steps are, either. One of the smartest people I have ever met once procrastinated for weeks enabling developer mode on his phone. This is a less than 30 second process, maybe 10 taps total, but it was unfamiliar to him.
In some sense, use of “AI” has emboldened people past psychological barriers. Now they copy-pasta incorrect commands (indirectly) from stack exchange and break things faster than ever before. The best way to learn is by doing, and llm’s do enable end users to do something quickly, though not necessarily well. “AI” has also become a crutch– if you want someone to sit and work through an interactive tutorial without it, the barrier to entry now has to be even lower.
Some may argue that a lack of patience for sitting down and reading documentation or learning something new without ChatGPT is a lack of patience and willpower. While shortform content may be reducing our ability to engage in activities without instant gratification, I’m not sure a “pull yourself up by your bootstraps” perspective is productive. The overall impact of “AI”, social media, constant instant gratification is that it makes activities which require focus and effort intimidating by comparison. Attention-span is like a muscle, the way to increase it is with practice. This means we are forgetting how to read, troubleshoot, or even step outside our comfort zone.
There are two elements to overcoming an obstacle: the emotional and the logical: - Emotional: Perceieved difficulty, perceived reward. Curiosity. Trepedation. Frustration. Interest. - Logical: Broken down pratical steps to complete a larger task.
I would argue the emotional component is far more difficult to contend with
Knowing your Audience
While experience tells me that a very large proportion of the “tech” crowd uses Mac’s, the overall majority of desktop users run Windows– 70%.

I’m not too worried about the linux/unix people. They make up maybe 12% of Desktop Users, and if you figured out how to install a different operating system already, you probably don’t need my help (eh, maybe they do if it’s ubuntu). I’m not worried about the Mac users either. (Yes I’m counting MacOS separate from Unix people. Fight me.) If you can afford a macbook, A. much higher probability you have access to resources and B. everyone already caters to mac users.
I worry about broke college students trying to run their python interpreter on a cheap secondhand windows machine that don’t know they can have something better. If I don’t show them things like vagrant and virtualbox, they will never know what’s out there if they can just download rufus and a linux iso.
Winning the Marshmallow Game
Let’s circle back around to our vagrant tangent. If I were to wipe my machine clean tomorrow, this is what setting up an ansible repo looks like for me, shortest path:
install pip -> pip install pipenv -> pipenv install ansible pip dependencies -> ansible galaxy install modules -> use ansible
Let’s say I had a student who was a windows user. What does that look like for them?
install python -> install pip -> install pipenv ->
use pipenv to install ansiblerealize that you can’t install ansible on a windows machine
Alright, they do some reading and find out about windows subsystem for linux:
install wsl from ‘microsoft store’ -> open a terminal -> try to install pip -> realize that wsl isn’t passing through your ethernet connection and dns isn’t working either
Alright they try virtualbox by itself.
install virtualbox -> download ubuntu vm image -> have horrible ux using the virtualbox ui -> try to figure out what ssh is and how to ssh to your vm from a comfy ide

If I set up a vagrantfile for them, the journey down the rabbit hole instead becomes something that ‘just works’:
install virtualbox -> install vagrant -> vagrant up -> vagrant ssh -> pipenv shell -> use ansible
If we can lower the barrier to entry enough to give newcomers a safe sandbox, instead of associating linux with beating their head against a wall, we can leave room for curiosity. By reducing the number of steps to achieve a smaller win, we can provide a path to more obstacles being overcome.