# Thursday, June 08, 2006

I like beer.  I like it enough that I brew my own and I have a 2-faucet tap mounted on my kitchen sink with lines running to the kegs of home brew in a refrigerator in the basement.  My dad asked me this weekend to put together a list of what he needed to make beer that will be ready when I visit next month, and I decided that I would not just give him a list of stuff, but give him a bit of what I've learned about brewing.  After writing several pages I figured I might as well post it here for any potential newcomers to the brewing craft.

I'll going to do this in parts.  This is part one and it's going to be a general look at brewing and ingredients.  I'm leaving a lot out and there are books on the subject, but I hope to provide enough to give an understanding of how it all comes together.

First, let's look at the process of making beer in general.

Beer has essentially four ingredients: water, grain, hops and yeast.  Of course you can add other items, which are called adjuncts, but that's really all there is to it.  By varying the types and amounts of each, as well as the brewing process you get the entire spectrum of goodness known as beer. 

Water

You've got tap water.  If you're comfortable drinking that, it's fine.  In fact you're going to boil it for quie a while, so yuo could even use water that you're not so comfortable with for most beers.  Some people are fanatical and do water quality tests and adjust the pH before starting, or they use bottled or filtered water.

You'll have plenty of time to get fanatical about your brewing methods.  For now use the kitchen sink or the hose bib.

Grain

The ingriedient list of grains in a beer recipe is known as the grain bill and the primary grain used in beer making is malted barley.  There are other grains like rice, wheat, oats and just about anything else the brewer's imagination can conjure up, but barley is invariably the overwheling majority of the grain bill for any beer - even a "wheat beer" or weizen.

The process of "malting" barley is simple, though one few home brewers can attempt because of the sheer magnitude of the equipment and time necessary.  Obviously it's a bit more complex, but the general process is this: barley kernels are wetted and allowed to sprout.  The process of sprouting generates large amounts of starches in the grain that can be converted to fermentable sugars.  When the sprout is about the length of the kernel, the kernels are dried and rolled to break of the sprouts.  That's it.  You've malted your barley. 

The kernels are then roasted to a specific darkeness to provide variation.  Another common variable is the type of barley used.  You'll often see "one row" or "two row" barley, which is an indicator of how the grain physically grows on the stalk.  From this simple process you get everything from crystal malt to black patent.

The grain used along with the amount is going to have the greatest effect on color and alcohol content.  It has an effect of flavor of course, but not as much as you probably expect.

Other grains are typically not malted, but used in whatever form the brewer finds.  I've hand roasted unmalted barley, used quaker oats right from the can and even tries out corn.  Experimentation is fine, but moderation is the key.

If you are going to make home brew there are a few shortcuts you can take and the most common shortcut is in the grains.  Making beer requires a lot of sugar, and a lot of sugar requires a lot of grain.  You have to mill tens of pounds of grain. You have steep it at very controlled temperatures at around 150 degrees in a process called conversion.  This is where the starches are converted to sugars.  The temperature at which the conversion takes place determines if the sugar will be fermentable.  The more fermentable sugars you have, the drier the beer will be and the higher the alcohol percentage.

In home brewing, this is called all-grain brewing and it provides the ability to control almost all variables in how the starches and sugars are extracted and converted.  While that's all well and good, the equipment costs are substantial and the time investment for a batch of beer is quite a bit higher.  On the plus side, you can brew really good beer for probably $0.25 a bottle.

For those of us who like to spend a little less time and a little less money on equipment there is a shortcut called extract brewing.  All-grain brewers will scoff at you and say it's like making instant pudding, but the reality is that most brewers do extract brewing.

Extract comes in two forms dry or liquid.  In both cases it simply a concentration of malted barley sugars.  basically someone else crushed the grains and stteped them to convert and extract the sugars, then put it into a concentrated form.  All you do is dissolve it in hot water and ta-da - you're done.

Now all-extract brews don't have much character, but work well for starter kits and first batches.  Once you've done a batch or two you can add a couple pounds of crushed grains for color and body and for the most part it's touch to screw up.  Of course you don't get to finely control all aspects of the extraction, but you can still get some really good brews this way.

Hops

Hops are a flower that grows on a vine and like most plants, they come in lots of varieties.  Different hops give different flavors to the beer, and the same hops introduced at different times during the brewing process can also change flavor.  Different hops grow better in differnt climates, so you'll see commercial hops from the pacific northwest, from england, from the Czech repulic and a few other places.  In reality, the vine is pretty hardy and will grow in most mid latitudes.  I've got a couple varieties ciming a chimney in my backyard, yet you don't hear "Maryland hops" too often touted on Sam Adams commercials.

At any rate, home brewers can get most any hops in a few different forms - pellet, plug or whole leaf.  Again, some brewers are rabid about the form and by all means you might get rabid yourself, but starting out just consider any one form to be just as good as the next.  If the recipe calls for leaf and your supplier only has pellet shrug it off and move on (hell I do that with hop variety at times).

Just like the grain bill, in the brewing process you have a hop bill and your hops will be of two "forms": bittering or finishing.  The difference is simply when they are added.  Bittering hops are added early and cook longer, finishing hops are added late.  My genral rule is that a finishing hop is added with 15 minutes or less left in the kettle.  Adding the hops right at the end, or directly into the  fermenter is called dry hopping.

Some hops are more traditionally used for either bittering or finishing, but you can have a recipe that has the exact same hop variety used for both bittering and finishing.  Don't worry about it too much, once you brew a few batches you'll start to get the idea.

Yeast

Yeast is the thing that makes the magic of beer.  It affects flavor greatly and it is what generates the alcohol thorugh fermentation.  Basically yeast consumes the fermentable sugars in the wort and gives off alcohol and CO2 (yes, you could say that alcohol is yeast piss).

Beer comes in basically two overall classifications: ale and lager.  All beer falls into one of these two categories, and the difference is all in the type of yeast used.  You've probably heard about "bottom fermenting" and "top fermenting" as a difference, but that's crap.  The difference is purely in temperature.  Ale yeast does it's best work at warmer (65-70F) temperatures, lager yeast works best at cool (50-60F) temperatures.

There are yeast varieties for most styles of beer, and when you're following a recipe it's the one thing you should try to avoid varying (until you get a little experience). 

Brewing

The general process of brewing is this.  You take some water, heat it to 150F and dump in grains.  You let that steep for an hour or so to convert and extract the sugars.  You then bring that to a boil and throw in your bittering hops.  After about 45 minutes you throw in your finishing hops and any adjuncts. You boil that for 15 minutes and you're done.  You have what's called wort, which is simply unfermented beer.

When you're done making the wort, you chill it to around 70 degrees, usually with a wort chiller of some sort, put it in a fermenter and then throw in your yeast (this is called pitching).  You put a lid on this that allows CO2 to escape but no bacteria to get in.  It will begin fermenting and bubbling usually within a day (if not you've probably screwed up or used dated yeast). A large head of foam called a krausen will form. After a week primary fermentation is usually complete. The actual time depends on temperature, yeast type and starting gravity, but for your first batches a week is a good rule of thumb. 

After primary fermentation, you'll take the beer off the top of the sludge, or troub at the bottom of the fermenter.  This is a mix of yeast cake (the colony of yeast that grew during fermentation) and sediment.  You'll rack it (siphon it off) a secondary fermenter.  This helps keep the beer clarify and not acquire any off taste from the sediments.  You'll no doubt get some sediment transfer and there's plenty of yeast in suspension.  That's fine, and in fact the yeast is necessary later.

You'll leave the beer in the secondary fermenter for a week or six (it's not terribly critical, and it can vary from beer to beer) until youre ready for bottling.  At that point you'll prime the beer by adding a sterilized corn sugar mix (boiled wayter and corn sugar).  This will provide the food for the suspended yeast to carbonate the beer.  Be _very careful_ here.  Too much priming sugar will lead to blown caps or exploding bottles.

The other option is to prime the beer and throw it in a keg, or just throw it in the keg without priming and hook it to a CO2 system to carbonate.

Now you let the beer condition.  It will mellow out and become the beer you want.  You can drink it after as little as about 2 weeks, but it generally gets better with time.  Some beers come into their own after only 2-4 weeks (I've had good ambers that were only 2 weeks in teh bottle), some take longer.  I've made a stout that was just undrinkable (and I can drink most any beer) for the first 8 weeks, but actually turned fantastic after about 5 months.  I've known people to condition barleywines for over a year.

In the next part we'll look at the equipment you'll need, and how much it's going to cost you to get into brewing.

 

Thursday, June 08, 2006 6:40:39 PM (Central Daylight Time, UTC-05:00)  #     | 
# Tuesday, June 06, 2006

We've recently released SDF 2.0 and our so-called "SDF 2.0 Extensions for Visual Studio" and with the release came the expected comments like "Since you're now selling your code, shouldn't you change your name from OpenNETCF to something else." Well I'd like to give you some insight onto our rationale for charging for the SDF.

 

First, let's look at what we've actually done as far as licensing goes.  The SDF is available as basically 2 separate items.  There are the compiled binaries and then there are the "Extensions for Visual Studio."  You can download the binaries from our site and develop using them, though you won't get Intellisense and nice designer support.  You can ship them, at no cost at all, with your application to any number of customers.  There is no cost for this.

 

The Extensions add a few niceties - you get intellisense and designer support.  You get new templates added into Studio.  You get some Studio menu plug-ins, like a link to our online Bugzilla database.  You also get the full source code.  The extensions sell for $50.00 for a single developer, which even if you get paid really, really poorly, is only a couple hours wages and will save days of work.  That's our direct value proposition: for $50 you can get something that would have taken you weeks or months to develop yourself.

 

The source license is a little different than the SDF 1.x license as well.  You can now build the SDF into your app directly and you don't have to provide any copyright info, headers or anything to indicate that you used the SDF.  While not a big thing, there have been customers that have said that was, in fact, a problem.

 

So, why the decision to start charging anyway?  The answer in simple terms is growth. 

 

First, we needed to grow the SDF itself.  We needed to grow its feature set, since CF 2.0 made a lot of it obsolete.  We needed to grow its reliability by building test harnesses and functional tests for each piece.  We needed to grow the documentation by actually filling in XML comments on a lot of code.  SDF 2.0 took a lot of work to build, test and debug - more than all of the 1.x versions - and to put it simply, motivating people to do hours and hours of work for nothing is difficult.  It's even more difficult when they've already been doing it for a few years.

 

Second, we needed to grow our market.  While it may come as a surprise to individual and small-shop developers, large enterprises are wary of anything that's free.  In fact, many won't adopt anything that they don't pay for because they feel that without a revenue model there can be way to fund development of support.  To help build our day-to-day business of consulting and development, we need visibility and penetration with companies that routinely buy these services.  The SDF is essentially a marketing vehicle in that regard.  We feel that $50 makes the SDF seem like a more "real" product to an enterprise, while not placing undue burden on the small guy's budget.

 

Third, we needed to grow our revenue so we could grow OpenNETCF.  OpenNETCF is now a real company, with real developers who have real families that have real bills.  While we all love the idea of free and open, we also know that to continue work we need to at least be able to pay for web hosting and the like.  Don't get me wrong here; the SDF is not a profit center.  We're not going to get rich, or even move up an income bracket due to SDF sales.  With the amount of time we have into it it's unlikely we'll even approach break-even, however the "donation" model fails miserable.  In the 2 years we were accepting PayPal donations we got less that $100 in total.

 

This move was really about the survival of the SDF and OpenNETCF as a whole and we sincerely hope that we don't turn too many SDF users away with the new model.  Sure, we know we can't make everyone happy and there will be people out there that are angry that they now have to pay for what we have, but the hope is that the large majority of users will understand, even if they don't decide to purchase the Extensions.

 

While we're not as "Open" and some would like, we still believe in the concept of openness, which is why we still provide the source for the SDF when you buy it (which most tool vendors do not, I'd like to point out).  We still have the RAPI desktop library and the serial/GPS libraries which are free and open, and we're actually looking at some other new projects that we may release as community projects in the future. 

Tuesday, June 06, 2006 9:36:25 AM (Central Daylight Time, UTC-05:00)  #     | 
# Monday, June 05, 2006

I may be a little biased because they're ours, but our new Calendar Controls really are the best looking ones I've seen.  You can now add a calendar to your managed app that looks just like the Outlook calendar.

Monday, June 05, 2006 12:30:35 PM (Central Daylight Time, UTC-05:00)  #     | 

Seems like it took forever, but we've finally released the SDF 2.0 Extensions for Visual Studio 2005.

For more info on what exatly comes with the new SDF Extensions, click here.

Monday, June 05, 2006 12:26:58 PM (Central Daylight Time, UTC-05:00)  #     | 
# Friday, June 02, 2006

I came across this article while doing some research.  It's well worth the read for anyone doing any kind of development.

Friday, June 02, 2006 7:54:16 PM (Central Daylight Time, UTC-05:00)  #     | 
# Wednesday, May 31, 2006

Microsoft has published a new white paper on the Micro Framework information page.

Wednesday, May 31, 2006 3:11:03 PM (Central Daylight Time, UTC-05:00)  #     | 

Ever want to make all CAB file installs on your device be silent?  Simply add the following registry key to your platform:

[HKEY_CLASSES_ROOT\cabfile\Shell\Open\Command]
    @="wceload.exe \"%1\" /nodelete /noaskdest /noui"

Wednesday, May 31, 2006 12:04:13 PM (Central Daylight Time, UTC-05:00)  #     | 
# Tuesday, May 30, 2006

Just as a mental exercise, today I decided to try to write a single method that would allow me to return information about the currently running assembly as a string.  One method needed to return the copyright info, the company info, etc.

The end result is this simple function:

public string GetAssemblyAttribute<T>(T attributeType) where T:Type
{
    object attribute = Assembly.GetExecutingAssembly().GetCustomAttributes((T)attributeType, false)[0];
    return (string)attribute.GetType().GetProperties()[0].GetValue(attribute, null);
}

And calling it is this easy:

string s = "";

s = GetAttribute(typeof(AssemblyCopyrightAttribute));
s = GetAttribute(typeof(AssemblyCompanyAttribute));
s = GetAttribute(typeof(AssemblyDescriptionAttribute));
s = GetAttribute(typeof(AssemblyProductAttribute));
s = GetAttribute(typeof(AssemblyTitleAttribute));
s = GetAttribute(typeof(AssemblyTrademarkAttribute));

Now why it has to be this ugly I'm not sure, but isn't reflection a hoot!? 

Tuesday, May 30, 2006 9:12:52 PM (Central Daylight Time, UTC-05:00)  #     |