Sunday, March 1, 2020

Four Formative Series

He does not despise real woods because he has read of enchanted woods: the reading makes all real woods a little enchanted. - CS Lewis (talking about J.R.R. Tolkien)
I found the time to read a lot growing up. Reading was my before-dinner ritual. Get home, finish homework, watch the Disney afternoon, read 1-2 hours until dinner. I read a lot of trash SciFi and Fantasy from the library, but I also ran across some series that stuck with me.
The Hobbit & The Lord of the Rings - It took me a very long time to make my way through this whole series. I read the hobbit in 6th grade and Fellowship in 7th, and then I kept getting distracted by other school books and then restarting Fellowship each summer. I finally finished Return of the King in my freshman year of college. Throughout middle school, high school, college, and a little beyond I played Middle Earth Role Playing (MERP) and have read more than a hundred supplemental books from ICE. ICE was always good at referencing and using source material and I felt wholly emerged in the world of Arda. I love the way Tolkien handles magic in his world. It’s not spell craft, but magic. I was enthralled by the moment Frodo reaches Amon Hen and sees the Barad-dûr. Sauron and Gandalf opposes one another in a magical battle over Frodo’s will. That scene, not of lightening bolts and fireballs, but of force of will, inspired almost all my renditions of magic when writing my own fantasy stories. Magic is expressed by a push against the wills of others and the forces of the world.
The Ender Series - Was Ender’s Game requires reading for little boys? I think we all read the first one, but I have gone on to read every single book in the Ender Series and Shadow Series. I loved Xenocide and Children of the Mind in a way that I rarely found others did. I am not sure those books would hold up to an adult rereading, but as a kid, the way they played with the concept of self was fascinating and inspiring. The hive mind of the formics was a cool concept, but even more when Ender becomes his own hive mind with his two created siblings. I was moved by Ender’s recreation of Peter and Valentine. Peter, whose memories are all sociopathic from Ender’s memory, even though he knows that Peter actually created the Hegemony and brought about world peace. Valentine, trapped as a young loving innocent child even though she knows that Valentine was instrumental in Peter’s world domination. Such and amazing mind game for a young kid to think about: what if your memory of yourself doesn’t reflect who you actually are?
Dragonlance - What different world building than LotR. I think I read everything that came out through high school and college. Dragonlance Legends was my favorite set and Raistlin was my favorite character (wasn’t he everyone’s?). This was the series that inspired me into thinking about every villain as the hero of their own story. Raistlin goes from neutral to evil, and ends with a minor redemption. To me, he was always the protagonist, and that greatly influenced my viewpoint of stories and life. To think that no one is trying to be evil, they are trying to do what they think is right. Even when they introduced Dalamar, in theory truly evil, he was also loyal and thoughtful to his friends. Yep, everyone is the hero.
Be an Intergalactic Spy - I would not describe this as a narratively rich series. When I first started to learn to program BASIC on the Apple ][e, CYOA was my inspiration for my first massive program called The Quest which started out as spaghetti code. It was full of GOTOs where one choice progressed the story and the other choice lead to The End. You know, just like a CYOA book. I vividly remember when I had the inspiration in game that choices wouldn’t end the story, but instead you could accumulate gold and then maybe buy a sword and that would let you get past a dragon and BOOM The Quest slowly turned into a full text-based adventure. As a kid, this was the natural progression of a program, but as an adult looking back that was the moment I understand what programming actually was. The Quest in BASIC is one of the few programs I lost over the years I wish I still had.
Honorable Mention, Hitchhikers Guide - I didn’t get the humor as a kid. I found it weird and fun, but not hilarious. It planted the seeds in my brain so that later on in my life as my I started to understand satire I would think back to parts of this book and just start laughing.

Saturday, February 8, 2020

Drobo Ragnarok

Innocence is a catalyst for magic. - Mary and the Witches Flower
I bought a Drobo way back in 2011 to move my content off my internal drive and move it onto beautiful attached storage. For the longest time my Drobo 2G was connected to my AirPort Extreme as an "AirDisk", a cool feature where the AirPort turned any drive into a NAS. Of course, Apple retired the AirPort Extreme so when I switched to Eero the Drobo moved to be attached storage to my server (a MacBook Air 2011). Then two things happened at the end of 2019. The first was I realized that my Drobo was connected via USB 1.1 (12 Mbps) and that it was the slowest link in the chain of streaming content off my Drobo to the various devices around the house (and over the internet!). The second was a red light of death! One of my 1TB drives failed, but truth be told, going 8 years before my first drive failure was pretty good. So I replaced the failed drive with a new Seagate, and after a 200 hour rebuild, everything was groovy.
But I knew the 2G Drobo was probably approaching Drobo Ragnarok. I started saving and this January the great Drobo Migration of 2020 began. You see, due to compatibility, I couldn't just move the Disk Pack from my Drobo 2G to my new, lovely, Drobo 5D3, instead I had to do a very very slow migration of content of moving the four drives out of the old Drobo (2TB, 2TB, 1TB, 1TB) into the new Drobo one drive at a time. It was like the riddle of how you get five people across the river that on the boat that only held two. The best way I've found to visual Drobo storage of BeyondRaid, is whatever your largest drive is will just be for the parity bit and gives you no storage.
Put a brand new drive in Drobo 5D3, then pop a drive out of Drobo 2G and copy 2GBs of data across. Once Drobo 5D3 was nearly full and Drobo 2G has rebalanced all the data... pop the next disk out of 2G into 5D3 and repeat. The transfer took place of the course of a week. I hadn't actually done a cloud backup of all this data for a while (though the photos are all uploaded to iCloud Photos).
Because of the lack of recent cloud backup, the constant drive failure during transfer was harrowing. With the new 5D3 I bought a SSD accelerator card which failed on Day #2. Okay, no biggie, return and get a replacement. All the data did transfer, though I hit a limit once where I had to toss a spare 500GB drive in the new Drobo temporarily. But then after all the data was copied to the 5D3 and it had all five drives in it, the red light of death!
I was somewhat nervous as I was a little delayed on having a real backup of everything. Drobo rebalanced to the remaining four drives, phew. This was a cool feature, I guess I should have expected, which is if there is enough space then Drobo will get all the data back into protected mode on the remaining drives. The drive I had bought back in November to replace that dead drive had died. Thanks to's extended holiday return period, I was able to replace that drive. So as I was waiting for that replacement from Amazon, ANOTHER RED LIGHT OF DEATH! Thankfully, because Drobo had rebalanced across the four good drives, I didn't loose any data.
Amazingly, Drobo rebalanced again to the remaining three drives I had. So in theory I could have lost one more drive and still been okay. Another drive from 2011 had failed. So I had to buy a new one from For the record here were my drive failures over the course of three months:
  • November 2019 - a Western Digital Drive from 2011 failed, replaced with a Seagate
  • January 2020 - my Kingston SSD card failed 2 days after purchased, replaced with the same thing.
  • January 2020 - The Seagate Drive I bought in November 2019 failed. Replaced with a different Seagate.
  • January 2020 - Another Western Digital Drive from 2011 failed, replaced with a new Seagate.
So overall, I had two drives make it for 8 years and I had another two drives fail writhing a week to a few months. That is pretty standard. Drives either fail fast or fail at the end of their useful lifetime. Bless the Drobo. I had four drive failures over the course of 3 months (two of the in the same week!) and I didn't lose a byte of data. Now everything is on the great new beast!

Thursday, January 9, 2020

A Few Meeting Best Practices

People on the internet are just bad at arguing. - Marco Arment
You've probably been attending meetings since your first day at your very first job. It is very easy for a meeting to be a waste of time, but if you're in charge of a meeting get the basics right so it runs efficiently and is valuable for people. Hearing, "I like going to her meetings!" is such a great compliment.
Here are some planning and execution tactics for your meetings to help make them run great.

Plan for Your Meeting

A meeting runs well if you plan it to run well. If you skip the planning part then you have a cascading problem. So it all starts with the efficient and clear meeting invite. You've seen invites that look like this:
What's wrong with this invite? Really, just about everything.
  • The meeting name is unclear
  • The time of the meeting is wrong
  • The duration is 1 hour long, is that right?
  • The attendee list contains the CTO, is that appropriate?
  • There is no room reserved
  • There is no web meeting / dialin available
  • There is no goal for the meeting or agenda
Here is clear version of the same meeting. If you take the extra few minutes to do a strong invite then it will help the meeting kick off well.

Good Meeting Invite Guidelines

Always have an objective for you meeting. State the goal in the invite to the meeting and present it again when you kick off the meeting. If you reach your goal by the end of your meeting, than your meeting was a success. Your goal may be to disemenate information, gather information, reach a decision by consensus, reach a decision by driving a manager to make one, but your meeting DOES have a goal. If your meeting doesn't have a goal, cancel your meeting.
Optional invitations mean something and you should be conscious of using them. This optional invite information isn't always surfaced well to the person receiving the meeting, so I recommend calling out specifically in the description why optional people have been invited to give them more information about if they want to attend.
Always have an agenda. This is how you know if you have provided too much time for your meeting or not enough for you meeting. Often people will just plop 30m onto the calendar or 60m onto the calendar and assume it "feels" about right, but the agenda allows you to check this. Guess what, people are very happy about 20m and 45m meetings too. There is no reason to chunk it into 30m. Sometimes I imagine a world where the Outlook default meeting is 20m.
I recommend starting the meeting agenda with a 5m kickoff. A good kickoff should take about 1m, so this is buffer time where you can stall for 4m before kicking off the meeting for people running late, joining the dialing, grabbing coffee, etc. It's especially important if you work in a culture of back-to-back meetings.
End your meeting agenda with a 5m wrap-up and next steps. Similar to the kickoff, these should take about 1m to do, so it's a little extra buffer time. If your meeting doesn't need this buffer time you can ALWAYS end your meeting early.

Run Your Meeting

Do your best to get to you meeting room 5m BEFORE your meeting. This lets you see if people have hijacked your room (or if there is a meeting and your presence can add an urgency to ending) and lets you be polite about asking them to leave your room.
Once you're in your room (on your call), get all the technology working. Join a screen share, conference number, share the presentation, do what needs to be done. As people arrive, greet them, and let them know the meeting hasn't started yet.

Kick off the Meeting

Clearly state that you are kicking off the meeting, the goals of the meeting, and the agenda of the meeting.
If people need to be introduced, it is your job as the facilitator to introduce them. Don't make people sit through an around-the-horn as each person intros themselves. You invited them to the meeting, you should be able to say who they are, and why they are invited.

Take Notes

A key deliverable of any meeting is the meeting notes which should include: attendees, decisions, and next steps. Meetings for information gathering would also include the gathered info.
Take your notes "on the projector" or "in the screen share" so all the participants can see your notes. Public/shared note taking in a meeting is extremely powerful. When a key decision is made people will ask to make sure it is clearly written in the notes. When there is a next step, people will ask to have the next step added to the notes with an owner and due date. People will also not be concerned about having an open laptop to write their own notes, because they'll be confident you're capturing important items and this leads to stronger engagement.
You can also delegate note taking to another trusted attendee, but you are still facilitating the note taking and make sure they are capturing things correctly.

Facilitate the Conversation

If you have planned your meeting well, with a clear goal, the right participants, and the right agenda that drives to the goal then the main facilitation technique you need is to keep people on task. When someone starts down a rathole, it may be a valuable topic, but you need to point out that it will not lead towards the meeting goal and is not on the agenda and then create a next step in the meeting notes to address the topic after the meeting. "Your concern about the privacy policy is good, but not what we're trying to address. Let me assign you a next step to raise that concern to the project lead at the risk meeting."
You can find lots of advocate on verbal facilitation techniques, but my most used tools:
  • Reinforce agreements - When you hear people agree, say that you hear it, and capture it in notes as a decision
  • Make a proposal - often useful at a stalemate, "I'm going propose we capture this as an unresolved next step and move forward. Is that good?"
  • Include quiet members - You end the meeting, and then someone who didn't speak responds to the meeting notes with FUD. So during the meeting ask, "Lindsey, do you have any concerns with this process?"

Running Over

Don't let your meetings run over. You should know early on if you're lagging behind in your agenda. If unforeseen topics, risks, or other items keep you from meeting your goal within the time, capture the progress you've made and the next steps and end your meeting on time.

End the Meeting

At the end of the meeting, review the goal and confirm if you achieved it. Review all of the next steps to make sure the owners understand their tasks and when they are due. Then, declare the meeting over. Send the meeting notes out immediately through email (or Slack or whatever you use).

In Summary

  • Prep for you meetings: Goal, Agenda, Participants
  • Send a clear and complete meeting invite
  • Start your meeting on time
  • Facilitate the meeting following your agenda towards your goal
  • Take notes publicly and clearly during the meeting
  • Wrap up by revisiting the goal, reviewing next steps, and sending out meeting notes

One Final Thought

Don't force people to come to your meetings, they should come because the meeting provides value to them.
It's tough to manage the dreaded recurring status meeting or team meeting. You need to hone the format of this meeting until people get value from it and WANT to attend it. Some people might be better just emailing in their status and receiving the meeting notes. If that achieves the goal (share status updates) then that's fine.
Title Photo by Hunter Newton on Unsplash

Monday, January 6, 2020

On Air via HomeKit

I work remote from home and spend a large portion of my day in web meetings with my camera on so my coworkers can see into my home office. Mrs.Chaos frequently wants to wander into the office, but doesn't really want to do so during done of these video meetings and I've always wondered if I could create some sort of "On Air" so that when I'm in a video meeting, I could notify people outside of the office. I have finally jury-rigged something together to do it and it's a great testament to the future of home automation. I can't wait until we can use natural language to describe this, "Hey Siri, setup an automation so that when my work computer is in a web meeting the Eve Flare turns red and when the meeting is over it turns off again."
One of the good (and the bad) things about HomeKit is that I can't just use a script on my computer to fire events into HomeKit or to set scenes, only automations built inside the Home App can do this sort of thing by querying HomeKit accessories. So here was the process I went down to do this fun project:
  1. Write a script to check if it's working hours, than ssh'es to my work computer and tests if a video conference is on
  2. Use Homebridge to have a HomeKit Switch accessory that runs a shell script every 5 minutes
  3. Video conference means, "the switch is on" otherwise "the switch is off."
  4. Home Automation in the Home App so if the switch is controlled to "on" the light turns on, if it's controlled to "off" the light turns off.
The script was a tad trickier than I expected, but not especially difficult. Checking if an app is running, "GoToMeeting" or "" or others is just a simple process check:
ps aux|more | grep "${processName}" | grep -v grep | wc -l
In this modern day of web meeting programs (Google Hangouts) how do you tell that is running? I had to determine if Chrome or Safari or Firefox had turned on the webcam. This is just a matter of using lsof to search fo VDC (Video Connection?). An interesting trick is that all the browsers automatically make a least one connection to VDC when they are running without using the camera, so they show two connections when the camera is going. Also, if you have another logged in user on your computer running Keybase, then the Keybase OS throws errors in lsof so I have route stderr to null.
lsof -n 2>/dev/null | grep -i "VDC" | grep -i "${processName}" | wc -l
Cool, right? So if the first command returns more than 1 result or the second command returns more then 2 results per process, there must be a web meeting running.
Homebridge is the gem of the HomeKit ecosystem for the hobbyist. It is a HomeKit hub written in node that can do anything a Node server can do, like call out to web apis or making internet requests. I have my WeMo, SamsungTVs, NetAtMo, Dropcams, and Connected by TCP lights all running inside of Homebridge and part of my HomeKit system, even though none of them support HomeKit.
For this setup I installed a package called cmdSwitch2 which shows up as a HomeKit switch and runs shell commands for "turn on," "turn off," and "get state." It will also poll the "get state" command on an interval, so I used to this to have it poll for a state every 5m. Just this easy:
  "platform": "cmdSwitch2",
  "name": "CMD Switch",
  "switches": [{
    "name" : "Web Meeting",
    "state_cmd": " -r",
    "polling": true,
    "interval": 300
The final step of setting up the Home automation is done inside the Home app on iOS and it all "just works."

Friday, January 3, 2020

My Favorite TV of 2019

No matter how gross something is just remember it is very easy to wash your hands - Scott McNulty
Years over, new year is started, what did I watch last year anyway? I have the sense I don't watch a lot of TV, but when I run back through my list in TV Time, seems like I spent a lot more time watching TV than I thought I did.

My Favorite TV of 2019

Watchmen (SciFi/Fantasy) - My highest rated show of 2019. I was not expecting to like it and in its first few episodes it just seemed weird like they weren't going to have a coherent story, but all the ends come together and tie up nicely.
His Dark Materials (SciFi/Fantasy) - I'm surprised I never read this as a kid, but I have really enjoyed this series. I started watching it about the same time I started some others and just realized the acting, story, set of this show is just one notch above everything else.
The Mandalorian (SciFi) - This is a "fun" show more than a "serious" show. Enjoy the action and enjoy the laughs. Storm Troop target practice might be my favorite scene in the first series.
Veronica Mars (Drama) - I found this show a decade after it was out looking for something that Mrs.Chaos would also enjoy and it was great. This random extra season is just more of everything there is to love in the original series.
What We Do in the Shadows (Comedy) - This show is not for everyone. It has a ridiculousrid premise and ridiculous humor and the dry wit comedy of everyone acting like it's all perfectly normal. If you enjoy that, there isn't much of this on TV, and it's a stand out comedy delight.dry wit humor

The Okay

On the comedy side of things, Fresh off the Boat, Sillicon Valley, The Good Place, The Tick, Brooklyn Nine-Nine, The Big Bang Theory were all enjoyable to watch and I'd do it again.
I'm working my way thought Apple TV+ and have watched Dickinson, See, and The Morning Show. All of them are fine shows for the genre they are in, but there are better options out there. I was most impressed by Steve Carell's performance in The Morning Show as the sexual harasser who doesn't think he's that bad in the grand scheme of things. I just started watching Servant and it's my favorite so far on the network, but there will be The Twist™ and I'll just have to see if it's great or if the villain was actually a townsperson in a rubber mask.
I'm still hanging on to the Arrowverse, but 2020 will be the year I stop almost all of these shows. Arrow, Supergirl, and Flash were amazing debuts and did a great few seasons but each one has slowly puttered out. The only Arrowverse show I'm likely to keep watching is Legends, which started fairly weak, but has jumped the shark and is pure satire on the genre. Legends still gets good laughs from me.
Stranger Things, The Handmaid's Tale, Agents of S.H.I.E.L.D. all pulled off another season that is more of the same. They had stronger earlier seasons and are just chugging along now.
Black Mirror, Twighlight Zone are anthology shows with good and bad episodes. There are probalby some you'll like and some you won't. If you have a friend who watched them all, they could probably tell you which YOU would like.

Probably Not

American Gods, Star Trek: Discovery - I keep holding out hope that these shows will get good
Good Omens - If David Tennant is in it, I'm probably going to watch it, but I did not like this show. The humor did not stick for me.
Dark Crystal: Age of Resistance - They did a very good job reproducing the look and feel of the movie, but I was unmoved by the show. There are a few scenes characters that are fun, but overall very boring. I'm honestly shocked this was renewed for another season.hi
True Detective - Season 1 was so good I've kept watching, but Season 2 and Season 3 have been mediocre.

Honarable Mention

Game of Thrones - You should finish this off. Whatever opinion you have about the ending, you are right in thinking it, and everyone else's opinion is wrong.
The OA - this show is weird. I really enjoyed the weirdness of Season 1 and the idea that you had an unreliable narrator and you weren't exactly sure what reality was. I did not enjoy one of the weird plotlines in Season 2 so it was like, maybe, 50% good for me? It looks like it isn't renewed for a 3rd season so it was fun while it lasted.


It's great to be in a golden era of television, yet there is so much content, people are dividing into their little zones of what they like.

Tuesday, December 24, 2019

iPad for Work in 2019

Waiting, waiting, waiting. I'll never get out of here. I'll die in Casablanca.
If my iPad Pro is going to be a laptop replacement, the question I constantly ask is can I use it for work? This years' answer? Basically, but I won't.
The summary is that while I can do my job on my iPad, I'm about 50% as efficient as doing my job on my MacBook and that loss of productivity is unacceptable in my day-to-day working. The good news is that it means I can confidently take only my iPad with me, with it's cellular connection, and get things done. That is pretty great. It isn't iOS 13 that has made this possible, it's some very great apps by some very amazing developments.

The Hardware Setup

I have the iPad Pro 12.9" 3rd gen with a cheap 3rd party smart cover. I have an Apple Pencil and use an Apple Magic Keyboard in the Studio Neat Canopy case. This setup works great for me.
I do have USB-C hub that lets me plug into an external monitor and Bluetooth mouse that I can connect and enable assistive touch pointing. This still feels like a gimmick to me and doesn't really allow me to get work done any better or faster than just touching the screen. If I were working all day, every day, on the iPad, it would be ergonomically better to use an external display at the correct height with an external pointing device.
What I have found pretty amazing is taking my iPhone Pro and hooking that to an external display, external keyboard, with a mouse. Every app, tip and trick I do on my iPad and I can also do on my phone and when that is connect to my big external display it's shockingly passable to work on and makes me dream of a future when the computer in my pocket is my only computer that I just dock.
  • Studio Neat Canopy -


It's better, BUT... I'm frequently triggering something that takes some time (30s?) to happen. Is it a bash script? Is it a web page process? A big file download? While it's running I want to switch away and check email, slack, maybe do something else and come back. iOS is going to kill whatever app was doing that process in the background unless I take pains to make sure it doesn't. That is horrible. I'm very used to not having to think about that, and I don't want to go through the mental stress to think again.

Web Meetings and Screen Sharing

I am on web meetings all day and I need to be able to share my screen. The Zoom App uses ReplayKit to allow you to share your iOS screen. As far as I can tell it is the only app that does this, so if I am the meeting host I can use Zoom and share my screen and get my job done. The problem is I am frequently invited to Webex, GoToMeeting,, Google Hangouts, and in all of these I cannot share my screen. So when someone asks me to share my screen I have to say that I can't, and that's not acceptable. Additionally on my Mac I share my external display to the meeting so I can use my other display to continue to slack, take notes, and do other things I don't want to share. This isn't possible on iPadOS.
I can't multitask while I'm in the web meetings very well. If I switch out of the meeting app the camera stops working so everyone is well aware that I am no longer paying attention to the meeting and instead doing other work. I think that in theory if I did the meeting in the slide over window this could be okay, but guess what? Almost all of the web meeting app only work in full screen mode.
I have tried to get around these limitations by using my iPhone to join the web meetings and my iPad to keep working (or vice versa) but that isn't a very pleasing experience.
  • Zoom -

Web Debugging

Another chunk of what I do is debugging marketing tags and code on web pages and this is a mess on the iPad. When I need to do real debugging I abandon all hope of being efficient on my iPad and go back to a computer. There are decent tools for being able to inspect HTML and even run JavaScript consoles in your browser. MIHTool and Inspect Browser will both get you there. In fact, you can even use Chrome to do some amount of this, but when you move into trying to see web request/response it's too hard. MIHTool can sort of do this, but tends not to work great. In Chrome, you can turn on the net debugger (chrome://net-export) and once it's complete email the log, drag the attachment into Files and then open with a JSON formatter/text editor. You can spin up Charles Proxy on device and dig into these requests, but all of this is just massively more difficult than using the developer tools baked into desktop Chrome/Safari. I'm unsure why this is so impossible, but maybe it has to do with Apple's requirement to use WebKit?

The Sketch App Problem

We use this app to draw designs. I need to use it for work and there is no iOS version. We could meet the same need using OmniGraffle and it would work on Mac and iOS, but I would have convince my company to change and I don't think I can win that fight.
There used to be more things like this where there was an alternative that would work on my iPad, but I can't push through a corporate change to make everyone switch to make me happy. For example, when managing a team of technical people, I cannot reasonably solve a repetitive problem using an iOS shortcut, because no one else on the team is using iOS for their full time work. I need solutions that work on Mac.
  • OmniGraffle -

The Apps to get Work Done

I am an Inbox Zero strategist and I need a workflow that allows me to switch from macOS to iPadOS to iOS well. My basic flow is that I have a very simple todo list in Agenda that syncs across devices. Each item in Agenda has a link out to the real project/work (AirMail link, Slack link, JIRA link, Confluence Link, etc). So while my work flows in via email and slack, I quickly read it and throw a follow up item into Agenda so I can remove the message.
AirMail - I use this for work email. I think I would be fine to use Apple Mail, but I put all my person mail in Apple Mail and my work email is in AirMail. I don't pay for a subscription for this and it meets all my basic needs of reading and writing mail. The feature that I really like is that I can drag-and-drop a link to a message over to my to do list in Agenda [see below} and then whether I'm on my iPad, iPhone, or Mac I can tap on that link an open up the original message in AirMail. This helps a lot with my Inbox Zero process of reading a message and if I need to follow up, throwing a link to it into my Agenda todo list.
  • AirMail -
Slack - Yeah, we all use slack. I use it too. It's fine.
  • Slack -
Chrome - I use this for work browsing and it's logged into my work Google Apps account. I would be fine to use Safari, but I keep it separate. I like that my password cache for work is now in Google and consistent across my desktop and my iOS devices. I have some URL shortcuts on my desktop that don't work in iOS which make me sad like I can do `jq something` to search JIRA or `cf something` to search confluence. It would be very easy to toss up an HTML homepage to do this, but I haven't.
  • Chrome -
Google Calendar - We use Google Apps at work and I have never trusted another Calendar app to manage this stuff correctly with Google Calendar. When I get a calendar invite in email I leave AirMail and go to Google Calendar to accept the meeting invite. Even the Google Calendar app is questionable when trying to schedule meetings and manage the invitee list and I frequently go into Google Chrome and the web interface for Google Calendar to get this to work. Here is the deal though, Gmail is amazing at parsing whatever crazy calendar invite has been slung at me.
  • Google Calendar -
Agenda - I love this app so much. Seriously love it and I barely use its features. This is my scratch pad where I take quick notes before I move them over to Slack, Confluence, Google Docs, or whatever. I also keep my simple todo list there so whenever there is a email or a JIRA or Slack message to follow up on I toss a link to that thing into my todo list in agenda. Lots of people use Evernote for this, but I don't want to keep personal notes in a personal store. I want to scratch them someone until I can post them into a longer term shared storage place.
  • Agenda -
Office Apps - We use Google Docs, Sheets, Slides for all of our internal documents and this are probably the worst office suite to use on iOS. The Google productivity apps work okay, doing it in Chrome works okay, and with desktop-class Safari I can get it done in Safari pretty well too. Sometimes it's painful trying to figure out which interface will get me into those documents the best. We also use Pages, Keynote for client-facing documents and those work great on iOS. Customer's send us Word, Excel, and PowerPoint and I have Office365 and those work great too.
Atlassian - These apps are "fine" for Jira and Confluence. More often I just use Chrome and the web interface.
Toggl - A great time tracking app that I don't pay for. We don't do corporate time tracking so this is just for personal use. I also don't use the App, but instead use the web interface in Chrome. I here Timerly is a great app that uses the Toggl API, but it's a subscription and I'm not ready to pay for it.
  • Toggl -
iSH - This app is an x86 Linux shell emulator and may be in perpetual beta and it is definitely AMAZING. This is the app that lets me get my job done. I use git in the shell to get my company's code repo and then I can curl and run shell scripts and do all the glue work that is my day-to-day job. Sure, I could try and use Working Copy and Files and Shortcuts and all that iOS specific stuff, but I can't share that with my team. When I'm working command line with shell scripts against the git repo, that is ALL tools that everyone can use on the Mac or Linux machine. Sadly, I can't easily run processes in the background here without iOS killing the app, but in those cases I ssh to a remote server that runs a screen to kick off those tasks.
  • iSH -
Code Editor by Panic (formerly Coda) - Honorable mention for this amazing app. I don't use this app a lot, but is fantastic. Panic has a rumor there is a new updated vision of this app coming out and I will buy it instantly. The SFTP engine in here is amazing (because it's Transfer, right?) and is the best way I have found on iOS to download large files via SFTP. I can connect to a remote system in Coda and get a SFTP file system browser, ssh shell interface, and the code editor. I have run regex's on 1MM+ long test files and Coda eats it for lunch.
  • Code Editor by Panic

Thursday, November 21, 2019

Consumer Home Automation 2019 Guide

Anything you do ironically will, in about a year, become part of your sincerely-held identity. - Avery Alder
It's 2019, and time to think about how your home is automated these day. I am bought into the Apple HomeKit ecosystem as my choice. If you are an Android or Alexa ecosystem, the options are different for you. With HomeKit you need an AppleTV or HomePod as your home hub — in theory an old iPad, but don’t be silly. I also have devices that are not natively HomeKit, and I use a cool app called HomeBridge to connect them. HomeBridge will take you out of the consumer level into the hobbyist, but only just so.
Smart Speaker - This is the trickiest one for me to recommend to others. I would LOVE for this to be an Apple HomePod, but I have Amazon Echo in my house and an Amazon Echo Tap in the hall that I use to take into the yard when we are outside. The main reason I use Echoes is that Alexa connects to my Prime Music, which I get "free" with Amazon Prime and that is the #1 use case of the speakers in my house. As soon as Apple HomePod supports Prime Music or there is some bundle that makes me want to pay for Apple Music, I'm switching. Yet today is not the day.
After music, the other main thing I do with my Alexa is to track the grocery list. I use an app called AnyList on my iPhone that has a shared list with Alexa. So anytime we realize we are low on anything we simple shout into the air, "Alexa, add peanut butter to the grocery list" and the magic happens. The kids have also gotten pretty good about this which is amazing.
  • Amazon Echo -
  • AnyList App -
Smart Thermostat - The first big IoT thing was the thermostat. My recommendation on this one is the ecobee4 as the best with native HomeKit support. I switched this year from Nest to Ecobee and generally it works exactly the same. The Ecobee physical installation was harder than Nest. Most HVAC-to-thermostat wiring connections don't send continuous power. Nest solves this problem with a battery in the thermostat that was able to extract power when available and ran fine. Ecobee solves this problem by requiring you to install an additional box in your attic (or wherever you HVAC unit is) so that a continuous power stream goes from there to you thermostat. That extra adapter installation in the attic was annoying, but once installed, it all works great. I also REALLY like that the Ecobee came with an additional sensor and I bought two more so there are motion and temperature sensors in all the main rooms in the house that impact the smart thermostats desire to heat/cool the home. I could, in theory, also use the motion sensing on those extra sensors to do other things, but I don't yet.
  • Ecobee —
Sprinkler Controller - I got the Rachio Iro the moment it came out and I have loved it every moment I had it. It does seasonal adjustments automatically increasing and decreasing watering times and it does rain and moisture skips if there is rain so I’m not watering my lawn when water is falling down from the sky. I’ve been extremely happy with this purchase. I think there is a HomeBridge plugin for it, but I’ve never tried. I don’t have any need to tell Siri to turn on the sprinkler system.
The one thing I feel this is missing is a the ability to put a smart moisture sensor out in the lawn so it could more accurately detected moisture to be smart about how much water the lawn needs — someday! As far as I can tell, there are no smart sprinklers that do that.
They have released new versions of the hardware, but I've never upgraded as I don't really see any benefit it will provide.
  • Rachio —
Smart Lights — My Favorite — I recently installed Lutron Caseta and this is the system I have WANTED. It’s not smart lightbulbs, it’s a smart dimmer wall switch that can work on a three-way switch. It requires enough bravery to turn off your circuit breaker and unwire/rewire the wall switch — it’s not hard.
What’s great about this is that if you have a fixture with four bulbs, you just change the one wall socket and you’re good to go. You don’t need four smart bulbs for the automation. Also, unlike smart bulbs, you’re never stuck with the wall switch being turned off and the smart feature not working.
Plus, the cost! Most of my switches control a fixture or number of lights. I could pay $50 for a smart light switch or I could $50 x 4 for four smart bulbs. The answer is simple.
  • Lurton Caseta —
Smart Lights — Also — I do also have Philips Hue bulbs in the outside lights! If you want to do colors, then Philips Hue is the way to go. My outside light sockets use the GU24 (two pins) so I had to buy adapters that convert that to a standard socket. Now when I want to "Halloween" or "Valentines Day" for the lights on the front of the house, the Hues are great.
  • Phillips Hue —
Smart Doorbell — I’m STILL in a wait and see mode on this one since there aren’t any smart doorbells that have HomeKit support. There are contenders that announced in 2017 HomeKit support was coming, but no one has added it in the last few years.
I own an earlier SkyBell and smart doorbells are slick. My main complaint is that my earlier version SkyBell doesn’t save videos. I am waiting for a product that supports Apple's HomeKit Secure Video. I think that NetAtMo is going to be the product for me when it all comes together because it support local-only storage (no fees!) and iCloud Secure Video.
  • NetAtMo Smart Video Doorbell (Waitlist) -
Smart Lock - I have an August Smart Lock and it’s great. You don’t replace your whole lock mechanism, just the interior side where you have your latch for the deadbolt. This lock thing is big — because it needs to have a motor powerful enough to drive an ancient and powerful deadbolt, but it works like a charm. The version I have doesn’t have HomeKit support unless I buy a bridge, which I haven’t sprung for.
  • August Smart Lock —
Security Camera - I don’t have a solid recommendation for this one. I have the Nest Cam and I love it, but you pay $140 — $200 for the camera, and then $10/mo for Nest Aware so you can see 7-days of historical video. When I realize I’ve owned mine for five years? I have paid a lot. There’s no direct HomeKit support, but there is a HomeBridge plug-in for them, so I can see live(ish) video in Home. I can set it to only get notifications if it sees an unrecognized person when I’m not home (and my wife isn’t home). Awesome. The Nest App that lets me review my last week of video is amazing in its ability to scrub around see when motion occurs and info what I’m looking for.
I also have a D-Link Omna 180 which has HomeKit support and local storage without a subscription fee. HomeKit support doesn’t mean much. I can see the video in my Home app and it also puts a motion detector in Home which I can use for smart triggers. To actually review history, I need to launch the Omna App and it just records 30s video clips every time it detects motion. It’s functional, gets the job done, but is a way harder look at historical video and more annoying than the Nest app. On the other hand, I’m not paying $120/yr for this thing.
I'm mostly in a wait-and-see for the cameras that will support Apple HomeKit Secure Video and see how good that can be. If Apple can make iCloud Secure Video as good of a user interface as Nest, that will be amazing. It seems to me like most cameras (that aren't nest) just record 30s video clips. The other one I've got my eye on is the Arlo Cameras which has HomeKit support, runs off a hub and has local storage and free limited cloud storage.
  • Nest Cam —
  • D-Link Omna 180 —
  • Arlo -
Minor shout out to the app HomeCam which shows you all your HomeKit cameras easily and has an AppleTV version. It’s cool to put all four of my home cameras up on the TV for fun.
  • HomeCam —
Garage Door — I have the Chamberlain MyQ and I love it! It’s one of the most magical things to be able to tell Siri to open and close the garage on my watch. I also bought the hub from Chamberlain so it's in HomeKit - it was extremely difficult for me to get the hub working because I have two garage doors, but I did eventually crack the migration system. Once it was working, it totally works. I also have the garage lights with a smart light switch (see above) so there is a Home automation, "when the garage opens after sunset, turn on the garage lights."
  • Chamberlain MyQ —
  • Chamberlain HomeHub-
Outlet Switch — I have a couple older appliances (fan, coffee maker, washing machine) on smart switches. I’m using a combo of either WeMo Insight or iHome iSP8 for this. At this point I’d recommend the iHome iSP8 as the smart switch. The only nice thing about the WeMo is that I can have the app notify me when the washing machine stops getting power so I know when to move the laundry to the dryer.
  • iHome ISP8 —
  • Wemo Insight —
Leak Detection — Not HomeKit, cause I made a mistake. After the kitchen sink flooded the cabinet twice, I got an installed the iHome iSB02 just assuming it would be HomeKit compatible because the outlets are, but I was wrong. So if there is a leak there will be an alarm, and I’ll get a push notification, but I can't do any other HomeKit automation from it.
  • iHome SB02 —
Door Detection - I have an Eve Door Sensor on one of the kid's doors. I set an automation to flash the office lights each time the door is opened. I have some issues with this automation (because light flashing isn't a HomeKit action).
  • Eve Door & Window Sensor -
Weather — I have a Netatmo Weather Station setup. I'm using HomeBridge, but the latest NetAtMo stations natively support HomeKit. With the weather station module in the backyard, it’s kind of cool to ask Siri for the temperature in the backyard. I also have a fancy script that checks the temperature in the backyard (NetAtMo) versus the temperature in the house and Ecobee Thermostat settings (heat/cool/range) and sends my Phone a notification when it’s a good time to open/close the windows.
  • Netatmo Weather Station —
Indoor Air Quality — I live in California and was in one of the many areas drenched by smoke from the fall fires. For nearly two weeks the outdoor air quality was running above 200 often above 300 and I kept wondering, how good are my indoor filters and how good is my indoor air quality? The NetAtMo can tell you CO2 levels, but nothing about VoCs. I have the Awair in my master bedroom to tell me about air quality.
  • Awair 2nd Edition —
Smoke Detector — I don’t have a great recommendation on this, I think Onelink is the only HomeKit compatible version. I have a Nest Protect and it’s fine . If I had a HomeKit compatible I could, in theory, have something happen when the smoke detector went off (like turn on the sprinklers?)
    Onelink —
Fan — There are smart fans, but I hit a snag in this. My fans aren’t HomeKit controlled exactly. I have only a single wall switch that provides power to the light and the fan, so while I have a Caseta there I can’t can change the fan speed separately from the light using HomeKit (if I dim the light, the fan slows down. Light off means fan off). I installed Hunter wireless receivers and use the Hunter Bluetooth bridge to control them from the Hunter SIMPLEconnect App. Now Hunter’s website says that SIMPLEconnect is HomeKit compatible, but this only refers to the Hunter WiFi fans and not the Bluetooth receiver. So it achieves my goal of controlling it all on my phone, but it’s a wonky.
  • Hunter 99106 Simple Connect Remote Control Receiver —
  • Simpleconnect™ Wi-Fi by Hunter Fan —
Vehicle Tracker — No HomeKit on this one, but I use the Automatic in the car to keep track of all the trips travelled. My car is too old to keep track fuel automatically, so I use Road Trip for that.
  • Automatic —
  • Road Trip —
Smart Thermometer — Weber iGrill2 is fantastic! Stick it in to your meat and start grilling and get a real-time update with graphs and alerts on grill temperature and internal temperature. What I’ve been surprised by is how linear cooking is on the various meat that I grill.
  • Weber iGrill2 —
HomeBridge is awesome and I randomly stumbled upon it and I hear very little about it. When people complain that HomeKit is proprietary, it’s half true, because I have an OpenSource server bridging all this stuff. It’s an open source project you install on your macOS server at home that provides a HomeKit interface to a ton of IoT devices that don’t support HomeKit. I've been doing my best to replace my HomeBridge devices with native HomeKit, but I'm not done. I have WeMo smart plugs and switches, TCP Wireless bulbs, Netatmo weather station, Nest cams, and SamsungTV.
  • HomeBridge —
Probably also worth mentioning the WiFi setup. I swapped over to the Eero system at home and works like a charm.
  • Eero —

Favorite Automations:

“Hey Siri, goodnight” — turns off my bedroom lights, turns off my bedroom TV, turns on my bedroom fan, makes sure the garage is closed, makes sure the garage light is off, and locks the door from garage to house. It’s awesome.
"When the garage door opens, after sunset, turn on the garage lights for 5 minutes."
"When the kids door opens, flash the office lights."
"After sunset, turn on the front yard lights to 'Halloween'"

Q: Why should I stick to HomeKit devices?

HomeKit devices gives three features I think are important that you don’t get.
  1. Can be used in Scenes that affect multiple devices like my Goodnight Scene that turns off bedroom lights (Caseta), turns on fan (WeMo), turns TV (HomeBridge Samsung TV)
  2. Can be used in triggers automations like when my camera (Omna) detects motions it turns on the living room lights (Hue).
  3. Can be controlled by Siri, “Hey Siri, turn on the hall light.”
  4. Does it all locally on device and HomeKit Hub. This stuff isn’t going up to the cloud for a company to monetize