Corporate IT, NodeJS, “Tech” Companies, and Freaking Microsoft Windows

The Scene

A few years back, as part of a long, slogging series of unfortunate events, I had been tasked with developing a new web application, which circumstances dictated should be written in Java. Books could be written about this one-year period of my career. (And not, like, inspirational ones.) Anyway, part of the process included trying to get people to realize that no one, these days, wrote web apps in Java without using one of the many, popular Javascript libraries for the front end (like React or Angular), and get my management and corporate IT to understand that I needed to install NodeJS on my machine to facilitate this. Up until this point — and despite the fact that it was obviously used by other development teams in the company — it was not on the “approved” list of software to be installed on local machines. Through several strained meetings and rounds of email, someone, somewhere, deep in the bowels of IT, corrected the obvious oversight, and put it on the list.

The production version of NodeJS was 8, at the time of approval.

This kerfuffle was but one small facet in the gem that was this job posting. In the middle development process, I jumped at another job opportunity, and left my Fortune-250 for a different Fortune 250. The IT environment was eerily similar, and led to this post about making Windows tolerable. It was this experience that got me to see the real root of what I’m complaining about here.

And then, through a short series of more unfortunate events — and one amazing event — I came back to the original Fortune 250, in a different department.

Some months later, just after getting settled back in, I got an email asking me if I would approve a new version of NodeJS to be officially blessed and uploaded to the internal repository.

A Symptom, not the Disease

Strangely, I was being asked to approve NodeJS version 9. If you’re not familiar, NodeJS uses a version numbering system like the Linux kernel used to, where even-numbered releases are for production use, and odd-numbered releases are development versions, intended only for development of the software itself. In no way should 9.x be considered for use in projects inside a blue-chip Fortune 250.

I explained this situation to a laundry-list of TO: and CC: recipients in a long email thread that had already been making rounds inside the company before someone finally saw my name attached to the original request, and added me to the chain. Of course, my explanation was ignored, but I only discovered this 6 months later, when I was being asked, again, to approve version 9. Apparently, I was preventing some developer in India from doing his work on a “high priority project” by not having approved it already, and I needed to get on the stick.

I become more blunt, at that point. First, I didn’t do whatever was done to get it certified the first time, so I didn’t know why I was being called on to do it again. Second, I tried to make a case for exempting development libraries, like NodeJS, from the slow process of getting them approved for internal use, and uploaded to our internal software delivery site. This led to another important person added to the chain, who, surprisingly, supported my argument, but, again, nothing changed.

A month later — seven months into this “discussion,” and presumably still holding up a “high priority” project with a “requirement” for 9.x — I got another email, which included a screenshot of an error from Angular, saying that it no longer supported NodeJS 8.x, and that it needed at least version 10.x or 12.x. Again, I pled with the list of people involved in the email chain that we needed to treat development libraries and applications differently than we treated, say, Office applications. I pointed out that, in the time that we had been fussing over version 9, version 14 was now shipping.

Six months after this exchange, I got an email from a desktop support technician. He was asking for clarification about details when installing… wait for it… version 8 on a developer’s computer. That’s right: After over a year of this exercise, we were still fighting to get a version that’s now a year and a half out of support installed on a developer’s machine.

And then, the situation actually got even worse. The developer’s “computer” was really a shared environment (like Citrix, et. al.), and the shared NodeJS install was being constantly re-configured between multiple developers using the same computer between projects. The support person was actually savvy enough to have suspected this, and was asking me about how it worked. I confirmed that this would, indeed, be a problem, and we figured out the flags to install it into each person’s personal directory, and keep the node_modules directory separate, per user. So, at least we figured out how to successfully install a version of Node that was dangerously out of date to a shared computer.

Actually trying to use NodeJS for the job it was created for, and downloading a stack of Javascript libraries to support Angular or React, led to another discussion of how to get it to play nicely with our corporate, Active Directory-authenticated firewall, which — naturally — blocks all access to the internet from anything that doesn’t run through the Windows TCP/IP stack. Say, like npm or yarn trying to access the NPM repository. I had figured out a workaround for that in the first few months of working at the company, and just pointed them at Corkscrew, which transparently handles the NTLM authentication for command-line utilities like npm (or Ruby’s Bundler).

The Root of the Problem: Microsoft, and Windows

If the shared computer had been Linux or Mac, none of these problems would have existed. Each account on Linux and Mac has a proper personal directory, and things like Node and Ruby assume this, and take advantage of it. Each user could install whatever he wanted to in his home directory, and not need administrative permissions on their machine, or have to rely on some internal application-distribution site. Also, if developers could use anything other than Windows, corporate IT would probably not assume that everything which gets forced through the corporate firewall can do NTLM authentication, and force people running tools like NodeJS to rely on a squirrely tool like Corkscrew. Windows has gotten a lot better over the past several years about installing things into a user’s AppData directory, and Microsoft has spent a lot effort in recent years to develop and astroturf WSL(2), Visual Studio Code, and the new Terminal, but Windows is still a second-class citizen for modern web programming.

I try to temper my frustration with this situation with the knowledge that IT departments of large companies have been forced into many, cascadingly-obtuse compromises by their use of Windows. So many frustrations in a company’s user community can be traced back to the relatively quirky, and single-user-oriented way Windows has always worked, and the monoculture that using Windows requires, thanks to Microsoft’s legacy of embrace-and-extend, especially in directory services. The size of the company exacerbates the problem. At my current company, I know of at least 5 different IT org trees. After 6 years of working with various people in these groups, I still have very little understanding who actually owns what. To be fair, most of this is felt by only a small portion of the “power user” community at a company, but that’s most of the people I deal with.

The Distortion of Scale

The biggest problem here is the scale of the operation. When you have 50,ooo nails, you make sure they’re all the same size and finish, and you use the exact same kind of hammer and technique on all of them. You’d think it would be possible to use a bit of manpower in these various IT departments to treat some of these nails differently, but the vast ecosystem required to take care of Windows just eats up all available resources. Anti-virus. VPN. Standard desktops. Scripts to prevent people from doing things they shouldn’t. Scripts to report all activity on the things they should. Office 365. One Drive. Teams. Zoom. Forced password rotations. Worldwide hardware and software upgrades. Locking out how long the screensaver takes to kick in. Preventing changing of custom login screen backgrounds. It’s a lot. I get it. Using Windows as a corporate desktop environment automatically assumes so much work, it leaves little room for treating a computer like a tool that needs to be customized for the job it needs to do, and the work it needs to support, even when those goals are, ostensibly, incidentally, also primary goals of the larger IT organization. It’s a counter-intuitive situation.

I started this post by pointing out that this stack of regrettably-predictable compromises, which result in suboptimal policies and outcomes, is primarily a problem with traditionally non-“tech” companies, but the real, underlying problem is much deeper.

The truth is that all companies are now “tech” companies, whether they realize it or not. And those that can’t change their approach to IT to adapt to this new reality — or change it fast enough to matter — will wither on the vine, and their remaining assets, eventually, will be picked up in a corporate yard sale to companies that have “tech” embedded in their DNA from birth.

I worry that a company which, 30 years later, still breaks up it’s most-important digital asset into 8 pieces because that’s what would fit on a floppy disk will not make the turn in time.

The reason I started writing all of this down was because — after all of this time and discussion — I was asked to approve NodeJS version 10 for the internal software repository. At the time I was asked, version 10 didn’t even show up on the NodeJS release page any more. They were shipping version 16. I guess 10 is better than 8, but let’s be honest: The only reason they gave up on version 8 or 9 is because the version of Angular that they’re using is refusing to work with anything pre-v10. That happened back in Angular version 8, which is now also out of support.

As part of the great email chain, I pleaded with the various people involved with the internal software approval process that keeping up with the shifting versions of your tools and supporting libraries is just part of the job of being a web app developer, yet no one even batted an eye. You would have thought that this concept would have fallen directly under the multi-headed hydra of “security,” and the company’s philosophy seemed to be you can never have too many software layers or policies about it. You would have thought they would have pounced on the concept in order to at least seem serious. I even invoked the specter of the recent, infamous log4j bug, as an example of the risks of letting things get out of date. This issue caused an audit of every Java-based application in the company, so it should have been a touchstone issue which everyone in the chain could relate to. But if anyone could understand what I was trying to say, they apparently didn’t care.

IT Best Practice vs IT Policy

I didn’t much care for The Big Bang Theory, but one scene has stuck with me for a long time. In S1E16, Sheldon is shopping in a store like Best Buy, and some woman comes up to him and asks, “Do you know anything about ‘this stuff?'” He replies, “I know… everything about ‘this stuff.'” And that’s the heck of this situation. It’s almost like every single person concerned with this process has absolutely no idea how any of “this stuff” actually works, and won’t listen to someone who does. And I realize how conceited that may sound, but, in this case, I don’t know how else to put it.

The only other explanation is simply apathy in the face of bureaucracy, and I wish senior IT management would take it on themselves to root out this sort of intransigence, and fix it. It would seem to be their job, and would go a long way to justifying a C-level salary. Unfortunately, this isn’t the first time I’ve found myself trying to explain a direct contradiction of IT best practice versus IT corporate policy to the very people who are supposed to be in charge of both, and I’d like to think I’ve learned how to convey my thoughts in a less confrontational way, but I obviously still haven’t figured out how to motivate people to rise above the internal politics and align the two, and that makes me sad.

I’m finally posting this because I just got another request to approve version 8, now three and a half years on, and I needed to vent.

¯\_(ツ)_/¯

UPDATE: A couple weeks after posting this, I got CC’d on a long desktop support email chain from a developer in India who can’t get angular-cli version 7.x working with npm. <sigh> And there are 4 references to how urgent and how high a priority this is. A simple search shows a pretty detailed SO post about the particular error message, and the general answer seems to be to either play games with the particular versions of the dependencies, or just upgrade to a 8 or 9… three years ago. In any case, this isn’t a desktop support question. IMNSHO, this is squarely a developer’s issue. Sorry, but that’s the job, brother. Do I try, feebly, to make another point, or just let this go?

> How do you deal with Microsoft’s crap on a daily basis? I don’t use Windows 11… | Hacker News

How do you deal with Microsoft’s crap on a daily basis?

I don’t use Windows 11. On Windows 10, I modify the installation image with DISM, removing as much of the unnecessary and user-hostile stuff as possible…

I make extensive changes to the registry that disable all the unwanted stuff. Some of these settings are not documented, and even the documented ones are likely to change without notice or become re-enabled by default in subsequent builds. For this reason, to avoid such unpleasant surprises, I prevent any automatic updates.

Source: > How do you deal with Microsoft’s crap on a daily basis? I don’t use Windows 11… | Hacker News

There was a time when I was reinstalling Windows XP so often that I made a “slipstreamed” install disc with Service Pack 3 pre-integrated, but this is on a whole other level. If I’m being honest?… I kinda want to try it. If I’m reading the blurb on Microsoft’s docs correctly, DISM is not, in fact, some tens-of-thousands-of-dollars corporate thing, but something that ships with every copy of Windows? That can’t be right, can it? In any case, I never want to hear about how much “work” it is to run Linux any more, when this is what it takes to run a copy of Windows that Microsoft doesn’t actively sabotage on a routine basis.

Ruby on rails : problem of verifiying the SSL certificate while installing bundle

I’m new with ruby on rails and while creating my first project with this command rails new n_project, i got this error

run bundle installFetching source index from https://rubygems.org/ Retrying fetcher due to error (2/4): Bundler::Fetcher::CertificateFailureError Could not verify the SSL certificate for https://rubygems.org/.
There is a chance you are experiencing a man-in-the-middle attack, but most likely your system doesn't have the CA certificates needed for verification. For information about OpenSSL certificates, see .... To connect without using SSL, edit your Gemfile sources and change 'https' to 'http'.
Retrying fetcher due to error (3/4): Bundler::Fetcher::CertificateFailureError Could not verify the SSL certificate for https://rubygems.org/.
There is a chance you are experiencing a man-in-the-middle attack, but most likely your system doesn't have the CA certificates needed for verification. For information about OpenSSL certificates, see .... To connect without using SSL, edit your Gemfile sources and change 'https' to 'http'.
Retrying fetcher due to error (4/4): Bundler::Fetcher::CertificateFailureError Could not verify the SSL certificate for https://rubygems.org/.
There is a chance you are experiencing a man-in-the-middle attack, but most likely your system doesn't have the CA certificates needed for verification. For information about OpenSSL certificates, see .... To connect without using SSL, edit your Gemfile sources and change 'https' to 'http'.Could not verify the SSL certificate for https://rubygems.org/.
There is a chance you are experiencing a man-in-the-middle attack, but most
likely your system doesn't have the CA certificates needed for verification. For
information about OpenSSL certificates, see ...

Source: Ruby on rails : problem of verifiying the SSL certificate while installing bundle

I develop software using a pretty varied mix of technologies, including C#, VB, Postgres, SQL Server, and Azure services of all kinds, but mostly Ruby on Rails. After 15 years of using it, I find that it remains one of the most force-multiplying tech stacks in the world. With it, by myself, I can develop software faster than entire teams of outsourced, waterfall-managed, Java/React projects. (And I proven that multiple times.) Not only that, but the future is looking even brighter with Rails 7.

Anyway, I develop software on my personal MacBook Pro, upload it to a git host, and deploy it to a Linux VM on Azure. But my work-supplied laptop is, of course, a bog-standard, boring Dell running Windows. I feel an obligation to be able to use it to do everything I would normally do on my Mac, just in case the hammer falls, and they outlaw the way I work. So, on Windows, I use RubyInstaller. But, thanks to my company’s bog-standard industry practices of using Cisco products to lock down the laptop within an inch of usability, I’ve been unable to do a bundle update for awhile now, getting the error listed above.

I had previously worked around this situation by using CNTLM to tunnel command-line-based HTTP/S requests through my company’s firewall. This was no longer working.

I tried changing my Gemfile to use HTTP, instead of HTTPS. I tried getting gem to ignore SSL errors (and use HTTP sources). None of this worked either.

Yesterday, I had finally had enough of the problem, and decided to work through it. Helpfully, the error message included the fact that I was missing the Cisco Umbrella CA certificate in the certificate chain. Also helpfully, Cisco has a page where you can download their certificates, ciscoumbrellaroot.pem and crca2048.pem. Also helpfully, I found the linked StackOverflow Q/A. That got me started, and I finally figured out the RubyInstaller people have anticipated this problem. There’s a proper way of adding a certificate to your chain. Just drop the certs in C:\Ruby-xx-x64\ssl\certs. This allowed me to get rid of all the hacky workarounds, and now bundler works like I expect it to work on my work laptop.

Windows 11 screenshots leak, show new Start menu and more

Screenshots reveal new Start menu and taskbar design.

Source: Windows 11 screenshots leak, show new Start menu and more

All I can say is, gosh, that Taskbar looks an awful lot like the one in macOS.

Also — and I’m just guessing, but — this new version will continue to have weekly, root-level, 0-day exploit patches.

Again, I posit that Windows is almost completely irrelevant to anyone, personally, other than PC gamers at this point. (And that demographic is getting hammered by bitcoin mining sucking up all the available gaming video cards.) The only reason that Windows continues to exert its influence on the computer market is company desktops. I have a feeling that, if you could factor corporate licenses out of the data, the computer operating system ecosystem would look completely different than any Ziff-Davis publication would have you believe. I wish I could find sales numbers for “PC” products versus Apple products from a company like Best Buy. Only then could we get a fair picture of what the market for operating systems looks like for actual people.

Windows 10 Cloud PC: The latest info about Microsoft’s new service

What is Cloud PC?

Microsoft Cloud PC is a new “strategic offering” built on top of Windows Virtual desktop, which is an Azure-based system used for virtualizing Windows and applications in the cloud.

According to reports, Cloud PC uses Microsoft’s existing Windows Virtual Desktop and Azure infrastructure to deliver Desktop as a Service and enable a modern, elastic, cloud-based Windows experience.

“It will allow organizations to stay current in a more simplistic and scalable manner,” Microsoft noted in a now-deleted job listing.

Source: Windows 10 Cloud PC: The latest info about Microsoft’s new service

Ug. I suppose it’s because I’ve run across Windows being Windows today, and I’m frustrated with it. Again. As always. Of course, I don’t really know what I expected. I feel this way every time I’m forced to use Windows in anger. I mean, it’s Windows. Cue the Arrested Development meme: “I don’t know what I expected.”

‘Wormable’ Flaw Leads July Microsoft Patches

Microsoft today released updates to plug a whopping 123 security holes in Windows and related software, including fixes for a critical, “wormable” flaw in Windows Server versions that Microsoft says is likely to be exploited soon. While this particular weakness mainly affects enterprises, July’s care package from Redmond has a little something for everyone. So…

Source: ‘Wormable’ Flaw Leads July Microsoft Patches

Every time I read a lede like this, I’m struck with the stark difference between Windows and macOS in terms of security posture. Apple releases patches for their operating system once every couple of months, and they contain a dozen or so patches. Microsoft releases hundreds of fixes every month. Sometimes multiple times a month. HUNDREDS! Every month!

Apples fixes are primarily about local privilege escalation. Microsoft? It seems like every patch note is for a “random interweb haxxor can pwn you”-type of problem. I’m sure I’m being overly generous with Apple, and completely unfair to Microsoft, but the difference in the general nature of the two kinds of problems is also starkly different.

The Microsoft fanboys will say that it’s because Windows is still the majority of the desktop market, but Microsoft has lost a lot of ground lately. macOS is around 15% of the market, making it a perfectly viable hacking target. So that can’t be the reason. I say it comes back to Windows having a DOS heritage, and macOS having a BSD heritage. The foundational assumptions these two systems were built on could not possibly be more different, and the ramifications of those differences are still present 30 years later. One is holding up very well. The other… isn’t.

I bring all of this up because the prevailing wisdom in Fortune 500 companies is that we 1) must run Windows, and 2) load it up with all sorts of first- and third-party software to A) “secure” the system, B) guarantee the integrity of the build, and C) lock it down as tightly as the internal staff can understand and manage. All of this approach is a holdover legacy from the 90’s, where we didn’t have much choice. What were we going to do? Run Linux? As much of a Linux zealot as I was — and continue to be — even I know that’s not workable. Now, it’s become a house of cards, with alternating layers of vulnerability mitigation and policy enforcement.

But macOS has matured. Almost all commercial software runs on it now. (The only things I know of that don’t are high-end CAD/FEA systems, but even AutoCAD does now.) And Apple has grown into a behemoth of a company, in terms of support capability. A truly staggering amount of money is being wasted in the Windows-ecosystem-based approach. It’s time for corporate America to stop — really stop — and think about the situation with a fresh set of assumptions. Do we really need to continue as we have for the past 25 years?

And maybe — just maybe — if we didn’t have to load up the corporate desktop image with layer after layer of software, trying to stem the flow of Windows’ suckage, my work laptop wouldn’t run its fans at full blast all the freaking time…

Windows. And Skyrim. Again.

I’m on vacation. At a beach. I don’t find the beach compelling. So I’m bored. Bored, but with a computer. Unfortunately, for this exercise, the computer is a MacBook Pro. And I want to play Skyrim. I’ve been having just a lovely time playing through it again on a PC I stitched together from parts, but how does one play it on a Mac? Good question.

The first attempt at an answer was to try using Parallels. Again. No bueno. Still no clues on the internet, which just seems wrong. Then again, if it were possible to do this, you’d think Parallels would advertise that fact, along with the other games they say it supports.

The only other realistic avenue was to try using Bootcamp to run Windows on the machine, directly. I’ve resisted this for a long time, because I just didn’t buy a Mac to run Windows games. Philosophy aside, this is surprisingly easy. I even still had the Windows 10 ISO file from when I built the PC, and Bootcamp found it on my hard drive, and offered to use it. I just clicked a couple of times, expanded the partition a bit, and waited. Within 15 or 20 minutes, I was in Windows (and denying all of Microsoft’s telemetry options).

Then begins the process I know pretty well by now:

  • Update Windows
  • Use Edge to install Firefox
  • Use the master key to setup 1Password
  • Get logged into Steam
  • Download and install Steam
  • Install Skyrim
  • Download and install Skyrim Script Extender
  • Get logged into NexusMods.com
  • Download and install Vortex
  • Download the dozen or so mods I like
  • Use Vortex to…

BLUE SCREEN OF DEATH

And this one was like there were 2 interleaved slides forming the BSOD message, and they were jiggling back and forth, stuck down in the lower, left quadrant of the screen, and that was enough for me. It just confirmed that this isn’t something that’s going to be well supported, and I don’t have time for this kind of nonsense any more. I rebooted into macOS, and immediately used Bootcamp to wipe out the Windows partition.

Ah… Windows, My Old “Friend”

I didn’t want to be here again. I swore I was done with Windows. But, here I am.

Years ago, I picked up Skyrim on a Steam sale, and immediately fell in love with it. I got pretty far along with it. I think I was getting to level 70 or so, but memory fades.

Then I discovered modding, and nexusmods.com.

By the time I was done, my character was so OP, and my save files so jumbled, that I lost interest, and started playing other things.

Then Windows 10 came along, and I got caught up in the hype. Since we had an Xbox 360 and an Xbox One, I thought it would be neat to get everything together, and make a Microsoft “family” unit, like you can do in with Apple gear. I upgraded all 3 of my family PC’s, hoping to be able to limit my kids’ screen time through it. Then Windows 10 went crazy, with its adverts and “push ware.” And Microsoft’s “family” thing was a complete fiasco for me. Despite six hours on the phone with Microsoft, I couldn’t join one of my kid’s Xbox account to the family unit. On top of this, the time limits for his new account didn’t work at all. So I downgraded all 3 PC’s back to 7.

Then I bought a PS4, gave my monster game rig to my son, retired the other 2 PC’s, gave away the 360, and washed my hands of Microsoft, and Office.

Skyrim went on sale on the Playstation store, and I thought, “Hey, there won’t be a way for me to break the game with the mods available in the Creators Club.” Turns out I was wrong on that point… but I avoided the OP ones, and I started playing again, just concentrating on the main quest. I got to about level 30 again, and just kept getting bogged down by the slowness, and the controls, the lack of SkyUI for inventory management, and the inability to “fudge” the rules a little, from time to time.

Like, really, I hauled 100 pounds of dwarven scrap metal back from some ruins, to craft thousands of dwarven arrows from it, and level up smithing very quickly. I’m not spending literal hours of real time, chopping firewood for this. I’m going to open the console, and type player.additem 6f993 100, and just get on with it.

So I quit playing.

Then I got a bright idea. Skyrim is an old game, right? It should run on old hardware just fine, right? I still had the old PC’s lying around. Could they run the game better than the console?… I put a 760 in one machine, and quickly found that it would “hitch” every few seconds. I started digging into the problem, and discovered that the machine was so old that it had a Core 2 Duo, and that’s actually below even the modest Skyrim SE minimum requirements.

Another old PC had a Phenom II X6, which wasn’t a bad chip. That was enough to run Skyrim, but the power supply in that machine didn’t have enough juice to run the 760, so I was left with using some 5970 piece of junk. It wouldn’t run the game at all, because it was stuck at DX 9.

Time passed.

Parallels advertised that their latest version supports DX 12. Like a fool, I paid good many to upgrade, only to prove that running Skyrim under Parallels is also a hitch-ridden exercise. If someone has figured out how to make this work well, I’d love to hear about it. It doesn’t seem to be accessing the texture memory of the GPU on the Mac. I don’t know if that’s an architecture limitation or a configuration problem. I couldn’t find anything about this from searching.

Time passed.

I got the itch to play Skyrim again, so I took another look at my Phenom-based computer. I started looking into the detailed power requirements, and thought, you know what? They’re probably just being safe. I could probably run the 760 with the power supply I have, if I just adapt some of the power leads to hook into it. So I ordered what I needed.

Then I thought, hey, let me double check my junk pile. Lo and behold! I had a power supply that could run on the Phenom-based computer, and comfortably power the 760! I had totally forgotten that I had helped a friend with some home networking stuff, and he had given me the thing because he didn’t need it any more. I noticed that it needed one power adapter to plug into the motherboard, so I ordered it too. And then I noticed that I didn’t need the adapter. So I installed it, and got the game loaded, and found that it ran great!

And now I have 3 power adapter cords that I don’t need.

The only niggle now was that I had a lot of noise in the audio line. And it got worse when I actually ran the game. I was just using the baked-in sound card, so I installed a spare Creative XFi card. That didn’t fix it. Then I figured out that the noise was coming from the HDMI line. So I muted it. Then I disabled it. Then I pulled the audio feed from my monitor out of my mixer entirely.

I’ve been using HDMI audio on my PS4 all along, but it has an optical output jack… And I’ve since bought a Thunderbolt 3 dock for my MBP which also has an optical output jack… So I took the opportunity to buy a cheap digital audio switch, and swap out everything for TOSLINK audio.

By now, the game is playing so much better on the PC than the console, there’s no going back. So I did the last step. I bought an SSD, and cloned the HDD onto it. Even on this 10-year-old PC, Skyrim is playing like butter at the 60Hz monitor frame limit, inventory management is a breeze, the controls work well, and load times are, like, half a second.

Skyrim. I can’t believe how much effort this game has caused me to expend. This time, for sure, whatever else happens, I’m finishing the main quest, and putting it to bed. But the whole exercise reminded me of why I have always been drawn to this hobby. Hacking stuff together and figuring out the solutions to all the problems along the way is interesting to me, and I guess I’ve kind of missed it.

Operating System “Ecology”

Back in my days of playing AD&D, each month, Dragon Magazine would feature an “The Ecology of…” some mythical beast. The article would read like a National Geographic treatment of what the creature eats, what places they inhabited, and so on. (The one that sticks with me was about the beholder, which is a uniquely characteristic example.) I still think about the word, “ecology,” a lot, because it neatly captures the immediate surroundings of a particular thing. I suppose talking about the “ecology” of an operating system is taking things a bit too far, but hear me out.

As I type this, I’m cloning a spinning-media hard drive to a solid-state hard drive. It’s already 33% done, so I’m going to have to hurry. To do this, I searched for “clone hdd to ssd”, and read the results. The first several, including a prominent LifeHacker article, talked about using EaseUS Backup to do the job.

Fine. I download software, and install it, and try to use it. Along the way, I’m prompted five times to upgrade to the paid version. Each time, I sidestep the upsell, because LifeHacker has assured me that the free edition is all I need. When I finally get to the actual button that does the thing, I see that this is no longer true.

Fine. Times change, and they felt the need to start charging for this. I get it. I don’t begrudge them. If all else fails, I’ll find a way to do this with Linux, because it’s always possible to do things like this with Linux, and do it for free, if you’re willing to learn the flags of some arcane commands.

But I take another look at the search results, and there’s another possibility: Macrium Reflect. Ah! That’s right. I did this for another computer over a year ago, and that’s what I used, I now recall.

Fine. I download this new program. I have to sign up with an email address to get the downloader. Fine. I register. I get my email. I download the downloader. I run the downloader. I enter my email. I get the downloader running. It downloads the program, installs it, and I’m copying the drive right now. The UI is very efficient, and there’s no annoying upsell come-ons. But I’ve had to click about 25 times to get to the point of doing the thing.

People who’ve never actually lived in macOS, and think that Windows is just great (thank you very much) never see it from our side. In the ecology of Macs, if you want some software, it’s usually quite clear that what you want is either free or paid, and installing consists of downloading a file, opening it, and dragging an icon. That’s it. The difference in the two operating system “ecologies,” in terms of friction and user-hostility, is pretty stark. Window users who have never tried Mac: you have no idea how much nicer life can be.

Aaand the clone is done. Let’s see how much faster Civ V starts up now…

DHH “not yet feeling the awesome” of WSL

This has been one of my all-time favorite Twitter threads. David Heinemeier Hansson, creator of Rails, is trying to “live” in Windows, and set it up to do Rails work. He’s blogging the “experience,” and it’s not going very smoothly. Everyone is telling him to use Windows Services for Linux for this, but he’s “not yet feeling the awesome.” I’ve tried using WSL several times for doing development on Rails applications. I, too, am not feeling the awesome, despite the cheerleading by Windows thought leader Scott Hanselman. Despite my personal experiences with it, given how vociferously people recommend WSL for Rails work on Windows, I kept wondering if I were missing something. I’ll take this as final confirmation that I’m not missing anything, and delete the mental bookmark to go back and try this again when it becomes WSL 3.