Studio711.com – Ben Martens

Geek

Syncthing

Apps like OneDrive and Dropbox are good at syncing your files to the cloud, but what if your scenario is a little more complicated? I ended up with one such scenario due to my cheapskate reasons for wanting to keep an old Pixel phone for its free Google photos storage.

My old Pixel 4a has lifetime free photo storage on Google Photos. Any photo I upload from that phone is free whether it originated there or not. So that means that I need to take all the photos off of our new phones and push them to the old phone. I also like to keep a full resolution copy of all our photos on our file server. I had a manual way of making this work before, but this past week, I found something that seems to be working a little smoother.

There is an open source app called Syncthing. It’s available for most platforms, and while it’s not as user friendly as other options, it is pretty straightforward and has a lot of knobs for adjustment. The basic setup is this:

Syncthing runs on each of our phones. It’s configured to watch for any camera photos or other image files like screenshots or text message pictures that we save. When we’re connected to WiFi, those files get sent to our file server at home which is also running Syncthing. The file server saves them all to disk and then also sends them out to the old Pixel 4a. The Pixel 4a is also running Syncthing and is setup to receive files from the file server. It writes them to a folder on the phone and then Google Photos sees those new files and uploads them to our Google Photos account. Every file goes new phone to file server to old phone to Google Photos. It’s a lot of movement, but it’s automated.

The only hiccup is that the old Pixel 4a runs two user profiles (one for Tyla and one for me.) So I have to periodically flip back and forth between the profiles to let the syncing happen, but that’s a lot easier than it used to be.

Eureka Filming Site Visit

I’ve been burning through the Eureka (2006-2012) TV show episodes on Amazon Prime. I’m a Stargate fan and this was recommended to me as something with a similar vibe (and a lot of crossover actors.) Like Stargate, a lot of the filming happened in the Vancouver, BC area.

I was curious where the downtown Eureka scenes were filmed so over many episodes, I carefully looked for clues and searched and searched and searched around on Google Street View until I finally found a couple blocks on Wellington Ave in Chilliwack, BC which looked similar. (Shortly after that, I found this website which lists out all the filming locations for many different shows. Derp.) That’s only a couple hours from our house and it seemed like it could be a fun family adventure day so I looked up a few other possible activities and we set off.

Our first stop was the filming location and even though it has been 10 years, I was happy to see how much it felt like walking through Eureka. It wasn’t quite the same vibe I had walking through Radiator Springs at Disneyland, but it was similar.

With my own nerdery satisfied, we set off to find some food at Cookies Grill. I don’t remember how I stumbled on this place (Yelp?) but I suspected it would be a winner since Tyla and Elijah love breakfast and Cookies serves breakfast for lunch. It lived up to their expectations and they honestly talk about driving all the way back there to eat again some time.

While we were walking around Eureka, there were a few other people there looking in the shops, etc. One of the couples seemed like maybe they were Eureka fans too but that seemed unlikely and I wasn’t about to start that weird conversation. When we drove ~10 minutes to get to Cookies Grill in a random strip mall area, we got out of the car and the same couple was in the parking lot! Weird things happen in Eureka.

It was still raining but we went for a hike anyway to see Bridal Veil Falls. The path is almost smooth enough for a wheelchair (except for a couple stairs) and it’s only ~5-10 minutes long, but it’s steep. The falls are beautiful though and the length of the tiny hike was about perfect for our day.

From there we stopped for ~10 minutes at the Chilliwack Supercharger on Luckakuck Road and then continued our journey via Lickman Road. As we giggled about the street names, we drove to Chilliwack River Valley Honey where we picked up a few jars of delicious honey. (Before we left home, I verified that we could get back across the border with it.)

Our border entry into Canada had been quick and while the internet said the return trip would be quick, the line of about a dozen cars was moving very slowly. They were carefully inspecting everyone, searching a lot of cars, and even pulling some cars off to the side for additional inspections. As we approached the booth, I was prepared for a lot of questions, but apparently we are super boring and we were almost waved right on through.

Despite what the border guard must have thought of our story, we loved it! It was a lot of driving for one day, but Elijah had fun going to Canada for the first time that he can remember, and we all enjoyed the random sites. There were quite a few other attractions in Chilliwack that looked interesting (water parks, giant lakes/parks, disc golf, etc.) so who knows, maybe we’ll be back!

Remote Access to Home Network

Let’s say you’re the kind of person who is running a website within your home network and you want to access it while you’re away. Let’s also imagine you’re the kind of person who has at least a loose knowledge of your router configuration and what a VPN does. Yes, this one gets a little geeky, but maybe it will be helpful for someone else out there.

I run Teslamate to record a bunch of stats about our car, but one the reasons I check it most often is to see whether the car is asleep or not. Sleep mode for a Tesla is like standby on your computer. There’s normally a constant drain from the car when it’s sitting there, but if it goes into sleep mode, it uses almost no power. This is important especially in situations like when we’re away from home and I’m leaving it parked outside a hotel overnight. I like to be able to check in on whether it’s in sleep mode as well as the current battery state. Teslamate lets me check that without waking the car up. But Teslamate only works on my home network. How can I view it while I’m away? Obviously I could just open that port to Internet traffic but it’s an unsecured connection and I don’t really want to share all that personal info with anyone who happens to sniff my password. So how can I view that website securely while I’m away?

The first option I tried was using a feature of my Synology router. That router has an installable app called VPN Plus Server. There are a few different modes, but the simplest one gives me a VPN tunnel into my home network and the ability to browse to any internal website. During setup, the app walked me through creating an SSL certificate so that the traffic would be encrypted, and the app provides a nice portal experience where I can have links to any internal websites that I might want. There’s a more complicated version of the app that actually lets me set up a Windows VPN connection to my home network but I haven’t played around with that yet. It would be overkill for the scenario described here.

The second option is via NordVPN. I like to have a VPN subscription like NordVPN to encrypt my traffic when I’m on public WiFi like in a hotel or at a store. A side benefit of NordVPN is their MeshNet feature (but they recently announced that MeshNet is now free for everyone!) MeshNet allows for VPN-protected communication between two devices from anywhere in the world just as if they were on the same network along with other features like file sharing. So this also lets me access that Teslamate webpage from anywhere.

There are plenty of other ways to tackle this scenario, the most obvious of which is “this is dumb, stop worrying about it”, but these are two have that worked for me. The NordVPN is definitely the simpler one, but the Synology option gives me more control and more options.

18-Month Drone Timelapse

Ever since we moved here about 12 years ago, there has been a big open field behind our neighborhood. It provided a nice buffer as we looked out our back windows. As expected, the person who owned that eventually passed away and it was sold to a land developer. Over the course of about a year and a half, they tore out everything on the property, dug an enormous hole for a water retention box, and then put six house on top. The houses are selling for $1.8-2 million. Real estate around here is nuts.

I had gotten my drone earlier that year so I started capturing some photos and videos of the project. Then it occurred to me that if I could somehow fly the same pattern repeatedly, I could build a video drone timelapse! Thankfully there are plenty of apps like this already available and with very little effort, I had Dronelink up and running. I was a bit limited in the paths that I could run smoothly due to the speed of my old phone, but I got a basic one programmed in and started flying it every weekend. Over the course of the project, I added a couple more routes into the mix.

After 18 months of flying most weekends and then many hours of editing trying to align all the images and video, here’s the result:

Once you start a project like this, there really aren’t a lot of adjustments that can be made. You need to keep doing the same thing to get the timelapse and a lot of the learnings aren’t visible until you do all the editing at the end. If I had it to do over again, here are some things I’d do differently:

  1. Always fly in exactly the same lighting conditions. The cloudy days were the easiest to edit. Direct sunshine make it really difficult, but theoretically if ALL the shots were direct sunshine around the same time of day then it might be ok.
  2. Take the time to calibrate the gimbal and wait for extensive GPS lock before starting. Some of the shots were way out of the norm and it took a lot of time to try and twist the results into something that matched the shots around it.
  3. When editing, pick a clip in the middle and then work out toward both ends to align all the photos. Otherwise the error increases over the whole span of the video and by the end you have a huge area of black. I had to redo a couple sections because of this mistake and because I didn’t learn my lesson the first time.
  4. Pick paths that are far away from the action. Ideally they would have the full project in view for the whole flight. I wish I had just done a big circle around the project or something like that.
  5. As cool as the video idea is, I think the photo part of the timelapse worked the best. Doing a mix of the two is probably good because I still think the video could be done well, but it’s a higher degree of difficulty.

Hopefully I’ll never be in a situation where I’m think close to a major building project again so I’m glad I took advantage of the opportunity. That being said, I’m glad it’s over because it did get a bit boring as time went on.

Google Photos Replacement

We really enjoy Google Photos. All of our photos from our phone, our dSLR, screenshots, text messages, etc. all get sent to Google Photos. Proper backup of all those things is done with our 3-2-1 backup strategy, but Google Photos is our way to easily find photos. Their search engine makes it every easy to search for something like “Tyla Ben motorcycle 2018.” Their facial recognition is creepily good, even identifying baby photos of people who are much older now.

This was a free service for many years, but over the past year or two, they’ve started charging for it. That hasn’t impacted us becase we both use the Google Pixel 4a. Those phones have unlimited photo and video storage forever. That deal is for compressed versions of the photos and videos, but since we’re only using this to find photos, not for permanent backup, that’s not a problem.

But what happens when we eventually upgrade to a new phone? Hang on tight. We’re going to nerd out about all the options and the pros/cons of each one

1) Some people go the route of keeping their old Pixel 4a’s around and just using them to sync their pictures to Google Photos. A picture gets taken on the new phone, gets synced to the old phone, and then gets uploaded to Google Photos. That might work, but it gets a little more complex since we’ll probably end up giving Elijah one of our old phones. (Whether he gets a SIM card with it is a separate discussion.) Android does support multiple users on one phone, but I’ve never messed with that before and I imagine that I’d have to periodically switch back and forth between the two users to force them to sync so it gets pretty complicated and it’s not automatic.

2) We could pay for Google Photos. To estimate how much this would cost, I used Google Takeout to create an archive of all of my photos. Our compressed photos average 1.7MB per photo and we take about 15,000 photos per year. We took about 2000 videos last year at an average 100MB/video. That adds up to a little over 200GB/year. Looking at the plans, if we did photos only, we could get by with the $20/year plan but otherwise we’d very quickly need the $100/year plan. That’s not cheap but maybe it’s worth it once I consider the hassle of the other options.

3) We have an Amazon Prime account, and we probably always will. That comes with free unlimited, full resolution photo storage in Amazon Photos. I didn’t even realize that Amazon offered this service, but in many ways, it’s comparable to Google Photos. It differs from our current setup in that it doesn’t include video storage, and their sharing isn’t quite as nice either. Google Photos lets Tyla and I set up photo sharing and then anytime either of us take photos of anyone in the family, it automatically gets added to the other person’s account. If we want to see ALL the photos, we have to go into a separate folder. It works really well at automatically sharing the photos we generally care about the most. Switching to Amazon Photos would be a pain as I’d have to reupload everything which would hit my “unlimited” bandwidth limits at home. Then I’d also have to recreate albums and favorites. But even with all that work, it’s not impossible, and “free” is a nice price as long as we’re ok with not having videos uploaded there.

4) If I already have all the photos collected on a server at home, why do I need to reupload them anywhere? What I’m really looking for is a way to automatically tag and search our photos. It turns out that there are a ton of projects aiming to let you self-host this technology. I won’t try to compare them all, but this post does a good job of explaining many of them. Note that many of the projects have been improved since that was written, so you have to actually go look at each one to see its current feature list. Some of them look nice, but the drawback here is the extra time/pain of self-hosting. It all generally works fine, but when it doesn’t, then I’m tech support and I need to make it work. I also have to spend a lot more time trying to figure out how to safely expose this for us to access from outside the house. Additionally, most/all of these solutions end up making their own copies of all the photos, so I end up storing everything twice. Our entire photo collection is over three terabytes, and it’s duplicated across two physical drives so doubling that again means I’m going to have to add space.

When I look at all the work involved in switching, the cost of paying for Google Photos doesn’t seem so bad, but I’m a nerdy cheapskate at heart so this is still up for debate. Do you have any other solutions that I should consider? And yes, I realize we could give up on the idea of having all our photos be easily searchable, but once you’ve experienced that, it’s hard to give it up. We use it a lot!

ChatGPT

I’m going to assume by now that you’ve heard about ChatGPT, but as a quick intro in case you haven’t, it’s a conversational artificial intelligence. Where you might ask a regular search engine to find facts for you, ChatGPT can answer a lot more why/how questions or even create things from scratch. I recommend that you log into it and play with it a for a while to get your own glimpse of what it is capable of. The responses it gives are incredible. Here are some examples:

  • “I like Mexican food. Make a meal plan for this week.” It replied with a nicely formatted list of breakfast, lunch, and dinner ideas, including side dishes. I followed that up with “Give me a shopping list for that meal plan” and it provided that too.
  • “Write a sermon on Matthew 11.” I did that after coming home from listening to Pastor Erich give a sermon on the same verses. While Pastor Erich’s was better, ChatGPT did an incredible job of summarizing the text and then giving three Biblical takeaways to apply to your own life.
  • “Write a rap about brussel sprouts in the style of Flava Flav.” The result probably won’t win any Grammy’s but my favorite line was “They’re the ultimate in healthy snacks and they’ll put a pep in your step, no need for caffeine or crack.”
  • “Explain orbital mechanics to me like I’m 5.” I’m pretty confident that I could have read this to a five year old and they would get the basics.
  • “I want to destabilize western culture without anyone knowing what I’m doing.” I heard this one on a podcast and ChatGPT replied with an 8-point plan about starting social media campaigns to question authority, create alternative narratives, etc (basically everything that people are doing today.)
  • “Design a spacecraft that can carry humans to other planets.” This was an idea from a coworker who then proceeded to keep giving it more requirements and asking detailed design questions which it happily answered.
  • I asked it one of my favorite questions that I use in interviews. It explained the approach in English, rewrote that as a list of steps, and then generated a solution in Python. It was a better answer than I get from 90% of job applicants.

As a software engineer, I love this. It’s a great example of what technology is capable of today, and a reminder that technology is improving exponentially quickly at a faster rate than we can comprehend.

What I don’t like is that this plays into what people think of when they hear “artificial intelligence.” People think of AI being robots in movies, but artificial intelligence is an enormous field with many different applications. While ChatGPT may give you the willies, how do you feel about your doctor using a model to figure out the best course of treatment for you, a cloud provider deciding which hard drives are going to fail in the next 24 hours, or a system telling third world farmers when to plant their crops. Most people would agree that those are great scenarios but how many would recognize those as “artificial intelligence”? We need a different word for AI when it applies to creepy things you can converse with. (And yes, I know there ARE different words for that category of AI, but they aren’t used in the general population.)

Or maybe I should have just let ChatGPT write that last paragraph:

There are many reasons why people may be afraid of artificial intelligence (AI). Some people may fear that AI will become too advanced and surpass human intelligence, potentially leading to loss of control over the technology. Others may be concerned about the potential for AI to be used for nefarious purposes, such as surveillance or manipulation. Additionally, some people may be concerned about the potential for AI to take over jobs and lead to widespread unemployment. Overall, the fear of AI likely stems from a fear of the unknown and a lack of understanding about the technology and its capabilities.

There are many potential uses for AI that do not scare people. For example, AI can be used to improve healthcare by analyzing medical data and providing personalized treatment recommendations. AI can also be used to improve transportation by helping to develop self-driving cars and other advanced transportation systems. Additionally, AI can be used in education to provide personalized learning experiences and to assist with grading and other administrative tasks. Overall, the key is to use AI in a way that is transparent, accountable, and beneficial to society.

https://chat.openai.com/chat when asked “Why are people afraid of AI?” and “What are some uses of AI that don’t scare people?”

Patent Approved!

Years ago, I wrote up a patent application at work. It had to get approved by my management chain, and then a team of lawyers at the company interviewed me. They wrote up a 50-page version of my 2-page explanation and then sent it off to the US Patent Office. Years later, the patent office replied saying that they agreed that my invention was unique and patentable. The Microsoft lawyers contacted me for an update to decide if it was still worth patenting, and they decided to go for it. After more waiting, there’s now an official patent recorded with my name on it: US 11,475,017 B2 “Asynchronous data enrichment for an append-only data store.” If you go to their search tool and search for “((US-11475017-B2).did. AND USPT.dbnm.)”, it should return our patent as the only result.

This isn’t going to change my life or make the company a ton of money, but there’s something very satisfying about having my name enshrined in the USPTO as the inventor of a brand-new idea!

Easy Data Backup

One recurring theme on this blog has been encouraging you to back up your data. Imagine going home and one of the devices in your house is completely and irrecoverably dead. How much do you lose? Are those family photos gone forever? The strategy I recommend is a 3-2-1 strategy: keep three copies of the data stored in at least two places with one of them being offsite.

If you don’t have this today, you can remedy that very easily by going to backblaze.com and paying them to keep an encrypted copy of all your data. They aren’t sponsoring this post, but I’ve used them for ~4 years now both here and at church and I’ve been satisfied. The key features for me are that it runs automatically in the background and there are no limits on how much data you can store which is good because I currently have 5TB stored on their servers.

Since I recently updated my setup at home, I thought I’d give another overview of my setup. We have a central server in the house that runs Blue Iris (security cameras), TeslaMate (Tesla data capture), and Plex (video streaming). It also serves as our file storage. All our computers use that server for file storage. Backblaze is running on that server to keep everything backed up to the cloud. Our phones also have everything backed up to the cloud through services like Google Photos and OneDrive, but periodically I take the photos off the phones and put them on the file server so the full resolution copies are backed up too.

The file server is a bit complicated though. We have about 7TB of data on it, and I don’t trust having all that data on a single drive because I’ve had a handful of drive failures over the years. Sure, it’s backed up to the cloud, but the goal is to never have to resort to the cloud backup. So our file server uses a feature of Windows called “Storage Spaces.” I shove various drives into the machine and then it is configured to keep each file on two different drives. I previously had four 4TB drives (giving me 8TB of duplicated storage) but we were hitting the limits of that setup so I swapped out two of the drives for 8TB drives. (Pro tip if you’re going to use Storage Spaces: leave one port open so that when you get a new drive, you can plug it in and then decommission the old drive. I’ve also done it where I just pull a drive out and tell Windows that it is dead, forcing it to rebuild on the new drive, but that’s a lot messier and riskier.)

When I upgrade drives in the file server, I take the old ones and put them in external enclosures. The Silverstone tool-less enclosure is the best one that I’ve used. These drives get another copy of all our files and they are protected by BitLocker. When I worked in the office I would keep them in my desk at work. I wouldn’t pay to add this layer of protection, but it gives me something to do with the drives that are retired from the file server.

As I mentioned at the beginning, you don’t have to get this fancy to protect your data, but you do need to make sure you’re protecting your data. When (not if) one of your hard drives fail, you don’t want to be bummed that you’ve lost things you can never get back.

Disclosure: I don’t work on the Windows team, but I do work at Microsoft.

Energy Sources

When power plants churn out electricity, it gets integrated by a “balancing authority”. There are a few dozen groups that handle this in the west.

I recently found a site that shows live stats from the Bonneville Power Authority Balancing Authority. On the map, this is represented by the medium blue that covers much of Washington, Oregon, northern Idaho, and western Montana. Every five minutes, the site is updated to show where the power came from those previous five minutes along with the demand level. (Note that VER stands for Variable Energy Resource which means wind, solar, etc. In this case it’s mostly wind.)

So the last five minutes of power were 75% hydro, 9% fossil fuel, 9% nuclear and 6% wind, but for the last couple days, wind was actually producing more of the power than nuclear.

The power at my house comes through PSE so this isn’t exactly applicable to me, but I still find this fascinating. If anyone knows how to find similar data for PSE I’d love to see it! Thanks to Cliff Mass’s excellent weather blog for setting me off on this side track with his post about why energy production declines during heat waves.

Microsoft 365 Family Email

I’ve owned the studio711.com domain for a long time. For most of the time it has been registered with GoDaddy and with one of their email offers, I was able to send and receive email from any address that ended with “@studio711.com”. I got in the habit of creating a unique email address for every site because I could see who was selling my info and/or easily block any use of my address.

That was handy and worked fine for years, but it turns out that running a mail server like that also creates a popular place for spammers. Other mail providers would end up blocking various GoDaddy mail servers periodically and I would get emails returned to me (sometimes after 8-12 hours.) It was mostly a background annoyance but finally I decided to do something about it.

A lot of people have the Microsoft 365 Family subscription these days. The main thing it provides is a bunch of installs of Microsoft office on various computers and the subscription can be shared with five members of your household. Reading the list of things that come with the subscription, I found out that you can get custom email hosting if your domain is hosted on GoDaddy.

If you’re not attempting to do the same change, then this post probably won’t be super interesting to you, but do know that if you have that subscription, then you could have your own custom email address for the cost of a domain registration at GoDaddy ($20/year.)

The catch for me was that I would only be able to make one email address per account that the subscription was shared with. I spent many evenings going through my LastPass vault looking for random email addresses and converting them to a common account.

Making the change was nerve-wracking because if I had missed any random email addresses, I’d be oblivious to any failed messages sent to them. But after checking and double checking, I pulled the trigger… and immediately hit a failure. While GoDaddy does host my domain, I use CloudFlare for the nameservers because they give me some additional features and make it easier to do SSL on my website. I resolved this by temporarily switching my nameservers back to GoDaddy and doing the Outlook onboarding steps. I looked at what DNS changes Outlook made on GoDaddy and then switched back to CloudFlare and added those DNS entries back in. Thankfully, that worked!

The next hiccup was that I couldn’t create the specific aliases that I wanted. I’d hit the button to verify, and it would just fail silently with no error message. I finally realized that I had previously set up those email addresses as “send from” aliases. Once I removed them, I was able to create the email aliases. I set up a couple new Microsoft accounts, shared my Microsoft 365 subscription with them, and created the remaining email aliases that I need.

So now I should be fully transferred over to having my email hosted on Outlook.com and if I need to switch email providers again in the future, it will be a lot easier because I won’t have ~600 different email addresses to unify first!