Saturday - 1 mile pool swim and 9 miles of biking around town
The training keeps on building. We had no rest days this week, instead we decided to have two easy days surrounding our St. Helens climb, which we knew was going to be a fairly long day. Even with no rest days, our bodies seemed to handle the training load well. Short 15-20 minute naps a couple times a week in the late afternoon are becoming a regular habit though.
Saturday - Mt. Hood Backcountry Ski from Gov't Camp to Silcox Hut (8 miles, 3300 ft)
After an exhausting weekend of climbing, backcountry skiing, and downhill skiing while still being sick, this week necessitated me not pushing it too hard. My body was feeling a bit worn out and needed an easier workout schedule. Also, my regular blood donation was scheduled weeks ago for Thursday, which hard experience has shown requires a full day off afterwards or else I feel poorly for much longer. Backcountry skiing on Saturday felt relatively fine though.
This week was rudely disrupted by a nasty cold that knocked me down pretty hard on Wednesday night. Shortly after getting off the bike trainer, my body went from mildly unhappy to completely miserable. I was still fairly sick during Saturday's laps on Tumalo Mountain, but the fresh powder was so amazing that it was completely worth it, despite the occasional hacking cough.
Wednesday - Bike 4 miles to Mt. Tabor, run 14 laps on stairs, bike 3 miles back from Mt. Tabor.
Thursday - 47 minutes of swimming (2000 yd). 2.5 hours of bouldering at NE Circuit.
Friday - 1.5 hour bike ride to Council Crest (20 mi, 1700 ft)
Saturday - 1.5 hours on bike trainer, 45 minute core/strength workout
This week was a bit problematic thanks to weather. A winter storm made the roads icy on Tuesday, so a short afternoon bike ride got canceled. A long bike scheduled for Saturday was foiled by another few inches of snow and freezing rain making the roads treacherous. Oh well.
If you follow me on Instagram, you may have noticed a number of stories and posts about baking bread these past few months. Way back in September, Tina checked out Flour Water Salt Yeast from the Multnomah County library with the intention of learning more about bread making. We had recently finished binge watching an entire season of the Great British Bake Off, so thoughts of warm, homemade baked goods was on her mind.
However, the arrival of the book coincided perfectly with my schedule opening up thanks to my contract job ending abruptly. Nothing like having an extra 35 hours of free time in your week to make you consider exploring a new hobby.
At first, I merely flipped through the book and enjoyed daydreaming about baking real bread. Not a bread where you merely mixed ingredients together in a certain order, but a bread where you crafted it with your own two hands from the simplest building blocks using basic principles. A purer, more intellectual way of creating food, where you understood so much more. The Romantic Notion of the Artisanal Baker delusion, as I like to think of it now.
My initial foray was tame. At the back of the book is an entire chapter on homemade pizza. Now, you may not be aware of this, but I once had the metabolism of a young male in his prime. Pizza is one of my very favorite foods. Bread, tomato sauce, cheeses, veggies. As they say in the Instagram biz, "#omnomnomnom"
So, the very first recipe in the book is "The Saturday White Bread," which is a perfect foundation for making both pizza and bread. It is a rather simple recipe too. Combine the four ingredients of flour, water, salt, and yeast in the correct proportions. Wait about five hours for the yeast to work their fermentation magic, and then build your pizza.
And, holy hand grenade, that pizza was scrumptious! Later that week, at a Great British Baking Show party, I used the remaining dough to make an olive oil and dill focaccia with sea salt sprinkled on top. Hot damn, another tasty success! Buoyed by two successes, we renewed the book and I decided to try my hand at the bread itself.
It's funny to me now how unsophisticated my equipment and skills were at this point months ago. I was using a brewing thermometer to measure my water temperature. This thermometer was both slow to change and had a narrow temperature range, so my water temps were more guesses than precise measurements. Our old measuring scale had an LCD screen that only partially showed its first digit and also had a habit of randomly bouncing 3-5 grams at a time. My proofing baskets were initially metal bowls with flour tossed in.
And yet, it all worked out fine. My first real loaf turned out great and was my first introduction to "shaping" and "proofing." Two terms that I vaguely recall emanating from Amelia's mouth at one time or another, but I had never really had conceptualized what they entailed.
Next came the Overnight White Bread. Waiting an entire night for your dough to ferment! How novel! Waking up to the lovely smell of percolating dough just waiting to be shaped and baked is quite a treat.
Ah, but then I tried to make a 75% Whole Wheat Bread—with an old, opened bag of wheat flour. It was no good. The loaves got tossed out. They only smelled slightly off but tasted horrible. Into the compost bin they went. Later that day, I hiked over to the store to buy a fresh bag of whole wheat flour. With this new flour, I moved on and tried a different recipe, The Overnight 40% Whole Wheat Bread. Hot damn this is a delicious bread. Just a bit hearty with a faint nutty taste. Perfect with a solid helping of raspberry jam.
Pre-Ferments
Next came the recipes using the pre-ferments biga and poolish. These pre-ferments are simply a portion of the yeast, flour, and water combined the night beforehand and allowed to ferment for 12 to 14 hours before the final mixing. The biga is the stiffer of the two pre-ferments while the poolish creates a rather light bubbly mixture. The next morning you combine these pre-ferments with the remaining ingredients and proceed normally. The bulk fermentations are shorter thanks to the preferments doing more of the work beforehand, but you still shape, proof, and bake as with the previous recipes.
There were two recipes for each type of pre-ferment with one being all white flour and another switching in a portion of whole wheat (the poolish added in wheat germ and wheat bran too). The poolish seems to create a lighter, buttery flavor and the biga is more earthy in tone. Both are delicious, but we found the poolish so delightful I made it twice.
Sourdough Starter
Finally, I reached the sourdough section of the book. First step is to establish your own levain, which is a culture of yeast and bacteria used for all of your future sourdough bread making. According to the book's instructions, it should take about 5 days to create your own starter from only flour and water. After the starter is established, you keep it going with daily feedings of flour and water on a regular schedule. Almost sounds like having a pet, doesn't it?
I had some trepidation about this process, so much in fact that I waited over two weeks to start. Ken firehoses you with information about levains: their history, possible ingredients, culture development, and feeding schedules. It all seemed a bit intimidating and hard to grasp, especially once you start doing additional research online. Did not help that a friend related how he was never unable to get his own sourdough starter started (say that three times fast). Our house is also pretty cool in winter, which is the opposite of a warm, cozy bakery.
Anyhoo. After acquiring a new thermometer, mixing containers, and a functional scale, I started the process and honestly it was not so bad.
You are essentially combining flour and water in a tub and waiting for the naturally occurring yeast within the flour to multiply and form a thriving colony. Each day you throw away 3/4s of the existing starter and add new flour and water as new fuel. It multiplies, grows, and you feed it again the next day. Repeat for a few days and soon you should have a nice, gassy sourdough starter with a distinct smell. That's it!
The most important trick I learned is to have a dedicated plastic mixing bucket (with lid) for the starter and to keep it in a warm area, which for us is on top of our kitchen's heater vent with a thin towel underneath. This keeps the starter away from direct heat but allows it to be near its ideal temp of 75°-90° Fahrenheit.
Once the culture gets going, you will get a sense of what it prefers as far as flour/water ratios and water temperature. For instance, every morning I keep 50g of my starter, add 100g of white flour, 25g of wheat flour, and 125g of 95° Fahrenheit water. This maintains my starter and keeps it nice and happy for the next 24 hours. It really is a wonder. With those same ratios, I can put the starter in the fridge for 3-5 days without touching it. When I want to restart it, I just pull it out in the morning and refresh it normally. By the next day it is all happy and ready to make bread again.
Sourdough Breads
The sourdough breads have been interesting so far. I have made Pain de campagne, 75% Whole Wheat Levain, Bran-Encrusted Levain, and Walnut Levain. These are all hybrid breads that use a levain starter but also include a bit of baker's yeast in the final mix. Wheat is still the flour of choice.
Each recipe has you refreshing the levain in the morning, doing the mix mid-afternoon, and shaping the bread around 8pm at night. The bread then proofs overnight in the refrigerator and you bake it first thing in the morning. This schedule works out rather well as I can get up the next morning, bake the bread, and then head off to a coffee shop until I return home for lunch, where fresh bread awaits.
As an experiment, I made two loaves of the 75% Whole Wheat Levain and proofed one that night on the counter for an hour and then baked it at 9:30pm. Turned out perfectly lovely, so one does not necessarily have to proof in the fridge with these recipes.
The Walnut Levain is pretty damn fantastic; I see why people rave about it online. The tannins seep out of the roasted walnuts giving it a beautiful color, and the taste when it is toasted and given a nice layer of butter + honey on top is sublime. Seriously, this is the kind of bread people will gossip about.
Oh, by the way, with the levain breads, I do the same thing I do with the sourdough starter and leave it on top of a heating vent with a towel underneath. This ensures it gets the right amount of warmth for the five or so hours of bulk fermentation.
Sourdough Bread with Rye
This weekend I tried my first blended bread using a combination of wheat and rye flour. Ken touches briefly on the differences you can expect. The rye flour has less gluten, the dough will be stickier, and you can expect a smaller crumb. All of these turned out to be true. I could not find white rye flour in the store, so I used dark rye flour and kept the percentage at 15%.
I am quite fond of this bread. Many of my wheat breads had fantastically large gas bubbles, which made huge holes in my slices. With pockets that large, honey or jam had a bad habit of dribbling out. The smaller, softer crumb of this bread makes it ideal for sandwiches. I am curious whether putting tomato sauce and cheese on top and then toasting it in the toaster oven will create a nice slice of bread-pizza for lunch.
I consulted with my favorite professional baker about rye and she mentioned that while rye has less gluten, it also has "some very interesting enzymatic chemistry." This led me down a rabbit hole of research yesterday morning about rye, its chemical differences, and a plethora of different types of rye breads.
Also. There is a Swedish crispbread made primarily of rye called knäckebröd, which brings to mind lembas from Lord of the Rings. Apparently, traditionally a hole is made in the middle so it can be stored on a long wooden poles for months at a time. Cool! Might need to try that one out this year.
<insert inspiring platitude here>
As a funemployed gentleman, this book came at just the right time for me to pick it up and explore bread making. There is an overwhelming amount of knowledge online about it too. You can easily lose an hour watching YouTube videos of people, both professionals and amateurs, explaining how they make their bread. And almost everyone does it differently!
At the end of the day, bread making it is not that hard. People have been making it for thousands of years without scales, thermometers, or the perfect knowledge of the gluten content in their flours. You can definitely screw it up, but most of the time you are going to create a perfectly delicious bread that makes your house smell amazing. Just remember to share it. Oh, and buy the really good butter to smear on top...
Now that I have written up my ideas for A Mount Hood Picnic and posted them publicly, there is more pressure to sit down and work out some manner of training plan.
Strict training plans have never been my forte. When I was doing ultramarathon training back in 2017, I had a rough sketch of the mileage I should be hitting every week and also the length of my longest run for that week. My philosophy is that you should have weekly and monthly goals, but the actual day-to-day plan should be in flux based on soreness, energy-level, weather, and schedule. That flexibility is key to success for me. I know that if I am required to do a certain activity, I will chafe under the strict regiment. My personality simply does not like taking orders, even from myself.
When training for a backcountry triathlon, especially in winter and spring, this flexibility is even more helpful. There are days in Portland when it is 34 degrees and raining, which is simply not going to support a successful long bike ride. Or, we will have a harder than expected bouldering session and need longer than 12 hours to recover before doing our second swim session of the week. Or, friends want to go up to the mountain for a day of backcountry skiing, so we modify the week's plan to support that addition.
Wait! Did he just say bouldering and backcountry skiing? Those are not triathlon sports! What's going on here?!
Our plan includes doing activities besides swimming, biking, and running. We want to keep on bouldering twice a week and skiing a few times a month. Those are activities we enjoy and allow us to spend time with friends. As intense as a picnic will be, we do not want to make the next four months of exercise solely about training for it. That does not seem fun at all. I mean, I have a huge stick up my ass, but not about this.1
Instead, we have a white board with the specific picnic training activities we wish to accomplish each week and where we think they fit into our schedule. This schedule includes rest and easy days, as well as things like core workouts, stretching, and a monthly massage. Even on rest days, I am typically trying to walk a few miles to help loosen up my body and encourage recovery. It is all towards the goal of being ready for a picnic. It is a challenging balance of endurance and strength training, planning, nutrition, recovery, and mentally preparing for that level of exhaustion.
What is also helpful is having intermediate training goals. These are activities that are more than training, they are benchmarks. A way to push ourselves and also test to see how well we are preparing. Below is a list of the ones I currently have in mind, in no particular order. None of these are on the schedule yet, but we have a vague idea where a couple of them might go. Fun!
Double D with a Swim
Hike Mt. Defiance: 11.6 miles, 4840 ft
Swim across Columbia: 1 mile
Hike Dog Mountain: 6.9 miles, 2800 ft
Totals: 19.5 miles, 7,640 ft elevation gain
The Back 40 - Hood River to Dalles and Back via Seven Mile Hill
Bike from Hood River to Dalles, back via Seven Mill Hill: 40.61 miles, 4,539.0 ft
Additions: Include a swim along the Columbia at Hood River or Mosier
Sauvie Island - West Hills Bike Bonanza
Start at Sauvie Island parking lot.
Bike up and down: Rocky Point, Logie Trail, McNamee, Newberry
Totals: 41 miles, 5000 ft of elevation
One or more additions: Swim across Willamette, bike loop around Sauvie, Forest Park running/hiking
Double Backcountry Days on St. Helens
Saturday: backcountry skin up and ski down St. Helens, camp overnight
Sunday: friends join us, repeat skin up and ski down
Two friends were interested in St. Helens but worried about being too slow. My wacky solution.
Sandy to Lola Pass Bike with a Hike to McNeil Point and Return
62 miles of biking, 5900ft elevation gain
12 miles of hiking, 3000ft elevation gain
Look, if there is a foot of fresh snow on Friday and we have no plans, we're going skiing. I mean, we're not crazy... ↩
The phrase "New Year, new you" comes to mind when it comes to websites. Sure, it is a little cliché, but January is a nice time to step back and double check that everything is working well for your website and/or web application. A few days improving things can definitely make a world of difference for how the rest of the year is going to go, and you might find a few problems that you were not aware of.
The software that runs this blog, Craft CMS, reached version 3 last year, but I have stayed on version 2 because the code structure of the application changed significantly and I was too lazy to read up on what was necessary to upgrade. Fell into the trap of "Everything is working so far, why change?" The answer, of course, is that software updates have performance and security improvements, on top of their shiny new features. Also, the longer you go between updates, the more painful it is when you finally do the work.
It just so happened that I was also setting up a demo site for my latest software project last week and discovered that my server could not run my new application. The server was still running PHP 5.6, and while I had installed PHP 7.1 on it for another project, I needed to be on PHP 7.3, which is the latest and greatest stable version. This server had been created almost three years ago—a geological age in web development time. Despite my attempts to keep all of its inner workings up to date and running swimmingly, it was becoming harder and harder to maintain. That same day I discovered that Craft CMS v3 would also not run on the server without upgrading PHP and at least two of its libraries.
Time to upgrade!
Servers
I use Laravel Forge to manage my personal servers. For my own projects, it is relaxing to have a dedicated application handling the provisioning of the servers, adding a site, handling queue workers, installing SSH keys, setting up SSL certificates, and the more mundane tasks of managing a server. I still have to do work via the command-line to get everything the way I want it, but Forge definitely saves me time and effort.
So, over the course of a morning, I provisioned two new servers and begun the process of setting up my websites on one and web applications on the other. While things were being built, I took my blog and upgraded it to Craft CMS 3 on my local development environment. It was a pleasantly small amount of work. There were two hiccups, but they were minor and easily addressed. Even took the time to set up a staging site too, just so I could test things prior to switching the DNS records and going live.
Once the sites and applications were on the new servers, I switched over the DNS records and waited for the propagation to occur. Again, two minor hiccups were found once live, but it was a simple tweak to fix once I knew the underlying issue. Added SSL certificates to the sites (thanks, Let's Encrypt!) and everything was running normally again.
It took a solid five hours to move five sites and two applications to the new servers and get everything live, but it was worth it. The server specs were tweaked to better handle my needs, all software was upgraded to the most recent stable versions, new server image backups were implemented, and I even have a staging environment that I have been wanting for a while. Shiny.
Link Checking
It just so happened that the day after doing the server work, my good friend Cameron posted a Tweet reminding people to check the links on their websites. I ran both my blog and The Guide through the tool he posted and found over a dozen links broken on both sites. Ouch! For The Guide, it was particularly painful as I had gone through each article at the end of last summer updating content and links. Six months later and already things were out of sorts; two websites had gone completely away and the rest were sites changing their URLs without adding redirects.
Spent an hour fixing all the broken links. There were more than a few where the content no longer existed, so I simply had to remove the link. I also added a notification in my calendar to remind me to check again in six months. The web is prone to breaking changes, that is just the nature of the beast, so having a way to regularly validate your links (and images) is a prudent idea.
Security, Performance, Accessibility Audit
There are a plethora of tools for helping to manage the CSS and JavaScript for websites . They will do everything from building output from frameworks, bundling files together, moving files to a publicly accessible directory, compressing and obfuscating code, and versioning. While doing my software upgrades, I noticed how out of date my tools had become as well as the libraries and frameworks they were using.
Once you build a site, unless you are adding features or modifying a design, it is depressingly easy to just ignore it until something breaks. And then someone needs to tell you that it is broken. As egotistical as I am, I will go weeks without viewing some of my own sites. Server monitoring only gets you so far. Security warnings you read on Twitter or GitHub are easily ignored. Every so often, you need to roll up your sleeves and go through your files.
First, I upgraded my package managers and updated my tools. This can be painful and involve numerous Google searches. A version of one tool may not work with a version of another tool. Maybe whomever managed a JavaScript library has abandoned it and you need to switch to a new one, which will require you to upgrade your site's javascript to be compatible. Maybe a PHP framework switched to a new bundler tool that uses a new JS framework and nothing can be upgraded as your existing stack is simply no longer maintained. Things are better than they used to be—for instance, GitHub now provides security warnings for your project's stack—but it can be exhausting work. Wait long enough and it might be simpler to start over with a fresh frontend stack and copy over your old work.
Once you upgrade your tools and packages, you should evaluate your pages for performance and accessibility. Thankfully, modern browsers have built in tools to make these tasks easy. The Chrome Audits panel is probably my favorite tool right now. It will go through a page looking for problems and suggest ways to fix or optimize. It will evaluate your javascript for security alerts, it reviews forms for accessibility, checks to see if images are optimized, whether valid caching headers are sent for files, and much much more.
It can be an exhausting amount of information if you have not done it before. I will usually start with a single Audit like "Accessibility" and move through its list of suggestions. Getting a perfect 100 score is admirable but not necessary. Every so often Chrome makes suggestions (example: "Serve images in next-gen formats") that do not make sense for your site, so review its information and check the boxes you think are important.
Doing these Audits on my sites was so helpful. A few of my image files were way too large for how they were being displayed. I had totally skipped making a form accessible to screen readers. And my newly upgraded servers did not have caching headers added for CSS, JS, and images.
All of my website homepages load less than 1MB of data on an initial page load. Thanks to my changes, on subsequent page loads, this blog itself will only load ~22KB of data. The Guide will load less than 8KB on a second page load. So light! So fast!
A Conclusion (of Sorts)
Keep your software up to date and regularly check for problems with a set list of tasks.
Bugs exist, code gets stale, links expire, and problems develop even when you change nothing. Maintenance is important and fixing things will make for a better, faster, more secure website. Give yourself reminders to make sure things are checked on a regular schedule. It really will make a difference.