Zeke’s Hippie Blend (bag #2)

  • Beans: “Hippie Blend” from Zeke’s Coffee (Baltimore, MD)
    • Roast level: Light (2/8)
    • Origin: Sumatra, Peru, Papua New Guinea
    • Roast date: 9/23/2024
    • Purchase date: 9/27/2024 at Green Valley Marketplace in Elkridge, MD
  • V60:
    • 19 to 19.2g coffee / 300g water (1/15.6 to 1/15.8)
    • Ode: 3+2
    • Water at 99°C
    • Recipe: Single Cup V60 Pourover with 50g bloom water

I started off brewing 21g with 300g at grind setting 4, but I like these beans much better at 1:15 to 1:16. I’ve brewed 4 or 5 cups at this strength, and they have all been pleasant: not too strong, not too weak, not too bitter, not too acidic.

I bought my first bag of these around the beginning of 2024, and according to my notes, I struggled to get the grind size dialed in. I eventually ended up grinding rather coarsely, which is interesting, because this time around, the cups are turning out nicely with a much finer grind. It appears that I was brewing at the same ratio with the same water temperature, so the main differences seem to be: Ode grinder vs 1Zpresso JX, and plastic size 2 V60 vs ceramic size 1 V60.

Farewell 2024 Pool Season

Looks like pool season is over for the year. My final swim of the season was September 21, 6 days later than 2023’s final day and 6 days earlier than 2022’s. This year came in third since 2021 in total swims (74), second in total strokes (52,564), and first in average stokes per session (710). This will be the third straight year with no swimming in the month of October. Like last year, the culprit was the onset of a multiple-day period of overcast, humid, drizzly weather. Almost every September features a stretch of this kind of weather, which is why October swimming is so rare around here. Hope springs eternal for next year, though.

I have to figure out how I’m going to winterize the pool this year with the new pump. I plumbed it with unions to give me the option to remove it and store it inside for the winter. However, the wiring will likely make this somewhat of a pain. I may still try it, although I may hate myself for it next spring. I figure I have until around the second week of November to decide, as that’s when I usually finish winterizing the pool. I’m hoping to get the winter cover on it this weekend or shortly thereafter.

After starting it a few months ago, I’ve finally got all of my web infrastructure moved out of AWS RDS, and I shut the RDS instance down this evening, with the intent of deleting it if I don’t see any issues. Also, I’m in the process of switching domain registrars for lpaulriddle.com. When I initially registered the domain (at least 10-15 years ago), I used Yahoo! Small Business, and while slightly pricier than GoDaddy, I was happy with it until it ended up morphing into Turbify. Last year, the registration renewal fee jumped to $45, and this year, they wanted $55, which was enough to motivate me to switch. After some research, I settled on Cloudflare, and the transfer is now in progress, with a pending completion date of 9/29. In the meantime, I moved the DNS over to Cloudflare, which went off without a hitch. If all goes well with moving the registration, I’ll probably move my other domain (currently at GoDaddy) to Cloudflare as well. I’m not doing much with that domain, but I do have email forwarding set up for it, so I’ll need to figure out how to do that with Cloudflare. I will say that their registration fees are much cheaper than GoDaddy’s, let alone Turbify’s.

Edit (9/29) just in case it’s helpful to someone: I got a confirmation email from Turbify/Tucows a few hours after initiating the transfer with Cloudflare. It said that if I took no further action, the transfer would complete at 2024-09-29 01:30:17 UTC. That time came and went and nothing happened, so I revisited the email and noticed that there was also a link to “visit our website” at the end. I clicked the link, and it took me to a page with options to approve the transfer immediately or cancel. I clicked the approve button, and the transfer completed a few minutes later (verified by an email from Cloudflare). Not sure if it would have eventually happened automatically had I not done that, but it’s done now, and reflected in WHOIS. Now to go cancel the Turbify plan…

LostDogCoffee Peruvian

  • Beans: “Peruvian” from Lost Dog Coffee (Shepherdstown, WV)
    • Roast level: Medium/Medium Light
    • Origin: Peru (Chanchamayo)
    • Grade: Screen 18/19
    • Tasting notes from bag: Huge body, intense aroma, caramel & smoky wood burnt sugar
    • Purchase date: 9/14/2024
  • V60:

I hadn’t been to Lost Dog since May of last year, when I was just getting started with this new hobby. This place has a great selection of coffee beans, all sold by the pound, and my only complaint is that they don’t put the roast dates on the bags. Since they’re a small batch operation, though, I’m just kind of giving them the benefit of the doubt that the bags they have for sale in their store are pretty fresh. Unlike last time, I only bought 1 bag, as nowadays, I only like to buy what I know I can brew and drink in a month or less (plus, it’s highly likely that I’ll end up going back within the next several weeks).

The beans looked lightly roasted (as advertised) so I brewed them exactly the same as I brewed my last bag, which was also a light roast. The first two cups have been pretty good. Not sure if I’ll try tweaking anything going forward, but I don’t necessarily need to. Will add notes here as I use up more of the bag.

9/25: After several weak/watery/acid-y cups, I have figured out that these beans like a very fine grind. I kept nudging it finer and finer, until I finally got what I consider to be an excellent cup this afternoon, at grind setting 1+2 (or 1.67) on the Ode, which is just two clicks past the finest setting. I used 21.5 grams of beans or so, poured maybe 50g water to bloom (vs 60), and made sure to slosh it over all of the grounds. I finished pouring right around 2:00, and it took until 3:15-3:20 to fully draw down, which is a lot slower than I’m used to, but apparently the ticket for getting good extraction. No hint of bitterness at all, unlike some other beans where I’ve struggled to find the sweet spot between weak/sour and bitter/over-extracted as I’ve adjusted the grind.

9/29: I had 15.5 grams of beans left at home. I bumped the Ode to setting 1+1 (just 1 click past finest setting) and brewed with 248g water (1:16) and ceramic size 1 V60, preheated with insta-hot water. I used about 40g bloom water and otherwise followed the recipe linked above. The draw-down finished at 2:45, which is 30 seconds faster than my larger cups in the size 2. This produced an excellent cup. It was very well balanced and lacked the acidic aftertaste that my stronger cups have had. I have 21-22g of beans left at the office, and once they’re gone, I guess it’ll be time for another trip to Shepherdstown.

End-of-summer running report

This was a brutal summer for running. It was tough to stick with it, but for the most part, I was able to keep at it. The first issue was the heat in July and August. While 2022 and 2023 had hot stretches, this year seemed worse. When the heat and humidity are high, 4 miles is about my max, and that’s assuming I get out early and stick to shady areas. I had my best runs in July and August when I stuck to one particular route that is mostly shaded. If I went out in the sun, I overheated really quickly.

While the heat was a big factor, a larger issue was my left big toe. At some point early in the season, I stepped on something (splinter, tree detritus, etc) that got embedded in the base of the toe. It bugged me until mid August, when I finally got around to seeing a podiatrist, who removed the offending object, after which the toe healed up. In the meantime, I had been favoring it, which always leads to issues elsewhere. A month later, the toe is fully healed, I’m no longer favoring it, and most of the ancillary foot/leg issues have mostly resolved. Going forward, I’m going to be more careful about walking around outside barefoot, particularly in the spring/fall when the most stuff is falling from the trees.

Finally, over the past month or two, I’ve had an issue where I’ve been “pooping out” at the end of my runs. I’ll get maybe 4-5 miles, and then I’ll start feeling listless/tired and want to stop. I’m not sure of the cause, but things that have come to mind have been:

  • Lack of hydration / electrolyte imbalance
  • Other nutritional issue (glycogen depletion, protein or carb insufficiency, ???)
  • Hot/humid weather
  • Seasonal allergies that hit me in late summer
  • Mild virus
  • etc…

Just figured I’d document this here, so that I can refer back later and see if it’s something that happens at specific times of year. Obviously, hydration/electrolyte issues are going to be more common in the summer, and I seem to recall having some similar issues in May/June, which could be allergy related.

Today’s run was the best I’ve had in a good long time. My energy was much better, I ran 7 miles, and didn’t feel an overwhelming urge to stop at the end. For the record, I drank around 16-24oz of water between 6:00am and 8:00am. For breakfast, I had a protein smoothie with Greek yogurt, vanilla almond milk, chia seeds, almond butter, banana, frozen berries, quick oats, and mixed greens (not my tastiest creation, but that wasn’t the point 😀). I also ate a protein popsicle (my wife’s concoction) and a Rice Krispie treat. I went out just after 8:30. Temperatures were in the high 60s and humid, and I worked up a good sweat. On my last several runs, I’ve felt a little stiff and heavy-footed, but today felt more graceful and fluid. My feet felt great, and other than a bit of left hamstring stiffness toward the end, my legs did, too. Hopefully, this will be the start of an improvement trend. I’d love to get back to where I’m doing 10-milers on the weekends.

Rise up Pura Vida (bags #2 and #3)

  • Beans: “Pura Vida” from Rise Up Coffee Roasters (Easton, MD)
    • Roast level: Light
    • Origin: Costa Rica (Finca Las Gravilias)
    • Tasting notes from web site: Complex and very well balanced; bright with hints of honey and orange citrus. Light roast, sweet cup
    • Roast date: 8/13/2024
    • Purchase date: ~9/3/2024, 9/10/2024 at Green Valley Marketplace in Elkridge, MD
  • V60:

I have a new grinder this month. I’ve been happy with my 1Zpresso JX hand grinder, but got tired of hand-grinding beans twice a day. I also wanted something that could grind enough beans for more than one cup. For now, I’ve taken the JX to the office, so I can grind beans there instead of pre-grinding at home. I’ll also continue to use the JX as my travel grinder. My new home grinder is a Fellow Ode Gen 2. I initially had my sights set on a Baratza Virtuoso, but I had a 25% off coupon from Fellow which brought the Ode 2’s price down enough for me to pull the trigger. (Sometimes it pays to take surveys. 😀)

The Pura Vida have been my favorite of the beans I’ve bought (at least locally) this summer. They have also been the freshest Rise Up beans available at the local grocery store for the past few weeks, so I’ve bought 2 12oz bags from the same batch this month. I’ve brewed a few cups with the JX at setting 18 (same as July) and a bunch in the Ode at setting 5, most of them with the size 1 ceramic V60, and this morning’s with the plastic size 2 V60. The JX cups have been fine, but the Ode cups have been better. The grinder has been the only variable, so I’m curious if the difference has to do with grind size, grind consistency, presence or lack of “fines” in the coffee bed, or all/none of the above. As I’ve noted before (more than once), with identical grinds, the size 1 V60 consistently drains faster than the size 2, and today was no exception. With the Ode at setting 5, my brews in the size 1 are always finished by 02:30, but today’s brew in the size 2 finished at 02:35-02:40. Not a huge difference, but it seemed like this morning’s cup was a tiny bit better extracted than some of my previous cups. Just something to keep in mind when I’m trying to dial things in, as one size might work better than the other, depending on the beans and various other brewing parameters.

Zeke’s Charm City Blend

  • Beans: “Charm City Blend” from Zeke’s Coffee (Baltimore, MD)
    • Roast level: Dark (6/8)
    • Origin: Colombia (Sierra Nevada)
    • Roast date: 8/19/24
    • Purchase date: 8/20/24 at Green Valley Marketplace in Elkridge, MD
  • AeroPress:
    • 20g coffee / 250g water
    • JX: 30 (90 clicks)
    • Water at 90°C
    • Prismo with metal + paper filter
    • Pour all 250g; stir front to back (carefully) until all grounds are wet; steep until 2:45; stir 6x; press slowly

The local grocery store has always carried these, but this is the first time I have tried them. From the description, it’s a blend of dark (Italian-roast) beans with a bunch of random lighter-roasted beans. No origin listed, as I guess it varies from bag to bag. It looks and tastes like a dark roast, so that’s how I’ve been brewing it. Grind settings 20 and 25 were too bitter, but 30 produced a fairly smooth AeroPress cup. French press with the same grind setting tasted similar. 20g coffee and 250g water just barely fits in the AeroPress cylinder in standard orientation. I probably could not brew this amount without the Prismo attachment.

8/28: AeroPress cups have been pretty consistent and smooth, with only an occasional, slight note of bitterness, but not unpleasant and not more than you’d expect from dark-roasted beans. The taste is a tiny bit reminiscent of Verona St Julien’s Breakfast Blend, which is probably my favorite among the darker roasts I’ve brewed to date. Unfortunately, though, my last two French press cups at the office have not been good. I have been using 24g coffee to 300g water (same 1:12.5 ratio as AeroPress) with the James Hoffmann French press method and grind setting 30 (again, same as AeroPress) and the cups have been unpleasantly bitter with kind of a strange aftertaste. Obviously, something needs tweaking, but I’m not sure I’ll be able to experiment much more, as it’s likely I’ll be running low on beans by the next time I come to the office. Assuming I have any left by then, I may just end up bringing the AeroPress to the office, so I can brew it the same way I do at home.

8/31: As an experiment, I brewed my past 3 cups without a paper AeroPress filter, using only the metal filter that came with the Prismo (no paper filter), and I think I prefer it this way — the cups seem to have a sweeter flavor with a richer texture/mouthfeel, at the expense of a little bit of sediment in the cup. This could be subjective, as I haven’t done a blind taste test (and don’t have enough beans left to do one now) so I’ll have to experiment a little bit more and see what types of roasts taste better without the paper filter. I suspect it may work better with darker roasts than lighter roasts, but as always, I could be wrong.

Zeke’s Colombia Sierra Nevada (bag #2)

  • Beans: “Colombia Sierra Nevada” from Zeke’s Coffee (Baltimore, MD)
    • Roast level: Light to medium (3/8)
    • Origin: Colombia (Sierra Nevada)
    • Roast date: 7/29/24
    • Purchase date: 7/29 or 7/30/24 at Green Valley Marketplace in Elkridge, MD
  • V60:
    • 20g coffee / 300g water (1:15)
    • JX: 20 (60 clicks)
    • Water at 97°C
    • Recipe: Single Cup V60 Pourover with size 1 dripper
  • AeroPress:
    • 18g coffee / 250g water
    • JX: 20 (60 clicks)
    • Water at 95°C
    • Prismo with metal + paper filter
    • Pour all 250g; stir front to back 6-7x; steep until 2:45; stir again; press slowly

I bought my first bag last September, so it’s been a little while. It took a few cups to get there, but I see that I’ve settled on similar brewing parameters to last year’s bag. The last few cups have been pretty good, if not spectacularly good. I’ve been on a kick of brewing strong cups lately — most of my recent pourovers have been 22g to 300g, or about 1:13.6. I’m trying to back off that a little bit, as I think it may be negatively affecting the flavor of the cups. I brewed this morning at 20:300 (1:15), and preferred it to some of my earlier, stronger cups. If this works out, I’ll also go through coffee less quickly. 😀

8/18: I’m definitely having a bad run with V60 coffee. Not sure if something is off with my technique, or if it’s just the beans I happen to be buying. With these, everything I have been brewing has been bitter, weak, or just OK but generally unremarkable. Grind setting 20 and 95-97C water seem to produce the cups that are the least bad. The AeroPress cup I brewed today (see above) was leaps and bounds better than anything I’ve gotten from the V60. It had a nice flavor with a hint of sweetness that was totally lacking with the V60 cups. The immersion method seems to do a better job of extracting the beans. I suspect that the issue with the V60 is that the beans aren’t staying wet long enough to fully extract. I might get better results by brewing a larger volume of coffee (maybe 500-600g), or possibly using a filter that is more dense and drains more slowly (maybe Abaca?). I could also grind the beans finer, but that seems to make the coffee taste bitter. As I’ve written before, I’m curious to try a Kalita Wave dripper at some point. It has a different design which (on paper) sounds like it will result in longer immersion time with washed beans like these. Lots of potential things to try, but for now, it seems like AeroPress is the way to go with the rest of these beans.

Swim Notes

I just finished moving the database for this blog off AWS RDS and onto a MariaDB Docker container with the database files hosted on EFS. RDS turned out to be overkill for my use case, and it was costing me more per month than I had expected. By contrast, EFS storage space is cheap, and the EC2 instance I’m running MariaDB on is free until the end of 2024. The trade-off, of course, is that it’s almost surely not going to be as performant as RDS, although I’d be surprised if I notice any difference. We’ll see. If I do, I can always try something like a persistent object cache and/or page cache.

I also wanted to write a quick note about swimming this season. It’s been a good season thus far, and the hot summer has led to a lot of time spent in the pool. As a matter of fact, according to Apple Health, I’m only 7 or 8 swims away from eclipsing last year’s total, and we’re only halfway through August. The best times of day for swimming are mornings before 9:00, and afternoons after 4:00, because that’s when the pool is out of full, direct sunlight. On really hot days, I’ve occasionally done pool running in the mornings in lieu of “real” running, as I have a hard time getting over 3-4 miles on really hot, oppressive days. Most of my swimming has been in the afternoon and evening, with a tether, same as in recent years. In July, I typically swam in the late afternoon before dinner, but this month (August), I’ve been swimming more in the evenings, sometimes going as late as 9:00pm. Usually, I do 3 sets of 60 breast stroke, 60 front crawl, 60 butterfly, and 60 backstroke, for a total of 720 strokes, which takes me about 40 minutes. I’m happy with how my backstroke has progressed this year — I first started doing it regularly about midway through the 2023 season, and it felt awkward and uncoordinated for quite a long time. Lately, it has improved quite a bit.

As with every year, the end of the pool season can be a wild card depending on the weather. In 2022, I was able to swim until October 4, but last year, a persistent bout of cloudy, cool weather brought things to an early end on September 14. We will see what this year brings. We set the record for latest day in the pool (October 9) in 2007, and it still stands. I wonder if it will ever be broken?

Rise Up Guatemala Single Origin (bag #2)

  • Beans: “Guatemala (Single Origin)” from Rise Up Coffee Roasters (Easton, MD)
    • Roast level: Medium
    • Origin: Guatemala (Asociación Chajulense, Quiché)
    • Roast date: 7/1/24
    • Purchase date: 7/30/24 at Green Valley Marketplace in Elkridge, MD
  • French press (good but sludgy):
    • 22g coffee / 300g water
    • JX: 25 (75 clicks)
    • Water about 20-30 seconds off boil
    • Pour about 60g bloom water and stir; steep until 0:30; top up to 300g; stir several times; steep until 6:00 to 7:00; press slowly and pour immediately
  • French press #2 (James Hoffmann method) (very good):
    • 22g coffee / 300g water
    • JX: 30 (90 clicks)
    • Water right off boil
    • Ceramic French press (preheating might be prudent in the winter, but I didn’t bother during this god-awful hot summer)
    • Pour all 300g at once, being careful to wet all of the grounds; steep until 5:00; stir a couple times; spoon foam and clumpy grounds off top; insert plunger until it rests on top of the coffee; steep 5 more minutes; pour slowly
  • V60 (not good):
    • 21g to 22g coffee / 300g water
    • JX: 15 (45 clicks)
    • Water at 95°C
    • Recipe: Single Cup V60 Pourover with size 1 dripper, preheated with insta-hot tap
  • AeroPress (OK cup):
    • 18g coffee / 250g water
    • JX: 25 (75 clicks)
    • Water at 90C
    • Prismo with metal + paper filter
    • Pour all 250g at once / stir 6x / steep until around 3:00 / stir 6x again / press slowly

I last bought these beans in April, and my notes from then suggest that I was getting inconsistent results with the V60. Today, I pre-ground 22g to take to work, with the intention of using my V60 there, but then I realized I had ground the beans coarser than I wanted (setting 25 vs 20). So, I decided to dust off the cheap plastic French press at the office. I’m not sure the bloom step was really necessary, as there was no visible bubbling or out-gassing from the grounds. The end result was a cup that was pretty good, with decent flavor and a hint of acidity, but a lot of sludge in the bottom of the mug. I’ve previously used grind setting 30 for all of my French press brews, so it may be that 25 is a little too fine. All the same, I suspect this was a better cup than I would have gotten with the same grind setting with the V60.

8/1: This morning, I brewed a cup with the ceramic size 1 V60 at grind setting 19. It drained through ridiculously fast, and the resulting cup had no body whatsoever. This afternoon, I tried setting 15, and it was much better, although it still drained relatively quickly — it was finished by 2:30. Interestingly, in my notes from April, I see that I tried setting 15 once, and it turned out bitter. This afternoon’s cup had no hint of bitterness at all. The main difference was that in April, I used a plastic size 2 V60. While my sample size is admittedly small, I’ve noticed that with everything else equal, the size 1 ceramic consistently drains faster than the size 2 plastic. Could be that these beans just need a fine grind and a fast drain-down. Of course, my next cup could prove me wrong and turn out unbearably bitter. It’s all part of the fun.

8/3: I’ve brewed several more V60 cups since 8/1, each with various tweaks to grind size and water temperature, none of them all that good. Giving up on V60 for now and sticking with immersion. Today, I decided to try James Hoffmann’s French press method, the basic steps of which I’ve listed above. The linked article has more detail. This definitely takes some time to brew, but it turned out really good, and as advertised, there was very little sludge in the cup. The opaque ceramic French press is not ideal for this method, as I couldn’t see exactly where the plunger was resting, and I also ended up with a little bit of liquid left over in the press after I thought I had poured all of it out. However, it worked well enough that I’m not going to run right out and buy a transparent French press. I think this will be a great alternative to the AeroPress on days when I have more time to brew coffee, and the French press also has a lot more brewing capacity than the AeroPress.

8/7: I have come to the conclusion that this is French press coffee, full stop. Everything I have brewed with either V60 or AeroPress has been mediocre (alternately bitter or vague/sour), and without exception, all of my French press cups have been excellent. The James Hoffmann method has been a winner with both the plastic and the ceramic French presses, and cups have been good at any ratio from 1:13.6 to 1:15 (20g to 22g grounds to 300g water).

8/8: I managed to brew a decent AeroPress cup this morning. Tried grind setting 30 with 85C water yesterday, and it tasted sour. Today, setting 25 with 90C water was better. It was not quite as good as it turns out in the French press, but a perfectly reasonable cup of coffee — not sour or bitter, and fairly balanced, if a tiny bit lacking in “personality”, for want of a better word.

New Router Follow-up

Today, I finally got the house to myself for long enough to take the home network down and swap our Verizon FiOS router out with a new Ubiquiti Unifi Cloud Gateway Ultra. I had spent a good while researching how to do this, and a week or so ago, I wrote out a step-by-step plan. As with everything in life, it didn’t go quite according to script, but overall, it went smoothly. Over the next few days, we’ll see if anything needs adjusting, but for now, the network is back up, connected, and ostensibly working fine. Here’s how it actually went down.

  1. I gathered everything noted in step 1 of last week’s list: MAC addresses for static leases, local DNS names, UI device SSH credentials, Ethernet adapter and cable for laptop. I also downloaded the Unifi app for my phone, and made sure I had access to my ui.com login credentials. Of these, the only things that proved essential were the Ethernet adapter/cable and my ui.com credentials. In particular, I did not need the phone app (read on).
  2. I created a full backup of my old Docker-based Unifi controller. It was about 13M.
  3. My original list included a step to remove the FiOS router from the Unifi controller’s device list before creating a backup of the settings. This was not necessary, or even possible, as it turns out that the Unifi controller doesn’t treat third-party routers as managed network devices. Therefore, there was no device to remove in the first place.
  4. I created a settings-only backup of the old controller, which was only 25K. However, I ended up not using it.
  5. I powered the FiOS gateway down and unplugged it. I did not do anything special to release its DHCP lease. I ended up having to briefly reconnect it to identify the cable running to the ONT (I have a bunch of disconnected CAT-6 cables in my wiring closet). Lesson learned: mark the cable somehow before disconnecting it and walking away. 😀
  6. I powered UCG-Ultra up and connected the ONT cable to its WAN port. My original list had me connecting the Ethernet first, but the setup guide says to connect the power first. In reality, I suspect it doesn’t matter much.
  7. The display on the UCG lit up with the Unifi logo, then a progress meter appeared at the bottom, and after a few minutes, it displayed a message that it was ready to configure and reachable at IP 192.168.1.1.
  8. This is where I thought I needed to connect with the mobile app over bluetooth, but it turns out that’s not necessary. The initial setup can be done over Ethernet using a laptop connected to one of the UCG’s LAN ports. All I needed to do was connect and point the laptop to http://192.168.1.1. Initially, I didn’t think it was working, as all I saw was a black screen. It turned out that it either doesn’t like Firefox, or doesn’t like one of my Firefox extensions or settings. When I tried with Chrome, it brought up a splash screen and let me proceed to configuration. I chose the option to restore from a backup, which prompted me to log in with my ui.com credentials, and then dumped me into the UCG’s web interface.
  9. The setup updated the UCG’s firmware/controller to version 8.2.93, which is the latest version as of this writing, and also the same version that I was running on the old Docker controller. I had this listed as a separate step, but it all happened automatically. It’s worth noting that during the upgrade, it displayed a screen saying it would take “about 5 minutes”, but seemed to stay there indefinitely. After 10 or 15 minutes, I tried re-connecting, and found that it had completed.
  10. At some point during this whole process, external Internet connectivity started working on my laptop. I can’t remember quite when, but I’m pretty sure it was before I restored the backup from the old controller. I suspect it was right after I “adopted” the UCG to my Unifi account. Initially, my Firefox browser displayed a “captive portal” banner similar to what I’m used to seeing on public guest WiFi portals.
  11. I restored the full backup from the old controller, which took a couple of minutes, and required a restart of the UCG. Again, the web browser experience through the restart wasn’t the smoothest, but it came back up just fine after a couple of minutes.
  12. At this point, I didn’t have any of the downstream network equipment connected to the UCG. I had planned to manually add static DHCP leases for the devices that needed them, but this wasn’t possible — after the restore, the UCG already “knew” about the device I tried to add, and told me that the MAC address I was trying to add already existed. I couldn’t find a way to go in and mark the reserved lease with the device disconnected. So, I just moved on:
  13. I connected my downstream gear to the LAN ports on the UCG, and after a few minutes, everything was working and had external connectivity, including the WiFi, with the same IP addresses they had before I swapped the router out. I’m not sure what will happen with regards to the DHCP leases, but I’m assuming the router will just treat them as new leases. The UCG’s default DHCP lease lifetime is 86400 seconds (24 hours). At this point, I was also able to go in to the devices that needed static IPs and mark them as “Fixed IP Address” (accessible by selecting the device and then clicking the settings icon). I assume that will do what I need.
  14. Next up was to go to the old controller and override the set-inform URL for the Unifi gear, so it will all start talking to the new controller. However, to my bemusement, I found that everything had already moved over without my doing anything. I thought maybe this was a new “feature” or something, but it turns out that it happened completely by accident. I logged into one of my APs via SSH and took a look at the log file. The original inform address was configured with a local DNS name (vs an IP address), and the DNS name was in turn configured into the old FiOS router. When I took the old router offline, the devices could no longer resolve the DNS name. After several unsuccessful retries, they eventually fell back on 192.168.1.1, which is where I wanted them anyhow — a happy coincidence.

Still to do:

  • Factory-reset the old FiOS router in preparation to return it to Verizon. I’m hoping this can be done via a physical button on the router. If not, I’ll need to somehow hook it up to an isolated network so I can connect to the web interface.
  • Figure out a local DNS strategy. I want to eventually route all of our DNS traffic through a Pi-hole, but I’m not sure if I want to manage local DNS names there, or on the UCG, and I’m not sure if I want the UCG in front of the Pi-hole, or vice versa. The FiOS router didn’t allow me to change the DNS server(s) it handed out via DHCP, so some of these configurations wouldn’t have been possible previously. I’ll have to think about this a bit.
  • Finally cancel our landline phone. I think I can get a 1G/1G FiOS connection for less than I’m paying for 512/512 FiOS + an essentially useless landline.