Move an Appliance Disk to Azure

This process for making a Hyper-V based appliance disk images work in Azure. This has been used several times for Linux based appliance.

ESXi network configurations work different and don’t transfer correctly to Azure, always go for Hyper-V images.

Boot up VM, enable remote settings and remove Hyper-V agents.

Using Hyper-V disk manager convert whatever the disk images is to a Fixed VHD(NOT VHDX).

Upload to blob storage, slowly…. Disk images over 100 GiB will take over 24 hours apparently.

Create a template from the disk image stored in blob storage.

Create a VM from the template.

Boot diagnostics are useless, you’re flying blind. Thanks for no console Microsoft.

Squeeze a little break between Exchange calendar meetings

Set-OrganizationConfig -ShortenEventScopeDefault 2 -DefaultMinutesToReduceLongEventsBy 5 

These are set using the Set-OrganizationConfig setting. The three new properties are ShortenEventScopeDefault, DefaultMinutesToReduceShortEventsBy and DefaultMinutesToReduceLongEventsBy. You turn on the reduced length meetings by setting ShortenEventScopeDefault to 0, 1 or 2 where 0 is the default and meetings are not shortened and 1 means to end meetings early and 2 means to start meetings late.

Once ShortenEventScopeDefault is set to 1 or 2 you can set the DefaultMinutesToReduce…EventsBy properties. These are set to the minutes that you want taken off the meeting. Short meetings are those of an hour or less and long meetings exceed one hour. So for example if you set DefaultMinutesToReduceLongEventsBy to 10 then all meetings over 1 hour would be 10 minutes shorter, either at the start or the end (not both) based on the value of ShortenEventScopeDefault.

Need an umbrella?

When I lived in Tokyo I had this weird habit of picking up umbrellas that people left behind on trains and busses. With a spare umbrella I could always offer a stranger an umbrella, share a smile and continue my day. Then I found out that bars would throw away hundreds some nights and this blew my mind. I had to get those umbrellas and I did. So there I was living next to a park with a busted awning. In my best Kanji I wrote a sign that said “need umbrella: take umbrella, spare umbrella: leave umbrella” and put 20+ out. After a few days I noticed a few were gone and it didn’t bother me because I had hundreds. One night I came home after it had been raining a lot and they were all gone. The next morning I opened my door and there were over 3 dozen and a thank you note with an action figure of the big chubby guy on Doaemon. It was amazing. Fast forward a month. I’m walking with my friend and they point to a house with several cylinders in front of their house containing a few umbrellas each and a note just like mine. My friend said it wasn’t there last week. I had a copy cat! I asked my other friends if they had seen borrow umbrella signs and they had started popping up around town! It was amazing. In a city of 35m people I started a thing. Then I moved back to the USA and haven’t touched an umbrella since.

Guns n’ Badges

A memory I had when I was gathering supplies to wire up my police buzzer and brake light disable switch in the El Camino:

When I was a kid my school had the D.A.R.E. program. My school had Sargent Joe Rindosh. He taught us how and were to buy drugs and how to tell the difference between good and cheap weed. He was also in a band called Guns n’ Badges and they had a concert.. A rock concert at my elementary school and many other schools. They played ZZ top, 38 special, Steppenwolf, Grand Funk Railroad and my favorite, Molly Hatchet. My mom being the groupie she was… Mr. Rindosh was at our trailer many mornings. I got to press the police buzzer and siren button a few times when he’d give me a ride to school in the mornings.

Cisco Umbrella can fuck right off


#!/usr/bin/env bash


if [[ `id -u` = 0 ]]; then
echo “You mustn’t be root when executing this script”;

function usage {
echo “Usage: $(basename $0) COMMAND
stop Run sudo launchctl unload /Library/LaunchDaemons/com.opendns.osx.RoamingClientConfigUpdater.plist
start Run sudo launchctl load /Library/LaunchDaemons/com.opendns.osx.RoamingClientConfigUpdater.plist
restart Stop umbrella, then start again.
status Is umbrella running?
exit 1;
function start () {
sudo launchctl load /Library/LaunchDaemons/com.opendns.osx.RoamingClientConfigUpdater.plist;
launchctl load /Library/LaunchAgents/com.opendns.osx.RoamingClientMenubar.plist;
sleep 1;
function stop () {
sudo launchctl remove com.opendns.osx.RoamingClientConfigUpdater;
launchctl remove com.opendns.osx.RoamingClientMenubar;
sudo killall OpenDNSDiagnostic &>/dev/null;
sleep 1;
function status () {
ps auwwx | egrep “dnscrypt|RoamingClientMenubar|dns-updater” | grep -vq egrep;
if [[ 0 == $? ]]; then
echo “Umbrella is running. Checking DNS…”;
dig txt +time=2 +tries=1 +short | sed ‘s/^”/ “/’ | grep ‘”‘;
[[ 1 == $? ]] && echo “Umbrella is not functioning correctly!”
echo “Umbrella is stopped”;
grep -q /etc/resolv.conf && echo “Without umbrella running, you’ll need to remove from your DNS servers before you can resolve domains.”;
echo “Currently using name servers: $(cat /etc/resolv.conf | grep nameserver | sed ‘s/nameserver //’ | tr ‘\n’ ‘ ‘)”

case $CMD in
(start) start;;
(stop) stop;;
(restart) stop && start;;
(status) status;;
(*) usage;;

exit 0;

Disable Reply All to Company Emails

To configure

In Outlook enable the Developer option on the ribbon under File > Options > Customize Ribbon.  Check Developer in the right column.

From the Developer tab select Design a Form

Pick message and open.

Select the Actions tab, then select the line with Reply to All and click Properties.

Uncheck the Enabled box in the top right then select OK.

Select the Properties tab, then check the Send form definition with item box. Choose OK on the dialog box that appears.

          If this gives an error click Properties again

Click Publish > Publish Form As…

Save it in your personal forms library as something easy to remember like NoReplyAll

Close the windows

To use

Click on Developer tab > Choose Form  > Look in: Personal Forms Library > NoReplyAll > Open

Then send that message to AllCorp1 or as many people as you want and they will see…

Just another day

Woke up face down on my uncharged mobile phone.
Went to Lowes and bought some nice planks to put on top of a broken glass table I found.
Discovered one of my push button hood pins on the Dodge don’t work right, the fun way.
Bought bright green tie down straps for the Dodge.
Verbally assaulted another human because he was coughing and touching all the power tool models.
Reported him to the manager who took it very seriously.
Sanded said wood and finished the table.
Reloaded my burner laptop.
Organized my cable crates.
Had a Zoom call on burner laptop with yet another solar company.
Signed an agreement for a solar power system for the house.
Reloaded my burner laptop.
Ate pizza rolls.
Added gravel to where the gutter dumps water.
I want Olive Garden.

Bye old PL3X, hi new PL3X

I did something really really dumb last night….

I made my new Plex VM on my ESXi environment that I recently stood up on an R820 with 1tb of ram to move away from my old R910 with 256 gigs.  Anyways, I got all the automated stuff working right at the system level so all I needed to do was export the config from the source server. I connected directly to the source server and loaded XFCE4 and Filezilla so I could have the lazy GUI for SSH transfer of the files between the two since there were some plugins I wasn’t going to bring over. Before I started the transfer I had to destroy the test config on the destination server which I started to do through Filezilla which is just telling Filezilla to delete everything in /var/lib/plexmediaserver and that started out fine. It was slow. When you delete through Filezilla it deletes everything item by item. Delete this file, ok it’s deleted, now delete that file, ok that is deleted X thousands of files. I stopped that process and decided to just use the terminal to delete. I opened it and ran rm -r /var/lib/plexmediaserver.

It completed in about 30 seconds.

It was the wrong server. It was the source server. So all those months of tuning and tweaking gone. Shit.

A few perks though. My actual library data is fine. My Plex is a fresh install. I got to turn off the R910 immediately because there was no going back. Now my server room is noticeably cooler because that massive system is off.

Ram transcoding for PLEX on Ubuntu

My PLEX host has RAM, it’s currently a Dell R910 with 256 gigs of ram. I don’t want to murder my twin 1tb SSD’s doing all that fancy transcoding so I have mine use 50 gigs of ram as a temporary folder. You can use much less but I on average with 3 streams going am using less than 20 gigs of ram for the system so I can spare the memory.

Here’s how to accomplish this on Ubuntu.

sudo mkdir /mnt/plexdisk
sudo mount -t tmpfs -o rw,size=50G tmpfs /mnt/plexdisk

verify it’s mounted
df -h

before we make it a forever change, make a backup cause one mistake can be bad.
sudo cp -v /etc/fstab /etc/fstab.backup

make it mount on boot
sudo nano /etc/fstab

Add this to the bottom then CTL+X to exit and save
tmpfs  /mnt/plexdisk  tmpfs  rw,size=50G  0   0

Reboot if you want.

Now to the PLEX interface.

Under server settings navigate to Transcoder

Set the Transcoder temporary directory to /mnt/plexdisk

either reboot or just restart the PLEX service

systemctl restart plexmediaserver.service or whatever you called it.