Sunday, December 16, 2018

Kegerator v1.0

A local brewery, Four Generals, makes a fantastic milk stout called Buddahed that took gold in this year's Washington Beer Awards. Last year, as their supply was waning and I had the dry summer months looming, I mused that perhaps I should have gotten a keg to tide me over. Andrea, being awesome, told me to buy a kegerator and a keg to go with it this winter. As luck would have it, a friend of mine owns a good deal of homebrew equipment that he couldn't take abroad with him on a few year assignment. So I am now the steward for the next few years of two corney kegs and a CO2 tank. With that, I decided to try my hand at making a kegerator and setting it up.

The first was to refill the CO2 tank. A 5lb tank should last two kegs, according to the salesman, though no indication as to whether that's two full kegs, two half kegs, two sixth kegs, etc., but we'll find out. It cost $17 for a trade-in tank.

The missing piece -- the kegerator -- turns out to be a few hundred dollars and makes the financial aspect of a residential tap less palatable. But I found a wine fridge (which is bigger than a typical apartment- or dorm-style fridge/freezer combo) on craigslist for free that really just needed some TLC and some work on the thermostat.

I picked it up for the cost of gas to Redmond, brought it home, and started playing with it. The thermostat, even on full cold, didn't get the fridge less than like 55°.

I disconnected the wires from the thermostat (above, with the quick disconnect ends) and connected them, and within an hour, the fridge was well below freezing, so I knew it worked okay. According to some research I did, beer is "ideally" kept at 38° (though a discussion I had this morning with one of the guys at Brewhouse Provisions in Redmond said that stout is typically upper 40s or lower 50s). The problem, then, is how to replace the thermostat. I didn't really want to just get another plain old thermostat (even though that would have probably been the prudent thing to do) -- this is an opportunity to do something interesting.

Instead, I bought three Arduino Nanos for about $12, a pack of six relays for about $11, three thermistors for $9, a pack of LEDs and resistors, some protoboards and breadboards, and probably a few other things. Having never done much soldering or EE work to speak of, designing the extremely simple electronics was quite a bit of work for me. Both the kitchen table and my hands had some burns from the soldering iron:

In the end, I was able to wire up a thermostat that functions.

The software was a lot easier. (Code available here.) The basic idea is:
  1. Using a thermistor, read the temperature inside the fridge.
  2. Give a visual indication of the inside temperature: red for temperatures above the desirable range, blue for temperatures below, and green for the Goldilocks zone.
  3. When the temperature is in the red, kick on the relay for the fridge, starting the cooling process.
  4. When the temperature goes into the blue, turn the relay off.
  5. When the temperature is in the green, do nothing.
I got it all rigged up and tested in (and out of) a glass of ice water:

The visual output indicating the temperature is too warm (left), too cold (middle), and just right (center)
With a functioning thermostat, I started installing it in the fridge. As of now, I'm not drilling any holes in the walls, so I taped the thermistor to the inside wall:

Side note: My soldering and wiring was so terrible that every component except the blue LED failed at some point, and I had to re-solder everything. I consider this a lot like writing code: when you're a new programmer, you write terrible code. But the next project is marginally less terrible. Eventually, your code only kind of sucks, and you get to consider yourself a professional.

After the installation was more or less stable, I hooked up the laptop and started getting temperature readings. My software polls every five seconds (because more frequently isn't needed, and why not every five?). I opened the serial monitor and started collecting temperature measurements.

After about an hour -- when I was tired enough that I was ready to go to bed -- I copied the serial logs and plotted the temperature. At the time, my code was set to have a desirable range of 36-41°F. At the beginning of the readings, the temperature was roughly 60°. I grabbed the sensor to warm it up slightly, but it pretty quickly cooled down. After hitting the low end of the temperature range, the relay kicked off and the fridge slowly warmed up over the next half hour:

So the thermostat was successful, and next was a trip to Brewhouse Provisions to buy a D-type Sankey keg connector because, as I discovered, the Corney kegs I have are a different connection type. Then off to Four Generals with Reed to buy my keg. (This should have had a picture, but I neglected to do so.) About $92 for a 1/6 barrel (plus deposit, but that's refundable, so I won't count it). And finally, back home to put it all together.

Hooking up all the hoses and fittings was super easy and nothing particularly interesting to document.

My overall list of items and costs are as follows:

Half CO2 tank(?)$8
Arduino Nano$4
Temperature sensor$3
Miscellaneous electronics$1
D-type Sankey keg connector, hose, fittings$67.30
1/6 keg$92

With a little luck, all of the equipment will survive, leaving me with an average cost per pint of about $2.40. A bigger (1/2 barrel) keg will bring this cost down to roughly $1.50/pint.

Sunday, December 9, 2018

Belated Thanksgiving in Minnesota

Last year was our first time staying in Seattle for Christmas, and it was fantastic. This year, we decided we'd do the same, but we'd visit family for Thanksgiving instead. When it came time to buy tickets, we found that we could save a substantial sum if we delayed our trip until after the holiday, and, to boot, it would make the planning a bit easier for visiting families and friends.

The trip through SeaTac was itself an adventure with the boys loving the moving sidewalk.

We started off at Andrea's parents' place in Clearwater, where we visited them and our sisters-in-law and their families. 
Jake and Riley playing on the stairs

 The boys loved to snowboard down the hill outside my in-law's house.

Meanwhile, among other things, I often stayed inside with Parker and others.

All the grandsons often played together, drew/colored, etc.

Since it's so much colder there than it is here in Seattle, we weren't particularly well equipped for the cold, so Andrea bought new winter jackets. Jake loved to bundle up in his George Costanza coat.

At my parents' place, we went out a few times on the lake with the four-wheeler pulling the boys on their sled. Hanging out on the lake was fine, but as soon as there was any wind, it got pretty biting cold. Luckily, we were reasonably protected.

On a side trip to Duluth, Andrea and I visited my good friend Luke, who now works at Bent Paddle Brewing and thus got me a good deal of fantastic stout.

Their keg cooler is something to aspire to.

We did some more sledding and projects at my parents' house together -- more photos to come on the black walnut tables Dad and I started on.

And finally, the return flight to Seattle.

Sunday, November 25, 2018

More things in November

More stuff from the last week or so!

Beaujolais Nouveau with my French group - so I made some chocolate-dipped madeleines and French bread. Miam.

A colleague brought in frosting piping stuff and taught a bunch of us how to pipe like a pro. I apparently didn't get that memo. 

I purchased a cheapy "smart" LED and started playing around with programming it. 

Time for our annual gutter cleaning and putting lights on the house. Jake helped me rake the roof off, which is now apparently a thing we do. Pictures of lights soonish.

Finally, Four Generals has my Buddhahed milk stout, so we went there to celebrate and to play Bananagrams. Reed and I, playing as a team, started the round with MEGACAT, but Judges Andrea and Jake -- who also happened to be our opponents -- ruled it not a word.

Meeting in the Microsoft treehouse!

Sunday, November 11, 2018

Another week in November for the Shireys

This week for us:

Another 5k at work with coworkers. I've been meaning to get a picture of the Sasquatch Crossing sign on our trails for a while.

Finally got my sous vide device out again for some beef tenderloin. It was fantastic.

We were running low on green coffee beans, so I bought a bunch of them. Eight pounds worth.

And I roasted a full pound of them over the course of an hour. I was curious how much moisture weight is lost, so I did a very rough calculation. The "one pound" bag of unroasted beans was 497g (1 lb 1.5oz). After roasting (and a little bit of spillage), they were about 420g - and, to boot, had expanded a bit and no longer fit in the bag. That's about 15% moisture loss (again, some of which was actually spillage).

We also did the first of (hopefully) many family training hikes in preparation for all the walking we're going to do in France and Italy. The four of us went to Little Si for a hike of a bit more than five miles (once you account for all the extra climbing on rocks and whatnot that the boys wanted to do).

Monday, October 8, 2018

DIY Coffee Roasting

I recently grabbed a coffee with a former coworker of mine to catch up. Among the many things we discussed was his enthusiasm for home-roasting coffee, which intrigued me as someone who occasionally brews beer and who regularly drinks coffee. (Thanks go to Mike on the former; blame goes to Andrea for the latter.) So I figured it'd be an interesting thing to try, and given the super useful info and pretty cheap goods from Sweet Maria's, I was able to get started for little green and in little time.

The super cheap way is to use a standard popcorn air-popper (of a particular design), which Sweet Maria's sells along with some sampler beans. Roasting outside to prevent mess and smell inside, I got setup behind the house:

It's crazy simple: put a small amount of unroasted beans into the air-popper and turn it on.

I had an apprentice roaster to help me monitor the process:

After only a few minutes, the beans started moving around more easily due to the moisture having been burned off; the chaff from the beans started coming off; and we started getting our City roast (with an audible crack).

After about six minutes, I stopped the roasting to cool off the beans. Being my first go at the process, I opted for under-roasting rather than over. Here's the color comparison between the smallish batch and the original green bean.

I did this three times at approximately the same time:

This gave a pretty light bean:

Protocol is apparently to let these off-gas their CO2 for the next few days, so we'll be trying these out fairly soon.

Sunday, August 12, 2018

The start of a Kindle cover

I recently bought a Kindle to replace my very old Sony E-Reader, and soon after I figured I should have a cover for it. Rather than buying one, I thought I'd try my hand at making one -- out of steel -- so yesterday, I ran over to a local metal supplier to get some scrap, and I set out without much of plan to see what I could make.

I'm not quite done: I still have to add some sort of elastic bands to pull the Kindle in-place, and maybe I'll do some sort of decorative etching on the cover as well.

Sunday, July 8, 2018

What it costs to summit Mont Blanc

Last year, after Andrea's and my trip to France, I wrote a post breaking down our expenses. Since I just got back from France to climb Mont Blanc, I thought I'd do the same thing. My trip consisted of a few days of getting ready, eight days of mountaineering, then a week of visiting a few friends. My expenses break down as follows:

Grand Total$9,380.79

A few quick notes:
  • Beer/coffee represents beer, coffee, small snacks (eg, a croissant), but not quite a meal
  • Climbing covers fees, mostly for cable cars up the mountains
  • Fees are currency conversion, money transfers, etc.
  • I bought gear (crampons, ice axe, helmet, etc.) rather than hauling it across the world
  • Aside from plane tickets, travel was crazy cheap this time, having no need for a rental car. I used BlaBlaCar, Flixbus, and SNCF train.

Yet again, travel and lodging are some of the biggest factors; though this time, paying someone to keep me from dying on the mountain was by far the biggest factor. Having been armed with the previous trip's analysis, I knew this time that going out to eat and buying souvenirs was a fraction of what I would spend, so I didn't hold back too much on those. 

Wednesday, May 30, 2018

Des bonnes façons d'apprendre le français (ou n'importe quelle langue)

I've been learning French for about three years now, and while my level still very much leaves something to be desired, it's very heartening to hear people comment on my progress. I am frequently asked how I started and how I continue to learn, so I thought I'd write up a little post about some of the tools and methods I've used - in English so as to be maximally useful (I hope).

Duolingo's French course

I started by using Duolingo, which I learned about from founder Luis von Ahn's TED Talk on Massive-Scale Online Collaboration. When I started, I could probably inventory my French vocabulary on both hands. Bonjour, monsieur, madame, garçon, lait, etc. Duolingo gave me motivation and an on-demand tool for learning, but the downside is that it was more or less multiple choice vocabulary in very unnatural sentences. At this point, I didn't even know of the concept of the subjunctive.

Duolingo's claim of "Learn French in just 5 minutes a day" is quite the stretch. Straight-up, you're not going to become fluent with that little effort. And frankly, Duolingo alone won't get you to a point where you can explain to Colette in Normandy that you can't get in touch with your Airbnb host, and does she know how to?

Pretty quickly, I added in everyone's favorite language learning book, Harry Potter and the Sorcerer's Stone (in French, Harry Potter à l'École des Sorciers) because I wanted a lot more vocabulary thrown at me. Even if some of it is nonsensical or quite rare, it's a book for adolescents, and I know the plot, so it'll be easy to read, right? Turns out, when I started, I could get a good four pages before I zonked out. Which, come to think of it, doesn't say much anyway.

Truth be told, three years in and I still haven't finished that book.

I also tried Memrise, Clozemaster, Lingvist, and a number of other apps on my phone or desktop. I liked Lingvist the best, perhaps, and used it for a few months. Memrise I found to be full of mediocre decks of vocabulary, but more importantly, I kept seeing the same cards over and over and over again, meaning I wasn't being challenged enough. Or at all.

Languages are meant for communication with other humans

Apps are fine, but the whole point is to be able to free-form your own ideas and understand others' - compared with trying to translate « Etant un enfant, il est petit. » many times over. So I sought out language exchange sites and found There, I found plenty of francophones that wanted to learn English, and that helped me progress a bit. With that site, though, I found many, many more Arabic speakers that wanted my help and offered no or little French knowledge in exchange.

I next found Speaky - a site I still use almost every day - to similarly find language exchange partners. In fact, when Andrea and I went to France last year, we stayed in Versailles with one of my language exchange partners and his family. During my trip next month, I'll also meet up with a few of the people with whom I've talked.

Most of these conversations are text (though sometimes we spill over into Skype), but further, they're often very short-lived (in part due to the décalage horaire - time difference - between Seattle and France), so I have a whole lot of experience telling people I'm a software engineer and I like to climb mountains. Not so much experience going into detail about the recipes I'm trying out or where my most recent or next hike is, etc.

Talking and listening are better than reading and writing

By far, the best tool I've used for advancing is my local Meetup - first in Kirkland, now moved to Redmond. It was also the most challenging and even at times stressful - except for when you're trying to buy shampoo from the woman at the pharmacie down the road and she responds to your inquiry with, "Would it be easier if we spoke English?" Sigh. Yes, it would be easier.

I walked into the now-defunct St. James Espresso one Sunday morning to try to up my French game, barely being able to utter je m'appelle Adam, though probably not without making a good number of the members cringe at my pronunciation. Almost every Sunday I can feel my French improving. While my vocabulary, grammar, pronunciation, prosody, and so on, are all still pretty lousy, nothing beats cheerful, patient, in-person speakers willing to give you immediate and helpful feedback.

I've been a member of this Meetup for two years and have gone from blank stare at total lack of comprehension to being able to understand a rather fast-talking French man describing in detail the nature of his technical work. And I was quite happy when one of my francophone friends said, "Slow down, you're talking too fast for Adam!" because, in fact, I more or less got it.

At the same time, there are people that seem to rely solely on our hebdomadaire meetup and are clearly not improving and, in fact, switch to English half the time. Just as you can't learn a language in five minutes a day, an hour or two a week isn't going to cut it either. So if you can't immerse yourself, you need something more.

A Japanese word you need to know

Just this last week, I was explaining - as best I could - the awesome spaced repetition software, Anki (Japanese for "memorization") that I use to solidly learn vocab. Gabriel Wyner's book Fluent Forever also gives great ways to use the software. Anki is free (except the official iOS app) and uses the SM2 algorithm related to the forgetting curve to show you your flash cards at the (near-)ideal moment.

But you should still listen

RFI, Issy-les-Moulineaux, France
If I can't be on the computer or in an actual conversation in some way, I try to add in as much listening time as I can in order to tune my ear to accents. (It doesn't help my listening that I have tinnitus, so I have to work extra hard to discern phonemes.) I subscribe (or have subscribed) to a number of different podcasts to learn vocabulary, slang, grammar, or just listen to interesting content. Some of these are:
  • RFI has a lot of good content, though much of it is relatively fast or advanced language
  • RFI Savoirs is specifically made for French language learners
  • RFI's Journal en Français Facile is a daily 10 minute news broadcast in easy language
  • French Your Way is an English podcast by a French woman describing rules, homonyms, vocabulary, society, auxiliary verbs, agreement, and so on.
  • The same woman also hosts French Voices - interviews in French with francophones of different stripes around the world, including some intro and outro discussions (vocab, questions) in English
  • Français Authentique is a (perhaps daily?) podcast and YouTube channel by Johan not unlike French Your Way. I stopped following Johan mostly because I couldn't keep up with the barrage of content that wasn't super exciting.
  • I had also used Coffee Break French when I started
More recently, I've started using and evaluating:


Language exchange sites suffer from the problem of splitting your time between helping others and being helped. Some people have recommend to me iTalki or similar sites where you can pay someone to be your tutor. I find this to be pretty expensive for my tastes, so I've yet to use it.

Speechling, though, appears to improve on this by having non-real-time, bite-sized phrases to record on which you're evaluated. A real francophone gives feedback to help you with your pronunciation.

Tying back into Anki, I've found Forvo to be a good site to find (and create) recordings of arbitrary words and phrases, so you can improve your pronunciation (something one of my Meetup friends reminds me of constantly that I need to improve).

Linguee is a very good dictionary between French and English. It appears to use some pretty good machine learning and web crawling to find translations on even very hard-to-find terms. Similarly, a friend pointed me toward La Coccinelle, a site with song lyric translations. I figured Linguee was more than enough, but La Coccinelle has more familiar, idiomatic, slang-laden phrases.

I'm told Language Exchange is a good way to start off, though I haven't listened to more than a couple lessons so far.