Saturday, November 7, 2020

My Office


So this is just a fun post for a change. Once in a blue moon someone gets curious, so I decided to make a place I could point people to just to introduce the cubbyhole I have and how I work! Alright, alright, alright!

I use a MacBook Pro so hat I can run also both Microsoft Windows and Linux virtual computers. I need all three operating systems because I have many clients who use Mac, and I cannot easily (or legally) put MacOS on a PC.  I run the Mac in "clamshell" mode (closed) in a BookArc on the left edge of the desk (you can see that in a picture below).

That giant 4K 55" screen on the wall which is great for meetings and training. Well, it's giant for this office, it's a third of the length of the wall! You can see everybody in a Zoom meeting at the same time from across the room. Or your favorite American Football or even Association Football team, a.k.a.  "SOCcer" for "association". Yeah, I'm one of those.

On my desk is a 34' Samsung Thunderbolt gaming monitor, which is almost enough real-estate for teaching classes.  With that width I can get the window that I'm sharing and my notes or a browser window next to it. I like it better than dual monitors, I can't stand the split between those.

Monday, June 1, 2020

I got a kick out of this...

Time Magazine - "SpaceX delivered two astronauts to the International Space Station for NASA on Sunday, following up a historic liftoff with an equally smooth docking in yet another first for Elon Musk’s company"

Now I know that the computers can do a better job of docking than a pilot, and I know that the crew was ultimately in control of the Dragon capsule. But, this is all I could think of with that choice of words!


What are they, a pizza? Seriously, I get it. SpaceX is responsible for getting them there. And kudos to Elon Musk and the whole SpaceX team for a job well done! It is a truly great moment, the dawn of real commercial launch systems to put humans into space!

But, the author couldn't have said "the astronauts arrived at" or "the two astronauts docked at"? He, he, he :) That description just made me collapse on the floor laughing!

Tuesday, May 26, 2020

Microsoft Cloud Subscriptions

Note: please may attention to the publication date of this article. Microsoft is always changing the rules!

Deciding how to start using Azure,  Microsoft 365, and Dynamics 365 can sometimes be a daunting experience. What is confusing is a whole lot of people competing along-side of Microsoft to sell you the same Microsoft-hosted services, and not a lot of explanation as to how this is organized or what is best for you.

This figure shows the four options end-users are presented with, ordered by functionality and price descending. I will address the benefits and cost of each of these.


Saturday, May 23, 2020

Active Directory Scenarios with Azure

This is a short post to help you decide what kind of Active Directory structure you need in your Azure or on-premises/Azure environment. "What choice should I make?" and "What are the trade-offs?" are questions I frequently hear, so hopefully this will organize it for you.

There are basically six scenarios for using Active Directory. They all have pros and cons, mostly with effort vs flexibility. Of course what you should pick depends on what you need.


Tuesday, May 12, 2020

PATH and Login bash on MacOS

It took a while to run down why certain older versions of programs were always launched when I was in Visual Studio Code, but not when I opened a terminal window. I first found this in relationship to nvm and documented it in this post: VS Code and the Node Version Manager. Unfortunately it affects other commands too, and it isn't just a VS Code issue, so I thought a more general post was in order.

Of course we know that the PATH environment variable is a colon-separated list of directories that are searched sequentially and the first match for a command is used:

$ echo $PATH
/usr/local/Cellar/python/3.7.4/bin:/usr/bin:/usr/local/bin

So in ~/.bash_profile we make sure that we set up the path in the correct order. For example, there is a python program in /usr/bin, so if we install a new python version we make sure the PATH points to the new installation before it points to /usr/bin. Python 3.7 has to come before /usr/bin in the PATH!

Some folks like to put PATH modifications in ~/.bashrc which is fine. You just have to remember that ~/.bashrc is supposed to run for every bash instance, so don't keep extending the PATH every time it gets called. This post explains it: Always Modify PATH and Other Variables Conditionally.

The problem is that MacOS VS Code (and other tools) may launch bash with a -l  or --login option. This creates a problem on MacOS because the bash program has been altered so that -l forces /usr/bin and /usr/local/bin to the front of the PATH. It is actually a really good security feature to make sure that built-in programs are located before a Trojan horse. Unfortunately sometimes we need to override that. Specifically, three important things that happen when -l is used:

Always Modify PATH and Other Variables Conditionally

You MUST use conditional statements while modifying the PATH environment variable (and others) in your shell startup files. I will use bash for this example, but the reasoning is the same for all shells.

A typical modification to the PATH in ~/.bash_profile looks something like this:

export PATH=$PATH:/usr/local/Cellar/node/14.2.0/bin

The problem is that if the file is "sourced" twice in the shell, your path ends up looking like this, with the same directory there twice. It works, but it slows things down:

$ source ~/.bash_profile
$ echo $PATH
/usr/bin:/usr/local/Cellar/node/14.2.0/bin:/usr/local/Cellar/node/14.2.0/bin
$ 

Wednesday, April 22, 2020

Why do Videos have to Automatically Play in Chrome?

The question of the day is "why do videos in Chrome have to automatically play?" It completely sucks, but I do not want to give up Chrome! Every time I land on a page at CNN, there is a video that starts to play. It starts with an advertisement, is Google getting a kickback from them?

Now I know that you can find some plugins that purport to block videos. I have not found one that works satisfactorily. And that is because the place you need to stop this is during page rendering, not afterwards. Come to think of it, Chrome does allow you to do that for sound, so why not video? I have been computer programming since 1976, and with all that we have learned in over 44 years I simply cannot see that adding an option to the browser engine to block videos during rendering would be all that difficult.