Variations on Chocolate Stout

29 June 2010 » In Beer » 6 Comments

As mentioned in the Brewing Résumé post, I once attempted a clone of Dieu du Ciel’s Aphrodisiaque stout, brewed with cocoa and vanilla. While the result was decent, if not very close to the original, it was popular enough that I am now left with only a single bottle of it. Various people have strongly hinted that they would like some more of this beer, so I was obliged to re-brew it.

Chocolate stout split into secondaries

After tasting Firestone Walker’s Velvet Merkin and similar beers, I decided to base the recipe on an oatmeal stout rather than a foreign extra stout as before. Oats are high in beta-glucans, provide a nice body and silkiness, and help with head retention. The recipe was based on the oatmeal stout from Brewing Classic Styles, with a couple of modifications. To avoid doing a cereal mash, I used regular flaked oats instead of old-fashioned, rolled ones. I also baked them in the oven until they turned golden and had a nice toasty smell and flavor. The Victory malt was reduced a bit to avoid saturating the beer with its biscuity taste, and I upped the roasted barley a tad and added a bit of Carafa II Special malt — a dehusked version of normal Carafa — to intensify the aroma and color without adding astringency. A portion of East Kent Goldings hops used for bittering was replaced with Willamette and the EKG was moved 30 min to give a bit of hop flavor.

There are various ways to add chocolate flavor to beer, including raw cocoa nibs, cocoa powder, chocolate syrup, or even just chocolate malt. Cocoa nibs are supposed to give a more integrated taste, but they require the beer to be on them for a couple of months, so I just went with what I used last time with good results — cocoa powder added at the last minute of the boil. Some advocate adding cocoa powder to secondary, and I might try that approach in the future. The vanilla flavor will come from organic vanilla beans. (I picked up 2 Indonesian beans at Whole Foods for the low, low price of $11 #sarcasm.)

San Francisco water is really soft, so I added some baking soda to keep the mash pH from falling too much due to the presence of dark malts.

Vanilla bean in vodka and oak cubes in bourbon

While working on the recipe, I happened upon the Breakfast Stout Riffs post on The Mad Fermentationist blog, which I’ve been reading a lot lately. Mike, the author, brewed an imperial stout and split the batch into different secondary fermenters to experiment with various additional ingredients. I was inspired by his approach, and decided to split my 5-gallon batch as well. The first two variations were easy: 2 gallons would go on top of medium-plus toast American oak cubes soaked in bourbon and some vanilla bean, and 1 gallon would have regular medium toast Hungarian oak cubes and some vanilla as well. After some hard thinking about the third variation, I simply stole the recipe from Mike — a half each of dried ancho and guajillo chile peppers, vanilla bean, and a bit of cinnamon. The final gallon was a complete gamble: sour cherries and dregs from a couple of bottles of Orval (basically adding Brettanomyces and some funky bacteria). I’ve never used fruit or Brett in beer before, so it will be interesting to see how this portion turns out (a few months from now, since Brett works fairly slowly).

I’m going to post a brewing/fermentation log, similar to how The Mad Fermentationist does it, and see if it’s helpful or not. The log will be updated as the beer progresses through fermentation, finishing, and tasting. (Feedback is appreciated.)

Chocolate Stout

Type: All-grain
Batch Size: 5 gal
Total Grain: 13.88 lbs
Expected OG: 1.060
Expected SRM: 41.7
Expected IBU (Rager): 35.7
Brewhouse Efficiency: 70%
Wort boil time: 90 min
Fermentation Temperature: 68°F

10.0 lbs. Maris Otter 72.1%
1.25 lbs. Flaked Oats 9.0%
0.75 lbs. Chocolate Malt (US) 5.4%
0.63 lbs. Roasted Barley (US) 4.5%
0.50 lbs. Caramel 80L malt (US) 3.6%
0.50 lbs. Victory Malt (US) 3.6%
0.25 lbs. Carafa II Special (Germany) 1.8%

1.3 oz. Willamette [5.0% AA, pellet] @ 60 min.
1.0 oz. East Kent Goldings [5.0% AA, pellet] @ 30 min.

1.00 Whirlfloc @ 15 min.
1.00 Servomyces yeast nutrient @ 10 min.
6 oz. Cocoa powder (unsweetened) @ 1 min.

White Labs WLP002 – English Ale

Water Profile
San Francisco tap + 5 g of baking soda to the mash

Mash Schedule
Type: single infusion
Saccharification rest: 60 min. @ 154°F


Brew day, by myself.

Made a 1.5 L starter two days before; good activity.

Decided to add 2 oz of pale chocolate malt and 2 oz of flaked barley for additional body to the grist.

Added 5 grams of baking soda to keep the mash pH from falling too far. Batch sparged in 2 steps. Collected 7.4 gal of wort at 1.055.

Extended pre-hops boil time by 10 min. to allow for more evaporation.

Wort chiller tubing broke after 10 min spraying a tad of water into the wort. Replaced the tubing. Chilled to 70°F, ended up with 5.5 gal of wort. Transferred 5 gal and aerated. Pitched 1 L of the starter after decanting 0.5 L. Fermentation started in about 4 hours.

Active fermentation, temp at 72°F despite using the cooler, so just letting it ferment at room temp.

Really thick yeast cake, this WLP002 yeast is definitely floculant. Gravity down to 1.026.

Gravity down to 1.022. Transferred to secondaries, split 4 ways:

  1. 1 oz medium-plus toast American oak cubes soaked in bourbon for a week + 1 Indonesian vanilla bean (2 gal)
  2. 1/2 oz medium toast Hungarian oak cubes + 1/3 Indonesian vanilla bean (1 gal)
  3. 1/4 tsp cinnamon + 1/2 ancho + 1/2 guajillo + 1/3 Indonesian vanilla bean (1 gal)
  4. 1/2 lb pitted sour cherries

Pitched a small starter made from the dregs of 2 Orval bottles into the cherries portion.

Bottled everything but the funky portion with 3 oz of dextrose. The final volume turned out to be less than 4 gallons, so hopefully it won’t be over-carbonated.

The bottle I used CarbTabs in didn’t carbonate much. Opened a bottle of the American oak variation, and that one carbonated beautifully. Nice foamy mocha-colored head that recedes to thin persisting ring. Good body, those flaked oats definitely help the fullness and smoothness of the mouthfeel. The chocolate and vanilla are present, but subtle, which is nice. The oak tannins help the mouthfeel as well. Overall, pretty enjoyable.

Received 31 averaged score in MoreBeer Forum Competition (33/33/27 individual scores). Entered into 21A category (Spice/Herb/Veg beer). Criticism was that there was too much cocoa flavor and aroma, covering up vanilla and malt. Also, a bit of astringency.

Chrome Not Quite Shiny Yet

27 June 2010 » In Opinion, Tech » 7 Comments

A month ago I decided to stop using Firefox as my main browser, because I was becoming frustrated with its sluggishness and general stability issues. I wanted to give a new, modern browser a chance and Google Chrome seemed like the most fitting choice. I’ve been using it diligently and exclusively since then and wanted to share some good and not so good things that I found out after a month of daily usage. The caveat is that I’ve only used it on the Mac platform, so my findings may differ for Windows/Linux users.

  1. It’s fast and stable. Pages load quite a bit faster, if only perceptually. And while the memory usage is not that much lower than FF’s – after all, those DOM trees and images have to go somewhere – I have never had to force-quit (or even just quit) Chrome the way I had to with FF after a couple of days. This is a big win in my book.
  2. The built-in developer tools are nice, but are not quite as good as Firebug, it seems. I will have to try them out on a project before I can say this with certainty.
  3. There is a lack of integration with 3rd-party tools and websites I used with FF, mainly 1Password and Delicious. Yes, there are Chrome alpha/beta extensions for both, but I miss the full functionality the FF versions offered. Hope the vendors hurry up and bring them up to feature parity.
  4. I miss the quick search engine access that FF has in the upper right corner. That’s how I searched Amazon,, and several other sites. I can’t find an equivalent in Chrome.
  5. There is no way to configure proxy settings through Chrome itself. You have to use a command-line parameter (who does that on a Mac though?), an extension, or do it through OS X’s System Preferences.
  6. It’s from Google. So it’s just what I’ve come to expect from their products – great engine and features combined with some usability problems and a lack of polish.

Overall, I’m pleased with Chrome and will continue using it as my main browser unti something better comes along.

Update: As the comments below indicate, it is possible to configure and use various search engines from the “omnibox”, aka the search bar. Right click and select Edit Search Engines.

Brewing Résumé

04 June 2010 » In Beer » 5 Comments

My first brew

My first brew

I ventured into homebrewing in October 2008, and judging by my brewing logs, I’ve made 16 batches since then, which is somewhat less often than once a month. I’m glad I kept the logs from the very start (using Beer Alchemy), because it allowed me to go back and look at the recipes as well as the notes I kept for each batch.

My first kit was an English-style Best Bitter ale from MoreBeer, and boy was I nervous when reading all the steps to be followed during cleaning, sanitizing, steeping, boiling, cooling, fermenting, and bottling. Being a perfectionist, I didn’t want to screw any of it up, but my good friend Sean Coates — a much more experienced brewer — told me, “Relax, beer wants to be made.” What he meant is that even if I did screw something up, the end result would most likely still be beer. This brings to mind another saying in the homebrewing world that was popularized by Charlie Papazian, “Relax, don’t worry, have a homebrew,” or RDWHAHB.

Well, my first beer turned out to be drinkable and actually pretty good. Encouraged by that success and the approach of the holidays, I bought another kit, a Christmas Ale. Brewed together with Gene X, it also came out well, and so I was off. Over the next few months, I scoured homebrewing boards for advice and recipes, and I brewed everything from Dunkelweizen (Tim‘s favorite) to Rye IPA (Jordan‘s favorite) to a smoked porter (no one’s favorite, but still good). I also migrated from using extract with steeping grains to doing partial mashes.

In March of 2009, I was in Montréal for a PHP conference and was introduced to the local brewing scene by Sean. I especially liked the Dieu du Ciel brewery. The second time we visited it, I tried their Aphrodisiaque stout, and, rumor has it, exclaimed, “This is delicious! I dub it The Panty Peeler, and I’ll have to brew a clone of it.” A few weeks later, I did just that, and while I didn’t quite clone it, the result was immensely popular with the female contingent. 🙂

Fermenting beer

Fermenting beer

Jamil’s Amber-Red Ale was my last partial mash beer, but also my most winning one, since it got 3rd place in the American Amber category at the 2009 Puget Sound Pro-Am competition. After that, I switched to all-grain brewing and haven’t looked back.

My friends Joe, Laura, and a few other local geeks from Michigan, are huge fans of Bell’s Oberon, an American wheat ale. Seeing as Oberon is not available west of the Rockies, I decided to try to clone it as well. The challenge was that Bell’s uses a unique yeast for fermentation, but since they also bottle condition with it, I was able to culture a starter from a single bottle of the beer. With that yeast and a supposedly authentic recipe for Oberon, I made the batch and the result was quite good, if not quite Oberon-like.

My next challenge was Berliner Weiße, an authentic German beer with a sour, refreshing, low-alcohol profile. I wanted to make it with the traditional sour mash technique (instead of using Lactobacillus culture). This involves keeping the mash at 100°F for a couple of days while it sours due to deliberate contamination by bacteria living on the surface of barley. Towards the end, the mash smelled like old gym socks filled with stinky cheese, but it tasted great. After a quick boil and fermentation, I had some really delicious sour beer that would be excellent for summer.

I developed a taste for saisons, so I wanted to try my hand at making one. My version involved a recipe from Brewing Classic Styles, a pinch of spices, and the newly acquired FermWrap heater. Well, my creation was not as dry and spicy as saisons should be, but the aroma and taste were excellent. I entered it in the World Cup of Beer competition as a Belgian Pale Ale, and it scored 34.6 out of 50, lacking just 0.4 points for a 3rd place finish. Better luck next time.

Lacking a refrigeration unit, I hadn’t made lagers yet, but I really enjoy Baltic Porters, so I brewed a batch from BCS again, and asked Brien to ferment it in his temp-controlled freezer. Recently — after a month in the primary, and 10 weeks of lagering — the porter was bottled. Preliminary tasting shows a bit of fusel alcohols, but hopefully that’ll mellow out with some aging.

And finally, my last batch was Hopcode Cache Rye IPA, a recipe from Sean. The name is a play on words. I dry hopped it with Amarillo (one of my favorite hops), and it turned out great, so I entered it into the Alameda County Fair competition. The judging is expected to happen on June 12.

What comes next? Well, that’s a topic for another post. But here’s my brewing résumé so far, in chronological order (recipes in Beer Alchemy format).

Reblog this post [with Zemanta]

Vim for Programmers on Slideshare

02 June 2010 » In PHP, Talks » 19 Comments

A few years ago, I was considering what proposal to submit to the Vancouver PHP Conference. The usual slate of “how to do this and that in PHP” was becoming a bit tired, so I decided to submit a talk about an essential skill that PHP (and other language) developers might need: using the Vim editor.

By that time I knew that I was firmly in the Vim camp (as opposed to Emacs or IDEs). Of course, writing a 45 minute talk about Vim is like trying to explain Mulholland Drive during an elevator ride, but I rose to the challenge and put together the first version of the slide deck. When I later received the feedback about the talk, I realized that it was the most highly rated one of the conference, above even Rasmus‘s perennial PHP keynote. Clearly, I was onto something.

Since then I’ve expanded and adjusted the talk to fit the 45-60 minute slot, but I still usually run out of time due to the wealth of material. So I published the slides on Slideshare and created a Github repo for my time-tested Vim settings and plugins, so feel free to fork it and submit pull requests. And in general, go forth and Vim.

On Beer

31 May 2010 » In Beer, Me » 3 Comments

Hi, my name is Andrei and I am a beer enthusiast.

To some of you this may not be news, but beer is something that has become a significant part of my life during the last couple of years. That is not to say that I didn’t drink beer before – I did, but somewhat indiscriminately and without paying much attention to the actual product. And while I do enjoy other fine adult beverages, such as wine, bourbon, whisky, gin, and well-crafted cocktails, beer is what I feel passionate about and I finally want to start writing a bit about it, on this blog, for now.

Beer is the world’s oldest and most widely consumed alcoholic beverage and the third most popular drink overall after water and tea. Many anthropologists and historians believe that beer is what made early hunter-gatherers finally settle down and become sedentary farmers, because well, they needed barley to brew it, so one can say that beer was one of the driving forces behind the rise of civilization. Moreover, most fresh water wasn’t exactly safe to drink back then and beer provided both hydration and sustenance.

Beer has more styles and varieties than any other alcoholic beverage, and though almost all beer is made using the same 4 ingredients (water, barley, hops, and yeast), the sheer number of additional ingredients that can be used to brew beer and the creativity that goes into the process can put almost everything else to shame. Despite this, there is still a widely spread perception that beer is that pale, cold, “subtly flavored” beverage that is marketed by the giant companies collectively known in the brewing circles as BMC. I’ll let you guess what that stands for. Thankfully, there is a thriving craft brewing industry both in the United States and abroad now, and beer is finally starting to be treated with respect.

About a year and half ago I got into homebrewing, thanks to the efforts of Brien Wankel and especially Sean Coates, who has been instrumental in answering a bajillion questions I had when getting started. I never thought that I could actually make beer myself, but after reading the online version of How to Brew by John Palmer, I was immediately fascinated by how easy and yet how sophisiticated the brewing process can be. The more advanced part of it has to deal with biochemistry, thermodynamics, fluid dynamics, and even metallurgy and this appealed to the geek in me. I bought the starter kit from MoreBeer and made my first batch, which was a Best Bitter English-style ale. When I opened a bottle 4 weeks later and found that not only was it not bad, but actually pretty drinkable, I knew that I was hooked. Since then I’ve brewed about once a month, exploring various techniques and styles. I’ve also sent some of my beers to competitions and even won a 3rd place in the American Amber category at Puget Sound Pro-Am last year.

Crafting a beverage that can be enjoyed by yourself and others is a great feeling, and I hope to share more about it in the coming posts. Additionally, I plan to review various beers and write about the beer industry, events, places to find good beer and hopefully much more.


Regex Clinic on Slideshare

03 May 2010 » In PHP, Talks » 5 Comments

Back in 2004, I submitted a proposal to the only PHP conference ever to have taken place aboard a cruise ship. Yes, the infamous PHP Cruise (“Do we all know each other?”). The talk was about regular expressions and their usage in PHP. I wrote the original version in PowerPoint, but when I boarded the ship and saw Keynote 1.0 on someone’s Powerbook, I was hooked and had to port all the slides to Keynote right then and there.

Well, the talk – and the cruise – went well, and since then Andrei’s Regex Clinic has grown and shrunk in size depending on which conference I was giving it at and how much time was allotted. I considered retiring the talk several times, because surely people should know how to use regular expressions by now, but whenever I give it there is a roomful of people wanting to know what (?>=foo) does. And as much as I try, I always run out of time trying to cover everything from the basics to more advanced usage.

I feel that the slides are pretty polished by now and it’s better if people can read them at a comfortable pace, so the whole tutorial-sized presentation is now available on Slideshare. I omitted the section that covers PHP’s regular expression API, because it already has great online documentation. Otherwise, go forth and read about look-ahead assertions and recursive matching.

Please Start From The Beginning

11 January 2010 » In Development, Me, PHP » 4 Comments

Please Start From The Beginning is a video series that explores the career paths and experiences of web industry professionals. I was honored to be interviewed for the series along with such interesting people as Eric Meyer, Joe Stump, and Elliot Jay Stocks. If you to hear about how the heck I started in Web development, this is a video for you.

PHP Advent 2009: GeoIP Wrangling

21 December 2009 » In Analog, Development, PHP » 7 Comments

There have been a few kind words and questions about the GeoIP-based blurb that greets the visitors to our Analog holding page, so I wanted to blog about how it was made and what obstacles I ran into. However, while writing I realized that it would be the perfect candidate for this year’s edition of PHP Advent instead of the article I originally planned to write about Git and Github. So head on over and read about GeoIP Wrangling and feel free to leave your comments here.

Say Hello to Analog

18 December 2009 » In Analog, Me, PHP, Work » 8 Comments


That pretty much sums up my feelings about the response to the announcement of Analog, a web design and development co-operative that I started with a few of my friends. I am stunned and humbled by the many kind words of congratulations, praise, and encouragement that we received about our launch via Twitter, Facebook, and personal communication. Thank you. Many have been wondering what I’ve been up to since leaving Digg in early September, and organizing and setting up Analog has been a big part of it.

The first time I discussed the idea for such a company was when Chris Shiflett and I went to Iceland in June. During that time of renewal, reset, and inspiration, we talked about our desire to work on interesting projects with a great team of peers. People like Jon and Jon, who Chris had worked with on a few occasions. From the start, we wanted to be a bona fide co-operative: an organization owned and operated by a group of individuals for their mutual benefit and adhering to the principles of equality and equitability.

Co-operatives, especially tech ones, aren’t very common — though they are much more prevalent across the pond in the UK — so it took us a while to work out the legal and tax issues of having an equitable company comprised of people from multiple countries. This time was also spent refining our brand identity and brand promise, both of which we believe strongly in. We also needed a short statement to explain who we are and what we do, and in the end it became this (the last part of which harkens back to our original motivation):

Analog is a company of friends who make web sites. It’s a co-operative where imagination, design, and engineering thrive; good people doing good work.

The part about “making web sites” may sound simplistic, but we believe in taking back simple, honest phrases like web site and web developer. They are precise and descriptive despite having been shunned or dismissed by people in favor of things like web application, front-end/back-end engineer, and other seemingly sexier nomenclature meant to sound more important. It’s time to call things what they are. Say it with me, “I am proud to be a web developer.”

Analog origins

Of course, the most difficult thing to decide on was the name. We had a lot more latitude within the .coop top-level domain (TLD), but even then, we must have gone through a hundred or more names looking for one that would somehow reflect our philosophy while being memorable. The flash of inspiration struck while imbibing the potent Bee Sting cider at the inimitable Duke of York in Bristol. The name had an instant appeal, and I imagine we all thought, “Yes, Analog is it.” Jon Tan even left a mark on the table, since he couldn’t wait to see what Analog would look like in type.

Analog appealed to us because of its association with handmade things, craftsmanship, and a “warmer” feeling in general. Somehow it felt good to think that we were going to do digital things the analog way, where a personal touch of each of us would be evident in our work and communication.

The team at Analog is one of the best that I’ve had the honor to be a part of. Alan Colville is an accomplished UX designer and customer experience and usability researcher. He has helped a number of clients in the past, including Vodafone, Virgin Media, BlackBerry, and Visa. Chris Shiflett has extensive background in web development, specializing in web security, and has worked on projects for Ning, National Geographic, Digg, and many other clients during his time as principal of Brain Bulb and OmniTI. Jon Gibbins is an ace developer and web accessibility expert who most recently lent his skills to OmniTI as well. And Jon Tan is simply the best designer and typography maven that I have a pleasure to know, with an extensive body of published work. Between us, we have many years of experience and a bountiful font of creative knowledge.

The type of work that we want to do is twofold. Firstly, we want to take on client projects that are built on an inventive concept, where we have as much creative freedom as possible. By this I mean that, as a group, we want to be part of the initial discussions and brainstorming, so that we can inject our own ideas into the process. We want the projects to utilize both our design and development expertise, involving aspects of the programmable web in a way that supports and enriches the original concept. Secondly, we want to incubate some of the ideas we’ve been knocking around into products that can be spun-off later, if necessary. We’re especially interested in possibilities presented by geo-location, geo-tagging, and other geo-things. We also want to share what we learn and produce as a team. The first thing we’re releasing is the JS grid overlay used on the Analog site; look for it shortly.

We’re on Twitter as @analogcoop. Get in touch if you have a cool project in mind and want to work with us to make it a reality, or use our nifty contact form at

Reblog this post [with Zemanta]

Starting Codeworks 2009

28 September 2009 » In PHP, Talks » 8 Comments

It seems that a short time ago, at the php|tek in Chicago, the Code Works conference was just a glimmer in the eye of Marco Tabini and his associates. And today I am in Atlanta, starting off the east coast leg of the conference along with a few of my friends and colleagues. The first part made stops in San Francisco (where I served as a social director since it’s my home town), Los Angeles and Dallas and it sounds like everyone had a great time.

After Atlanta we go onto Miami, which I am only familiar with through Dexter; Washington D.C., where I hope to take in a couple of sights, since I’ve never been; and New York, a city that I always love to visit.

My talks in this conference will cover VIM, regular expressions, and distributed systems with PHP, including memcache, mogilefs, and Gearman. There are many good talks on the schedule, so consider signing up and joining speakers and other attendees for what is bound to be an excellent event.

Page 2 of 2512345...1020...Last »