I’m a tech hoarder, so I’ve ended up with two laptops at home that upgraded to Windows 10 in the last month. Recently, as Windows 10 has not lived up to the hype, I decided to cross-grade (some would say “upgrade,” but I don’t want to get into that debate) the one I liked the least to Ubuntu.
The Yoga 2 Pro is a beautiful piece of hardware except for two things.
1: A screen that small doesn’t need that many pixels. It’s a waste and a battery drain.
2: Of a number of pet-peeves about the keyboard, my biggest is that half-width shift key on the right-side. I constantly end up hitting one of the keys around it because it’s so small. Looking at the keyboard, I thought I’d love the whole thing. In the beginning, I thought I’d adapt to the smaller shift key. Now, instead of being my daily driver, it’s my laptop for trying stuff out. I’ve since bought another Lenovo, but I was very careful about the keyboard.
I’d actually considered making the Yoga 2 Pro a Hackintosh, but I’d read a lot of web posts about problems getting OS X up and running on it, and a bunch of problems getting Linux running on it as well. But this weekend, I checked again and saw reports of people having luck with the latest Fedora and Ubuntu releases. Since I’ve long liked KDE (can’t really say why, it just felt better), I made sure I’d backed up any info that was on it and it alone, then proceeded to do a full wipe and install of Kubuntu.
Kubuntu 15.04 installed easily and getting it set up was a breeze. I updated from Libre Office 4 to 5, got the Dropbox client installed and synced, got Chrome, installed the latest node.js, got a recent version of PHP, etc. And I installed Microsoft’s Visual Studio Code for Linux. As an ex-Microsoft guy and being friends with some of their developer evangelists, I figured I ought to give it a try a few months back. While it lags behind some more mature editors in certain ways, I really liked the incorporation of Intellisense, which gave it better out-of-the-box code hinting and autocomplete than a lot of other editors out there.
Last, rather than use the standard DOS prompt, I tend to use the GitBash shell that’s installed with the standard Git intstall, and then I soup it up by adding a number of GNU utilities for Windows (at least the coreutils and fileutils packages) and putting that directory in my Windows path. I then alias it to “term.exe” in my system. On Windows 7 and 10, I hit the Windows Key and type term, then hit enter to open up a terminal. On my Kubuntu machine, I aliased Windows + Backtick to a search that lets me type “term,” the terminal program is at the top, and hitting enter opens it.
So yesterday I had a new node.js project for work. I started it on my Windows 7 machine, with the project root in my DropBox folder. I coded on it with Visual Studio Code and GitBash for a while. On the bus home, I took out my Kubuntu laptop, fired up my cellphone as a hotspot, synced Dropbox, opened a terminal window, opened Visual Studio Code, opened the project folder in VS Code, and kept coding. The experience was totally consistent with the experience I’d had on Windows 7. And when I got home, I fired up my Windows 10 laptop (the one that had been in a BSOD reboot cycle with INTERNAL_POWER_ERROR, but is now running much better), Dropbox synced, I loaded up the project folder in Visual Studio Code, terminal with GitBash, and the coding environment was so similar in each OS, it was almost like I was coding on the same machine (except that my work and home laptops are on docks with dual monitors and the Yoga 2 Pro was a 13″ screen on my lap).
I’m not trying to sell Visual Studio code. There are many editors that offer installations for Linux, Windows, and Mac. Use the one you like best.
I’m not selling Windows 10. After another BSOD with a DPC_WATCHDOG_VIOLATION (that seems to have been a one-off), I’m starting to consider moving my beefier Lenovo E550 to Linux Mint. It ran nicely with the live system off USB, but installing the DisplayLink drivers for my dock doesn’t work in the “Live CD” mode and would be pointless in a VM, so I’m probably going to have to install Linux from the Live CD to a USB drive, then boot from the USB drive… A project for a weekend when there’s time.
But if you’re working in Linux VMs, on Linux machines, and Windows, I do recommend the combo of GNU utilities for Windows and GitBash on Windows 7, 8, and 10 as a more “seamless” way of making the CLI experience on Windows more like Linux. It even supports hashbangs in your scripts.
Anyway, that’s how I went from Windows 7 to Linux to Windows 10 and had essentially the same coding experience on all of them during the course of a day.