(Before someone suggest "use docker": then I'd need a more powerful workstation and laptop :-)
And VNCing into my workstation from the laptop has all the drawbacks that Matthew described in the article.
I use adhesive velcros so that the drive is secured on the backside of the screen and don't hang from the laptop.
1. Install Tailscale (https://tailscale.com/) on your laptop and workstation and enable the "MagicDNS" (https://tailscale.com/kb/1081/magicdns/) feature. This sets up a VPN mesh between your machines (and any other you add).
2. Setup you SSH keys so you can login via the "MagicDNS" domain name from your laptop to your workstation.
3. Install the VSCode Remote Development extension (https://code.visualstudio.com/docs/remote/remote-overview) on your laptop and then open a workspace on your workstation via its SSH feature using the "MagicDNS" domain.
It is surprisingly fast - you are just sending keystrokes/commands over the VPN and not rasterizing the host screen like you would with VNC.
Is this faster than a traditional VPN? Is the VSCode remote development extension not able to function with a traditional VPN?
(Not op, just butting in)
It takes a few seconds to connect each new machine. It took me way more just to find out how I should configure Cisco's VPN client, and I do not ever want to even think about OpenVPN again.
I've also maintained a WireGuard mesh where I distributed keys and set up /etc/hosts via ansible: add a host to the inventory file, run the playbook - simple.
Yet Tailscale is even simpler than that. And (for my purposes at least) it's free.
Didn't know VSCode had a headless mode that can be driven over the net (which is what your description sounds like), will definitely check it out, thanks.
Why do you believe that to be the case? Docker performance overhead is so minimal I highly doubt you'd be able to tell any difference compared to native processes.
And I am no exception. The whole company I work for does this. I cannot imagine working with a workstation.
A big part of my team has crappy laptops and work just fine with a citrix client. I am a developer and do not understand how they deal with it, but the ba’s are ok with it!
Not really true. My M1 Pro is performance-wise very close to my previous desktop based Ryzen 5900X, but: 1. It doesn't take space on or below my desk 2. Auxiliary screen it provides is useful 3. I can unplug it any time and continue working from anywhere with the same performance, without having to sync up the development environment.
Before M1 Macs I would concur, but right now the major reason to pick desktop is Linux availability (which is a subject to change with Asahi), not performance.
The desktop is much more power hungry, though.
That said, I’d rather find a new job than trade either system for a cloud desktop. I count myself fortunate that I’ve always been in a position to choose my computer and tools.
I think there's a lot of cost/benefit that comes down to: depends on what you are building. I had lunch with a VR dev last week. He needed a big machine for huge MS builds. I do a lot of web and network programming, and a $1200 LG Gram (i7/32GB, 17" screen) is way more than adequate. The important thing is that employers understand that slow computers cost them a lot of money when they hobble developers with them.
Sadly, that's not going to fly these days with those same employers thinking people slack off more often remotely vs. in the office.
(Maybe I'm assuming I'm more typical than I really am. I know that when the work I'm supposed to be doing is frustrating and annoying I feel much more temptation to do other things instead.)
It's almost like the just assume the costs or pretend like it doesn't exist.
Take your slow laptop to lunch with your manager. Explain that you are starting a task you have to do three-four times a day that prevents you from working because your computer is maxed, compiling. At the end of lunch, let the manager know when the build stopped, and then discuss getting a faster or a second machine so you can work while building.
My M1 Pro is faster in some workloads than a small Dell tower sold as a "workstation". Of course I could buy a huge workstation with a 250W CPU or some kind of insanity like that, but then I suspect its power efficiency will be 4 times worse than the M1 Pro. The Dell tower already makes quite a good amount of noise under load while being beaten by a mostly silent M1 Pro.
Got to take exception to that. I'm a developer developer an I'm still required to get up from my desk to attend meetings etc, and I need my laptop in them. Or pair programming. It is usually a different kind of work so there's probably a world where I could have a desktop and a laptop but inevitably I'd end up needing to do something the iPad can't do and get frustrated.
I do have everything sync back to the work laptop so in the rare case I lose internet or have a hardware issue with the cluster I can continue working. But that's only happened once in the last two years when a completing fiber provider cut a fiber line on my property laying their own fiber. (Not their fault, my current provider had the markings off by 50', and even then the foreman gave me a gift certificates for the trouble)
Even now that I work remotely, I still go home to see my parents for a week at the time and work from there. I definitely wouldn’t want to be dependent on the internet.
Not to mention in less than a month, my wife and I will be doing the digital nomad thing working while flying across the country for a few years.
My set up includes a portable USB C powered external monitor as a second display and my iPad as a third display. Of course I have a Roost laptop stand.
If I need to spin up resources, I use my own (company provisioned) dev AWS account and it’s just there.
Even the last 60 person startup I worked at would let us set up dev AWS accounts with the appropriate guardrails for development.
We had CloudFormation templates to spin up environments as needed and we could just tear them down.
Though rarely is a laptop in clamshell mode as good as a desktop. For certain things, I don't think they'll ever be. For example, graphics work and a lot of scientific work just isn't sufficient unless it's done on a desktop.
The cost of a beefy (but properly cooled) workstation + cheap Chromebook isn't much different than a corporate laptop. It's just not an option being considered anymore.
Buying or maintaining two devices per developer is too costly regardless of whether the pair (a cheap laptop and decent desktop) is cheaper than an expensive laptop.
Is it just running a bunch of VMs? I don't doubt the tasks exist but it's got to be a list that's been dwindling for the last few years.
Building Firefox on a macbook air or pro M1: half an hour. Fastest M1 max is around 15 minutes.
Building Firefox on my Threadripper workstation: 5 minutes.
Thermal throttling is a bitch.
5% of the time I need to travel with my laptop. I’d rather not maintain two machines.
My daily dev is an 8cpu MacBook Pro. It’s not as fast as a proper workstation but I can take it anywhere with about 5 seconds prep time.
I was under the impression they were not.
I couldn't tell you if I was on a laptop or desktop when I'm docked ...