Online Personality Tests

I’ve never been a big fan of the online personality tests (e.g. “What kind of tractor/hairdo/sandwich are you?” but they are clearly a fad that won’t go away. And the other day I finally heard a compelling argument explaining why so many of them exist: many of those tests are created to build personality profiles about you and people like you. That stuff feeds into how advertisers target your demographic or even how politicians speak to you. Creepy, right?

There’s no free lunch. If you can’t figure out how a website is making money, you are probably the product.

OBDII Trip Reports

OBDII is the standard for the diagnostics plug that is somewhere around the drivers side footwell of your car. For many years I’ve enjoyed having a ScanGauge in my car, and then for my birthday this year, Tyla got me an Automatic OBDII reader. That has been plugged into my truck for a few months, happily uploading data to the cloud.

I finally got around to playing with their API. I wrote an app that runs twice a day on my computer. It calls their API and pulls down any recent trips that I’ve made. It looks for a few places that I’ve labeled (Home, Work, Safeway, etc) and looks for trips that start and end in a named place. If it finds one, it looks how that trip ranks in terms of fuel usage and time. Then I get an email showing me my “score”. It’s a fun way to see if my fast trip to work really was my fastest trip ever, or how that extra bad stop and go traffic affected my fuel usage.

The email is pretty simple right now. I keep thinking that I’ll make it fancier with some charts, additional stats, etc but so far this has been good enough. I think the next thing that I will add as I get more data is a breakdown to show the score for all time, the current month, the day of the week, etc.

Look Ma, No Server!

Serverless computing is all the rage in cloud computing. When cloud computing first began, people thought about how to move their local servers to servers in the cloud. They would end up with a Windows or Linux machine hosted by Azure, etc. That was much better than operating your own data center, but technology is progressing and even managing your own machine in the cloud isn’t really necessary now. There are so many services available that simply take your code and run it for you. Don’t worry about where it’s running or what machine it’s running on. This lets you focus almost 100% of your time on the core business logic in your application and let someone else handle Windows Updates, disaster recovery, backups, etc.

I like to play around with all this stuff and this website is one way for me to do it. Quite a few years ago, I moved this web application to Azure Websites, but I still had a virtual machine running MySQL on it. Now that Azure offers MySQL, I don’t have to run my own VM anymore.

The only other thing I had running on that VM was a little timer job that records the number of customers of my power company who don’t have power. I like to run that from Azure so that I can track power outages even when they affect me. Running a scheduled task on a dedicated VM is extreme overkill so I migrated the code to an Azure Function. I literally pasted C# code into the Azure portal, told it to run the code every 5 minutes and voila! It costs fractions of a penny every time it runs and I don’t have to even think about what machine it’s actually running on.

There’s so much of this great cloud computing geek stuff to get excited about these days.

Recover Deleted Files

I’m super careful with files on my computer. Careful almost to the point of obsession. After having a hard drive crash and losing a bunch of data 15+ years ago, I made sure it would never happen again. But recently I broke one of my own rules and ended up in a bit of a mess. The rule is: get your files off of SD cards as soon as possible.

There are bunch of good reasons for this but a few are:

  • SD cards are easy to lose
  • SD cards are easy to damage
  • SD cards are easily corrupted

None of those bit me. The problem that bit me was user error. I left files on the SD card for a couple weeks because I was too lazy to put the card in the computer and copy them over. The exact sequence of mistakes is probably boring to read, but the bottom line is that I thought all of the old photos on the card had already been transferred off but only about 80% of them had. There were a bunch of “first day of school” photos that I hadn’t transferred off right away and I didn’t notice that fact before deleting them.

As soon as it happened, I realized what I had done and my stomach twisted into a knot. I just lost files not because of a software/hardware problem but because I was an idiot.

I immediately ejected the SD card from my computer and slid the lock lever over to prevent any further stupidity. Next it was time to find something to recover the files. When a computer deletes a file, it doesn’t actually overwrite the file, it just removes the entry from the “card catalog” that points to the actual file locations. So if you can carefully scan the disk and you know what the binary header of your file looked like, you can still read the old data.

If you search around for “recover lost files” there are tons of programs available and I believe two things are generally true:

  1. They’re going to cost quite a bit of money because they know you’re panicked.
  2. It’s a great way for hackers to get you to install spyware/viruses. You’re in a hurry and you click away without really checking the validity of the site.

I ended up using PhotoRec which is free, open source, and hopefully safe. It’s not very user friendly, but that was fine with me.

The tool worked ok, but it didn’t find any files on my first scan. I had only saved .CR2 (Cannon Raw) files and the tool didn’t have a scanner for those files included out of the box. Thankfully they allow you to add your own file signatures, so I whipped open a hex editor, figured out what the header of a CR2 file looks like and added a new signature.

After that it quickly plowed through my SD card and found the “deleted” files. It didn’t get 100% of them, but because I took about 100 pictures of Elijah in ~4 different poses, I still had plenty of good photos to choose from. The day was saved.

But this is one of those lessons that I’ll never forget. When you walk in the door with new pictures on your SD card, immediately copy them to your computer and get them backed up to cloud storage. And whenever I buy my next camera body, I’ll probably be buying one that has built-in WiFi syncing available. I might even check out those WiFi SD cards to see if they’re worth it.

Storage Closet Cleanup

We have a fairly big closet at the top of our stairs that holds a bunch of stuff that doesn’t otherwise have a home: sleeping bags, board games, wrapping paper, vacuum cleaner, folding chairs, etc. It’s a mess. That’s not terrible except that we have to leave the door open because it is also the closet where I had the electrician run all my network jacks. That closet has a whole bunch of networking gear and two computers that are on 24/7. It gets way too hot if the door is closed. Some day I might build a ventilation system in there, but regardless of whether I do that, I knew I needed to build some storage that was better than our old wire frame shelves.To kick things off, I cleaned out the closet, took down the wire shelves and then patched all the old screw holes from those shelves. I even sprayed on some new wall texture to hide the patches. I had a leftover half gallon of the same brown color that is used in many other places in our house and it was the perfect amount to paint the closet.

The real improvement will come from some new storage cabinets, but first I needed a solution for the mess of computer wires. It had to just sit on the floor while I was painting and I needed it out of the way for the cabinet project. So the first build in this project was a very simple set of shelves to hold the computers, routers, battery backups and other miscellaneous gear. The shelves were a quick one day build (with Elijah helping) out of a sheet of 3/4″ plywood, some poplar to hide the exposed plywood edges on the front, and a bunch of pocket screws.
It’s not fancy, but the bulk of this will be hidden by the new closets along the same side wall anyway. And for me, this is glorious. It’s going to be so much easier to diagnose problems and I finally have all of the network jacks in our entire house connected at the same time. Nerdvana.

Now it’s time to build some big cabinets…