Personal

Anniversaries Sunday, April 05, 2020

One year after my Dad's death, I was flying back home, out of the first COVID-19 hot zone in the Northwestern US, listening to people cough, feeling the tension in the air.

It was the same flight I caught rushing home, after cutting our vacation short, after he said not to worry: there was plenty of time, and I should enjoy the snow. The same flight where, well before dawn, Mom said to hurry home, things had taken a turn for the worse. The same flight where, on landing in Denver, I found out there wasn't plenty of time.

We were too late. He died while we were in the air.

Today he would have been 92.

The last voicemail I have from him, he was trying to help Z with her ailing Mom, offering advice from a lifetime of medical experience, researching the best approaches to take.

And in the last few months, as we've all gone through this slow-moving wave of death, sickness and horror, he would have wanted to help. He would have found a way.

He was stubborn that way.

He was stupid that way.

He was selfless that way.

Happy Birthday, Dad. We all miss you.

Modern Times Friday, February 07, 2020

Over the years, Shirt Pocket has been hosted on a number of local Unix-based systems. As I recall, it started out on a Cobalt Qube, then moved to a Power PC Mac mini, then the original "tall" Intel Mac mini, and finally to a "short" Intel mini.

These systems served us well, were easy to manage and, important for the time, meant we were fully "in control" of our site and mail.

There were downsides, though.

Apple has obviously moved away from the whole idea of "macOS Server", leaving a lot of the details of keeping things up to date and relevant to the "modern internet"...and eliminating the original "easy to use and manage" reasons for selecting it in the first place.

But even more than that, since the mini wasn't in a data center, extended power or network outages would take our site down completely—an obviously ridiculous situation. A few years ago, a huge snowstorm took cut power for two weeks, and while I was able to find alternate "hosting" for the site (thanks, Jon!), it wasn't ideal. Not to mention when it would happen when I was on vacation.

Fortunately, while macOS Server is no longer really relevant or useful, in its place are a million cloud-based providers, many from huge vendors like Microsoft, Google and Amazon.

A few years ago, I moved from our own Kerio mail server to one of those: Microsoft's Office 365 Exchange service. That went extremely well, and so, with the threat of winter storms looming, it was time to make the change.

As of Wednesday, all of Shirt Pocket is now "in the cloud", as it were. I'm using SSDNodes, a high quality provider with great support for many Unix variants, Docker, fast bandwidth, etc.

Bruce had used them, successfully, to bring up our Paddle-specific micro services, with no downtime during that transition. A good choice.

So, with that experience under his belt, Bruce guided me through the transition (doing much of the work while I looked over his shoulder, learning how to actually work with Docker, Traefic, etc) and the result?

So, we're now up entirely in the cloud. The Mac mini is off, after probably 10 years of always-on (well, mostly-on) service. One of its RAID drives had died and come back to life, and I had a SuperDuper! backed-up SSD ready to go, but now it won't be needed.

You'll get better service with hopefully no downtime, I don't have to worry about the power going off when I'm away, and thanks to Bruce, I now mostly understand how to use, configure and maintain a Docker-based set of services that, in aggregate, look just like the old web site.

While the dusty old graphics and layout still look like they were created in 2005 (yeah, I know - I have to allocate my limited time carefully), and you probably didn't notice anything had changed, the whole thing works...better!

Can't ask for more than that.

And now, after many years of faithful service, the mini gets a well deserved nap. Well done, little guy. Enjoy the rest.

Hoops, Jumped Through Tuesday, November 12, 2019

I don't talk about it much on the blog, but I get an enormous amount of support email. The quantity can be overwhelming at times, and without some automation, it would be nearly impossible for me to do it alone.

Which I do. Every support reply, in all the years we've been here, has been written by me. (Yes, even the Dog's auto response. Sorry, he can't really type. But wouldn't it be sweet if he could?)

No Downtime

The basic problem with being a small "indie" shop is quite simple: you get no time off. I've literally worked every single day since starting Shirt Pocket, without fail, to ensure users get the help they request in their time of need. It's just part of the deal.

But, every so often you need a break, and to try to enforce the "less work" idea there, I try to bring something other than a Mac...since that means I can't do development, but can respond to users as needed.

Automation: It's Not Just for Print Bureaus

Many of the support requests are sent through the "Send to Shirt Pocket" button in the log window, especially when people want help determining what part of their hardware is failing. That submission includes a ZIP file of the settings involved in the backup, which contains the log, some supplementary diagnostic information, and any SuperDuper! crash logs that might have occurred.

One of the first things I did to automate my workflow, beyond some generally useful boilerplate, was to use Noodlesoft's Hazel to detect when I download the support ZIP from our tracking system.

When Hazel sees that happen, it automatically unzips the package, navigates through its content, pulls the most recent log and diagnostic information, and presents them to me so I can review them.

It's a pretty useful combination of Hazel's automation and a basic shell script, and I've used this setup for years. It's saved countless hours of tedium...something all automation should do.

Seriously if you have a repetitive task, take the time to automate it—you'll be happy you did.

Two Years Ago

So, a couple of winters ago, in order to fulfill the "try not to work a lot on vacation" pledge, I took a cellular connected iPad Pro along as my "travel computer". While it was plenty fast enough to do what I needed to do, the process of dealing with these support events was convoluted, at best.

I had to use a combination of applications to achieve my goal, and when that become tiresome (so much dragging and tapping and clicking), I couldn't figure out how to automate it with Workflow.

Now, I'm not inexperienced with this stuff: I've been writing software since something like 1975. But no matter what I tried, Workflow just couldn't accomplish what I wanted to do. Which made the iPad Pro impractical as my travel computer: I just couldn't work efficiently on it.

(I know a lot of people can accomplish a lot on an iPad. But, this was just not possible.)

One Year Ago

So, the next year, I decided to purchase a Surface Go with LTE. It's not a fast computer, but it's small and capable, and cheap: much cheaper than the iPad Pro was.

And, by using the Windows Subsystem for Linux, in combination with PowerShell, I was able to easily automate the same thing I was doing with Hazel on macOS.

I was rather surprised how quickly it came together, with execution flow passing trivially from Windows-native to Unix-native and back to Windows-native.

This made traveling with the Surface Go quite nice! Not only does the Surface Go have a good keyboard, I had no significant issues during the two vacations I took with that setup, plus it was small and light.

This Year

But I'm not always out-and-about with a laptop, and sometimes support requests come in when I've just got a phone.

With iOS, I was back to the same issues that iPadOS had: there was no good way to automate the workflow. Even with iOS/iPadOS 13, it could not be done.

In fact, iOS 13 made things worse: even the rudimentary process I'd used up until iOS 12 was made even more convoluted, with multiple steps going from a Download from the web page into Files, and then into Documents, and then unzipping, and then drilling down, and then scrolling, opening, etc.

On a iPhone, it's even worse.

Greenish Grass

Frustrated by this, a few weeks ago I purchased a Pixel 4, to see how things had progressed on the Android front.

I hadn't used an Android phone since the Galaxy S9, and Google continues to move the platform forward.

As I said in a "epic" review thread

iOS and Android applications are kind of converging on a similar design and operational language. There are differences, but in general, it's pretty easy to switch back and forth, save for things that are intentionally hard (yes, Apple, you've built very tall walls around this lovely garden).

And while Android's security has, in general, improved, they haven't removed the ability to do some pretty cool things.

And one of those cool things was to actually bring up my automatic support workflow.

Mischief, Managed

Now, given you can get a small Linux terminal for Android, I probably could have done it the same way as with Windows, with a "monitoring" process that then called a shell script that did the other stuff just like before.

But, instead, I decided to try using Automate, a neat little semi-visual automation environment, to do it. And within about two hours, including the time needed to learn Automate, it was up and running.

Automate Unzip Logs Workflow

I'm not saying the result isn't nerdy, but it was doable! And that made it entirely practical to respond to people when I'm using a phone, even when they send in a more complex case.

Will that be enough to encourage me to stay on Android? I don't know. But, combined with the other iOS 13 annoyances (apps that get killed when they shouldn't, constant location prompts even after you've said "Allow Always", general instability...so many things), it's been a comparatively pleasant experience...Android has come a long way, even in the last two years.

It's really nice to have alternatives. Maybe I'll just travel with a phone this year!

Unrelated Stuff I Like Friday, August 09, 2019

As we plug along with our Catalina changes, I thought I might write a quick post talking about some other stuff I'm enjoying right now. Because, hey, why not.

Coffee Related

Software Development and Coffee go together like Chocolate and My Mouth. And so, a lot of it is consumed around these parts.

I would never claim to be an expert in these things, but I've really been enjoying the Decent Espresso DE1PRO espresso machine. It doesn't just give me a way to brew espresso—many machines can do that—but it gives me the information I need to get better at it, and the capability to make the kind of adjustments needed to do so consistently.

It's a pretty remarkable machine. Basically, it's a very "complete" hardware platform (pumps, heaters, valves, pressure monitors, flow meters, etc) that's driven entirely by software. It comes with a tablet that runs the machine's "UI". And you can tap a button to brew an espresso.

But you can also see the exact pressure/flow/temperature curves happening in real-time as the brew happens. And, even more importantly, you can extensively change the behavior of the machine—adding pauses, changes in pressure, temperature, flow, etc—very easily.

You can emulate lever-style brewing. You can do "Slayer" style shots. You can do simple E61-style shots. The possibilities are endless.

And all of this happens in a machine that's much smaller than any other full capability espresso machine I've ever seen.

And that's not even going into the super helpful and friendly owner forums.

I've spent at least eight months with mine, which I preordered years before it shipped, and it's really made a huge difference. Highly recommended, and surprisingly available at Amazon, but also at the Decent Espresso site. There are less expensive models at the Decent site as well: the PRO has longer duty cycle pumps.

Power Related

A few years ago, I purchase a Sense Energy Monitor to see what I could learn about power consumption in our house beyond just "the bill every month".

Sense is a local company that uses machine learning and smart algorithms to identify individual loads by sensing waveform shapes and patterns in your main electrical feed. So it can identify, over time, a lot of the devices that are using power, how much power they're using out of your entire power use, etc. Which, as a problem, is super difficult...and they've done a very good job.

Sense can identify quite a few things, given time, including electric car charging, refrigerator compressors, AC units, sump pumps, resistance heaters, washing machines, dryers, etc. And it's getting better at these things all the time.

But, of course, they know they can't figure out everything on their own. It's easy for us to plug something in, knowing what it is, and wonder "hey, Sense, why can't you tell me that's an iPhone charger", when that tiny 5W load is deep in the noise of the signal.

So what they've done, on top of their "line" sensing, is integrate with "smart plugs" from TP-Link and Belkin. You can identify what's connected to those plugs, and the Sense will find them and integrate that information into its own energy picture. Plus, the additional information helps to train the algorithms needed to detect things automatically.

It's cool stuff. If you go in not expecting miracles ("Waah! It didn't detect my Roomba!"), and you're interested in this kind of thing, it's pretty great.

$299 at Amazon.

Plug Related

Speaking of smart plugs, boy there are a lot of bad products out there.

There seems to be a reference platform that a lot of Chinese-sourced products are using, with a 2.4GHz radio, some basic firmware, and an app framework, and a lot of products lightly customize that and ship.

Belkin

I don't know if that's the case with Belkin, but their products, while somewhat appealing, fall down hard in a pretty basic case: if there's any sort of power failure, the plug doesn't remember its state, and comes up off.

Given the plug can remember many other things, including its WiFi SSID and password, you'd think it could remember the state the plug was in, but, no.

That behavior along makes it unacceptable.

Not Recommended - no link for you, Belkin.

TP-Link

TP-Link has two products in its Kasa line that do power monitoring: the single socket HS110 and the 6-outlet HS300 power strip.

Both work fine, although the HS110 mostly covers up the 2nd outlet in a wall outlet, and that makes things inconvenient. The HS300 is a better product with a better design. All six outlets are separately controllable and each measures power as well. As a bonus, there are three 5V USB charger ports.

Both properly maintain the status of plugs across a power outage.

I've used both of these successfully in conjunction with the Sense. Standalone, the software is meh-to-OK for most things. It's fine.

There's support for Alexa and Google Home but not HomeKit (the Homebridge plugin only seems to support the HS100).

Highly Recommended for Sense users (especially the HS300); Recommended with caveats for standalone users.

Currant

The Currant smart plug is so much better than any of the other choices in most ways, it's kind of remarkable.

Unlike most other smart plugs, the Currant has two sockets, accessible from the side. It works in either horizontal or vertical orientations, with either side up (the plug can be swapped), and it's got a position sensor inside, so its app can unambiguously tell you which plug is left/right/top/bottom.

The plug itself is attractive and well built. The software is great, and if it's built on the same platform as the others, they've gone well beyond everyone else in terms of customizing their solution.

Plugs are quickly added to your network and the app. New plugs are found almost instantaneously, and announced on the home screen.

Plugs can be named easily, associated with icons and rooms, and the power measurements involved constantly update and are accurate.

Their software automatically recognizes usage patterns and suggests schedules that can be implemented to save energy.

You can even tell them what your power supplier is, and they'll automatically look up current energy costs and integrate that into the display.

There's support, again, for Alexa and Google Home but not HomeKit, and there's no Homebridge plugin. A future version looks to be coming that's a regular wall outlet with the same capabilities.

Finally, as of right now, there isn't (sniff) any support for the plugs in the Sense system.

All that said, these come Highly Recommended for standalone users...and I'd even recommend them for Sense users who don't need these particular loads integrated into the app. They're still measured, of course...they're just not broken out unless recognized normally via Sense's load sensing algorithms.

Here's hoping the Sense folks add support.

The WiFi versions of these plugs were initially expensive at $59.99. However, as of this posting, they're half price at $29.99. Available at Amazon.

RIP Kenneth Nanian - 1928-2019 Wednesday, March 13, 2019

On March 7, 2019, I unfortunately lost my Dad (which is why support has been a bit slow recently). I thought I'd post my eulogy for him here, as delivered, should anyone care. He was a good man, and will be missed.

Good morning, everyone. I’m David Nanian, up here representing my Mom and my brothers, John and Paul. Thanks so much for coming.

All of us here knew my Dad and were, without question, better off for it.

He’d greet you, friend or soon-to-be-friend, with a smile and a twinkle in his eye because, well, that was the kind of person he was. He exuded warmth and kindness. It was obvious as soon as you saw him.

And so we’re here today to celebrate him. To celebrate his achievements, certainly, because he was a great doctor. But also to celebrate his … his goodness. He was, truly, a good man.

It took my brothers and me a while to realize this. Like most kids, we went through the typical phases as we matured, where Dad went from a benevolent, God-like presence when we were kids, to a capricious one when we were teens… but that was mostly about us, not him.

Dad worked hard. Mom was a constant, grounding presence at home, but Dad’s typical day started early, and he usually wasn’t home until 8.

Dad’s sunny optimism and caring nature helped to heal many patients, but it took a lot out of him, and when he did come home, he was bone tired. After eating he’d usually fall asleep in his chair in front of the TV—only to awaken if we tried to change the channel. My brothers and I even tried slowly ramping down the volume, switching the channel, and then ramping it back up…it would sometimes work, but when it didn’t he’d wake up with a start, hopping mad.

He’d work hard, and would cover other doctors’ shifts on holidays, so that he’d have larger blocks of time for vacation with the family. And when that time came, he was a sometimes exhausting whirlwind of energy, trying to cram in eleven-something months of missed family time into a few focused weeks…something he’d be looking forward to with anticipation, while we were a bit more apprehensive.

Where would the new “shortcut” on the ride to Kennebunkport take us this time? Was Noonan’s Lobster Hut 3 minutes or 3 hours away?

It was always an adventure.

When I was in my teens, Dad gave me a job mounting cardiograms. I think all three of us did this work at one point or another. It gave us a chance, not just to earn a little money to fritter away on comics or whatever, but also to see Dad at work. There, we could see how admired he was by his colleagues, staff and patients, and I began to see him not just as the “Dad” presence he was during our childhood, but as a real person.

During this time (and even today: Mom recently had this happen in an elevator when Dad was in the hospital), people would constantly stop me in the hallways and tunnels of Rhode Island Hospital as I was doing an errand for him—typically, getting him a Snickers bar—and they’d tell me what a great person he was. How he’d helped take care of their parent, or had a terrific sense of humor, or how quick he was with a kind word or helpful comment.

Later, during my college years, my friends—after meeting my parents—would constantly tell me how awesome my Mom and Dad were. How normal. How much they wish their own parents were like mine.

Which was weird at the time, but, I mean, they were right. I have great parents. I had a great Dad.

So I wanted to tell three little stories about why that was, from when I was old enough to understand.

Dad’s enthusiasm and optimism were positive traits, but they occasionally got him into some trouble.

I’d recently graduated from College, and that winter our family went on a ski vacation to Val d’Isere.

Dad was absolutely dying to try Raclette—which, if you don’t know, is a dish popular in that region where a wheel of cheese is heated at the table and scraped onto plates that have potatoes, pickles, vegetables, meats. It’s delicious, but quite filling.

So, we went to a small, family restaurant, and they brought out the various parts of the dish—there were quite a few plates of the traditional items—along with a big half-wheel of cheese and its heating machine.

Now, normally, that 8 pound chunk would last the restaurant a long time. It seemed super clear to the rest of us, just from the size, that there was no way it was “our cheese”. But Dad was absolutely convinced we were supposed to finish the whole thing. To do otherwise was to insult our hosts.

And so, to the obvious horror of the owners watching from the kitchen, Dad—in an attempt to not be ungrateful, to not be the ugly American—tried to finish the cheese.

The rest of us tapped out, but more plates came as Dad—never one to give up—desperately tried to do the right thing.

In the end, much to his chagrin, and the owner’s obvious relief, he couldn’t. Dad apologized for not being able to finish (I think, this is where my brothers and I snarkily told him to tell the waitress “Je suis un gros homme”), and they replied with something along the lines of “That’s quite all right”—but Dad’s attempt to conquer the wheel with such gusto, for the right-yet-wrong reason, even though we could all see the effort was doomed, was human and funny and endearing.

He loved to sail. We had a small boat, a 22-foot Sea Sprite named Systolee, and we’d sail it for fun, but Dad also participated in the East Greenwich Yacht Club’s Sea Sprite racing series.

Season after season, we’d come in last, or second to last, but he had a great time doing it, holding the tiller while wearing his floppy hat, telling us—the crew—to do this or that with the sails.

I’d had some success one summer racing Sunfish, and the next year, Dad let me skipper the Systolee in the race series, with him and Mom as crew.

I didn’t make it easy. It was important to be aggressive, especially at the start of a race, and both Mom and Dad would follow my various orders nervously as we came within inches of other boats, trying to hit the line exactly as the starting gun went off.

But he let me do it. He watched me as, one day, I climbed the mast of the pitching boat in the middle of a race in a stormy bay to retrieve a lost halyard—admittedly a crazy thing to do—despite his fear of heights, since he knew abandoning the race would be end up being my failure, not his.

And that season, we came in second overall. But more than the trophy and the opportunity, he gave me the gift of trusting me, and treating me as an equal, week after week. Of allowing me to be better than him at something he loved.

Finally, Dad had some health challenges later in life. At one point, he came down with some weird peripheral neuropathy that was incorrectly diagnosed as Lou Gehrig’s Disease.

Fortunately, more testing in Boston showed that it wasn’t ALS, but some sort of neuropathy, and while it didn’t take his life, it did take away much of his balance, and with that, it took away skiing.

Dad loved skiing—and missed a real career writing overly positive ski condition reports for snow-challenged Eastern ski areas—and from my earliest days skiing with him it was clear he wanted nothing more than to be the oldest skier on the slopes, teaching his grandkids to love it the way he did.

Possibly, he just wanted to be old enough to be able to ski for free. He did love a bargain.

Anyway.

He didn’t let his neuropathy hold him back—of course he didn’t—and started traveling with Mom all over the world, and they’d regale us with the stories of the places they’d been, the classes they took…the number of bridge hands they won (or lost). He especially loved the safari they went on in Tanzania, and brought back many great pictures of the landscape and wildlife they’d seen.

He loved learning new things, and had more time to read, to make rum raisin ice cream (the secret, he’d tell us, is to soak the raisins in the rum…overnight!), and to enjoy the Cape with Mom. He was able to relax and play with his grandkids, and it was great to see him entertain my friends’ kids as well.

When he got his cancer diagnosis, he took the train to Boston to meet with his doctors, learned about Uber and Lyft, and was just fiercely determined, independent and optimistic. To illustrate his attitude, he just had a cataract repaired and he had the other one scheduled to be fixed in a few weeks.

During this time, the doctors and staff at Mass General would tell us that he was their hero. Not, I think, for facing his disease with courage and determination, although he did do that. But because he was 88, 89, 90, and full of life, of humor, and of love.

And of course, we all saw that too. Because he was our hero.

The last time I was with Dad, just a few weeks ago, he was clearly feeling poorly, and while he kept a brave and cheerful facade he also, with a voice tinged with regret, wanted to make sure that I knew how proud he was of John, and Paul, and me. And how he felt badly that he never told us that enough…because he didn’t want to spoil us.

You know, books and movies through the centuries constantly depict sons and daughters desperate to get the slightest bit of approval from their dads.

For us, though, he took clear delight in what we all did. He looked with admiration and approval at John’s beautiful photography, Paul’s Peace Corps service and ultralight outdoor kit business built from his travel and experience hiking the Appalachian trail, my crazy computer stuff.

And so I told him, as clearly as I could, that it was never in doubt.

Of course we knew. 

Just as each and every one of you know how much he cared for you. Whether you were part of his family, a patient, or a friend, he made it clear. He was truly happy to know you. You were truly loved.

And now he’s gone, and the world is a little bit darker because of it. But we all have, within us, a memory of him. A memory of his kindness, his boundless optimism, his love, his zest for life.

And with that in our hearts, we can look out, perhaps at the snow outside: dirty brown, with bare patches, rocks, ice…ice covered rocks. You know, if you’re an Eastern skier: it’s “machine loosened frozen granular”.

Imagine him there, with his arm around your shoulders, and a big smile on his face, and see it the way he’d make you see it.

See that the snow condition’s fantastic. It’s always fantastic. Life is terrific. Every day.

Remember that, greet the day with a mischievous smile and an open heart, and think of him.

Relax, Have a Homebrew! Monday, October 16, 2017

Off-topic alert!

Over the past few months, I've been enjoying brewing beer at home with a Pico Pro. No doubt purists scoff a bit at the automation involved during the mash and boil, but it's a relatively small part of the beer making process...and doing a true, temperature-controlled step mash without investing in an expensive setup (not to mention the space it would take up) is a huge win.

It's been a lot of fun.

The biggest challenges, and the place where a lot of brewers fall down, are in sanitizing and controlling fermentation: keeping things at the right temperature, consistently, so the yeast can work its magic efficiently without producing off flavors.

I can't help with sanitizing (you just have to do a better job!) but I can help with fermentation!

To that end, there's a great device called a TILT Hydrometer. The TILT drops into your fermentation vessel (which, in the case of a Pico Pro, is a small, 1.75L corny keg), and transmits both temperature and specific gravity via Bluetooth 4/BTLE. It's pretty cool, and by using TiltPi, along with a Raspberry Pi Zero-W to receive the bluetooth data and log it to a Google Sheet, it does all this automatically. You just peek at the sheet every so often to see how things are doing.

That all works great, but reviewing the data I realized I was having trouble controlling the temperature precisely using an external thermometer. Given the open source nature of TiltPi, and that fact that it was built with Node-RED, I thought, hey—I could use the temperature being transmitted by the TILT as a current measurement, and then use IFTTT and a few WeMo switches to exactly control both heating and cooling!

So, over a few hours in between doing SuperDuper! stuff, I learned Node-RED, figured out how TiltPi worked, added automatic temperature control, and found/fixed some TiltPi bugs at the same time. It works great!

I've provided the TILT people with my modifications to TiltPi, and hope they'll be integrating it into the official TiltPi release. Until then, here's how you can use it:

  • Set up TiltPi according to TILT's normal instructions.
  • Download and unzip this text file and open it in your favorite editor.
  • Open the TiltPi Node-RED editor. This should be here: http://tiltpi.local:1880.
  • Copy the contents of the text file to the clipboard.
  • Using the "hamburger" menu, select Import > Clipboard. Paste the copied contents into the box, and choose to import into a "New Flow". It'll be called "Main".
  • Switch to the old flow tab and delete it.
  • Click Deploy.

That's all the hard stuff. Next

  • Set up your IFTTT Webhooks service so you get a key.
  • Copy that key to the clipboard.
  • Open TiltPi's normal interface at the URL it sent you when it started up (usually http://tiltpi.local:1880/ui/#/0).
  • Using TiltPi's hamburger menu (so many hamburgers!), select "Logging".
  • Paste your key into the IFTTT key* field.

Then, set up your various color TILTs normally. You'll see a Target Temperature slider - that's configurable on a per-TILT basis and defaults to 70F: reasonably appropriate for ale fermentation.

The next step is to set up the heat and cool steps in IFTTT. (I assume you've already got your WeMo switches configured and WeMo is connected to your IFTTT account.)

  • Create a New Applet in IFTTT.
  • For the "This" clause, add a Webhooks service.
  • For the event name, use TILT-COLOR-temp-low, TILT-COLOR-temp-high, or TILT-COLOR-temp-just-right. depending on what you want to do.
  • For "That", add the appropriate WeMo switch action.

For example, let's say that I want to control a heater for a BLUE tilt. I'd add three Webhook applets:

If BLUE-temp-low then Blue WeMo Heater Switch on
If BLUE-temp-high then Blue WeMo Heater Switch off
If BLUE-temp-just-right then Blue WeMo Heater Switch off

If you want to both heat and cool, you'd add three more events (since you unfortunately can't add extra actions to an existing event):

If BLUE-temp-low then Blue WeMo Cooler Switch off
If BLUE-temp-high then Blue WeMo Cooler Switch on
If BLUE-temp-just-right then Blue WeMo Cooler Switch off

More events can be added for more TILTs, each with its own target temperature and WeMo switch(es).

If you don't have a cooling device, and it's warm where you put your keg, do what I do: put the keg in an insulated cooler bag (I have an old version of this bag) along with an ice pack. That way, when the heater goes off, the ice pack will act as a cooler.

I hope that helps some of you make better beer. Enjoy!

Note: this post was updated on 10/22 with a new version of the flow that works better with multiple TILTs, now that I have more than one.

Racer I(talian), Part Four: Canazei to Corvara Monday, July 18, 2011

Our previous was the biggest day of climbing before the Maratona, but today wasn't much smaller, with three passes to traverse on the trip from Canazei to Corvara. And once again, we'd be doing some of the passes that would feature in the Maratona, albeit from other directions: Falzarego and Valporola.

I'd been feeling a bit better over the last day, perhaps riding into form (such as it is) before the event. But this night threw me a lovely little loop: the Shirt Pocket server went down due to lightning storms and power failures in the Boston area around 6pm my time, while I was catching up on support that built up during the day's riding.

So after barely being able to keep up with (let alone balance) my personal and work duties over the past few days, the worst happened.

Unfortunately, by the time power came back connectivity wasn't restored, and it was a few sleepless hours before everything was squared away again. The backed up emails came flooding in, and I was up until some awful hour trying to catch up. Two hours of restless sleep later, I tried to finish more before breakfast, ate, packed and jumped back on the bike.

Passo Fedaia, Falzarego and Valporola: 41.1 miles, 6,357 feet of climbing

We started climbing almost immediate, up and over Passo Fedaia, and I have to say I don't remember a darn thing about the first climb. Nothing. I attribute that to a lack of sleep, mostly, or I was just in a make-the-legs-go-round zone. Whatever it was, less than an hour later we were at the top, with a view of the Marmolada glacier.

The descent after Fedaia obvious had our guides worried, because Enrico practically begged us to be as careful as possible on the way down: it was, indeed, steep, and unbroken is the man who takes advice offered in good faith. With that kind of pitch on the descent, it didn't take us long to start up Passo Falzarego (HC, 9.3mi, 2933 feet of climbing).

This was one of my favorite climbs of the trip, with lots of switchbacks (18, as I recall), beautiful views, and a great switchback-dug-through-the-mountain a few kms from the top. A nice bar at the top meant a delicious doppio espresso macchiato, and after a regroup and some snacks we headed up the small climb from Falzarego to Valporola.

Enrico encouraged us to stop and tour the war museum here, inside the Tre Sassi fort, which was an Austrian stronghold during WWI. A bit eerie to approach, since there was an authentically dressed Austrian soldier standing guard and smoking a pipe at the entrance, the actual exhibits were excellent and, as expected, a bit horrifying, including a display of the three-headed maces and clubs soldiers used to deliver the "ultimate blow" to the wounded soldiers who had been gassed.

A lot to think about during the long, twisty descent into La Villa the climb to Corvara: our home base for the next few days.

Racer I(talian), Part Three: Enter the Dolomites Friday, July 15, 2011

Re-reading the last two blog posts, it's pretty clear I'm both out of blogging practice and at a loss for words that might actually describe this experience. Part of that is due to the nature of what we were all doing: how do you talk about exertion and sweating and momentary accomplishment in a way that might be even remotely interesting?

Sorry about that. Still tired, perhaps not fully processed. But I'll keep going just to get it out there.

It's funny, because I wrote a few emails to Zabeth to keep her posted on how things were going, and she replied to one saying "yes, but how do you feel?"

My only response was: kind of blank. I didn't mean that in a negative way, either. I don't do a lot of thinking on the bike. It's not exactly "downtime", but you're so focused on the activity, the beauty, staying upright, being considerate of others on the ride, etc, that there's not a lot of space for deep, meaningful thoughts.

You almost feel like one of those professional riders at a post-race interview. Asked about the race, the comments that come back are nearly always pretty simple and banal: "I'm just so happy", "I'm glad it's over", "We rode hard today".

But that's what comes to the front. You're happy it's over. You rode hard. Tomorrow's another day on the bike, another great meal, another beautiful climb, another fast descent, another hotel, another shower, another restless sleep.

They're all the same, but they're all different, and those differences are hard to describe. The shared camaraderie of the group, the little jokes and comments as we, separately-but-together, push and pull our way up thousands of feet, across the miles, struggling sometimes, spinning more easily others, trying to make sense of the rhythm and pitch of the road, the angle and curves of a descent.

Your thoughts, in the end, are simple, because you're part of a machine. You have a job to do, to partner with your bike and get up and over and down these mountains.

So you do it.

Cliffhanger

Terrible movie, if you've seen it. But it's hard to argue with the natural beauty all around–those mountains Stallone fake-climbed (he's afraid of heights) were the Dolomites. And they're spectacular. Huge, sheer limestone cliffs jutting up out of treed slopes; blasted and dug holes that were filled with soldiers and snipers during World War I as the Italians and Austrians fought and killed each other (not that any war is good, but WWI's trench and mountain warfare was just awful).

The result of Italy's victory was Sud Tyrol, northern Italy's unique combination of cultures, languages, architecture and cuisines. We rode from Bolzano to Canazei, up and down these roads, the limestone above turning the mountain streams a silvery-white, and not even the sweating and struggling could distract (much) from the beauty all around us.

Passo Pinei and Passo Sella—42 miles, 7750 feet of climbing

Despite the beauty, there was one thing on all our minds: today was the biggest climbing day yet. But even though both passes were difficult, the weather cooperated, the climbs varied, and the time passed more pleasantly than the day before.

Passo Sella is especially beautiful, and we'd be doing it again in the Maratona later in the week, so it was nice to get a chance to "scout" it a bit.

Due to my own total lack of knowledge, which you can read as "sheer ignorance/forgetfulness", I was constantly surprised at the number of ski lifts and runs all around us. Well, it turns out that this is all part of Dolomiti SuperSki which, with one ticket, lets you ski virtually everywhere we'd been and where were were going, all connected by an incredible number of lifts and trails. It's kind of like the Trois Vallées area, except, well, bigger (and, from what I can tell, more family oriented).

Anyway, we descended off the Sella into Canazei to a lovely hotel called La Cacciatore (right next to a ski lift, of course), had a delicious meal and slept like dogs.

The next day we'd be heading to Corvara and our final hotel (the first where we'd get to spend more than one night), to scout more of the climbs we'd be doing in the Maratona...and to get a feel for the incredible number of riders who were flooding the area during Race Week.

Racer I(talian), Part Two Thursday, July 14, 2011

When you're pushing a way up a climb, going 12kp/h or whatever you're managing, panting and aching, it's humbling to think about how quickly your typical professional cyclist can manage the same thing. Of course, it's their job, and (and I mean this in admiration) they're basically mutant superheroes as well.

We had a reminder of that at the top of the Stelvio when, as a group of us were standing there patting ourselves on the back for getting to the top, a group of riders in Quick Step gear came up over the top so fast they knocked us all back on our heels.

We all went silent for a moment, and I know what I was thinking: wow, no matter how long I do this, no matter how many mountains I climb, no matter how much weight I drop, no matter how many intervals I do, I'll never even approach that. And they weren't even pros, as far as I know. Really amazing.

Controlled Falling

It's not just ascending that's challenging, though; descending is quite difficult as well. You need to control your speed, pick just the right line through the turn, brake at the right time, keep your weight on the right pedal, with your body lined up right with the bike... and everything, as you whip around the corner, is precariously balanced on a 1" strip of rubber against often broken pavement.

And the people who are good at this—I mean really good—are incredibly, unbelievably, going-70-mp/h-down-a-scary-grade-and-whipping-around-corners fast. And they're doing this on a road that's shared between cars, bicycles, motorcycles, walkers, buses... but even on a closed road, it's hard to believe that they're doing what they're doing.

I'm not a terrible descender, and I find it fun, but again: totally different league. And so, we picked our way down the 48-plus hairpin turns, brakes squealing, hitting pretty high speeds and hoping that nothing would go wrong so early in the trip.

Thrilling, nerve-wracking and successful, I'm pleased to say, and we met for lunch in a town at the bottom.

The total: about three hours of sweating up. About 20 minutes of heart-in-your-throat wooshing down.

A ride to our next hotel, the Hotel Hanswirt (a really fantastic hotel in Rablá), eat-work-sleep-eat and we're off again.

Passo Paladi & Passo Mendola—51 miles, 5402 feet of climbing

The third day was beautiful, sunny and hot from the get-go. Feeling kind of happy that the Stelvio was done, I went out faster than I should have and Paladi, an 11 mile HC climb averaging about 7.4%, decided to teach me a slow, painful, sweaty lesson.

Every climb has a personality. The Stelvio was hard but varied, with a lot of switchbacks and beautiful scenery. Our legs were fresh. We were ready to test ourselves. But for me, at least, Paladi was a slog. There were very few turns. The sun beat down, making the high humidity even more oppressive, and any shade was few and far between. Getting up to the top was a confidence-sapping, nearly two hour Mom-are-we-there-yet struggle.

But it got done.

Passo Mendola, despite being Cat 2, was comparatively easy and dispatched pretty quickly: a relief. Lunch, followed by a fun, fast, twisty descent towards Bolzano, brought us to the city's incredible bike trail system.

I don't think I've ever been to a city quite as friendly to bicycles as Bolzano, something I didn't notice when I first arrived for my brief stay before the trip started. There are a huge number of extensively used bike paths. No cars are allowed in the middle of town, which is a pedestrian mall, surrounded by beautiful scenery.

It's really a lovely town... and, after the typical dinner-work-sleep-work-eat-pack ritual, we left it all too soon for what was scheduled to be our biggest climbing day yet.

Racer I(talian), Part One Wednesday, July 13, 2011

My original plan was to blog about the Maratona dles Dolomites, and the week leading up to it, while it was happening. It'd been a while since I'd written things with any regularity, and it seemed to be a good way to get started again.

Foolish me.

Given the length and intensity of the cycling, and the amount of work I had to catch up on in the morning and evening, there was just no real way for me to execute that plan while still getting a few hours of sleep every night. And I definitely needed sleep.

So, plan B was to tweet occasionally and write things up after-the-fact.

Welcome to Plan B

As I wrote before, I'd tried to train as much as I could during the months before the event, both with and without friends (the great group of enthusiastic and knowlegeable folks at Ride Studio Café in Lexington). I'd configured and packed up a fantastic titanium bike from Seven Cycles, a great Axiom SL with couplers that fit me perfectly and could break down into two pieces. This allowed it to be packed in a small case, the Co-Motion Co-Pilot about the size of a wheel and less than a foot deep (26"x26"x10") - easily checking as regular luggage and, with handle and wheels, rolled onto planes and trains and through the streets of Italy as needed.

Honestly, if you're doing any kind of serious cycle-touring, a great bike with couplers and this case is a fantastic way to go. I can't speak too enthusiastically about either the bike or the case.

I booked things so I arrived in Bolzano a day before the main group (relatively late at night due to the flights), and stayed a night at the Stadt Hotel Città, who were kind enough to feed me when I came down to dinner a bit late after catching up with the support email that'd come in during my travels.

The next morning, I met the host of the FredCast, David Bernstein, during breakfast: it was great to put a face to the voice, and as he wrote in his own blog, we were both quite worried about the first real day coming up, climbing the Stelvio. (David blogged his impressions of the trip in far more detail than I'm going to, and he took a lot of great pictures - you can find his posts and pictures here.)

Warm-up Day—15.2 miles, 810 feet of climbing

Our guides, Enrico and Massimo (both great people and cyclists) were at breakfast, and we met with a number of the other people on the trip as we headed out to the shuttle that would take us to Glorenza, a great village, and our first hotel, the Hotel Post Glorenza, a beautiful and comfortable way to begin our tour.

The morning brought bicycle assembly (which took less time than expected) and a short ride to shake out the legs and highlight/resolve any mechanical problems. Three of us (not including the guides) had brought our own bikes, and one of them was a Seven Axiom, which was great to see.

The first ride was short, including a brief extra loop up the approach to the Stelvio, and it was fun talking, getting to know and riding with the others on this adventure. A delicious dinner and restless sleep later, our adventure began in earnest.

Passo Stelvio (The King)—61 miles, 6495 feet of climbing

It's hard to describe how incredibly different the riding in Europe is compared to what I'm used to. On my normal rides, we might have 2000 feet of altitude gain, but that's often done a few hundred feet at a time. Elevations rarely go over 1000 feet, and a typical climb takes 10 minutes or so.

Compare that to the Stelvio, which was around 13 miles and over 5000 feet of elevation gain, averaging well over 7%. A real HC climb (well, category 1 in Italy, since there's no HC).

Never done anything like that before. And, frankly, I had no idea how to pace myself. I don't know what my zones are, don't train with power, and rarely use my heart monitor thingy (which wasn't working anyway) so, well, I just tried to stay in a comfortable-but-not-relaxed zone. There was a lot of climbing to come, and it didn't make sense to hit everything hard.

And, well... it was tiring but fun! The scenery was beautiful, the company pleasant, the bike worked well and before I knew it I was confronting the famous figure of Fausto Coppi.

I remember thinking it was absolutely crazy to have us climb this particular climb so early in the trip, but now I completely understand why: if we could do this (and we proved we could), there was nothing coming up that we could not do. It was a huge confidence boost to get up (and down) this famous climb, and I think we all felt that, after all the pre-trip doubts, we were actually ready for what was to come.

And there was a lot to come.

Page 1 of 10 pages  1 2 3 >  Last »