Evening pages

Today has been a whirlwind. Missus actually got up before me this morning, which never happens, and we had a little quiet time around the house before the girls got up. It was nice. I got an early work call which set the tone for the rest of the day. I’ve been busy all day, and have a couple minutes before dinner while the girls are out shopping for cat supplies.

Yes, I said “cat supplies”. We’ve been talking about getting one for some time, and have been looking at candidates from the local cat shelter for almost two months now. We went there yesterday and wound up adopting not one, but two cats. Utah and Bodie, yes, named after the characters from Point Break. And they’re polydactyls, one has six fingers on its front paws, and the other six on the back. So the girls are out right now buying litter boxes and toys, food in anticipation of them coming home with us tomorrow. The kids couldn’t be happier. Me? Meh. I’m more of a dog guy, but don’t want the responsibility of having one.

The girls spent most of the day play acting scenes from Moana all morning. We were watching the Broadway Junior version of it on YouTube yesterday, so they laid blankets out on the floor for the ocean, and stuffed pillows in their shirts to be like Maui. Elder found a basket she could fit on her back and was dancing around like a crab to Shiny. It was super cute, so I’m planning on them doing a performance for Missus and I later this week, if they can stop arguing long enough to figure out who is going to be who.

Work is really a blur. Between managing the helpdesk, onboarding a new telecom partner, and trying to manage our printer tech, I barely have time to deal with my own projects. I’ve got to migrate 11 users’ Apple IDs off of a domain so we can federate it with Apple Business Manager, and I’m trying to figure out how to design a build workflow for C++ ARM and DSP modules, not to mention handling all my other stuff. I was pissed during the day I think I yelled “that’s not my job” at my boss at one point on the phone today. Whew.

As far as side projects go, I’m not getting a lot done, that’s for sure. I did write up a contract template for my web hosting clients that I’m happy with, but I’m going to have to start cutting some costs if some people don’t pay up this month. Basecamp is going to have to go, and I’ve got several other smaller vendors that need to go, like my Adobe CC account that I’ve used once in the last six months.

Other than that, I’m looking forward to relaxing tomorrow with my latest batch of homebrew tomorrow. I ordered another refill and have been researching some bigger kits and working on upping my game as far as quality control goes. Missus will have a fit if I try to buy two hundred dollars worth of vats and supplies though. Maybe I can blame my mom for buying me a kit in the first place.

Generating spelling flash cards with RemNote

Making alphabet and spelling flash cards with a little help from regex

I’ve been getting used to RemNote for a little over a week now. I haven’t really gotten too much into yet, just taking notes and trying to link things up. I haven’t played with the spaced repetition features yet; I’ve used Anki in the past to get through an accounting class a few years ago, but I haven’t really felt the need to use it much for anything I’ve been dealing with lately. I may start using it for certain CLI commands at some point, we’ll see.

I did start trying to use it for Younger and Elder, though. I set up a document for the alphabet and filled it out like so:

A:: A
B:: B
C:: C

And so on. It doesn’t look like there’s a way create these cards without having something on either side of the double colons, so I just filled it in with the letters on each side. Of course, Younger can’t do these by herself, so I have to sit there with her and push the answer buttons for her. It’s been working ok so far, it takes a couple minutes, and the app makes a nice little fireworks display when you hit your daily goal. She loves it. It of course makes her big sister a little jealous so I had to find a way to do one for her as well. We settled on third grade vocabulary words.

I found a couple lists online, but I wasn’t trying to copy and paste two hundred words into the proper format, so I did what any programmer worth their salt would do: regex.

Take a list like the following:

additional	event	region
agreeable	examine	repair
argue	example	ridiculous

We want to separate the non-whitespace \S from the whitespace \S, into two ( ) groups : (\S+)(\s*). Then we can substitute, using \1 as shorthand for the first group: \1::\1\n. This gives us the following output, which exports perfectly into RemNote:

additional::additional
event::event
region::region
agreeable::agreeable
examine::examine
repair::repair
argue::argue
example::example
ridiculous::ridiculous

Now while this works fine from a technical perspective, it’s a bit flawed in execution. Elder can’t see the words that she’s trying to spell, obviously, so I have to read them to her while she sits across the room from me. It causes her to miss the reward, the fireworks, and caused a bit of distress on her part.

So here I am now, brainstorming ways to generate audio files for these words so that I can put them in with the cards. Do I read a list of 200 words, and then go through the editing process to separate them into individual files and attach them to the proper file, or is there a way to program and automate all this.

Of course there is. There’s a Python module for the Google Text to Speech library, so I could literally generate the files in a few minutes. Then it’s just a question of importing them into RemNote. Unfortunately, RemNote doesn’t seem to support uploading or local audio files, so I would have to either upload them somewhere like an AWS bucket, or just use something like Anki, which supports audio within the card decks themselves. We shall see.

I’ll have to keep quizzing Elder on my own now, she seems to do better with the one on one time anyways. I’ll be sure to share any updates.

Storm watch

Hurricane Isaias is making itself known. Wind gusts are pounding the house, making it shake like a freight train. The girls are up, Missus let them start a movie this morning despite my protests. She woke up early because of the storm and apparently isn’t planning on doing any work till later this morning.

Alerts have been popping up on my phone all morning as our managed servers have been going dark across the board. Internet and power have been dropping across the region as the storm makes its way across the area. It’s not really that much more work for me, since there’s not much I can do about it. Hopefully I’ll be able to get some work done on my two main goals at work: converting a client over to Microsoft’s mobile device management, and building a C++ build pipeline for some embedded controller software.

The RMM vendor that we work with integrated IBM’s MaaS360 product into their offerings two years ago, and we signed on one of our clients for it. It was a bit more involved than we expected for such a small deployment. We had to get a management certificate issues from Apple, which wasn’t too bad, but then we had to manage eleven Apple IDs, one for each user, before we could even enroll the phones. This involved downloading a special management app and profile. The client wanted content filtering on the phones, which meant the deployment of MaaS’s Secure Browser, which involved several more steps. Then we thought we were done, and I just ignored the deployment until about a month ago.

The client contact me about installing a new service app on the phone, and after figuring out how to login to the management portal I found that nine out of the elven mobile devices hadn’t checked in, some in over eighteen months. After contacting my RMM vendor for some support and getting frustrated at their lack of knowledge, I started searching for solutions. I new Microsoft had been offering some options through O365, and since most all of our clients are 365 clients, I thought that any solution that can be managed through it would be a plus. What I found is that the latest MDM offerings, included free with O365, actually gives us a lot of what we need, which is security profiles on the device itself, and the ability to control the software installed on the device. I did a quick test with our O365 tenant and my personal device, and I’ve been holding on to a client phone for about a week to test and document procedures so that they can setup the rest of the devices. I’ve been talking to other MSPs in our network, and let me say that there’s a lot of interest in the fact that I’ve been able to setup federation between O365 and Apple Business Manager.

The other project I’m trying to work on involves setting up automated deployments for a development project. The developer workstations are based off of an Ubuntu 16 VirtualBox image with a custom IDE and hardware libraries installed. The process to setup runs about five or six pages, and hasn’t been replicated by the client, so I’m hoping to go through the document and create a full script that can be replicated to set things up for new employees, or whenever the developer config changes. I’d like to get them up to Ubuntu 18, at a minimum, but the eventual goal is to make sure that we have a build process that exists outside of the IDE and can be automated via a build job as part of the version control process.

The problem I was running into is that my own computing resources are kind of limited right now. I already run my Windows workstation in a Ubuntu KVM instance, so running another VirtualBox wasn’t really an option. So I decided to use some of my Azure credits that I get from my Microsoft Service Provider benefits. I recently used an Azure VM to stage an on-prem domain deployment, scripting it out using Desired Configuration State (DCS). I was able to validate my AD and DHCP scripts on the Azure server, then copy the files down to the on prem server, run them, and have my deployment up and running in about an hour. The scripts will need some improvements before it’s really useful, but it’s a start.

So before I got started yesterday, I decided to explore deploying my VM via the Azure CLI. I went through a couple exercises yesterday to practice, and today I’m ready to get started with the actual projects.

A couple days ago, a marketing employee at Zombie made a comment to me that they were thinking about becoming a technician, and I told her to look at cloud engineer tracks, cause AWS and Azure jobs are among the highest paying and in demand, besides data scientists. Spurred by my own comments, I started exploring the training options for AWS, and started going through the AWS Cloud Practitioner track. The exam is only $120, and why not. I actually prefer AWS over Azure cause of the pricing — good luck finding a $15 a month Azure VM! — and want to really have a handle on it since that’s where I’ll probably be focusing my own entrepreneurial projects. I’m still locked into Microsoft at work, so learning Azure is going to help me, but everything Microsoft does is convoluted and complicated.

Will having a handle on both AWS and Azure make me a double threat? Doubtful, since I wager most large shops will use one or the other, not both, but that’s just my situation now. So I’m stuck between the two. Jack of all trades, master of none.

Back in the saddle

I’ve been pretty good about my habits while we’ve been sheltering in place during this great lockdown. I meditate and write every day, but I’ve been breaking my streaks when we take these trips out of town. There’s no place like home, as they say, so I’m glad to be back in my comfort zone.

Journaling in RemNote before I start writing in the morning seems to be weeding out much of the minutia from these posts, and will probably make them more pertinent to others, although I don’t think anyone is reading this regularly. I haven’t paid much attention to traffic from it other than the number I see when I log into the dashboard. That’s fine for now. I need to finish writing my Substack newsletter, but the day has already slipped away from me.

The girls were very troublesome this morning, and after they left to go to their grandmothers I got sucked in to work management. I didn’t get much of what I wanted to get done. Mostly I was micromanaging one of my co-workers, who I’m now having to manage because he’s incapable of any critical thinking. It’s insane. And and I delved into the operations a bit more I figured out that my boss has made some pretty bone-headed decisions around how things are working between the two of them. It’s insane. My boss is focused on this subcontract work that we’re doing for another firm, supporting printers at local facilities. My co-worker, E., who is responsible for doing the work, doesn’t even have clearance to get on the facilities, so my boss has to meet him and take him. And I’m not even getting into the situation around the dispatching. My boss is all in the middle of it. It’s no wonder why we’re dying, he’s having to micromanage E. instead of hiring someone who can think for themselves so that he can work on growing our business. Totally insane.

On the bright side, I did have some fun today. I stopped at Barnes and Nobles over the weekend to pick up some rainy day games, and came across a copy of the Hamilton piano and vocal score. I was planning on picking up a copy on Amazon, but they were out of stock, so of course I went searching online and found a copy via Reddit. I started searching from there and found an archive of Broadway Junior songbooks. Broadway Junior are condensed versions of classic and Disney musicals, and I found a trove of the Disney piano and vocal books. For Frozen, I found the soundtracks and accompaniment tracks on YouTube, as well as a community theater that had put the actor scripts up online. I was showing the girls and we were singing along with them, and I think it’s going to be awesome. Elder has been telling me that she “hates” playing piano and that she just wants to sing, so this is perfect. She even asked me if we could recruit the neighborhood kids to put on a show. So cute.

I seriously spent way too much time thinking about this today, and I have a feeling I’m going to be spending way to much time with the kids, listening to these over and over.

Even for a Monday, I am really exhausted. We’re also preparing for a tropical storm hurricane Isaias to get here in a day or two. It looks like it’s making landfall, which is good for us cause I’m not worried about wind and rain so much as I am about storm surge. We should be fine, but I had to move all of our outdoor things into the shed and the garage, which was tiring. And I’m going to have to do some grocery shopping tomorrow, which is probably bad timing on my part. Well, at least we have plenty of frozen meat in the freezer, canned vegetables and rice in the pantry. Plus, my latest batch of homebrew will be ready next weekend, so I think we’ll be fine.

Post-vacation debrief

We’re back from our out of town trip, the family is up in the den, the girls are watching Frozen 2 for the umpteenth time, Missus reading the paper. I’ve been up for an hour planning my day out. We’ve got a lot of work to do to unpack from our trip, plus we have tropical storm Isaias tracking our way, and is expected Tuesday, and today is supposed to be the last day of sunshine for the next five days or so. Since it’s the first weekend of the month I have some other financial stuff that I have to take care of, including balancing the house accounts. There’s a lot to be done.

Our trip was pretty good. We left early enough that I didn’t have to drive past my bedtime, and late enough that the girls slept on the way up. They woke up when we got there and we had a bit of trouble getting them back to bed.

Missus’s dad loves to cook huge amounts of bacon for breakfast when we go up there, so we always wind up pigging out. He cooked what must have been two pounds of it and it just sort of laid out all day until we ate it, piece by piece.

We neglected to check the weather before we went up there, which is pretty big fail considering that we were up there for a canoe trip. The weather was forecast for rain all day Friday, but we managed to sneak in a quick forty five minute trip in the afternoon when the precipitation let up. We thought we were going to be holed up for the whole trip, so earlier in the morning we had left the girls with Grandpa to go for ice cream, and Missus and I drove out to a bookstore to pick up some games and activities. I grabbed Exploding Kittens and Munchkin. Missus got Yatzee and some other things for the girls to do on the car ride home.

On Saturday the weather cleared up, so the four of us did a full seven mile stretch on the river, and made pretty good time, less than three hours. We had a picnic near the start, and even let the girls float behind us for a while at one point, which they really enjoyed until they caught some shallow rocks on their legs. After we got home, I took a nap while the girls watched a movie, then we packed and headed home. The girls fell asleep almost immediately, and we got home just before eight.

I listened to some good podcasts on the drives:

Eric Vishria – The Past, Present, and Future of SAAS Software [Invest Like the Best, EP.183] There’s some really good explanations of API and SAAS services in here that I’m going to be sharing with people in my professional network. It gave me a lot to think of, both as an investor, as someone who is looking to build a SaaS platform, and as someone who provide services to SMB clients and has to explain what all this API stuff is about. Basically, when a person consumes a service, they use the UI, when another application uses a service, it consumes the API. It’s about the shift from business using software, to businesses being encoded in software.

Brad Feld — The Art of Unplugging, Carving Your Own Path, and Riding the Entrepreneurial Rollercoaster (#448) – The Blog of Author Tim Ferriss There’s so much to take away from this one. Feld’s quarterly off-the-grid vacations and digital shabbats were right up my alley, and his discussion of his relationship with his wife, their monthly life dinners and the way they deal with conflict in their relationship were all very interesting. Feld talks about his struggles with depression and OCD, as well as finding a therapist. And he knows himself, very well, and this self-knowledge comes through brightly.