Categories
On Technology

Running a dumb robot vacuum with Shortcuts

I love the idea of a totally self-sufficient robotic vacuum to keep my floors clean. However, I am also cheap: a $1000 Roomba that empties its own waste is amazing, but not something I’m willing to chalk up for at this point in my life.

So, I got an Ecovacs Deebot N79 for sale on Amazon a few months ago. It’s great, but it’s also pretty dumb. Alicia and I call it DJ Roomba (obviously), and it’s very cute but kind of dumb.

It can schedule itself to run daily at a certain time, but no more granularly than that — I don’t want to hear a vacuum at 11am when I’m at home, but I do appreciate coming home to a clean house when I’m out and about. It does have Wifi capability and a companion iPhone app, but the app sucks: it requires 2 taps and several seconds of delay just to find DJ Roomba, and then I have to tell it what to do, and every time I want it to do something different I need to repeat this entire process.

It’s not great. I’d rather just build a scheme that DJ Roomba can follow automatically, whenever I want it to.

Homebridge and its flaws

I naturally Google’d the crap out of this problem. I quickly found sucks, a Python interface that connects to Ecovacs’ server and then enables one to issue commands to any robovacuums tied to your Ecovacs account. This was easy enough to set up. I then found a way to connect sucks to Homebridge via a plugin called CmdSwitch2.

I had never used Homebridge before, but I love the potential of HomeKit. I already have a moderately robust HomeKit setup in my apartment: some smart bulbs, a couple of switches (including a critically placed one controlling my modem) and a HomePod to yell at, so installing Homebridge on my Mac seemed like a fun little project.

Turns out I suck at and don’t enjoy the command line. The process of setting up Homebridge, connecting all the dots between Python, sucks, cmdswitch2 as a trigger that exists inside Homebridge’s config, and Homebridge itself, was a tedious process that quickly lost my interest. I kept having to kill and restart Homebridge to make sure everything was playing nice. I must have scanned the Homebridge QR code into my iPhone’s Home app twenty times to get it registered as an accessory.

The other major challenge: I didn’t want my wife to have to deal with this either, but we share an iMac. She uses it regularly for work, and often has to kill processes in order for Adobe apps to run optimally, or restart the computer if things go wrong — which also killed my Homebridge server. I found some options to automatically restart the server, and I could have kept trying those things, but my fun little hobby project of automating control of my dumb vacuum was increasingly frustrating me. I’d go to start the vacuum and constantly see the damn “No Response” in red.

So I gave up and dismantled the entire thing.

A few weeks later I realized that I don’t actually need Homebridge or cmdswitch2 at all. I really just wanted to run sucks on command: ideally a specific times of day or when I’m home, but just being able to trigger it from any of my devices (or my voice) would suffice.

Enter crazy and powerful Shortcuts.

Shortcuts and a simple AppleScript

Nobody I know personally really uses Shortcuts, but it’s sort of my lifeblood for controlling things around my home and work. I use it to set reminders without thinking, do a whole host of chores every morning & weekend, and generate canned email templates that I shouldn’t have to send as often as I do.

Viticci opened my eyes to the idea of Shortcuts triggering actions on a remote Mac via SSH, including waking it from sleep. I figured out that I could also run AppleScripts using the an SSH command — osascript.

I realize that most tech people probably know this already, but bear with me.

I then did the following:

  1. On my shared iMac, opened up Script Editor and created an AppleScript (.scpt) file that run a basic sucks command: sucks edge 15 clean 30 charge. This script, when run, tells Ecovacs to run the “edge” function on my vacuum for 15 minutes, then general cleaning for a half hour, then send the vacuum back to its charger.
  2. Saved that .scpt file my parent user directory on the iMac.
  3. In Shortcuts, wrote a very simple (1-step) Shortcut that triggers script via SSH. Rather than SSH-ing into the iMac locally, I enable SSH access and file sharing on the iMac, then connect to its IP address so I can run the command from anywhere.
  4. Repeated steps 1, but with a different script that simply tells DJ Roomba to go home, it’s drunk: sucks charge

Now I have two Shortcuts: Run Vacuum and Stop Vacuum. I can yell out to my HomePod, tap a button on my iPhone or iPad, to kick either process off. As long as my iMac is on, this will always work.

I can run this as part of another shortcut, such as my Bedtime Ritual one which darkens some lights around the home and reminds me to floss, clean out Roomba’s dustpan and a few other things. I can even have Reminders remind me to run the Run Vacuum shortcut at specific times or locations — for example, anytime I leave my house. Then, in one tap, DJ Roomba is up to his antics.

The possibility in iOS 13

This works really nicely, but it’s not perfect. I’d love to customize even further when and how DJ Roomba can run. It sounds like this all gets unlocked in iOS 13 via Shortcuts Automations. I’ll be able to, for example, run the vacuum on Saturdays as long as nobody is home, something I can do currently but only with HomeKit accessories.

This is really dumb and nerdy, but I find it satisfying and fun.

Categories
On Technology

We might have reached Peak Apps

It’s a great time to be a productivity nut. (Note that this post is going to be incredibly first-world-problem-y in nature.)

Since moving to Berlin I’ve had an opportunity to critically review how I work. My job is for the same company and essentially doing the same thing, but I was able to shed some of the burden of direct reports, longstanding internal processes and borderline-political work relationships, and kind of start fresh in a way. My morning routine has gotten more about me — taking time, eating a real breakfast, learning a bit of German via Duolingo, reading news instead of email.

When my mind is feeling nourished, I plan my day with Things 3, moving stuff for this evening to This Evening, comparing my pockets of available time with the number of tasks or projects I need to focus on, and deferring the least important things. I might draft up a few writing ideas or notes for projects in Drafts, some of which get linked to in Things and others that sit in my inbox for when I have a creative thought later.

My bigger idea boards for things that need planning or some kind of structure sit in Trello.

This all works for me quite well… but on some days it feels wrong. Why manage some projects in Things and others in Trello? They’re both really good, but why do I need Things to supposed Get Things Done when Trello can organize my projects with structure and let others collaborate with me?

Collaboration is important, right? But isn’t focus? Trello can do focus really well, I think. But then again, Todoist is also great for focus and collaboration — plus, it can automatically pull in tasks from anywhere via its API. But, Things can kind of do that through its own URL scheme and Mail feature.

GoodTask can do most of the above too — plus it integrates with Reminders, which is great because I can talk to it via Siri and not have to remember to say “using Things” or something very unnatural. Then again, why not just use stock Reminders since I can remind myself about most of the things I need to work on and have it smartly link back to those things? Moleskine Actions also looks really good too, I think. I haven’t even mentioned OmniFocus, because that’s…too much for me right now.

Literally all of these options are totally fine and look, perform and function amazingly. I haven’t even touched the writing, presentation, mind mapping, or spreadsheet apps. My brain hurts.

It’s a weird time to be a productivity nut. Most of the popular apps in most categories are all really, really good. How do you know which one is best? What is best, anyway?

Best for most people? Best for productivity nuts? Best for a married couple? Best for tech company employees? Best for strong female entrepreneurs? Best for stay-at-home dads? Best for digital nomads? Best for you? You’ll probably find a list like this and see roughly the same 10 to 20 apps in a given category, all of which are really, really good.

Navigating this is really hard. Not because the lists of “best apps” are too long or they’re too expensive or hard to find, but they’re just all so good. It takes a long, long time of trying each one out, being wowed by the unique features or design conventions or automation potential or scalability of each one, and having to decide which secret sauce of those is best for you. Apple is sometimes helpful with this, but other times not. I love the new App Store, but when I see a feature focused helping me “Get to Inbox Zero”, I can’t help but laugh at the 15 email clients they recommend for this — as if they’re sneering, “Literally any of these will work, we don’t care, just pick one.” It’s almost lazy.

Not to mention how those apps in a single category connect with the 10-to-20 best apps in a _different_category. I’ve finally decided on sticking to Things, but do I use that in tandem with Drafts? Bear? Ulysses? Apple Notes? Byword? 1Writer? Each of them? Some combination of these? I could use a cocktail of these different apps that basically do the exact same thing, but how much time must I give myself to figure out that perfect Manhattan of writing a few ranty blog posts on an iPad?

I also have to imagine it’s especially hard now to develop an app in the productivity or writing category and not be in this list. Either:

  1. You could copy some design conventions or differentiating functionality of one of those 10–to–20 apps, do some marketing pushes, and eventually be admitted into the wonderful apps club
  2. You could try and determine some feature or use cases that none of these thousands of people figured out already, and take a big gamble
  3. You should just give up and die

To be clear: I don’t think any of this is bad. I find it an interesting time in the world of mobile-first productivity and content creation where the consumer is pretty much always going to be delighted. Developers of that top-tier bucket of apps clearly know what conventions and functionality their consumers want and are willing to listen hard to understand how to best deliver that. The question for the consumer has gone from “what is the best app out there?” to “what is the app or apps that best suit my particular needs at the moment, but also jive perfectly with how I think or what I want to look at?” The second is a much more time-consuming question to ask, I have to imagine, for most people.


Originally published at tonedeafcolorblind.com on April 28, 2018.

Categories
On Technology

The wonderful future

or, my phone is slowly becoming my wallet

Since Alicia and I moved back into Boston proper, I’ve started to hold cash on me much less frequently. Back in NYC or up in Salem, most of the establishments we frequent only accepted certain credit cards; many were cash-only.

Now, I can use Apple Pay or order online from pretty much anywhere I frequent — cabs & Uber, groceries from Trader Joe’s, Starbucks and most other local chains — for everything else, I’m only really using one of two debit/credit cards. My only actual use for cash, except when I’m not in Boston, is to pay my barber every month. This has been a wonderful way to live, if anything because I have to worry about having less with me at any given time. My only further request is that I could get my driver’s license and MBTA subway pass somehow onto my iPhone — then I could ditch my wallet almost completely.

Having a thinner wallet is kind of amazing, but my iPhone is starting to feel like a single point of failure. What if I drop it and crack the screen or damage the NFC chip or the Touch ID button? The 6s Plus has amazing battery life1, but what if it dies? Do I replace my wallet with my little Anker portable charger in my back pocket? What if I lose or forget that? What if I get mugged? Or worst yet, what if I lose the phone due to my own idiocy? How will I get my goddamn Venti iced coffee?

It gets me thinking about product redundancy — the physical wallet begins to act as backup for my virtual Wallet. But what happens when I have no need for a physical wallet anymore, other than to cover my ass if my phone dies? That’s kind of an annoying prospect? Is that what Apple’s betting on with the Apple Watch, if you ignore the lifestyle play? When does the “all-powerful device” with several obvious Achilles heels require redundancy, especially when you don’t want to also carry your phone in an Otterbox case and with a portable charger constantly?

It’s all really fascinating, is all. It’s interesting to me that we still don’t have a good, trusted, redundant solution here that’s also convenient and cheap. We have it with our digital files thanks to name-your-cloud-storage-and/or-backup solution, but credit cards, identification and other highly physical-world things are still confined in your pocket or purse one way or another.

I get excited for our inevitable Minority Report-like future in which we could have public kiosks where, via a retina or thumbprint scan, you could retrieve a temporary copy of your ID, driver’s license, last credit card used, or whatever you lost while out in the world. Dropped your phone and it’s useless? Scan your finger at a Touch ID kiosk and you can automatically have a temporary ATM card printed instantly for use. Got mugged or lost your phone in an unfamiliar place? A quick scan could get you quick access to emergency response care, your Medical ID and history, and/or automatically wipe your phone and notify a loved one that you’re okay. I don’t know nearly enough about the technical complexity of making this work in practice — the scanners would need to be sanitary, damage-resistant, weather-proof, whatever else — clearly there are a lot of holes to this. It’s almost certainly easily hackable if we’re not careful.

But it’d at least be super cool, right?

Originally published at tonedeafcolorblind.com on August 31, 2016.

Categories
Getting Better

Share that you’re still learning (because everyone else is, too)

The Internet is amazing, and Twitter is amazing. I know someone just wrote a post about how Twitter is dying, but the communities of people who are using it in the correct, intended way are great.

I bring this up because earlier today, for the first time, I tweeted something that sort of went viral. It didn’t actually go viral (the numbers were clearly not large enough to be considered viral), but for the first time:

  • I shared something I thought could be valuable to others
  • it got picked up by an influencer (thanks, folks at Product Hunt!) who similarly thought it was valuable
  • it then got picked up by several dozen others (58 favorites and 13 retweets, to be specific)
  • I was thanked by many people for sharing, despite not knowing these people at all

Again: chump change in the world of Twitter, but it still made me happy. Happy that I got some attention, but even happier because I provided value to some people I don’t even know. This all happened because I shared the fact that I’m still learning.


It’s been written ad nauseum that startup/tech journalism has a tendency to focus on successes. I had assumed that tech thought leaders and sites like Product Hunt only cared about actual products and results; I figured I’d learn to code so that I could eventually build products that changed people’s lives and brought me financial stability and fulfillment on my own terms. The reality is that I’m probably years (at best) away from pulling this off.

But starting somewhere is important, and sharing this (even if you’re still at the bottom of the proverbial totem pole) is worth doing. There’s millions of people trying to build their own products and know as little or less than you do, so why not make it known? You may be able to help each other out, bounce good ideas, test each other’s works in progress or even make some friends in the process. Now that I’m public about my learning how to make iOS apps, I’ve got a little more community around me, and while the path forward still isn’t totally clear, it feels a little clearer now.

Thanks Product Hunt and everyone who liked what I had to share!