Making painless guest wifi with QR codes

You ever go to a friend’s house, need to send a photo to someone, and realize it’d be way faster if you were on their wifi network? Then you ask and the host goes yeah, join my (punny-named) network, and then you ask for the password and it’s like 25 random alphanumeric characters someone has to look up on the back of the router?

I didn’t know until recently that you can share wifi credentials with a QR code and it works natively in iOS 11+ and on android phones.

It’s a pretty slick operation, you just open your phone’s camera, point it at the QR code and tap the notification to instantly join the wifi. I’ve never actually enjoyed using a QR code before, but this saves a bunch of time and headaches because it’s totally instant.

People on Etsy sell signs like these custom made for you but when I couldn’t find one I quite liked, I set out to get my own made.

After some quick researching, I found you can make your own wifi QR codes at qifi.org. I exported the PDF printout, brought it into photoshop, and started making layouts using fonts I liked. Then I found a friend with a Glowforge, who redid the template in a vector app and we picked out a darker walnut wood to match my kitchen cabinets.

The end result is really nice. I used double-sided 3M tape to mount it above a wall switch near my front door, where we typically have a drink cart for guests, making it easy for them to join the network at a party without having to shout passwords across the house.

I was surprised it worked first try on a dark walnut wood, but QR codes are really forgiving and it’s ok if they’re low-contrast (I did this purposely to make it blend in with the wood more). And don’t worry, I’ve obscured bits of my SSID, password, and QR code so it shouldn’t actually function here, but when you’re a guest in my home, it all works in a flash.

Puddle & Pile—the app that predicts when your puppy needs to go—is freaking amazing

Last month, my family got a dog. It was our first ever dog after a lifetime of cat ownership. In the preceding months I asked everyone I know for advice on how to raise my someday dog. At a conference dinner this past summer, my favorite food writer on earth, Helen Rosner mentioned one piece of advice I’d never heard and it was about what she described as a scarily accurate app that lets you know when your puppy needs to go. Everyone else told me about the importance of being consistent with training and praise, taking a puppy class to nail all the basics, and clipping the puppy’s nails and playing with her ears often so she didn’t get weirded out by it when she was an adult dog.

The first four days of puppy ownership were great, but they were also literal hell. Don’t get me wrong—Lucy was cute and amazing and it was a wonderful experience to have a pet for the first time that actually loves you back instead of giving off an air of veiled hostility—but having an 8-week old puppy was very similar to the time I had an 8-week old human baby. All day and night I took her outside every hour to try and pee and poop and still I spent hours doing laundry every morning and evening due to accidents. I didn’t sleep for days, visiting her several times a night to find large wet patches on towels and blankets despite getting up dutifully every couple hours.

I last experienced a young human baby 15 years ago back when I was 15 years younger and it turns out going three days without steady sleep and having anxiety dreams/nightmares whenever I did nod off wasn’t healthy in my late 40s. After a few days of this I was overwhelmed by it all. I was killing myself to be the best puppy owner to this dog and still she was literally pissing over everything.

Then I remembered the conversation with my puppy’s godmother, the award-winning writer Helen Rosner and so I DM’d her to ask if that fabled puppy poop predictor actually existed and if so, what was the name? She promptly replied (after asking for a photo of the dog and agreeing that Lucy was the cutest thing on earth) so I immediately purchased and installed Puddle & Pile. It costs 3 or 4 bucks but I figured my sanity was worth it.

It’s a pretty simple app. You describe your puppy’s age, then hit a button when she eats or drinks, and you log when she pees and poops, and you can mention whether it was intentional, or accidental. Then it all goes into some sort of black box of math that they have a settings/visualization for. The app appears to be written by a dad and his daughters and though it has possibly the worst fonts on earth for an iOS app it’s got a cuteness factor and hand-built sensibility that makes it all OK. Forcing the developers to use Helvetica in this app would feel weird and cold and distant.

Oh and those hearts in the screenshot above? They fill up over time, but also they use the tilt sensor on your phone to “slosh” around like they’re filled with liquid. You will find this silly and endearing and just another fun aspect of the app.

But this app is no joke: After a few hours of logging her activities, the app started sending predictions that were pretty close. After about 12 hours of using it, they were totally accurate. After a day or two, it was always plus or minus a couple minutes of when our dog had to go. I’d either take the pup outside to an immediate bathroom break, or there’d be one sitting on the floor of our laundry room.

I can’t stress how revolutionary this app can be when you don’t know anything and you have no experience with a new pet but you want to teach your puppy to do the right thing and you’re praising her for doing things right and cleaning up after doing things wrong. This app was life-altering for the next couple weeks for me. I no longer had to check dutifully every hour during my workday or wake myself up constantly all night. I could let her sleep like a puppy should and finish my work in the next room but whenever my watch or phone buzzed, we could take a little walk until she relieved herself.

Throw this onto the pile of stories about what tech can do to improve our lives these days, but this extremely accurate single-purpose app took the main source of stress and chaos in my first few weeks of puppy ownership and made it all bearable. My puppy could now always do the right things, and I no longer had to clean up one mess after another. If we had to take a short car trip, I’d know when she needed some relief. Whatever they charge for this app, it’s worth every penny.

Soon after, our new puppy figured out how to use her doggie door leading to our dog run and now she can let herself out at 3am all on her own and her accidents are so rare that I no longer need the app, but what a killer app it was for those first few days of utter chaos, bringing some semblance of control back into our lives.

And thank you once again to patron saint of the internet, Helen Rosner for being both a great person and a fount of human knowledge.

Cleaning up my closet/my first networking rack

Here’s the before shot of my home DSL modem attached to a Unifi Cloudkey Gen 2 Plus and a Unifi Security Gateway, then a Unifi 16 port powered switch, a mess of cabling from my wifi points and wireless point to point network, two Raspberry Pis, and then the five internet-of-things hubs I have to keep around.

Even though it was behind a walk-in supply closet door, it was still a mess. I hated seeing it every time, so I decided to do something about it. My Unifi Switch is a 1U-sized rackmount box, so I centered everything around that and got a small rack to mount it in.

I started with a 7U rack at Amazon for $99 and I bought a 1u power supply/surge protector to go with it. I bought a couple 1U shelves to hold all the gear and IoT hubs too.

It’s still messy inside and once I get a few 1 foot long ethernet cables I can clean up the rat’s nest of IoT hubs on 6″ cables, but at least I can close up the lid and know everything is working fine inside and I no longer have to see it all.

Things I learned from building my first rack

Just because it’s 7U high doesn’t mean you can stack it up with 7 x 1U items and expect to get your hands or cables into and out of everything necessary. I bought another power strip and another shelf and there’s no way I can fit much more in it so I’ll have to return them.

I started at the bottom and quickly realized I wasn’t giving myself enough room to get cables underneath the lowest item. I ended up taking everything out and moving it all up three times before I got it right. It would have been smarter if I started in the middle and worked my way outwards towards the top and bottom.

Getting the little rack mount bolts pressed into the holes on the sides of the rack is a skill you’ll quickly get good at after installing and removing and reinstalling racks about a dozen times.

UPDATE: I cleaned up a bit more

Having never built a rack before, people on twitter immediately said “get a keystone panel to organize your ethernet cables!” and so I bought this 24-port keystone panel, redid the ethernet through it, and it looks a bit more tidy now.

My first LED project

A few weeks ago, I stumbled onto a couple interesting videos on YouTube, namely these two:

Both videos blew my mind about what’s possible with cheap off-the-shelf stuff. Thanks to the tech boom and drive for ever cheaper LEDs for all sorts of uses, the gear for building light strips is ridiculously cheap, while the programming of arduino type devices has matured. Both videos are incredible tutorials on how to select and buy cheap light strips, hook them to a wifi controller, and then have the ability to change colors and do custom light shows.

I wasn’t interested in this for a holiday light project, but instead for safety. I’ve got an outdoor stairway in my house that people frequently trip while walking down because you can’t quite tell where each step ends.

I’m setting out to build six 2 meter strips mounted under the edge of each stair so it’s super obvious where the steps are when walking along at night.

After watching dozens of videos and shopping around, my first test strip is complete and here’s what it looks like:

It’s a 5V 2 amp power supply talking to a NodeMCU that has WiFi in it. It’s wired using a special plug and some wires to a 2 meter 5V strip of waterproof LEDs that have 30 lights/meter. All of that is mounted in an aluminum channel designed for LEDs that comes with a plastic cover. The iOS app WLED talks to the NodeMCU over WiFi and comes with 80 custom light patterns. In the video above I’m testing it out with a rainbow pattern (I’ll leave it soft white when this is mounted under stair treads).

The wildest part of all this is everything you see here summed up is about $36 total. LED strips up to 5 meters long are less than $20. The NodeMCU controller with WiFi was barely over four dollars. The power supply and wiring were only a few bucks and a beefy large 60 amp power supply built for whole-house LED light shows are only around $20.

Consider that a Philips Hue light strip costs around $80 for 2 meters of light and a 1M extension is another $25 and it doesn’t have individually addressable LEDs (the whole strip can change colors but not individual lights changing to different colors themselves), and you can see why there are a plethora of cheap useful LED devices out there with remote controls that run these kinds of patterns or come with motion sensors to light up your bedroom or bathroom in the night automatically.

If I lived in one of those suburban communities where everyone goes absolutely nuts about putting up lights for the holidays, I’d totally look into doing a low-profile permanent installation like the ones in the two videos at the top of this post.

In the past couple weeks I’ve learned more than I ever thought I’d need about electricity and wiring and amperage and I didn’t even have to solder anything. If you’re interested in this stuff, check out the videos on YouTube and branch out from there as there are hundreds of how-tos like this.

Extending Apple’s homekit through Homebridge

I’ve been doing a lot of weekend house projects lately. I started with hours on YouTube watching videos on how to wire up wall switches because I wanted to control more lights on my network.

I followed the Wirecutter’s roundup of the best IoT wall switches and jumped on their cheap pick, the Kasa HS200 wall switch since it didn’t need a hub like the more expensive models. I ordered a few last week and had them ready to go.

It took me two full afternoons to wire up my first switch in the garage because I screwed up the neutral wire connection but in the process learned how to read wiring diagrams and appreciate why a neutral wire is a key part of home circuitry. So after days of research and trying over and over, I finally got my light switch working.

I had to install a custom Kasa app, put the switch on my network, and could turn it off and on from my phone. Next, I wanted to add this to Homekit so I could add it to everything else in my house. I checked the settings screen, but couldn’t find any way to connect to Homekit. Worse, a quick Google search showed me that TP-Link, the makers of Kasa switches recently decided to abandon development of Homekit compatibility even though they announced it as “coming soon” at CES in January.

I went back to check the Wirecutter post and I guess I didn’t it read closely enough because though they mention Homekit support in every other pick, and they only say the Kasa switch works in iOS, without specifically mentioning Homekit. Which it does not support.

Oh bother.

Several comments on the Verge said “Just use Homebridge, I bet someone already wrote a tp-link plugin for it.”

I’d heard of this hack for Homekit called Homebridge and when I searched, lo and behold, there was indeed a tp-link plugin to add the light switch to Homekit that I spent all weekend installing. But could this really work?

Automation that turns on the lights in the garage when the garage door opens after sunset or before sunrise

I opened a terminal to the Raspberry Pi I use for running Pi Hole (it filters all ads from my entire network) and I followed these instructions to install Homebridge. It took about five minutes to complete setup then it only took a few seconds to install the tp-link plugin. I opened the Home app on my phone immediately and there was my garage light switch, already connected to everything else in my house. Holy shit.

I installed a few more plugins, one to get a web-frontend to the app, and another to control my garage doors. Plus, there are plugins for platforms and products that are stuck in the pissing matches between tech giants. There’s a plugin for every product Nest makes (but which Google refuses to natively connect to Apple’s IoT ecosystem).

It’s really incredible how a pile of javascript can basically create a fake Homekit hub for almost every product on earth, let you connect things and do more with them than ever before. I even installed plugins for my things that already work with Homekit, which gave me new capabilities and promptly fixed quite a few issues with IoT devices on my network. My wifi garage door now opens instantly when I press Open in Homekit where if I use the app made by the manufacturer itself, it can take up to 30 seconds to register the open command. So it’s not only more flexible but Homebridge is actually making my devices work better.

I wouldn’t be surprised if a future release of AppleTV just baked this app into a background service so Apple could offer Homekit support to nearly everything connected to the internet without having to wait for every IoT company to come on board.

If you use Homekit, definitely check out Homebridge on a raspberry pi. It’s remarkable what free software and a little cheap computer can do these days.

My first hour with Airpods Pro

Off the bat you should know that I have tried in-ear canal headphones a few times over the last couple decades and they’ve never been comfortable or offered such great sound quality that the uncomfortableness was worth it. Instead, headphones that go into and down your ears have always felt like medical equipment to me, and putting them in feels like enduring a doctor’s procedure.

I didn’t think I’d want or like the new Airpod Pro ear buds because they feature a portion that extends into your ears. But when I heard they had noise canceling and better bass, I ordered a set that showed up today and after listening to a couple podcasts and a few rock albums, here are my first impressions.

  • Putting in the small sized ear thingys made them feel less gross to insert and the sound quality is pretty good (better than the airpod amateurs).
  • Taking them out of the new wideboy case is WAY harder than the old kind! I’m actually kinda surprised they shipped this, I feel like I have to pinch the ear rubber bits to yank them out, where the old kinds just slid out like cigarettes from a pack.
  • The bass sounds don’t seem amazingly better, just slightly deeper. Eventually I found the R&B EQ setting gave me much better great sound for rock music.
  • The noise canceling is pretty minimal in my quiet home office. I have those amazing Sony WH-1000XM3 over ears but they’re so scarily good at noise canceling you feel like you’re in a deprivation tank. My house is quiet so it’s a bad place to test this out but I assume they’re a lot better than old airpods on a plane or in a train with regular humming sounds.
  • love the squeeze controls over the swipe controls on the old airpods. The clicks are definitive, you feel it and the music stops, where the old way would work about half the time for me and I’d have to remember what functions I customized them to.
  • The case has wireless charging, which is great!
  • If you ever worried about losing an old airpod while running, these will definitely stay in your ears more firmly. Me, I had no issues in a couple years of running and occasionally riding a bike with airpods in, but these feel more secure.
  • I haven’t tried out the “voice transparency” feature yet, but I hear from coworkers that it does a pretty good job of boosting voice sounds outside the headphones so you can hear people speaking to you.

Oh, and if you’ve already got a set of airpods and don’t want to have a second set, I will say there’s no shame in keeping an old pair by your bedside with an iPad for watching movies, knowing you’ll never take them out of the room and they’ll always be there for late night TV and movie use, while your “main” airpods can be taken to work, out for exercise, and used for travel.

Don’t restore from backup (for a bit of a detox)

I’m two weeks into owning my iPhone 11 Pro and I have to say two things have jumped out since I’ve started using it.

The first is that I didn’t think I’d use the wide angle lens much, but in the past couple weeks, being able to walk around with a phone that shoots similar to 12mm, 28mm, and 50mm lenses has been incredibly handy. The quality of photos that come out of it are impressive, but it’s more the versatility of having almost a lens for every kind of photo I might want to take (if it had a lens somewhere in the 100mm-200m range my needs would be complete). Anyway: the camera lives up to the hype.

Second, and more importantly, this was the first iPhone since the first one in 2007 that I started (mostly) fresh on. I’ve done a download backup/restore from backup on every phone until a couple iOS versions ago they made it even easier where you just bring your old phone near your new phone to copy from cloud backups.

Over the last 12 years, I’ve amassed about 500 apps and though I’ve spent the last couple years trying to turn off notifications for all but the vital ones, having 12 years of history and cruft and settings across 500+ screens meant no matter how much I tried to quiet my phone, it would alert me constantly throughout the day.

So for this phone, I made the move to start fresh, but logging into and linking with my existing iCloud account. This gave me zero apps on the device, but I did get all my photos and contacts and Notes and Shortcuts back.

Getting to re-install just the apps you can remember you need was liberating. I stopped at about 20 or 30. And most importantly, as I added each new app I scrutinized its settings, to make sure I minimized notifications and exposure of my data.

As a result, I have a new fast phone with three great cameras that only puts up alerts on 2 or 3 apps I really need for “red phone” communication. Other than that, nothing else can bother me. I frequently go hours between notifications and it’s been remarkably relaxing to gain some control back. I’ve been able to recalibrate what having a phone in my pocket means, and it’s been a huge positive change.

Whenever I upgrade to a new phone in the future, I’m going to skip dragging all my apps and their history and settings over from my previous devices and go this route from here on out.

How to use Instagram on your mac desktop

1. Open Safari, login to Instagram

2. Go to Safari Preferences, under the advanced tab, then enable the Show Develop menu in menu bar

3. Go back to Instagram, click that new Develop menu and go to User Agent and select Safari – iOS

4. Upload images from your desktop computer for the first time

5. Type out DMs with a full keyboard for the first time

6. Route around Instagram’s damage at not supporting their desktop web experience by cloaking as a mobile browser.

Crater Lake rim ride

Crater Lake in southern Oregon is one of the most beautiful places on earth. It’s the textbook example of a lake formed in the caldera of a former volcano and even though I studied this region extensively in college, I didn’t get to actually visit it until a few years ago.

A couple weekends a year, they do something special for everyone: They close about 3/4 of the road to cars and let bike riders, walkers, runners, and rollerbladers ride the perimeter road. I’ve wanted to do this ride for years but it wasn’t until this week when a friend suggested we do it for his birthday—I was totally in.

We had perfect weather and we had a blast. What follows is a list of stuff I learned from this first outing.

  1. Check the Ride the Rim site and the local weather often, and pre-register if you can, but if it’s too late, it’s fine to show up and just register on site.
  2. Remember to bring about $20 to donate (they suggest $10/rider) and the $25 it costs to get into the national park
  3. The north entrance doesn’t have much parking, the south has loads more. I was glad we picked a start at the south parking lots
  4. If you’re coming from Portland (about 5hrs drive) or San Francisco (about six hours drive), stay near Grants Pass, Rogue River, or Klamath Falls the night before. You’ll be about a 60-90min drive from the start, and there are plenty of adequate hotels in all those places.
  5. Ride it counter-clockwise! The organizers set it all up to be a clockwise ride and that’s probably fun if you use their shuttle to cut off the 9 miles of it shared with cars. If you do ride the entire loop clockwise from the south parking lot, you’ll have huge climbs at the start and the end. If you go counter-clockwise from the south, most of your climbing will be in the morning when you have energy. You’ll get to end the day with six miles of descending too.
  6. Stop at every rest stop. There’s water and small light snacks. You should also pack energy bars or sandwiches because you’ll be feeling tapped out around lunch time.
  7. Stop at every lake overlook. Some of them can’t be reached easily by car. This may be your only chance to stand there and get a perfect photo.
  8. It’s only 35 miles but it took us about 3 and a half hours of riding, about 5 hours of total time with all stops. Budget more time than you’d think for a normal 35mi ride.
  9. Nothing is flat. We were always climbing a 5% grade or descending one. There’s almost no flat land around the entire rim road. It’s kind of amazing how nothing up there is flat. It’s a brutal ride, we climbed over 4,000 feet in the loop.
  10. It’s not that bad to ride the section where cars are allowed if you’re riding it counter-clockwise. After about 2 miles of slow climbing, you’ll descend to the parking lot at speeds faster than a car for several miles.
  11. Bring plenty of cold weather gear. It’ll be chilly in the mornings and no matter how much you sweat on the climbs, you can get cold on descents. Even on a mild sunny day without much wind, I put on a jacket for the longer downhills.
  12. Don’t forget you’re riding at 6,000-7,500 feet above sea level. I was surprised because I forgot to look this up ahead of time and our hotel the night before was around 1,500′ in elevation. The rim road is akin to riding high up in the Rockies.
  13. The lake reflects the sky above so it looks best on a sunny day. You’ll see a deep blue like you’ve never witnessed before and can’t even adequately capture on film.
https://www.strava.com/activities/2732170624
me at the ride captured by event photographers

More on remote work

If you caught my earlier post about working remotely, I would highly recommend checking out Scott Hanselman’s own post about remote work tips which has loads more good advice.

He does a great job breaking down a good/better/best approach for video meeting hardware, with the relative costs of each option. My advice on webcams was firmly in the “better” area of his advice, and I must say I purchased the ring light he mentions in his post and it’s working pretty well for me.

For reference, here’s what my current setup looks like with a ring light and a SAD light going in a meeting.

And here’s what I look like today using those lights during a meeting.

I’m using the Logitech Brio’s auto-smoothing which kinda makes you blurry to hide wrinkles (lol) but good lighting and a good HD camera really help make video meetings pop. I don’t know if I’m ever going down the route Scott suggests of using a dedicated digital camera as a webcam, since I think this is good enough and pretty simple to wire all up.