For over a year now, I’ve had a Bock on my brew schedule. But without a proper way to lager, each time the beer reached the top of the list, it was immediately scratched out and reincarnated at the bottom. Then a few months ago, I made a couple precision adjustments to the conditioning fridge (or tore out the seal at the bottom of the door – Honesty Editor) and voila, a steady 50ºF on the lowest setting.
The next step was to source some lager yeast. I sent out a couple e-mails and was able to secure a few jars of Augustiner yeast, a strain not available to home brewers, from one of my fantastic local breweries. Now it was just a matter of coming up with a recipe.
I was vacillating between a Helles Bock and more of Historic Bock with a good deal of wheat in the grist. Then I remembered the jar of oak chips in the garage, left over from the oaked, bretted portion of the Black Strap Stout and still soaking in Buffalo Trace Bourbon. Got to love it when a plan comes together.
Bourbon Rye Helles Bock
Batch Size: 4.5 gallons Boil Volume: 6.5 gallons
4 lb Great Western 2-Row (35.6%) 4 lb Weyermann Pilsner (35.6%) 1lb 12 oz Wyermann Munich II (15.6%) 1 lb Weyermann Rye Malt (8.9%) 8 oz Gambrinus Honey Malt (4.4%)
1.0 oz Tettnanger (3.2 AA%) @ 60 1.0 oz Tettnanger (3.2 AA%) @ 15
Augustiner yeast slurry from local brewery
Estimated Efficiency: 70% Estimated Attenuation 75% Estimated OG: 1.064 Estimated FG: 1.016 Estimated ABV: 6.2% Estimated IBU: 21 Estimated SRM: 7 (does not account for color increase from decoction)
Single Decoction Mash Schedule
Mash in @ 131ºF. Pull 1/3 of mash volume for decoction @ 20 minutes. Bring decoction to 150ºF, rest for 20 minutes. Bring decoction to boil, boil for 10 minutes. Return decoction to main mash, raising temperature to 153ºF. Mash @ 153ºF for 45 minutes.
Mash out @ 168ºF, sparge to collect 6.5 gallons of wort.
Boil for 90 minutes, adding first hop addition after 30 minutes.
Chill to 58ºF, place in lagering fridge.
Ferment @ ~54(F) for two weeks.
Rack to secondary, adding 1/2 ounce Bourbon-soaked oak chips.
Condition @ ~40ºF for 4-6 weeks.
This is a pretty standard Helles Bock recipe, with the exception of the rye malt. My thinking was that the spiciness of the rye would play well with the Bourbon and oak notes. The decoction mash let me go pretty light on the darker grains, just a little Munich and a dash of honey malt to round things out. The decoction mash also darkened up the wort a few shades, putting it somewhere in the 10-12L range.
The fermentation schedule was based on some tips I received when I picked up my yeast. Being horrible with names, I cannot remember the gent’s name, and being equally as horrible with place names, I cannot remember where he was from. In any case, Augustiner was the house lager yeast at his last brewery and he had a lot of helpful information. Pitch ~60ºF. Ferment in the mid 50′sºF. Start dropping the temperature once primary is finishing up. No need for a diaceytl rest. Maybe he said he was from Aspen?
The beer was moved to secondary on Sunday and the Bourbon-soaked oak chips were added. At the time of the transfer, the gravity was down to 1.019. The beer will lager for at least 4 weeks and most likely, quite longer. Since switching over to kegging, my bottle washing regiment has become a joke. I need to find some motivation to clean the mountain of glass in the garage, so this beer can be bottled for Christmas.
In the mean time, I have a couple jars of lager yeast left, and need to figure out something to brew with them. I am leaning toward a Baltic Porter, colored primarily with some D2 Dark Candy Syrup that really has no business still sitting, unused in the cabinet. Suggestions?
I just wanted to give a shout-out to Ninkasi Brewing for the wealth of information the brewery recently added to it’s website.
Want to brew yourself a batch of Total Domination? Ninkasi gotchu! Your gonna need to round up some Pale, Munich and Carahell malts. Then hit it up during the boil with Summit, Amarillo and Crystal hops.
Maybe you want to watch Jamie describe Nuptiale while officiating a mock wedding? Boom! Ninkasi gotchu!
Or perhaps you are wondering when Sleigh’r is making it’s return? Well, Ninkasi gotchu again son! It is set for release Sept. 1st and will be available in 6-Packs!
And for those of you scratching your head at the tone of the post, here is a video that will hopefully explain it (until NBC rotates it out). Check out Milky J @ ~1:13.
Last week, in my Beer and Coding at Two post, I stated that I would have the first in a series of Homebrew Tools done this week. I am happy to report that I have actually managed to meet a deadline. Albeit a self imposed deadline, but when the norm is deadlines coming and going, while your projects sit in committee hell, you take a win when you can get one. The force carb calculator can be found under the Homebrew Tools tab at the top of the page.
So, why this calculator? Well, a couple reasons. First, I picked a force carb calculator because, unlike most beer related formulas, this is one I am not able to do on my fingers (or toes, or with a relatively small number of button presses for that matter). The formula for determining required PSI is:
P = -16.6999 – 0.0101059 T + 0.00116512 T^2 + 0.173354 T V
+ 4.24267 V – 0.0684226 V^2
P = PSI
T = Temperature
V = Desired Volumes of Carbonation
The second part of the ‘why?’ is that it gives me an opportunity to talk about coding design. Most of the force carb calculators available on the interwebs, use a Javascript Get/Post method, which reloads the entire page to display the results. There is nothing wrong with this design (and it does drive up the ad views – Beer and Coding Monetization Editor), but it is a little clunky, and with tools like JQuery, completely unnecessary. Now, before I delve any further into my web programming philosophies and techniques, you get the disclaimer.
While I write software for a living, I am by no means a web programmer. My opinions about web programming design and technique should be taken for what they are, my opinions.
Ok, with that out of the way, we can get started. As I stated above, I like to avoid using Get/Post within the Javascript if I am working within a single page. Instead, I like to leverage the jQuery Post method to fetch PHP/HTML from an external file and insert in onto the current page. This not only keeps the entire page from reloading every time the code fires, but it makes to code much more streamlined. The entire code for the Homebrew Tools page is:
Sexy, right? Along with this we also have the Javascript function init_page(), to initialize the page and place some PHP in the carb_calc <DIV>. The code for the Javascript header and init_page() function is:
As I’ve mentioned in other posts, WordPress doesn’t play nice if you use the typical jQuery variable name ‘$’, so I have instead taken to using ‘$j’. Now, let’s pause for another quick talk about design ideals. Rather that loading tools directly onto the page, I decided to load buttons instead. By not immediately executing code to build the tools, the page loads much quicker. Not a big deal right now, seeing as there is only one tool, but this will become more important as the number grows. This will also keep the page looking clean, something that is becoming more and more important as the number of smartphone/pad users increases. In this design, clicking a button will load the corresponding tool into the <DIV> containing the button. This allows tools to be opened or closed without reloading the page, or affecting the values of other open tools.
Defining the carb_calc button in the init_page() function was another design choice. It could just as easily have been defined directly within the carb_calc <DIV> in the PHP, but by placing the code in the Javascript function, we can more easily control whether or not a button is loaded. Not so important in this example, where the carb_calc button is immediately loaded, but it could prove helpful down the road, if I want to suppress certain buttons, depending on how the user arrives at the page.
Another technique I like to use is passing the name of the <DIV> to my Javascript functions. This allows me to write very light, modular Javascript functions, eliminating long If/Else statements. The code for the show_tool() function is:
By using the same name for the PHP file as the <DIV>, in this case ‘carb_calc’, the name can be passed straight through to the jQuery Post method without any extra conversion or validation. And as long as I preserve this naming convention, I can continue creating tools that call the show_tool() function without ever adding code to the function itself. Instead, all the work is done in the PHP file. The code for the carb_calc.php file is:
The carb_calc.php file is where the actual defining of the tool occurs. The show_tool() function retrieves this file and posts the PHP code within to the carb_calc <DIV>, replacing the button that called show_tool(). By designing the tools to work this way, the code on the page stays light and the Javascript functions become very reusable. When it comes time to add, say, a gravity calculator, all I have to do is add a ’grav_calc’ <DIV> to the main PHP, initialize the tool’s button in init_page() and place the tool’s code in grav_calc.php. The close_tool() function, which (surprise, surprise), closes the tool, works in much the same manner as the show_tool() function. The code for the close_tool() function is:
This function simply replaces all the carb_calc.php code in the carb_calc <DIV> with the tool’s button. Again, reusable by any future tools. Finally, we have the function calculate_psi(), where all the hard maths are performed:
function calculate_psi() {
var temp = document.getElementById(“temp”).value;
var vol = document.getElementById(“vol”).value;
var psi1 = -16.6999 – (0.0101059*temp) +
(0.00116512*(temp*temp)) + (0.173354*(temp*vol)) +
(4.24267*vol) – (0.0684226*(vol*vol));
var psi2 = psi1*3;
psi1 = Math.round(psi1*Math.pow(10,1))/Math.pow(10,1);
if (psi1 < 0.1) {
psi1 = ‘< 0′;
}
psi2 = Math.round(psi2*Math.pow(10,1))/Math.pow(10,1);
if (psi2 < 0.1) {
psi2 = ‘< 0′;
}
$j(‘#psi1′).val(psi1);
$j(‘#psi2′).val(psi2);
}
This function retrieves the temperature and volume values using the document.getElementById method. The maths are performed and the two PSI values are displayed in the input fields using jQuery. Since none of the input variables are being used in mySQL queries, I did not bothering to perform any validation on them. The lengths of the input values are controlled by the ‘maxlength’ attribute, set for each input field in carb_calc.php. If a non-numeric is entered in either field, NaN (Not a Number) will be returned. The only case I am trapping for is when the required PSI would be less the 0.1. In this case I am returning ‘ < 0′ in the PSI fields, rather than a negative number.
So, there you have it, a force carb calculator and a glimpse into the design decisions behind it. I still plan on adding a little polish to the calculator, like an option for Celcius and a warning if the determined PSI is over 60 (the limit of many homebrew CO2 regulators).
If anyone finds this kind of post useful, let me know and I will continue writing them as I code more tools for the Homebrew Tools page.
Following an 11th hour reminder from GoDaddy to re-up my expiring domain and a frantic scour of the old grey matter for the password required to do so, Beer and Coding has now safely reached its second birthday. And with another anniversary in the books comes the near-requisite look backward and the even nearer-requisite look forward that tend to accompany such an event. Here we go.
Where Has All the Coding Gone?
Yes, it has been another coding-lite year on the old blog. The bulk of my coding over the last year has revolved around credit card security and the black hole that is PCI-DSS. If you know this acronym, then you understand what I am talking about. If you don’t, consider yourself lucky but be warned, if any aspect of your job deals with the accepting of credit-type cards, it is only a matter of time. Doom and gloom aside, the nature of my work, coupled with a new “Social Media” policy at work, has severely limited what I can discuss. One thing I can say is that 8+ hour days of attempting to meet ambiguous PCI standards and security auditor requests, all the while doing the real work necessary to keep customer information safe, has left me more than a little coded-out at the end of the day. And with my PCI workload continuing to progress on what seems like an exponential curve, I don’t foresee my situation changing anytime in the near future. The way I see it, I have two options at this point. I can either buck up and find something to talk about, or I can find a new name for the blog. And since I just paid for another year of hosting, I’ll be going with the former.
So, what is the plan for year three? How about some brewing tools? Sure, there are plenty of them out there already, but most are long abandoned and like any (good?) programmer, I am fully confident that my re-invention of the wheel will be the design that finally gets it right. Failing that, we will still have a series of coding exercises to discuss. First up, a force carbonation calculator with a “burst carbing” schedule for those of us who don’t want to wait for the keg pressure to normalize on its own. It should be up next week.
No Brewery Yet, But an Assistant Brewer on the Way
Another year spent refining my home brewing skills, a couple of ribbons from the last Sasquatch Brewfest and a few extra bucks in the bank account had me ready to plunge headfirst into the exciting, fast-paced world of nanobrewing. I even got the green light from the wife. I started with a couple very helpful exchanges with Mike at Beetje Brewery on equipment options and techniques. After deciding that it would be possible to fund a home-based brewery out of pocket, I then participated in a couple exchanges with the TTB, which proved less helpful.
For those of you who haven’t seen the Brewers Association’s newest figures, there are over 700 US breweries currently in the planning stage. Many of these are nanos, and a good portion of which are home-based operations. This run on variances has caused the TTB to become much stricter on what types of residential structures get the stamp of approval. I wish I could have known the importance of the phrase “detached garage” a few years back when my wife and I bought our house, with its 500+ square feet of open, gas-plumbed and completed attached garage. Of course there is also the whole proximity to a grade school thing, another no-no for which the Feds seemed none-to-keen on granting a variance.
About the time I was deciding between sending out the feelers for interest in an alternating proprietorship and scouring the area for dirt-cheap warehouse space, I received some news that put the whole venture on hold. With any luck, by the first of the year, my wife and I will be the proud parents of our first child and my yet-to-materialize brewery will have its first assistant brewer. Here is a shot of the guy/gal, already hard at work refining his/her palette.
I detect a strong note of Amniotic Fluid...
So, with the brewery plans on the back burner while we enjoy the run-up to parenthood, I’ll have some extra time to do my homework. Over the next year, expect a good number of posts dedicated to over-analysis of equipment, DYI projects and my attempts to create a “brand” for myself. In the mean time, if any of you local breweries would like for some free evening or weekend labor, shoot me an e-mail. I can use any hands-on experience I can get, especially washing kegs.
Onward, Upward
As I’ve mentioned before, each day it gets a little easier to blog about beer in Eugene. 16 Tons was a boon to the craft beer community last year. Mike and Jeff’s arrival and the first Eugene Beer Week were no coincidence. And the guys’ newest venture, The Union, can only help to further cultivate it. Add in The Pantry and Pub and Cornucopia’s newest restaurant, The Maize, and we have several new options for craft beer around town. But this is a topic better suited for the next State of Beer in Eugene post.
So, let me end by saying thank you to everyone who makes Oregon the greatest craft beer state; brewers, bloggers, publicans and enthusiasts.
Last fall, I brewed a Biere de Garde with the same “Wild” Eugene yeast I had used on my Wild Smoked Wheat. After a month or so in the tank, the Biere de Garde wasn’t nearly as wild as I hoped. I still believe there is a lacto strain present in the local culture, but the yeast, then on its’ second generation, tore through the wort so fast, nothing else ever got a foothold. The beer sat around until December, when Mike sent me home from the 16 Tons Week of Wild Ale Fest with Jolly Pumpkin Bam Noire and La Roja dregs. The dregs from both bottles and a quarter ounce of oak chips were added to the Biere de Garde and the beer has been quietly working ever since.
The JP bugs never really formed a pellicle, but they did do a number on the few points of gravity that were left in the Biere de Garde. The JP lacto strain is very aggressive and despite a harsh environment with around 5% ABV and 20 IBUs, did a number on the sugars it found. The beer is now firmly sour and has quite a bit of pie-cherry funk. Unfortunately, I starting with only 2 gallons of beer and, after 6+ months of periodic sampling, there is now less than one remaining. Instead of bottling it, I decided to use the beer to inoculate other sour batches. The first of which was a no-boil, rye Berliner Weisse I brewed a few weeks ago.
No-Boil Roggen Weisse
Batch Size: 5.0 gallons Boil Volume: No Boil
4 lb 4 oz 2-Row (71%) 1 lb 12 oz Rye Malt (29%)
1.0 oz Tettnanger (3.2 AA%) @ Mash-hopped
Gen. 2 Eugene, OR Wild Yeast Biere de Garde w/ Gen. 2 Eugene, OR Wild Yeast and Jolly Pumpkin dregs
Mash @ 125(F) for 30 minutes, pull 1/3 of mash for decoction.
Boil decoction (containing some of the mash hops) for 10 minutes, return to main mash to raise temperature to 148(F).
Mash @ 148(F) for 45 minutes.
Infuse with boiling water to reach 170(F).
Sparge from mash tun directly into fermenter.
Pitch one pint starter of gen. 2 Wild Eugene, OR culture and one pint of Bier de Garde.
Ferment ~70(F).
When final gravity is stable, add 1/2 ounce Merlot-soaked oak chips.
So, where to begin…The idea for this beer was inspired by the fantastic Flat Tail Corvaller Weisse I tried during Eugene Beer Week. Corvaller Weisse is immensely sour, with some soft oak and wine flavors in the background. The mash schedule and no-boil method are based on Kris England’s recipe. The change from wheat to rye is another result of my inability to leave things well enough alone. This was my first crack at a no-boil brew and only my second or third decoction. Brewday went well and I overshot my gravity a bit, starting at 1.035. Since I was going straight from the mash tun to fermenter, I didn’t have a way to cool the wort. The fermenter sat overnight to cool before the yeast and Biere de Garde were pitched.
Initial fermentation finished after a few days and the krausen was quickly replaced by a pellicle. Now, about four week in, the pellicle has mostly fallen and the gravity is sitting at 1.000. Here is a shot of the beer I snapped yesterday while I was adding the Merlot-soaked oak chips.
Of course the Roggen Weisse was just the tip of the funky iceberg. I recently picked up a pure Brett Brux culture and worked it up into half a dozen pint starters. The first of these was added to my Black Strap Stout last week, along with some bourbon-soaked oak, while the beer was transferred to secondary. The stout, based on Ron Pattinson and Kris England’s recipe for 1877 Whitbread Extra Stout, gave up the ghost around 1.026. Not sure if it was the high percentage of roasted malts or unfermentables from the molasses, but the gravity wasn’t budging, not even for a fresh pitch of Nottingham. The beer tastes quite good, but the sweetness starts to become overwhelming after a few sips. Definitely not something I want a full five gallon of, so it is now at the mercy of some hungry Brett Brux.
I also brewed a saison last week (post coming soon) which is currently experiencing the infamous Dupont yeast stall. The plan is to dose it with another of the Brett Brux starters at bottling time, a la Orval. I’ll leave you with a shot of Brett starter, waiting patiently for the Dupont yeast to finish up.