Tuesday, July 16, 2019

Linux in a Microsoft world

When I started using Linux, in 2003, I gave myself the challenge: to do everything I do in Windows, except in Linux.  That goal has been met many years ago with Ubuntu (and derivatives) and even today it still is my preferred OS.

However, at work things are a little different. At work we run a lot of Microsoft technologies, The biggest exception of this is the Drupal/Wordpress running on Linux for external websites (currently).  Even there, though, it looks like SharePoint is going to be getting into the mix.

So it seems, other than getting hired by Red Hat *hint* *hint* or Canonical, I need to brush up and improve my Microsoft skills for work.  I need to improve for current employment and for prospective employment in case things do not work out here.

Now Microsoft "loves Open Source", or so they say, but this love-fest resides in Linux on servers only. You look at what Microsoft has opened up and worked with Linux and you quickly see they are Enterprise and Server focused (WSL is CLI, Azure is for Linux servers, SQL Server runs in Docker on Linux, dotNET core, Visual Studio Code is for developers, etc.).  Their desktop offerings have a bit to be desired (Skype is outdated, Office 365 does not work well with WINE, etc.)

I don't fault them, and am glad for every validation of the Linux platform they generate with more integration.  This leads me to my next goal;

To use and integrate Linux as much as possible while I update and improve my overall technical capabilities, predominately Microsoft technologies.

This means building an environment for development that can transfer easily to my work environment, which is Microsoft based, and becoming familiarized with the languages and technology.

My focus is on development, not system administration, which Microsoft can make it very easy to breeze over. Visual Studio can start coding and debugging without having to have a full-blown web server in place. Azure provides an easy (but can become expensive) platform or even software as a service so you don't need to be involved with the underlying bits.

I don't want to end up spending all of my time deciding container (which?), virtual machines, cloud, source control, backups, restores and updates of a local system in hopes I can use it for development.  As I get more active in development, I will be trickling down into the details anyway, but I don't want to have to start at the bottom and build up and not know if I am even going in the right direction.

I am being vague and that is partially because I don't know what exactly this goal means.  That's perfectly fine, because it is a larger and broader goal to guide my continued technological journey.  Does this mean I run Windows and use WSL for my Linux "fix"? Maybe. Does it mean I heavily learn how to use Visual Studio Code (which is confusing as-is) on Linux and figure out how to transfer it to a Windows server? Maybe.  I just don't know HOW I am going to do it, but I hope to learn from it.

Just like it was with my first goal, the Internet will likely prove to be the bridge between the two systems.  In the past, so long as I had a browser I had the bare minimum of capabilities and productivity.

Let's see how far this rabbit hole goes...