Blog

  • Tehila Single Origin Ugandan

    Tehila Single Origin Ugandan

    • Beans: Uganda (single origin; Arabica; 12oz)
      • Roaster: Tehila Coffee (Baltimore, MD)
      • Origin: Uganda
      • Roast level: Medium
      • Roast date: Unknown
      • Process: Washed
      • Purchase date: 11/29/2025 at 12th Annual Sykesville Holiday Market in Westminster, MD
        Freeze date: week of 12/1/2025
        Thaw date: 2/2/2026
      • First cup: 2/3/2026; last cup:
      • Tasting notes: Earthy (aroma)/Fruity/Chocolate
    • V60 with Ode grinder:
      • 20g coffee / 300g water (1:15)
      • Ode: 2
      • Water at 99°C
      • Recipe: Single Cup V60 Pourover with size 2 cone, 60g bloom water and 60g pulses – finishes around 03:15

    From the roaster’s Facebook page: “I’m a specialty coffee artisan devoted to crafting coffee with purpose and passion. Every bean we source is hand-selected for its flavor, quality, and story — because great coffee starts at the origin and deserves to be honored all the way to the cup.” My wife picked a bag up at the Sykesville Holiday Market back in late November. I brewed one or two cups around then, but didn’t take any notes. I then ended up freezing the rest, as I was about to go out of town, and had a surplus of beans at the time. To make a long story short, I finally took them out of the freezer yesterday. I brewed them with the same settings I used for a recent bag of Tanzania Peaberry beans, and it was a good cup. It had a smooth, round mouthfeel and good body. As with a couple of other African coffees I’ve brewed, I didn’t detect much fruitiness, in spite of the stated tasting notes. I’m wondering if a different brew method would bring more of those out. I might try a cup or two in the Switch, but probably won’t experiment much more beyond that.

  • Cool Runnings

    Cool Runnings

    We are in the midst of the longest deep freeze here since probably the 1990s. I remember in the winter of either 1993 or 1994, we had a very similar weather pattern to the past week’s, with a disruptive snow/ice storm and a long ensuing stretch of below-freezing temperatures. Just like this year, schools were shut down for at least a week (probably longer, actually). I remember going in to UMBC one day while the campus was still closed, just to shake off the cabin fever. Fortunately, as I’ve previously written, I have a couple of low-traffic back roads near me that I can use for running, as most of the sidewalks around here are hopeless at the moment. Last winter, I ran once when the weather was under 20°F, and so far this winter, I’ve been out 3 or 4 times in those conditions. Based on what I wrote last year, I made a few tweaks to what I have been wearing:

    • Relaxed fit Kühl running pants over 32°F synthetic leggings (same as last year)
    • Injinji Snow calf-height toe socks, Correct Toes, and Xero Mesa Trail WP shoes with Tuli heel cups (same as last year, plus the heel cups)
    • Smartwool neck gaiter with The North Face fleece headband (vs one-piece fleece balaclava last year)
    • REI long-sleeve merino wool base layer shirt (vs 32°F synthetic base layer last year)
    • REI lightweight liner gloves (vs heavy winter gloves last year)
    • Top layer variations:
      • Long-sleeve polyester/rayon/cotton athletic top + Patagonia R1 jacket
      • Long-sleeve lightweight bamboo/polyester/spandex hoodie + R1 jacket
      • R1 jacket + Arc’teryx Norvan Gore-Tex outer shell with hood

    Same as last year, I used Vaseline on exposed areas of my face (mainly cheeks and nose) and it worked great as a wind barrier. I’m going to try to remember to do this any time the temperature is below freezing and there’s any wind. I just have to remember to wash my face afterwards.

    Overall, I tried to improve on things that I noted were issues last year, and I think I succeeded. The gaiter with headband worked better than a heavy 1-piece balaclava. My feet stayed nice and comfortable, and my hands also were perfectly comfortable with just the thin gloves (I even took them off a couple of times). The wool vs synthetic base layer was a push comfort-wise, but wool is more odor-resistant, and I’m able to wear the wool base layer for more runs before I have to wash it.

    I’m finding that I like to run with a hood in below-freezing weather. The one time I ran without one, I was missing it. The lightweight hoodie worked well, as did the Gore-Tex shell. In the future, I wouldn’t mind getting a jacket similar to the R1, but with a hood.

    My 2 most recent runs were 10K and 8 miles, respectively. I still work up a pretty good sweat each time, and I’m still having issues with my energy dropping off during the second half of the runs. Could be hydration, could be electrolytes, could be pacing, could be something else. Running with a hydration pack could be an option, but I’d need to figure out how to keep the hose from freezing. An insulated water bottle would be too bulky to carry, and my soft water bottle would be a solid block of ice after 30 minutes.

  • Snowshoes

    I’ve had a pair of snowshoes since 2016. They were a birthday gift from my wife. That was the year of the January 2016 blizzard, which dumped over 2 feet of snow, and the snowshoes saw a good bit of use that winter. Since then, though, they have mainly collected dust, as we have yet to have any snowfalls even approaching that magnitude. This past weekend, though, we got a storm that dumped around 11″ of snow, followed by several hours of sleet. The result was a hard-packed snowfall with a crusty glaze of ice on the top. I remember as a kid, we got a snowfall like that one year. We had a metal realty sign sitting around (can’t recall why we had it or which realty it was for) and I repurposed it as a sled. My parents’ lawn was not what you would call steep or hilly, but it had a very slight slope to it that was enough for gravity to carry me from one end to the other while sitting on that metal sign. I did it over and over, and it was tons of fun. This type of snow is not good for walking or hiking, as the icy layer is slippery, and my feet often tend to punch through, making for a laborious slog. However, it is perfect for snowshoeing. The snowshoes distribute my weight over a larger area, reducing (though not totally eliminating) the punch-through issue. They also have spikes to provide traction on the ice.

    Today, I carried the snowshoes to the trailhead about a half mile from home, where I often go to take short hikes or ride my mountain bike. I hiked a 2-mile loop, and really enjoyed it. The forest is beautiful with the snow cover and the shiny, crusty glaze of ice. There were some human footprints near the trailhead, but farther in, I only saw animal tracks (likely deer). I’d estimate that I was able to go at about 70-80% of my usual hiking speed, which wouldn’t have been possible without snowshoes. We are in the middle of a really arctic cold snap, with lows in the single digits and highs in the low 20s, and everything was frozen solid, which made it relatively easy to cross the 2 or 3 streams along the way. I lost the trail in a few places, but was able to pick it back up each time with the help of the trail map on my phone. It also helped that I’m highly familiar with these trails. I also snowshoed here back in 2016, when I didn’t know the trails as well, and it ended up being more of a random walk through the woods. I had much better luck today, and really enjoyed the time outside. It was a great way to shake off the cabin fever. If the opportunity presents, I may try to get out one or two more times while the snow is still on the ground.

  • Konnected with Vista-20P and Hubitat

    I’ve just about got my new Konnected Alarm Panel Pro (APP) Interface Kit completely installed and working with my Vista-20P alarm panel and Hubitat C-8 automation controller. Everything seems to work pretty well, and I thought I’d note a few things here about my experience setting it up.

    As I alluded in a recent post, I managed to fit all of the Konnected boards into my Vista-20P enclosure, but it was a tight squeeze along with all of the existing junk in there (zone expander, battery, terminal strips, wire, etc).

    I started out by wiring up the zones I wanted to monitor. Most of them were attached to one of two zone expanders and wired with 1k-ohm EOL resistors. These all worked “out of the box” without the need for any tuning on the APP interface board. The only zone I had to tune was one that was wired to the main Vista-20P board as a “zone doubled” zone, with a 6.2k-ohm resistor. This required a slight adjustment to the tuning screw, but subsequently worked without a hitch. Also of note is that one of my zone expanders is mounted remotely, around 30′ or so from the panel. I had 4 zones there that I wanted to use with the APP, which meant that I needed 4 extra wires running between the expander and the panel. It worked out that I was able to reuse an existing 4x22AWG cable that was already there, sparing me from having to run more wire in the attic. With everything wired up, I was able to test things out by faulting the zones, watching the status LEDs on the expansion boards turn on and off, and monitoring the zone status on the APP’s web interface.

    I then went to the Konnected app to configure the zones and generate new firmware for the APP. In the app’s panel settings section, there’s an “Alarm System Interface” section that appears to be a one-stop shop to configure the Keyswitch and Arm/Disarm/Tripped status zone settings, but it did not work for me. I had to go in and manually configure these (see below) to get the appropriate buttons and zones to show up on the web interface. Other than that, the app-based configuration and firmware flashing worked fine, although it never seemed to detect when the panel had finished restarting, always giving me a message to “restart the app” and confirm that it had updated to the correct firmware version. Each time I did that (3 or 4 times) I found that it had updated everything correctly.

    I used zone 1 on the Vista-20P for my keyswitch zone. This works fine, but I had to wire a 2K-ohm resistor IN PARALLEL with the zone wiring, which is contrary to what the Konnected documentation shows. This was easy enough to do: just attach the resistor inside the panel between terminals 8 and 9. Then, I connected the OUT1 and OUT2 pins on the APP to the IN pins on the two Konnected interface boards, and ran wires from the relay terminals on both boards to Vista-20P terminals 8 and 9. I also checked to make sure that both relays were jumpered to NO, and the ALARM2/OUT2 switch on the APP was set to OUT2. On the Konnected app, I programmed OUT1 and ALARM2/OUT2 as Momentary Buttons, with duration set to 600ms for one of them (for arm away) and 2000ms (2 seconds) for the other (for arm stay). I had initially tried 1200ms for the latter, but it wasn’t long enough (the panel armed “away” instead of “stay”).

    I wanted to monitor armed “stay” status separately from armed “away”, so I used the two Vista-20P triggers for this, attaching each to a separate zone on one of the APP interface boards. The only confusing bit here is that there’s no zone type on the Konnected app that is really appropriate for a dry-contact relay zone. I just had to tell the app that they were window zones. Once wired up and programmed, both zones worked fine once I programmed the trigger output devices and actions into the Vista-20P (Konnected has fairly good documentation for this process). Pro tip: you can test the relays on the Vista-20P by using [Master Code}-#7-[Device Number] to activate and [Master Code]-#8-[Device Number] to deactivate. For example, if the master code is 1234 and you want to activate trigger 1 (device 17), the sequence would be 1-2-3-4-#-7-1-7. This is useful if, e.g., you want to test the alarm tripped status relay without having to actually set the alarm off.

    Konnected’s documentation uses a single trigger for armed status, and the other trigger for alarm tripped status. However, with my setup, both triggers are in use for monitoring armed status, so I needed a third trigger to detect an alarm condition. I was able to use one of my zone expander relays for this. Unlike the panel triggers, the zone expander relays use an isolated circuit, so the common pin is not connected to the panel ground. So, to get the relay to work as a “zone”, I had to add a wire between the common pin and the panel ground screw on the expander, as well as connecting the NC pin to the appropriate zone terminal on the Konnected interface board. I should probably make a diagram of all this…

    Last but not least was getting this to work with Hubitat, which was fairly straightforward. I installed the Konnected driver via Hubitat Package Manager (HPM), created a virtual device for the panel, and pointed it to the APP’s IP address. The docs stated that it would automatically create child devices for all of the zones, but I was impatient and hit the “Initialize” button, whereupon it populated everything right away. I was a little nervous that re-flashing the APP would delete and recreate all of the devices in Hubitat (potentially messing up automations) but that was not an issue: all of the existing zones continued to work, and new zones that I added showed up automagically after several minutes (no need to hit “Initialize” again). One thing I did notice was that when I renamed a zone from “Armed Away” to “Armed Away Indicator” (and changed the zone type), the old “Armed Away” device stuck around in Hubitat until I manually deleted it. Not really a big deal.

    The next step is to start using all of these new devices in some automations, and see how reliably everything works over time. I will report back on that eventually. In the meantime, it seems to work as advertised, and setting everything up was a fun way to spend this craptastically frigid and icy day.

  • Counter Culture Atwater’s House Blend

    • Beans: Atwater’s House Blend (a.k.a. Hologram)
      • Roaster: Counter Culture Coffee (Durham, NC/Emeryville, CA)
      • Origins: Africa/Latin America (per website; not stated on bag)
      • Roast level: Medium (6/10)
      • Roast date: 12/23/2025 (Durham)
      • Purchase date: 1/1/2026 at Atwater’s in Catonsville, MD
      • First cup: Around 1/19/26; last cup: 2/2/26
      • Tasting notes: Fruity/milk chocolate/syrupy
    • V60 with Ode grinder:
      • 20g coffee / 300g water or 24g coffee / 360g water (1:15)
      • Ode: 3 → 2
      • Water at 99°C
      • Recipe: Single Cup V60 Pourover with size 2 cone, 60g bloom water and 60g pulses – finishes around 03:00 for 20g, 03:15 for 24g

    Although I’m not 100% sure, I strongly suspect that this is just the Hologram blend re-badged as Atwater’s House Blend. The tasting notes on the bag are identical to what the web site shows for Hologram. It’s possible that the roast level and/or the bean proportions are slightly different, but I kind of doubt it. Visually, the beans look on the lighter side of a medium roast, but again, everything is subjective. I’ve been brewing these identically to Big Trouble, mainly out of convenience, since I still have some of that left. The first 3 or 4 cups were pretty good: roasty with a nice twang of fruit. However, the last couple cups have tasted under-extracted, so I’m thinking I might be better off with a finer grind. I will try that next time I brew them, likely tomorrow or Sunday.

    1/29: The past several cups have been pretty good at grind setting 2.

    2/2: This was probably my favorite of the 2 Counter Culture blends that I’ve had recently. Nice, well rounded cups with a twang of fruitiness. I brewed my final 3 cups with 24g coffee/360g water so that I wouldn’t end up with beans left over. This quantity took a little longer to draw down, finishing maybe 03:15-03:20.

  • More Alarm Fun

    More Alarm Fun

    I’m back to tinkering with our alarm system. In 2023, we replaced the landline phone dialer with a combo IP/cellular communicator. The manufacturer recommends connecting the communicator via the Vista-20P long range radio interface. That mostly works, but every few months or so, the panel would briefly stop “seeing” the communicator, which would cause the keypads to start incessantly beeping until someone manually cleared the trouble condition. One time, we went away for the weekend, only to return and find that it had been doing this for two days straight (our cats were not happy). Fortunately, the communicator also supports a “tip/ring” configuration that emulates a phone line, and I was able to switch over to that to (ostensibly) prevent the trouble condition. I have yet to test it, because the panel also needs a new battery, another condition that causes it to periodically go into trouble. As a result, we’ve mostly been keeping the panel in programming mode, and not using the alarm for the past few months.

    I have a new battery ready to go, but before I put everything back into service, I’m working on adding a Konnected Alarm Panel Pro Interface Kit to the system. This is a really clever system that attaches to the existing panel and makes up to 12 existing zones visible to our home automation controller. It can also arm/disarm via a keyswitch zone, and monitor arm/disarm and alarm trigger status using the Vista’s on-board relays. My initial plan is to hook the front/back/basement/patio doors, garage door, and motion detector zones up to the Konnected panel, which will make some cool automations possible, e.g. turning on the back porch light when we open the door at night, disarming the panel at the same time we unlock the back door, setting the hub mode to “away” when the alarm is armed (and vice versa), etc. As of this writing, I have all of the Konnected components mounted, connected, and powered up, and just need to hook up the zones and do the programming on the Vista for keyswitch and triggers. The hardest part of this was finding room in the panel cabinet for the Konnected boards. They are not large, but the cabinet is… rather crowded. When I installed the alarm back in 2002, I didn’t give much thought to wire management, so it’s kind of a bird’s nest in there. There is the Vista board itself, the battery, 2 terminal blocks, a zone expander, and lots and lots of haphazard wires. I was able to reposition the zone expander to make room for the new boards, but it took some very careful planning. Once everything is finished, I’m going to see if I can neaten the wiring up a little bit and maybe organize some of it with zip ties. Whatever the case, I’m looking forward to seeing how this works.

  • Memories of Dad

    These are the notes I made for when I spoke at Dad’s “Celebration of Life” service earlier today.

    • One of my father’s favorite activities was walking. He would go out for hours at a time, and on any given day, if you were to visit Linthicum, there’s a good chance you’d see him. He kept walking for his entire life, as long as he was able. It’s not too surprising, then, that some of my earliest memories of him were of taking walks around the neighborhood, hand in hand. I don’t remember much of what we talked about, but I suspect that, like most 5- or 6-year olds, I asked a lot of questions, and he did his best to answer.
    • Another of Dad’s loves was mathematics, and he was eager to impart his enthusiasm for  math on his children. On many evenings, instead of reading us books, he would give us arithmetic, algebra and geometry lessons. This would have been the late 1970s in my case, about the same time the Atari 2600 video game system was becoming all the rage. Like every kid my age, I wanted one, and I let my parents know this in no uncertain terms. My dad’s response to this was “if you get a computer instead, you can program your own video games”. A few years later, in 1981, our parents bought us a home computer for Christmas, thus setting both my brother and me on our eventual career paths.
    • I think it’s fair to say that my father was a private person. But even though he might not have said it in as many words, there was a way you could tell if you were in his “inner circle”, and that was if he had a nickname for you. Dad rarely called anyone in the family by their [given/real] names. When we were kids, his name for me was “Kiddo”, my brother was “Ditto”, and my mother was affectionately known as “Cheed”, although more recently, she became simply “The Boss”. Dad also had a strange affinity for spelling words backwards. Among others, birds were “dribs”, raisins were “snisiar”, and milk was “klim”.
    • Then there were the rides. When I was very little, Dad would entertain me (and, later, my brother) by holding me upside down by the ankles and swinging me back and forth like a pendulum. He called this a “pickle ride” (as an aside, I’ve often wondered if this was one of the reasons I got carsick so often as a kid). Another one was the “stupid ride”, where I would stand on Dad’s feet and he would take my hands and walk me around the room while chanting “stupid ride” over and over in sync with his steps. That one definitely lived up to its name. Years later, when grandchildren appeared on the scene, Dad trotted the same rides out again, providing plenty of laughs and eyerolls, and no doubt enjoying reliving that part of his life.
    • Although most thought of him as an academic, Dad was also a sports fan. He made a few futile attempts to teach me football, first sending me out to run passing routes. When he figured out that I wasn’t very good at catching the ball, he switched to the ground game, playing defensive lineman and challenging me to run past him. That was also a failure. A few years later, thoug, he was somewhat more successful at teaching my brother, John, how to play catch.
    • When I was 13, Dad took me to Memorial Stadium for my first Orioles game. It was August 25, 1983, and the opponent was the Toronto Blue Jays. The only reason I remember the date is because the day before, August 24, was the game where Tippy Martinez famously picked off three baserunners in a single inning. We missed seeing that by one day, but our game was exciting in its own right. We had great seats along the third baseline, courtesy of Dad’s stockbroker, who gave him the tickets. The game was scoreless until the top of the 10th, when Toronto went ahead 1-0 on a solo home run by Barry Bonnell [rhymes with tunnel]. In the Orioles’ half of the inning, “Disco” Dan Ford came to the plate with 1 out and runners on first and second. Dan Ford was probably most remembered for being injured. He spent about half of his Orioles tenure on the disabled list. That night though, he hit a 2-run walk-off double to win the game. I still remember watching Al Bumbry’s helmet fly off as he rounded third at full speed to score the winning run, and then the deafening roar of the crowd. I think my ears are still ringing.
    • During summer in the 1980s, we would often vacation in Ocean City, MD. I remember being super excited about going to the beach every summer, but I always had the sense that my father did not share my enthusiasm about these vacations. As a kid, I could never quite figure out why that was. After all, what’s not to love about being cooped up in a tiny, single-bedroom condo for a week with 2 teens during the peak of the summer beach season? To his credit, he was always a good sport about it, although I’m not sure he had much choice in the matter.
    • Most people who knew my father would probably describe him as “practical” and “frugal”. Put another way, he was always looking for ways to save money. As kids, my brother and I knew that if we spent more than a few seconds rummaging around in the refrigerator, we would be swiftly admonished to “close the door”. In the 1980s, in an effort to save money heating the house, Dad had a wood-burning stove installed in the living room. Every morning, he would build a fire, and when he got home from work in the evening, he would check to make sure the radiators were cool, and then spend a couple of hours rolling old newspapers up into logs to feed the next day’s fire. I think he enjoyed it, but let’s just say my mother did not share his love of the wood-burning stove. After a year or two, Dad did a cost-benefit analysis and determined that his marriage was worth more than however much he was saving in energy costs, and the stove was history.
    • In spite of his reputation for austerity, Dad did occasionally splurge. In his late 20s, he bought a 1965 Ford Mustang, which he kept long enough for it to be considered a classic. In the end, though, his sense of practicality won out, and he used the Mustang as partial payment for some work we had done on our roof. After that came a parade of questionable car purchases: a 1974 Pinto, a 1978 Fiesta, and later a 1987 Escort. I still remember burning myself on the Pinto’s black vinyl seats on hot summer days, and getting stranded when the Escort’s timing belt broke. It kind of made me wish he had kept the Mustang. It would have been a lot cooler standing on the side of the road with a broken-down Mustang than a broken-down Escort.
    • My father had a life-long love for classical music, as well as opera. In the years leading up to his Parkinson’s diagnosis, we had season tickets for the Baltimore Symphony, and he and I would attend 3 or 4 concerts a year. Although we didn’t talk too much during those outings (like father, like son), they were a great way to share our common interest, and I did eventually learn that his favorite symphony was Beethoven’s 7th. Later, as his disease progressed and his mobility began to decline, he still was able to attend several son Michael’s concerts with the UMBC Wind Ensemble. I suspect he enjoyed any opportunity to get out of the house for something other than a doctor’s appointment.
    • Last few conversations were about taxes
    • When Cathy and I moved into our current house in 2001, my father bought us a pool table. It was his idea, and I have always wondered about his motivation for buying us one, but I never got around to asking him. My working theory is that he always wanted to own a pool table himself, but never had a good space for one. Then, when one of his kids bought a house with a finished basement, the rest was history. For many years, though, the pool table didn’t get much use, other than to sort and fold laundry (which I’ll admit it worked pretty well for). Curiously, Dad didn’t use it much when he was visiting us, either. Not too long ago, though, something prompted me to uncover the table, brush it off, and shoot a few rounds. Ever since then, I’ve been using it regularly, taking a shot or two each time I walk by. I’m not exactly what you would call a pool shark, but every now and then, I’ll surprise myself by sinking a rather difficult shot. Whenever that happens, I always joke to myself that Dad helped that shot go in. I think he’d be happy to see us using the pool table, and I’m happy to have it as a way to remember him.

    1/23/2026: I’m going to add more random things here as I think of them.

    • I remember walking with Dad to the local high school and jogging on the ¼-mile track that circled the football field. There were bleachers and a grandstand on the north side of the field, and a hand-operated scoreboard at the west end. Being a football scoreboard, it had a spot that showed the line of scrimmage, aptly labeled “ball on”, which I always read as “balloon”. The track was my first introduction to running, which later became a large part of my life. Dad explained the basics of running a footrace, keeping a sustainable pace for most of the race and then going all-out at the end. I don’t quite recall when this was, but I suspect I would have been somewhere between 9 and 11. I later attended the high school, and the building is now used as a middle school.
    • (TBD) learning how to ride a bike on the path near the elementary school
    • (TBD) walking through the undeveloped park/woods at the end of Sycamore out to the woods near the Ferndale water tower
  • Counter Culture Big Trouble

    Counter Culture Big Trouble

    • Beans: Big Trouble (blend)
      • Roaster: Counter Culture Coffee (Durham, NC/Emeryville, CA)
      • Origins: 75% Valle Inca, Peru / 25% Segovia, Nicaragua
      • Roast level: Medium/dark (8/10)
      • Roast date: 12/23/2025
      • Purchase date: 1/1/2026 at Atwater’s in Catonsville, MD
      • First cup: 1/11 or 1/12/2026; last cup: 1/26/2026
      • Tasting notes: Caramel/nutty/”round”
    • V60 with Ode grinder:
      • 20g coffee / 300g water (1:15)
      • Ode: 3 → 2
      • Water at 99°C
      • Recipe: Single Cup V60 Pourover with size 2 cone, 60g bloom water and 60g pulses – finishes around 03:00

    CC is a large roaster with nationwide distribution (they also brew a house blend for Atwater’s, and I’ll be trying that out in the next day or so). With this particular blend, they try to keep the taste consistent, which means the specific beans used will vary depending on what is available at certain times of year. I get the feeling that this is fairly common practice, but I suspect that larger roasters have kind of an advantage here, because they can source larger volumes of beans and do more experimentation to try to tweak the taste profile. I do like that they label the bags with the specific ratio of each type of bean used. “Roast level” is fairly subjective, but I’d call this more of a medium roast than medium/dark. As of this writing, I’m still using my initial brew settings, and I think that the stated tasting notes are pretty accurate. It is nutty with low acidity and medium body — a pretty good cup of coffee if that’s what you’re after.

    1/26: This was starting to taste under-extracted towards the end of the bag, so I brewed the last couple of cups at grind 2, and that was an improvement.

  • My week so far

    My week so far

    For the past few years, I have been climbing Monday nights, which made it really difficult to bike commute Mondays due to the tight timing. I would get home around 5:30, and have to wolf dinner down and go right back out the door to get to the climbing gym by 6:45. That was not much fun, so I typically ended up telecommuting Mondays. This year, we’ve switched climbing to Tuesdays, which opens Mondays back up for bike commuting. That’s what I did this past Monday, and it was something of an adventure. An accident had shut down I-95, pushing tons of traffic onto the back roads and creating gridlock everywhere. Had I known it was going to be so bad, I would have taken one of my mountain bikes and ridden trails. But, once I got past one particularly bad stretch of road (and rerouted to avoid another) I was able to get to work fairly painlessly and without mishap.

    I ran Tuesday morning, climbed Tuesday night, and then ran again this afternoon (Wednesday). I typically don’t run in the afternoons, but today, it worked out well. The weather was overcast and mild (around 50℉), and with rain forecast for tonight followed by a cold snap, I wasn’t sure what the conditions would be like on Thursday. Today, I was able to run in shorts. I’m always trying to work on my running form, and today, I decided to make an effort to lower my hips, lift my legs, and bend my knees more. I tend to overstride a bit with my left leg, which causes my left hamstring to get tight and sore, and probably also contributes to foot issues like extensor tendonitis. Bending the knees more prevents the overstriding, and my hamstring seemed a lot happier today. It also seemed to make me a little faster. Maybe I’m onto something, or maybe not, but I’ll try it again with my next run and see how it goes. As for the timing, I left the house at 3:50, and it worked out fine. There was somewhat more traffic on the roads than at 8:30am when I usually run, but it wasn’t too bad. I may switch to afternoons for a little while during the cold snap, to try to get out during the warmest part of the day.

  • Rafiki Foundation Tanzania Peaberry

    Rafiki Foundation Tanzania Peaberry

    • Beans: Tanzania Peaberry (single origin)
      • Roaster: Rafiki Exchange (Mount Dora, FL)
      • Origin: Arusha, Tanzania
      • Roast level: Medium
      • Roast date: Unknown
      • Purchase date: Unknown (received as gift)
      • First cup: 1/2/2026; last cup: 1/11/2026
      • Tasting notes: Dates, cinnamon, molasses
    • V60 with Ode grinder:
      • 20g coffee / 300g water (1:15)
      • Ode: 2
      • Water at 99°C
      • Recipe: Single Cup V60 Pourover with size 2 cone, 60g bloom water and 60g pulses – finishes around 03:00

    This is the first single-origin Tanzanian Peaberry that I’ve brewed. I’ve previously only had it as part of a blend (specifically, Zeke’s Snow Day Blend). I couldn’t find much info about this particular roast, either online or on the bag: just origin, roast level, and tasting notes. I’m not sure if it’s roasted on-site at the exchange in Mount Dora, or elsewhere, and there’s no roast date (or even a “best by” date) on the bag. None of that particularly matters, though, because the coffee is really good. It has a very pleasant balance of body and sweetness with low acidity. Like a lot of African coffee, it seems to work best with a fine grind. I tried settings 4 and 3 on the Ode before settling on 2.

    1/11: The last several cups of this were fine, but didn’t seem quite as good as the first half of the bag. I’m not sure why exactly, but this is definitely not the first bag where I’ve noticed this. I wonder how much of it is actual changes to the beans (outgassing/etc, which might benefit from slightly tweaking the recipe) or just my own taste buds, as I’ve noticed that I tend to get “tired” of drinking the same coffee after 10 cups or so. I suspect it’s a combination of both.