About a year ago I was still recovering from a mystery illness and decided to go for a morning walk around the neighborhood before starting my workday. It turned into a routine and is something I look forward to every morning now, rain or shine. #mileaday

Played softball for the first time in a couple years last night and it was fantastic. I am still rusty but still played well in the field and at the plate.

Today marks the 413th day since I last went into an office for work, it is also the day when I will receive my first COVID vaccination.

Scheduled my Moderna or Pfizer vaccination about an hour before the announcement of the JnJ “pause”. One week to go.

Turkish Coffee

I love coffee and last year I added a few new things to my bag of tricks. Last Christmas my in-laws bought me a coffee roaster and every three days I fire it up and make some fresh beans for my espresso machine. It has been fun learning how to roast, but it has also saved me from going to the local coffee shop every couple weeks to buy a bag of beans.

I also learned about Vietnamese style coffee by finally getting around to learning how to use my Vietnamese coffee brewer. It was really fun to research the various brewing techniques and make an educated guess based on all the different videos and blogs out there on the subject.

This year for Christmas my in-laws continued with the new tradition and are helping me expand my coffee horizons even further with Turkish coffee. The first present I opened was the coffee pot called a cezve as well as a wooden spoon. The next up were the cups or fincan and saucers which are about the size of the small espresso cups. The last present included finely ground turkish coffee and some special spices.

The next day I spent thirty minutes researching on the internet to see how I was supposed to properly brew cofee in the cezve. There were lots of different videos and most of them had similar instructions, but each one had its own special technique for one part of the process. I weighed the various options and came up with my plan. The following steps were for creating two cups of coffee.

  1. Add a teaspoon of the special spice to the cezve
  2. Add a teaspoon of sugar to the cezve
  3. Stir the spices and sugar to combine them
  4. Add about 3 fincan cups of cold water to the cezve
  5. Stir it up a little bit to mix the dried ingrediens with the water
  6. Turn on one of the burners on the stove to low
  7. Put the cezve over the heat and keep a close eye on it
  8. Bubbles will start to form where the surface of the coffee meets the side of the cezve, a little after that happens but before the foam starts filling in you should remove it from the heat
  9. Using the wooden spoon scoop the top layer of foam evenly into each fincan
  10. Put the cezve back on the heat very briefly until it starts bubbling a little bit
  11. Remove it from the heat and carefully fill up the fincan, taking care to pour so you don’t interfere with the foam
  12. Serve with fresh water and a sweet treat

Some videos recommended completely mixing the contents of the cezve before adding the heat instead of just loosely mixing it. Another part that will require fine tuning and practice is the time of the scooping of the foam and the subsequent pouring of the coffee. There is a very fine balance around when you scoop the foam and how long you heat the coffee. Overall the entire process should take about 7-10 minutes. Thankfully there aren’t too many different knobs and levers to mess with so I should be able to find a sweet spot after about a half dozen or so attempts.

JAVA Home and macOS

I decided to take the leap a couple weeks ago and installed macOS Big Sur. I have had a couple small issues like the display not waking up from sleep and my JAVA IDE not rendering some text properly, but it seems pretty solid. There was one issue with my development tools related to the JAVA_HOME settings and I wanted to document for future me.

In macOS you can run the following command in Terminal to list out all the different versions of JAVA installed.

$/usr/libexec/java_home -V
    Matching Java Virtual Machines (3):
    12.0.1 (x86_64) “Oracle Corporation” - “OpenJDK 12.0.1” /Library/Java/JavaVirtualMachines/openjdk-12.0.1.jdk/Contents/Home (x86_64) “Oracle Corporation” - “Java” /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
    1.8.0_211 (x86_64) “Oracle Corporation” - “Java SE 8” /Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home

You can then specify the active JAVA in Terminal by adding the following to your .bash_profile and specifying the version to use.

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8.0_211)

I ran into an issue after the upgrade because the plugin was new in the list and I had only specified version 1.8, so my JAVA_HOME was getting set to the plugin instead of the JDK. After changing it from 1.8 to the more specific 1.8.0_211 I was back in business.

Source: Notes for Geeks: java_home and JAVA_HOME on macOS

SpringBoot Arguments

I recently ran into an issue with our deployment of a SpringBoot application because of some confusion around how to pass arguments when launching it.

The command to run an app looks like this java -jar ${APP_NAME}.jar

You can pass arguments to Spring boot either

  • Using the -D Java property notation by adding it as a VM argument between java and -jar

  • Using -- style notation after the jar name

For example, java -DenvTarget=dev test-api.jar --server.port=8008 would set the envTarget property to dev and the server.port to 8008

Apache2 Subdomain Redirect Fun

Last year I set my son up with his own domain name and learned how to use virtual hosts in Apache 2 to host his site alongside mine. It seems like a long time ago, but for the most part it was a pretty straightforward process and within a couple hours he was up and running. Fast forward to yesterday when I was trying to configure a redirect for a subdomain on my site. I started messing around with my site’s virtual host configuration file and realized an existing redirect softball.keegsands.org now sent the browser to my son’s domain. I blindly hacked away at the configuration file for an hour or so, but since it was almost 70 degrees in November I decided to go outside instead.

This morning I picked up where I left off and started at the beginning and verifying that the DNS stuff was configured correctly. There were a couple differences between our DNS settings. My son’s domain had www set up as an A record, while mine had it set up as a CNAME. It shouldn’t really matter, but for consistency sake I switched mine to have www as an A record. Next I tried to add a new virtual host for my subdomain and that didn’t seem to work and just added an extra level of complexity.

Finally I started reading about virtual hosts and was certain I was in the right place, I just needed to get the configuration correct. During the initial set up I do remember an issue where my son’s site would end up being the default virtual host for all traffic to the Apache server, so I focused on why calls to the softball subdomain weren’t being handled by my site’s virtual host. The problem was with the ServerAlias property for my site was set for only www.keegsands.org, I switched it to *.keegsands.org and it started doing the proper rewrite of the URL.

Hosting my own site has been a little annoying at times, but just having that extra experience messing around at this level definitely makes me happy.

At the beginning of the school year we upgraded my son from my old 2011 MacBook Pro to a new MacBook Air. Today I finally fixed the wobbly display hinge and removed all of the stickers. Now it is as good as new and ready for the museum.

Shortcuts Folder Support in iOS14

One update I was looking forward to in iOS 14 was folder support in Shortcuts. Over the years I have expiremented with Shortcuts and most of them were just simple utilities, but at some point I decided to do a deep dive and write one to make publishing my podcast easier. It took a lot of trial and error, but eventually I had a main shortcut for the process and it would call out to a few different specialized utility shortcuts for different things. The developer in me couldn’t resist trying to breaking it out for easier testing and flexibility, thankfully Shortcuts was built for developers and a Shortcut can be built as a little function that receive arguments and returns a result.

It wasn’t the easiest process because the code block dragging and dropping is a bit tedious and I would have loved being able to just type in text, because it would have saved me a ton of time. The organization of the shortcuts was always daunting too, because everything was just a giant grid of unrelated shortcuts and I was always moving things around so they stayed grouped together.

Well, now in iOS14 there is support for folders and it gave me the chance to go back and revisit my Shortcuts. As an added bonus I hooked up a keyboard and mouse to make things even easier. The first part of any good reorganization is getting rid of the old unused stuff and I had plenty of that. A bunch of shortcuts seemed to just have been added randomly and others were utilities that were no longer necessary thanks to advancements to iOS, like saving a file to iCloud Drive.

After cleaning up a bit I started testing each shortcut to see if they still worked and was frustrated to find a lot of them were broken as Shortcuts has grown over the years. In some cases the parameters I originally entered were just blank and it took me quite a while to wire them back up and occasionally I wasn’t even able to get them working again. I understand how difficult backward compatibility can be, but there wasn’t even a hint of even the simplest things upgrading successfully. Luckily I knew this was a problem, because I had fixed up my podcast release shortcut a few months ago and it was really frustrating.

Next, I put all the shortcuts into new folders one for utilities and another for all the podcast related helper shortcuts. I had already moved things around a little for using the Shortcuts widget and the return of Shortcuts support on Apple Watch. I now have a nice clean interface for Shortcuts on my iPad and iPhone. The last thing I did was clean up a bunch of Share Sheet shortcuts, which are now nicely grouped in its on “smart” folder.

Overall Shortcuts continues to be an integral part of my experience on my Apple devices. I hope it eventually shows up in a future release of macOS.

Why is Massachusetts not exempt from Maine's COVID-19 travel restrictions?

Maine has travel restrictions placed on visitors from different states because of COVID-19. NH, VT, NY, CT and NJ are all exempt, but MA is not. I crunched some numbers today to figure out why and think I know why. If you look at daily cases per 1M people NY, NJ and MA are all about the same, so I figured there must be another factor they are considering in their metrics.

After digging around on this Maine Tourism report I was able to gather information about the location of residence for visitors to Maine. New York and Massachusetts are neck and neck when it comes to overnight visitors at 22% each. However, when you look at daily visitors for obvious reasons the New York visitors is near zero and Massachusetts makes up 35% of all visitors tied with Maine. If you combine overnight and daily visits Massachusetts accounts for 34% of all visits to Maine, about double the results from New York.

Using the new case numbers for today and converting to values per 1M people and then multiplying against the total visit breakdown per state shows that Massachusetts would bring in 16 new cases per every 1 million visitors to Maine. Next up would be New York with 7, followed by Rhode Island with 4. I’m not quite sure why Rhode Island isn’t exempt, but it does make sense for Massachusetts.

Ski season is right around the corner and I have a sinking feeling that it just isn’t going to be in the cards for us this year. Maybe this fall we will be able to get home COVID-19 tests that we can use every couple weeks before we head up north.

“The US has 4% of the world’s population but 25% of its coronavirus cases”. Based on our trajectory the rest of the world is going to start calling it the “American virus”.

Drone Interview from Work

“A friend of mine joked once about me having eight drones…” - Keegan Sands

This month, we talked to Keegan about DRONES!

When did you get into flying drones and how did it all begin?

In the summer of 2016 my son, told me he wanted a drone. We researched a few different types and settled on a cheap $40 drone from Amazon, it had a camera and would be good for learning. He quickly got bored of learning how to fly, but I really liked the challenge of learning the controls and also flying up over the trees to take pictures and video. It all changed one day when I was browsing Periscope and I came across this guy, Mr. Steele, setting up a drone to fly in a mall parking lot and he had these weird goggles he would wear while flying. I learned the goggles were used for first person view (FPV) flying. The drone has a camera mounted on the front and a video transmitter sends the video signal to the goggles and you get a bird’s eye view of the flight. After watching some of Mr. Steele’s videos I was hooked. He is a freestyle pilot and mounts a GoPro on the onto the drone to capture some of the most amazing video footage I have ever seen.

Tell us about the drones you have and What makes each of them special?

A friend of mine joked once about me having eight drones and then I had to correct him and sheepishly point out it was actually more like ten. My first few came from Amazon and are about the size of my hand, they helped me learn to fly, line-of-sight (LOS) and FPV. My next two were pre-built racing drones, they are very similar to what the pros use but not quite as powerful, although they did require all the other gear like the googles, transmitter and special batteries. I really started doing tricks at this point and flew these drones to their limits. My next drone was the first one I built myself, which meant researching and buying all the different components as well as taking a soldering class. My favorite drone is by far my Alien, which I built using all the same components as Mr. Steele. It is rock solid and flies like a dream.

I also have a couple cinematic drones from DJI, those are more common and probably what most people think of when they think of a drone. The Spark is super small and very portable so it is great for hiking and traveling. The last drone in my hangar is special because it was my father’s most prized toy before he passed away. He always loved technology and bought it to celebrate his retirement. It is a pretty big drone and comes with all the bells and whistles like GPS positioning, Return to Home mode, and records 4K video.

Where does one get a drone and what are the benefits of building v. buying?

You can buy the most of the cinematic drones at big box retailers like Best Buy, Wal-mart or Target. If you want to buy or build an FPV drone you have to go through a specialized online store. Buying a pre-built drone is obviously much easier, but building your own lets you hand pick the various components so you can get the exact flight characteristics for the type of flying you want to do.

Do you have advice for anyone interested starting to fly drones as a hobby?

Start small and just get a $30-$40 drone off of Amazon and see if flying is for you. As you learn to fly just focus on the basics first like just going up and down slowly. The biggest mistake I see for new pilots make is they immediately jam on the throttle and go to the moon. Once you are able to fly away from you the real challenge is flying towards you. If you have the patience to learn how to fly in a circle then you should consider getting one of the smaller DJI drones like the Mavic Mini. They are amazing pieces of tech and can stop you from doing a lot of stupid things, but knowing how to actually fly first is huge in case the tech fails.

Other than flying drones, do you have any other fun or interesting hobbies?

I have been skiing since I was about 7 years old and spend every other weekend of the winter at Sunday River in Maine. I love skiing moguls and even entered the annual Bust’n’Burn competition a few times at the turn of the century.

You can check out some of Keegan’s Drone Footage here.

Homemade Deep Dish Pizza Trials and Tribulations

A friend of mine posted some pictures on Instagram of an amazing looking deep dish pizza she made and I immediately knew I had to try it so I asked for the recipe. She sent me Giordano’s Famous Stuffed Deep Dish Pizza recipe.

Eventually I gathered all of the ingredients and started by making the dough. The hardest part was remembering to make it the day before I wanted to actually have the pizza because it takes 1 to 2 days for the dough to rise. On the day I was going to have the pizza I made the sauce in the early afternoon so it would have a chance to cool and that was super simple too.

Finally construction of the actual pizza began one evening, I flattened out the dough and carefully laid it in the pan. Next I grabbed the special mozzarella cheese so I could freshly shred it, I wasn’t sure what to kind of cheese to get, but they insisted I don’t use the pre-shredded stuff because it won’t melt properly. The layer of dough went on next followed by the sauce and I popped it in the oven. I had a little bit of dough left over and made a miniature version in a muffin pan, which I baked for half as long and was able to get a preview of the main course.

After 40 minutes of patiently waiting I took the pizza out of the oven and tried to pop it out onto a cutting board when I was splashed with a ton of hot water. It turns out the cheese I used was too wet and just created a pool of water in the bottom of the pie, which made for a soggy crust. I poured a bunch of the water out into the sink and ate it, but while it was good it just did’t taste right.

Last night I made this pizza again, except I used pre-shredded cheese and this time it turned out perfectly. The cheese melted nicely and the crust stayed dry and crusty. It also received broad approval from the family so I think I will definitely be making this again soon.

Finished importing my full blogging history including LiveJournal and Blogger into micro.blog. It feels so good to have 18 years of posts in one place. Thanks for the help getting me across the finish line @manton