<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-36777682</id><updated>2012-02-16T23:24:06.854-05:00</updated><category term='reading'/><category term='school of webcraft'/><category term='beer'/><category term='jQuery'/><category term='other'/><category term='game-dev'/><category term='blog'/><category term='javascript 101'/><category term='brewing'/><title type='text'>Gorlith</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gorlith.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://gorlith.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ray Crego</name><uri>https://profiles.google.com/112783501436078185945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-dYS8kFRJdZc/AAAAAAAAAAI/AAAAAAAADqI/JXHfTrRz4jQ/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>24</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-36777682.post-8811231953998053841</id><published>2011-05-31T15:33:00.000-04:00</published><updated>2011-05-31T15:33:11.491-04:00</updated><title type='text'>TRPG Progress</title><content type='html'>Without getting into too much detail:&lt;br /&gt;&lt;br /&gt;I've converted my existing code to work with XNA 4.0. This was a bit of a pain here and there, but I finally fixed that issue.&lt;br /&gt;&lt;br /&gt;I am still having a strange issue where I cant currently add new sounds to my content because of a&amp;nbsp;reoccurring&amp;nbsp;crash when I go to open the sound importing software XNA comes bundled with. I'll eventually need to figure out how to fix this although most of the solutions I've read about sound like a pain in the ass.&lt;br /&gt;&lt;br /&gt;I've dropped my old Map code and file structure and brought it Jim Perry's version from his XNA RPG book. In the next few months I'm going to start tweaking it to be more in line with the movement style of a TRPG. I might need to do a lot of work on Entities (characters) in conjunction with this, not sure yet.&lt;br /&gt;&lt;br /&gt;The content Toolkit is coming along in line with the engine, but I'm not planing on working on it much for a while until my engine is closer to baseline.&lt;br /&gt;&lt;br /&gt;Side note:&lt;br /&gt;Sorry for the long silence. My focus has been primarily on reading and exercise lately, but I'm starting to start bringing back development as a priority. Not enough hours in the day to stay well rounded without dropping some hobbies. Gaming, bass, and hockey have all taken a big hit while exercise and reading have come to the front over the past year.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36777682-8811231953998053841?l=gorlith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorlith.blogspot.com/feeds/8811231953998053841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gorlith.blogspot.com/2011/05/trpg-progress.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/8811231953998053841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/8811231953998053841'/><link rel='alternate' type='text/html' href='http://gorlith.blogspot.com/2011/05/trpg-progress.html' title='TRPG Progress'/><author><name>Ray Crego</name><uri>https://profiles.google.com/112783501436078185945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-dYS8kFRJdZc/AAAAAAAAAAI/AAAAAAAADqI/JXHfTrRz4jQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36777682.post-5528013071278186001</id><published>2011-02-07T13:49:00.000-05:00</published><updated>2011-02-07T13:49:35.712-05:00</updated><title type='text'>Javascript:101, Week 2, Homework</title><content type='html'>Homework:&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;1) Exercises 3.1 from chapter 3 of Eloquent Javascript&lt;/b&gt;&lt;br /&gt;My answer is at: http://jsfiddle.net/Gorlith/qAVyF/&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2) Exercises 3.2 from chapter 3 of Eloquent Javascript&lt;/b&gt;&lt;br /&gt;My answer is at: http://jsfiddle.net/Gorlith/Kyekg/&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3)&lt;/b&gt;&lt;br /&gt;&lt;b&gt;a)&amp;nbsp;&lt;/b&gt;http://jsfiddle.net/Gorlith/zxqkj/&lt;br /&gt;&lt;b&gt;b)&amp;nbsp;&lt;/b&gt;http://jsfiddle.net/Gorlith/WPA6s/&lt;br /&gt;&lt;b&gt;c)&amp;nbsp;&lt;/b&gt;http://jsfiddle.net/Gorlith/ueY4T/2/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36777682-5528013071278186001?l=gorlith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorlith.blogspot.com/feeds/5528013071278186001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gorlith.blogspot.com/2011/02/javascript101-week-2-homework.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/5528013071278186001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/5528013071278186001'/><link rel='alternate' type='text/html' href='http://gorlith.blogspot.com/2011/02/javascript101-week-2-homework.html' title='Javascript:101, Week 2, Homework'/><author><name>Ray Crego</name><uri>https://profiles.google.com/112783501436078185945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-dYS8kFRJdZc/AAAAAAAAAAI/AAAAAAAADqI/JXHfTrRz4jQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36777682.post-1416731843422209450</id><published>2011-02-07T13:21:00.000-05:00</published><updated>2011-02-07T13:21:47.033-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript 101'/><category scheme='http://www.blogger.com/atom/ns#' term='school of webcraft'/><title type='text'>JavaScript:101, Week 2, Reflections</title><content type='html'>&lt;div class="track_questions_header" style="font-size: 14px; font-weight: bold;"&gt;Questions for reflection:&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;Why do languages provide the switch statement, when we can achieve the same thing with multiple if... elseif statements? Show one example of how you might use the switch statement.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Reasons to use&amp;nbsp;switch&amp;nbsp;statements include: better readability,&amp;nbsp;easier&amp;nbsp;to debug/maintain, faster execution is the compiler has that capability.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;What is encapsulation, and what do functions encapsulate?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Encapsulation&amp;nbsp;basically&amp;nbsp;means that things inside of a function are&amp;nbsp;separate&amp;nbsp;from those things outside of it.&lt;br /&gt;It should be noted though that is&amp;nbsp;JavaScript&amp;nbsp;you can access variables that are outside the function (1 step above). So for example I can have a string that says "foo" in the main JavaScript area and then inside of a function say that this variable is now "bar". The version outside of the function is not changed.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;What is a pure function? Is the function show() provided in Eloquent Javascript a pure function?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;A pure function&amp;nbsp;doesn't&amp;nbsp;affect anything outside of its self. Meaning a pure function&amp;nbsp;doesn't&amp;nbsp;change the value of any global variable or anything like that.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;What do we mean when we say a variable in a function is shadowing a top level variable?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;When a variable is referenced in a function it looks for it inside the function first, then outside the function. This means you can have a value inside the function with the same name as one outside the function and know that the one inside will be the one used.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;A recursive function, must have some sort of an end condition. Why would we get a "out of stack space" error message if a recursive function does not have an end condition?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;If there is no end condition the function will just keep getting called 'infinity'&amp;nbsp;until&amp;nbsp;there isn't enough memory to have more instances of it on the stack.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Reflect about the difference between object inheritance and class inheritance.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Object&amp;nbsp;inheritance&amp;nbsp;allows you to basically make a copy of an object that you expand upon. Class inheritance means that you need to define a new class tat extends a previous class and then create objects of that class.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;What is object augmentation, and how do we do it?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In JS you can add members to any object at any time by assignment. This can be very useful if you need to add a new property or function to something.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;There is a way to add a method to String, such as any new String we create will have that augmented method (this is a bit different from object augmentation). How would you do this?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;You can add a method to array.prototype and it will be added to all arrays. Strings are an array of letters.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;What is garbage collection?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Garbage collection means that the js environment clears the memory for items that are no longer referenced in the program. Meaning that you aren't wasting system memory on objects that &amp;nbsp;you've already deleted or that were created inside of a function call.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;What is the difference between an array and an object?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;An array links to array.prototype and therefore has array functions. It also has a .length that is meaningful. An object links to object.prototype and therefore has object functions. Use arrays when you need to access things according to order, use objects when you want to access things by assigned names.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36777682-1416731843422209450?l=gorlith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorlith.blogspot.com/feeds/1416731843422209450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gorlith.blogspot.com/2011/02/javascript101-week-2-reflections.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/1416731843422209450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/1416731843422209450'/><link rel='alternate' type='text/html' href='http://gorlith.blogspot.com/2011/02/javascript101-week-2-reflections.html' title='JavaScript:101, Week 2, Reflections'/><author><name>Ray Crego</name><uri>https://profiles.google.com/112783501436078185945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-dYS8kFRJdZc/AAAAAAAAAAI/AAAAAAAADqI/JXHfTrRz4jQ/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36777682.post-238432246479348816</id><published>2011-02-01T11:31:00.000-05:00</published><updated>2011-02-01T11:31:20.079-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript 101'/><category scheme='http://www.blogger.com/atom/ns#' term='school of webcraft'/><title type='text'>Javascript:101, Week 1, Assignment</title><content type='html'>&lt;div class="track_homework_header" style="font-size: 14px; font-weight: bold;"&gt;Homework:&lt;/div&gt;&lt;b&gt;&lt;br /&gt;Exercises 2.1 - 2.6 from chapter 2 of Eloquent Javascript&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;2.1) &lt;br /&gt;Yes, this evaluates to true. it eventually reduces down to true &amp;amp;&amp;amp; ! false which reduces to true.&lt;br /&gt;&lt;br /&gt;2.2)&lt;br /&gt;&lt;pre class="code"&gt;var result = 1; &lt;br /&gt;var counter = 0; &lt;br /&gt;while (counter &amp;lt; 10) { &lt;br /&gt;result = result * 2; &lt;br /&gt;counter = counter + 1; &lt;br /&gt;} &lt;br /&gt;show(result);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;2.3)&lt;br /&gt;&lt;pre class="code"&gt;var result = "";&lt;br /&gt;var counter = 0;&lt;br /&gt;while (counter &amp;lt; 10) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;result = result + "#";&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;print(result);&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;counter = counter + 1;&amp;nbsp;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;2.4)&lt;br /&gt;&lt;pre class="code"&gt;var result = 1&lt;br /&gt;&amp;nbsp;for (var counter = 0; counter &amp;lt; 10 ; counter = counter + 1)&lt;br /&gt;&amp;nbsp;result = result * 2; show(result);&amp;nbsp;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="code"&gt;var result = "";&lt;br /&gt;for (var counter = 0; counter &amp;lt; 10 ; counter = counter + 1) {&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;result = result + "#";   print(result);&amp;nbsp;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;2.5) &lt;br /&gt;&lt;pre class="code"&gt;var answer = prompt("What is 2 + 2?", "");&amp;nbsp;&lt;br /&gt;if (answer == "4")      &lt;br /&gt;&amp;nbsp;&amp;nbsp;alert("yay!");&lt;br /&gt;else if (answer == "3" || answer == "5")      &lt;br /&gt;&amp;nbsp;&amp;nbsp;alert("Almost!");&lt;br /&gt;else      &lt;br /&gt;&amp;nbsp;&amp;nbsp;alert("You idiot!");&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;2.6)&lt;br /&gt;&lt;pre class="code"&gt;var answer;&amp;nbsp;&lt;br /&gt;var flag = true;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;while (flag) {&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;answer = prompt("What is 2 + 2?", "");&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;if (answer == "4") {&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;alert("yay!");&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;flag = false;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;else if (answer == "3" || answer == "5") {&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;alert("Almost!");&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;else {&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;alert("You idiot!");&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;Create an example that shows a valid use of the 'guard' and 'default' operators in Javascript.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The 'guard' operator allows you to&amp;nbsp;elegantly&amp;nbsp;defend your code from executing an undefined function.&lt;br /&gt;For example say you want to get a users first name if the user object is properly populated. You could write this as:&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;var firstName =  user &amp;&amp; user.getFirstName();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The function wont be run if user doesn't exists, keeping your code from failing.&lt;br /&gt;&lt;br /&gt;The 'default' operator lets you return a default value if the requested value isn't defined. An example would be returning some default value when filling in data or showing data.&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;var quantity = prompt("Quantity") || 1;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36777682-238432246479348816?l=gorlith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorlith.blogspot.com/feeds/238432246479348816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gorlith.blogspot.com/2011/02/javascript101-week-1-assignment.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/238432246479348816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/238432246479348816'/><link rel='alternate' type='text/html' href='http://gorlith.blogspot.com/2011/02/javascript101-week-1-assignment.html' title='Javascript:101, Week 1, Assignment'/><author><name>Ray Crego</name><uri>https://profiles.google.com/112783501436078185945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-dYS8kFRJdZc/AAAAAAAAAAI/AAAAAAAADqI/JXHfTrRz4jQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36777682.post-404536083291568970</id><published>2011-01-31T15:12:00.000-05:00</published><updated>2011-01-31T15:12:32.796-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript 101'/><category scheme='http://www.blogger.com/atom/ns#' term='school of webcraft'/><title type='text'>Javascript:101, Week 1, Reflections</title><content type='html'>After a really hectic end to last week it's finally time for me to start working on my two P2PU courses.&lt;br /&gt;&lt;br /&gt;This post addresses the questions to reflect on for week 1.&lt;br /&gt;&lt;br /&gt;&lt;div class="track_questions_header" style="font-size: 14px; font-weight: bold;"&gt;Questions for reflection:&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;The alliance of Netscape and Sun Microsystems did not use Java in the browser, because it was not suitable for that purpose. Why do you think Java was not suitable to be embedded in a browser?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Java was far too robust. If they embedded Java in a browser it would have been too bulky and the websites would have been very difficult to make and very clumsy and slow. Would probably not have been fully 'load and go'&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;When parsing a String into a number using the parseInt() method, we are advised to always provide the radix. Why is it so strongly recommended?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Giving parseInt() a&amp;nbsp;radix&amp;nbsp;argument tells the function in which base to parse the number. If you don't specify this it could interpret the number incorrectly. For example, when parsing '08' it may see the leading zero and decide that it is in octal. It will then see the 8 and terminate, giving you the result '0'.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;What is a type, and why do you think types are useful in writing programs?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The type of an object lets the compiler know how much space the object might take up. Boolean values, for example, can only have 2 possible values, while numbers can have 2^64 values. If a language had no types then the compiler would most likely be made to assume that all objects needed the maximum amount of space needed for all types, meaning that it would set aside the same space for a binary value like a bool as it would for a more complex object like an array or hash table of strings. This would be very&amp;nbsp;inefficient, and probably easy to exploit as well.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Why do we lose precision when performing operations with decimal numbers in Javascript? Can you think of a few implications of why this would be a problem?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;JS doesnt handle arithmetic well with decimals. The common example is 0.1 + 0.2 doesn't come out to 0.3. It returns something like 0.30000000000000004. So the way around this is to take numbers and multiply them by 100 or whatever so they become whole numbers, do the math, then divide by 100 and display the results to the appropriate precision. This is a work around but with both you can end up with&amp;nbsp;discrepancies&amp;nbsp;over time. This can be dangerous when dealing with money.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Do you understand why the following operation produces the given result 115 * 4 - 4 + 88 / 2 = 500&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Order of operations. First (), then * /, then +-. So the above works as:&lt;br /&gt;115 * 4 - 4 + 88 / 2&lt;br /&gt;460 - 4 + 44&lt;br /&gt;500&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;What does&amp;nbsp;&lt;/b&gt;&lt;code style="font-weight: bold;"&gt;typeof 4.5&lt;/code&gt;&lt;b&gt;&amp;nbsp;do, and why does&amp;nbsp;&lt;/b&gt;&lt;code style="font-weight: bold;"&gt;typeof (typeof 4.5)&lt;/code&gt;&lt;b&gt;&amp;nbsp;return "string" ?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The typeof() function returns a string telling you the type of the given value. (note: there are some errors.) The string "number" is returned for typeof(4.5) and typeof(typeof(4.5)) returns string because the inner call to typeof returns a string value.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36777682-404536083291568970?l=gorlith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorlith.blogspot.com/feeds/404536083291568970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gorlith.blogspot.com/2011/01/javascript101-week-1-reflections.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/404536083291568970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/404536083291568970'/><link rel='alternate' type='text/html' href='http://gorlith.blogspot.com/2011/01/javascript101-week-1-reflections.html' title='Javascript:101, Week 1, Reflections'/><author><name>Ray Crego</name><uri>https://profiles.google.com/112783501436078185945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-dYS8kFRJdZc/AAAAAAAAAAI/AAAAAAAADqI/JXHfTrRz4jQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36777682.post-6385344043985768289</id><published>2011-01-14T10:18:00.000-05:00</published><updated>2011-01-14T10:18:50.867-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='school of webcraft'/><category scheme='http://www.blogger.com/atom/ns#' term='jQuery'/><title type='text'>School of Webcraft: jQuery ~ For the Love of Dollar</title><content type='html'>The other School of Webcraft course I signed up for (and got accepted into, awesome) is jQuery ~ For the Love of Dollar.&amp;nbsp;It's an intermediate level course on using jQuery and sounds awesome.&lt;br /&gt;&lt;br /&gt;We had to do a sign up task as well. It basically involved using http://jsFiddle.net/ and&amp;nbsp;http://jsconsole.com/ to play around and learn a few simple tasks like changing fonts and counting objects.&lt;br /&gt;&lt;br /&gt;The course is going to be using an open source ebook:&amp;nbsp;&lt;a href="http://jqfundamentals.com/book/book.html"&gt;http://jqfundamentals.com/book/book.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Looking forward to class starting in ~2 weeks!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36777682-6385344043985768289?l=gorlith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorlith.blogspot.com/feeds/6385344043985768289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gorlith.blogspot.com/2011/01/school-of-webcraft-jquery-for-love-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/6385344043985768289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/6385344043985768289'/><link rel='alternate' type='text/html' href='http://gorlith.blogspot.com/2011/01/school-of-webcraft-jquery-for-love-of.html' title='School of Webcraft: jQuery ~ For the Love of Dollar'/><author><name>Ray Crego</name><uri>https://profiles.google.com/112783501436078185945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-dYS8kFRJdZc/AAAAAAAAAAI/AAAAAAAADqI/JXHfTrRz4jQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36777682.post-4807329534731124271</id><published>2011-01-13T12:43:00.001-05:00</published><updated>2011-01-13T12:50:40.152-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript 101'/><category scheme='http://www.blogger.com/atom/ns#' term='school of webcraft'/><title type='text'>School of Webcraft: Javascript:101</title><content type='html'>The signup for P2PU and Mozilla's School of Webcraft has finally arrived and I am signing up for a Javascript:101 course. As a task to see who is ready to join the course we had to watch a video and complete a small assignment.&lt;br /&gt;&lt;br /&gt;The video gave a history of Java, Javascript, and the process through which it&amp;nbsp;became&amp;nbsp;standardized. It seems that many companies played a part in the standardization and that because of this certain quirks and errors that are known problems still remain.&lt;br /&gt;&lt;br /&gt;Some notes I took from this:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;JavaScript&amp;nbsp;is&amp;nbsp;loosely&amp;nbsp;typed&lt;/li&gt;&lt;li&gt;objects are dynamic, they are basically hash tables&lt;/li&gt;&lt;li&gt;Prototypal&amp;nbsp;inheritance: objects inherit directly from other objects, not classes&lt;/li&gt;&lt;li&gt;Lambda functions are treated as 'first class' objects&lt;/li&gt;&lt;li&gt;Linkage through global variables. This can cause many problems and is often a security risk. Need to learn to mitigate this problem.&lt;/li&gt;&lt;li&gt;values:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;number&lt;/li&gt;&lt;li&gt;string&lt;/li&gt;&lt;li&gt;boolean&lt;/li&gt;&lt;li&gt;object&lt;/li&gt;&lt;li&gt;null&lt;/li&gt;&lt;li&gt;undefined&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;NaN is the result of undefined or broken operations&lt;/li&gt;&lt;ul&gt;&lt;li&gt;NaN&amp;nbsp;doesn't&amp;nbsp;equal anything, not even NaN&lt;/li&gt;&lt;li&gt;It's type is number.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Javascript has a ton of unused reserved words.&lt;/li&gt;&lt;li&gt;!= and == can cause type&amp;nbsp;coercion, use !== and === instead as they give exact equality.&lt;/li&gt;&lt;li&gt;&amp;amp;&amp;amp; and || are a bit different in js&lt;/li&gt;&lt;li&gt;Bitwise operators are slow in js.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;I also had to produce a bit of javascript that pops up an alert showing the results of 2 + 2.&lt;br /&gt;&lt;br /&gt;The code is as follows:&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;function message()&lt;br /&gt;{&lt;br /&gt;var x;&lt;br /&gt;x = 2+2;&lt;br /&gt;alert(x);&lt;br /&gt;}&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;body onload="message()"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;It produced the following results:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_t6LECbx-18o/TS81aqW3v2I/AAAAAAAACPg/-DJCKP99_sU/s1600/signupTask.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="http://3.bp.blogspot.com/_t6LECbx-18o/TS81aqW3v2I/AAAAAAAACPg/-DJCKP99_sU/s320/signupTask.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36777682-4807329534731124271?l=gorlith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorlith.blogspot.com/feeds/4807329534731124271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gorlith.blogspot.com/2011/01/school-of-webcraft-javascript101.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/4807329534731124271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/4807329534731124271'/><link rel='alternate' type='text/html' href='http://gorlith.blogspot.com/2011/01/school-of-webcraft-javascript101.html' title='School of Webcraft: Javascript:101'/><author><name>Ray Crego</name><uri>https://profiles.google.com/112783501436078185945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-dYS8kFRJdZc/AAAAAAAAAAI/AAAAAAAADqI/JXHfTrRz4jQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_t6LECbx-18o/TS81aqW3v2I/AAAAAAAACPg/-DJCKP99_sU/s72-c/signupTask.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36777682.post-7954702978120380058</id><published>2010-12-09T09:41:00.000-05:00</published><updated>2010-12-09T09:41:26.726-05:00</updated><title type='text'>Chrome Web Store is open</title><content type='html'>Lot's of cool web apps to play with, many of them are optimized for chrome. I'll make a list of some of my favorites late on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36777682-7954702978120380058?l=gorlith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorlith.blogspot.com/feeds/7954702978120380058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gorlith.blogspot.com/2010/12/chrome-web-store-is-open.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/7954702978120380058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/7954702978120380058'/><link rel='alternate' type='text/html' href='http://gorlith.blogspot.com/2010/12/chrome-web-store-is-open.html' title='Chrome Web Store is open'/><author><name>Ray Crego</name><uri>https://profiles.google.com/112783501436078185945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-dYS8kFRJdZc/AAAAAAAAAAI/AAAAAAAADqI/JXHfTrRz4jQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36777682.post-5235080452992770776</id><published>2010-11-16T11:12:00.001-05:00</published><updated>2010-11-16T11:12:27.640-05:00</updated><title type='text'>Web 2.0 Summit 2010:  Eric Schmidt, "A Conversation with Eric Schmidt" (via YouTube)</title><content type='html'>&lt;object style="background-image:url(http://i2.ytimg.com/vi/AKOWK2dR4Dg/hqdefault.jpg)" width="480" height="295"&gt;&lt;param name="movie" value="http://www.youtube.com/v/AKOWK2dR4Dg?fs=1&amp;amp;hl=en_US"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/AKOWK2dR4Dg?fs=1&amp;amp;hl=en_US" width="480" height="295" allowscriptaccess="never" allowfullscreen="true" wmode="transparent" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36777682-5235080452992770776?l=gorlith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorlith.blogspot.com/feeds/5235080452992770776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gorlith.blogspot.com/2010/11/web-20-summit-2010-eric-schmidt_16.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/5235080452992770776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/5235080452992770776'/><link rel='alternate' type='text/html' href='http://gorlith.blogspot.com/2010/11/web-20-summit-2010-eric-schmidt_16.html' title='Web 2.0 Summit 2010:  Eric Schmidt, &quot;A Conversation with Eric Schmidt&quot; (via YouTube)'/><author><name>Ray Crego</name><uri>https://profiles.google.com/112783501436078185945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-dYS8kFRJdZc/AAAAAAAAAAI/AAAAAAAADqI/JXHfTrRz4jQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36777682.post-6789857817099446013</id><published>2010-11-09T14:58:00.000-05:00</published><updated>2010-11-09T14:58:35.974-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='brewing'/><category scheme='http://www.blogger.com/atom/ns#' term='game-dev'/><category scheme='http://www.blogger.com/atom/ns#' term='reading'/><category scheme='http://www.blogger.com/atom/ns#' term='other'/><title type='text'>This isn't Jersey!</title><content type='html'>&lt;b&gt;Reading:&lt;/b&gt;&lt;br /&gt;Book 13 of WoT came out on November 2nd. It was really damn good. Since book 14 is going to the finale BS was able to focus on finishing long running story arcs. This book was EPIC.&lt;br /&gt;&lt;br /&gt;About 80% through Theodore Rex. Colonel Roosevelt comes out this month, but I'm not going to get it until it comes out in paperback.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Brewing:&lt;/b&gt;&lt;br /&gt;Tomorrow I'm going to check out a local homebrewes club. I'm excited. Then on Thursday me and Andy Tasso are brewing up 2 batches of beer. Awesome.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Game Development:&lt;/b&gt;&lt;br /&gt;I spent last weekend uninstalling most of my development tools and and I installed the nice little bundle that&amp;nbsp;Microsoft's&amp;nbsp;new 'AppHub' offers. I'll play around with this soon.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Other:&lt;/b&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Tanya and I are living in MD now, yikes.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;AMC premiered 'The Walking Dead'. It's awesome, watch it.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Now that I'm in a 1st floor apartment I can work out my&amp;nbsp;kettle-bells&amp;nbsp;like a fiend.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36777682-6789857817099446013?l=gorlith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorlith.blogspot.com/feeds/6789857817099446013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gorlith.blogspot.com/2010/11/this-isnt-jersey.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/6789857817099446013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/6789857817099446013'/><link rel='alternate' type='text/html' href='http://gorlith.blogspot.com/2010/11/this-isnt-jersey.html' title='This isn&apos;t Jersey!'/><author><name>Ray Crego</name><uri>https://profiles.google.com/112783501436078185945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-dYS8kFRJdZc/AAAAAAAAAAI/AAAAAAAADqI/JXHfTrRz4jQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36777682.post-1598975935327178397</id><published>2010-10-04T11:25:00.000-04:00</published><updated>2010-10-04T11:25:45.360-04:00</updated><title type='text'>October and November</title><content type='html'>So October, much like September, is going to be very busy for me and Tanya. Game development is on hold until November. I'm going to be busy every single week leading up to the move down to MD which I am scheduling for the weekend of Oct 22nd.On the plus side though October is Metal Month. Which means tons of metal, and as much Castlevania SotN as I can cram in. Fuck Yeah.&lt;br /&gt;&lt;br /&gt;November is going to be fucking AWESOME.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Nov is "&lt;a href="http://www.facebook.com/event.php?eid=113417325380969&amp;amp;ref=ts"&gt;Man Month: No Shave November&lt;/a&gt;". Start growing your beards gents.&lt;/li&gt;&lt;li&gt;Nov 2 &lt;a href="http://www.amazon.com/Towers-Midnight-Wheel-Robert-Jordan/dp/0765325942/ref=sr_1_1?ie=UTF8&amp;amp;qid=1286205742&amp;amp;sr=8-1"&gt;WoT Book 13&lt;/a&gt; comes out, I'm pumped as hell for this.&lt;/li&gt;&lt;li&gt;Nov 6 is&amp;nbsp;&lt;a href="http://www.homebrewersassociation.org/pages/events/learn-to-homebrew-day"&gt;Learn to Homebrew Day&lt;/a&gt;. Me and Andrew Tasso are setting up a pair of burners and doing two batches that day. I'm doing a Spiced Ale for the holidays and Andrew is doing a Nut Brown. Good times are to be had.&lt;/li&gt;&lt;li&gt;Nov 23rd&amp;nbsp;&lt;a href="http://www.amazon.com/Colonel-Roosevelt-Edmund-Morris/dp/0375504877/ref=sr_1_1?s=books&amp;amp;ie=UTF8&amp;amp;qid=1286205807&amp;amp;sr=1-1"&gt;Colonel Roosevelt&lt;/a&gt;&amp;nbsp;by Edmund Morris comes out.&lt;/li&gt;&lt;li&gt;and finally Nov 29th I turn 26.&amp;nbsp;(I'm closer to 30 than 20 these days, that's for sure.)&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36777682-1598975935327178397?l=gorlith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorlith.blogspot.com/feeds/1598975935327178397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gorlith.blogspot.com/2010/10/october-and-november.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/1598975935327178397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/1598975935327178397'/><link rel='alternate' type='text/html' href='http://gorlith.blogspot.com/2010/10/october-and-november.html' title='October and November'/><author><name>Ray Crego</name><uri>https://profiles.google.com/112783501436078185945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-dYS8kFRJdZc/AAAAAAAAAAI/AAAAAAAADqI/JXHfTrRz4jQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36777682.post-6154930820602273125</id><published>2010-07-28T11:11:00.000-04:00</published><updated>2010-07-28T11:11:10.698-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='beer'/><title type='text'>StarCraft 2 Release: The Beer</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;SC2 was finally released which means I can officially start enjoying my special batch of homebrew with my friends.&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;The beer is a blonde ale (enkel) and it came out fairly well. It is light and crisp up front with a bit of a banana-like fruity esters type of taste on the back end. Its got decent mouthfeel since it carbonated ok. I have no meaningfull sense of smell so I wont comment on aroma. The color is something around goldish or straw, very nice to look at.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;Can't wait to share it with my =)v(=&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36777682-6154930820602273125?l=gorlith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorlith.blogspot.com/feeds/6154930820602273125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gorlith.blogspot.com/2010/07/starcraft-2-release-beer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/6154930820602273125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/6154930820602273125'/><link rel='alternate' type='text/html' href='http://gorlith.blogspot.com/2010/07/starcraft-2-release-beer.html' title='StarCraft 2 Release: The Beer'/><author><name>Ray Crego</name><uri>https://profiles.google.com/112783501436078185945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-dYS8kFRJdZc/AAAAAAAAAAI/AAAAAAAADqI/JXHfTrRz4jQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36777682.post-8693084115536574193</id><published>2010-07-13T16:32:00.001-04:00</published><updated>2010-07-14T09:03:38.554-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='beer'/><category scheme='http://www.blogger.com/atom/ns#' term='brewing'/><title type='text'>So beer happened</title><content type='html'>"StarCraft2 Release: The Beer" has been conditioning for a bit over two weeks now. It's a little flat, but another 2 weeks should help. My initial taste showed that it was refreshing with a taste of bananas. Great golden color. I think when we officially crack the batch open ~the 27th it will be very tasty.&lt;br /&gt;&lt;br /&gt;Now if I could just get&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Labels&lt;/li&gt;&lt;li&gt;Some indication of who wants some&lt;/li&gt;&lt;li&gt;Are we having some sort of sc2 launch party at anyones place?&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36777682-8693084115536574193?l=gorlith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorlith.blogspot.com/feeds/8693084115536574193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gorlith.blogspot.com/2010/07/so-beer-happened.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/8693084115536574193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/8693084115536574193'/><link rel='alternate' type='text/html' href='http://gorlith.blogspot.com/2010/07/so-beer-happened.html' title='So beer happened'/><author><name>Ray Crego</name><uri>https://profiles.google.com/112783501436078185945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-dYS8kFRJdZc/AAAAAAAAAAI/AAAAAAAADqI/JXHfTrRz4jQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36777682.post-7758563714842952532</id><published>2010-07-13T16:12:00.000-04:00</published><updated>2010-07-13T16:12:01.721-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='game-dev'/><title type='text'>Abilities (Extending the XNA Content Pipeline)</title><content type='html'>Over the past few weeks I have been learning how to extend the XNA Content Pipeline.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;XNA has a central component to handle importing content like fonts, 3d models, images, audio etc. This is called the Content Pipeline. When we want to define a new type of content, for example a map file or an ability file we need to extend the pipeline.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Before I go into the explanation of how to do this, let me explain some of the pros and cons that I have found. This is probably not&amp;nbsp;definitive, and&amp;nbsp;definitely&amp;nbsp;subjective. One of the reasons I would rather bring in an ability through the pipeline rather than any other way is that content gets processed at compile time rather than during runtime. When the game is compiled the original file gets&amp;nbsp;processed&amp;nbsp;into a proprietary file that is more difficult to hack/edit. This helps stop people from editing an ability file to make it do more damage, or edit a character class to give it abilities it shouldn't have. One of my favorite pros is that you can add all your content files right into the content folder in Visual Studio and organize them in folders. This makes it easier to maintain things for me. The main con is that it can sometimes be a lot of work to learn how to extend the pipeline and you need to extend it every time you add a new content type. Furthermore you need to edit a few files if you decide to make changes to what is held in a file (like if you decide that now an ability file also needs to hold another bit of info you&amp;nbsp;didn't&amp;nbsp;think of before.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So what does it take to extend the pipeline? Lets walk through the files I made for holding and processing ability information.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;XML Example - WolfsHowl.abil&lt;br /&gt;&lt;pre class="code"&gt;﻿&amp;lt;Ability&amp;gt;&lt;br /&gt;  &amp;lt;Name&amp;gt;Wolf's Howl&amp;lt;/Name&amp;gt;&lt;br /&gt;  &amp;lt;Description&amp;gt;&lt;br /&gt;    Frightens Nearby Enemies.&lt;br /&gt;  &amp;lt;/Description&amp;gt;&lt;br /&gt;  &amp;lt;Type&amp;gt;Attack&amp;lt;/Type&amp;gt;&lt;br /&gt;  &amp;lt;Cost MP="5" HP="0" /&amp;gt;&lt;br /&gt;  &amp;lt;Effects&amp;gt;&lt;br /&gt;    &amp;lt;Effect Attribute="Def" Modifier="-2" /&amp;gt;&lt;br /&gt;  &amp;lt;/Effects&amp;gt;&lt;br /&gt;&amp;lt;/Ability&amp;gt;&lt;/pre&gt;&lt;br /&gt;Here is the sample ability "Wolf's Howl". As you can see it holds information like the name, description, cost, and effects of the ability. In the future I want to expand this to hold the "shape" and range of an ability and other things, but this is a sample.&lt;br /&gt;&lt;br /&gt;This xml file is saved as an ".abil" file. Therefore in my trpgProcessors project I need to define an importer that tells the project how .abil files should be handled.&lt;br /&gt;&lt;br /&gt;AbilityImporter.cs&lt;br /&gt;&lt;pre class="code"&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Linq;&lt;br /&gt;using Microsoft.Xna.Framework;&lt;br /&gt;using Microsoft.Xna.Framework.Graphics;&lt;br /&gt;using Microsoft.Xna.Framework.Content.Pipeline;&lt;br /&gt;using Microsoft.Xna.Framework.Content.Pipeline.Graphics;&lt;br /&gt;&lt;br /&gt;// TODO: replace this with the type you want to import.&lt;br /&gt;using TImport = System.Xml.XmlDocument;&lt;br /&gt;using System.Xml;&lt;br /&gt;&lt;br /&gt;namespace trpgProcessors.Ability&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/// This class will be instantiated by the XNA Framework Content Pipeline&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/// to import a file from disk into the specified type, TImport.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;///&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/// This should be part of a Content Pipeline Extension Library project.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;[ContentImporter(".abil", DisplayName = "Ability Importer", DefaultProcessor = "AbilityProcessor")]&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;public class AbilityImporter : ContentImporter&amp;lt;TImport&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public override TImport Import(string filename, ContentImporterContext context)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;XmlDocument xmlDoc = new XmlDocument();&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlDoc.Load(filename);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return xmlDoc;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;This file just tells the content pipeline that .abil files are xml docs that get processed by "AbilityProcessor", shown below&lt;br /&gt;&lt;br /&gt;AbilityProcessor.cs&lt;br /&gt;&lt;pre class="code"&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Linq;&lt;br /&gt;using Microsoft.Xna.Framework;&lt;br /&gt;using Microsoft.Xna.Framework.Graphics;&lt;br /&gt;using Microsoft.Xna.Framework.Content.Pipeline;&lt;br /&gt;using Microsoft.Xna.Framework.Content.Pipeline.Graphics;&lt;br /&gt;using Microsoft.Xna.Framework.Content.Pipeline.Processors;&lt;br /&gt;&lt;br /&gt;// TODO: replace these with the processor input and output types.&lt;br /&gt;using TInput = System.Xml.XmlDocument;&lt;br /&gt;using TOutput = trpgProcessors.Ability.AbilityContent;&lt;br /&gt;using System.Xml;&lt;br /&gt;using trpgData;&lt;br /&gt;&lt;br /&gt;namespace trpgProcessors.Ability&lt;br /&gt;{&lt;br /&gt;    /// &amp;lt;summary&amp;gt;&lt;br /&gt;    /// This class will be instantiated by the XNA Framework Content Pipeline&lt;br /&gt;    /// to apply custom processing to content data, converting an object of&lt;br /&gt;    /// type TInput to TOutput. The input and output types may be the same if&lt;br /&gt;    /// the processor wishes to alter data without changing its type.&lt;br /&gt;    ///&lt;br /&gt;    /// This should be part of a Content Pipeline Extension Library project.&lt;br /&gt;    ///&lt;br /&gt;    /// TODO: change the ContentProcessor attribute to specify the correct&lt;br /&gt;    /// display name for this processor.&lt;br /&gt;    /// &amp;lt;/summary&amp;gt;&lt;br /&gt;    [ContentProcessor(DisplayName = "trpgProcessors.Ability.AbilityProcessor")]&lt;br /&gt;    public class AbilityProcessor : ContentProcessor&amp;lt;TInput, TOutput&amp;gt;&lt;br /&gt;    {&lt;br /&gt;        public override TOutput Process(TInput input, ContentProcessorContext context)&lt;br /&gt;        {&lt;br /&gt;            AbilityContent abilityContent = new AbilityContent();&lt;br /&gt;            List&amp;lt;AbilityEffect&amp;gt; effects = new List&amp;lt;AbilityEffect&amp;gt;();&lt;br /&gt;            AbilityEffect ae;&lt;br /&gt;           &lt;br /&gt;            foreach (XmlNode node in input.DocumentElement.ChildNodes)&lt;br /&gt;            {&lt;br /&gt;                if (node.Name == "Name")&lt;br /&gt;                {&lt;br /&gt;                    abilityContent.Name = node.InnerText;&lt;br /&gt;                }&lt;br /&gt;                if (node.Name == "Description")&lt;br /&gt;                {&lt;br /&gt;                    abilityContent.Description = node.InnerText;&lt;br /&gt;                }&lt;br /&gt;                if (node.Name == "Type")&lt;br /&gt;                {&lt;br /&gt;                    abilityContent.Type = node.InnerText;&lt;br /&gt;                }&lt;br /&gt;                if (node.Name == "Cost")&lt;br /&gt;                {&lt;br /&gt;                    abilityContent.CostMP = Convert.ToInt32(node.Attributes["MP"].Value);&lt;br /&gt;                    abilityContent.CostHP = Convert.ToInt32(node.Attributes["HP"].Value);&lt;br /&gt;                }&lt;br /&gt;                if (node.Name == "Effects")&lt;br /&gt;                {&lt;br /&gt;                    foreach (XmlNode tNode in node.ChildNodes)&lt;br /&gt;                    {&lt;br /&gt;                        if (tNode.Name == "Effect")&lt;br /&gt;                        {&lt;br /&gt;                            ae = new AbilityEffect();&lt;br /&gt;                            ae.Attribute = tNode.Attributes["Attribute"].Value;&lt;br /&gt;                            ae.Modifier = Convert.ToDouble(tNode.Attributes["Modifier"].Value);&lt;br /&gt;                            effects.Add(ae);&lt;br /&gt;                        }&lt;br /&gt;                    }&lt;br /&gt;                    abilityContent.AbilityEffects = effects;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            return abilityContent;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;This function goes through the xml file examining the nodes and processing the information into an AbilityContent file.&lt;br /&gt;&lt;br /&gt;AbilityContent.cs&lt;br /&gt;&lt;pre class="code"&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Linq;&lt;br /&gt;using System.Text;&lt;br /&gt;using trpgData;&lt;br /&gt;&lt;br /&gt;namespace trpgProcessors.Ability&lt;br /&gt;{&lt;br /&gt;    public class AbilityContent&lt;br /&gt;    {&lt;br /&gt;        public string Name;&lt;br /&gt;        public string Description;&lt;br /&gt;        public string Type;&lt;br /&gt;        public int CostMP;&lt;br /&gt;        public int CostHP;&lt;br /&gt;        public List&amp;lt;AbilityEffect&amp;gt; AbilityEffects;&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;This while then gets sent to the AbilityWriter which writes the information out into an xnb file.&lt;br /&gt;&lt;br /&gt;AbilityWriter.cs&lt;br /&gt;&lt;pre class="code"&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Linq;&lt;br /&gt;using Microsoft.Xna.Framework;&lt;br /&gt;using Microsoft.Xna.Framework.Graphics;&lt;br /&gt;using Microsoft.Xna.Framework.Content.Pipeline;&lt;br /&gt;using Microsoft.Xna.Framework.Content.Pipeline.Graphics;&lt;br /&gt;using Microsoft.Xna.Framework.Content.Pipeline.Processors;&lt;br /&gt;using Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler;&lt;br /&gt;&lt;br /&gt;// TODO: replace this with the type you want to write out.&lt;br /&gt;using TWrite = trpgProcessors.Ability.AbilityContent;&lt;br /&gt;using trpgData;&lt;br /&gt;&lt;br /&gt;namespace trpgProcessors.Ability&lt;br /&gt;{&lt;br /&gt;    /// &amp;lt;summary&amp;gt;&lt;br /&gt;    /// This class will be instantiated by the XNA Framework Content Pipeline&lt;br /&gt;    /// to write the specified data type into binary .xnb format.&lt;br /&gt;    ///&lt;br /&gt;    /// This should be part of a Content Pipeline Extension Library project.&lt;br /&gt;    /// &amp;lt;/summary&amp;gt;&lt;br /&gt;    [ContentTypeWriter]&lt;br /&gt;    public class AbilityWriter : ContentTypeWriter&amp;lt;TWrite&amp;gt;&lt;br /&gt;    {&lt;br /&gt;        protected override void Write(ContentWriter output, TWrite value)&lt;br /&gt;        {&lt;br /&gt;            output.Write(value.Name);&lt;br /&gt;            output.Write(value.Description);&lt;br /&gt;            output.Write(value.Type);&lt;br /&gt;            output.Write(value.CostMP);&lt;br /&gt;            output.Write(value.CostHP);&lt;br /&gt;            output.Write(value.AbilityEffects.Count);&lt;br /&gt;&lt;br /&gt;            foreach (AbilityEffect effect in value.AbilityEffects)&lt;br /&gt;            {&lt;br /&gt;                output.Write(effect.Attribute);&lt;br /&gt;                output.Write(effect.Modifier);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        public override string GetRuntimeReader(TargetPlatform targetPlatform)&lt;br /&gt;        {&lt;br /&gt;            return typeof(trpgData.AbilityReader).AssemblyQualifiedName;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;All the above processing happens when the game is compiled.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Now let's switch our attention to what happens at runtime when the game goes to load the actual content that was processed and created at compile time.&lt;br /&gt;&lt;br /&gt;Ability.cs&lt;br /&gt;&lt;pre class="code"&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Linq;&lt;br /&gt;using System.Text;&lt;br /&gt;using Microsoft.Xna.Framework.Content;&lt;br /&gt;&lt;br /&gt;namespace trpgData&lt;br /&gt;{&lt;br /&gt;    public class Ability&lt;br /&gt;    {&lt;br /&gt;        //Info&lt;br /&gt;        public string Name { set; get; }&lt;br /&gt;        public string Description { set; get; }&lt;br /&gt;&lt;br /&gt;        //Can be: Attack, Buff, Util&lt;br /&gt;        public string Type { set; get; }&lt;br /&gt;&lt;br /&gt;        //Cost&lt;br /&gt;        public int CostMP { set; get; }&lt;br /&gt;        public int CostHP { set; get; }&lt;br /&gt;&lt;br /&gt;        //Attack shape&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        //Attack effects&lt;br /&gt;        public List&amp;lt;AbilityEffect&amp;gt; AbilityEffects = new List&amp;lt;AbilityEffect&amp;gt;();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        public Ability()&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public class AbilityEffect&lt;br /&gt;    {&lt;br /&gt;        public string Attribute { set; get; }&lt;br /&gt;        public double Modifier { set; get; }&lt;br /&gt;&lt;br /&gt;        public AbilityEffect()&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public class AbilityReader : ContentTypeReader&amp;lt;Ability&amp;gt;&lt;br /&gt;    {&lt;br /&gt;        protected override Ability Read(&lt;br /&gt;            ContentReader input, Ability existingInstance)&lt;br /&gt;        {&lt;br /&gt;            Ability m = new Ability();&lt;br /&gt;            m.Name = input.ReadString();&lt;br /&gt;            m.Description = input.ReadString();&lt;br /&gt;            m.Type = input.ReadString();&lt;br /&gt;&lt;br /&gt;            m.CostMP = input.ReadInt32();&lt;br /&gt;            m.CostHP = input.ReadInt32();&lt;br /&gt;&lt;br /&gt;            int effectCount = input.ReadInt32();&lt;br /&gt;&lt;br /&gt;            List&amp;lt;AbilityEffect&amp;gt; effects = new List&amp;lt;AbilityEffect&amp;gt;();&lt;br /&gt;            AbilityEffect ae;&lt;br /&gt;&lt;br /&gt;            for (int i = 0; i &amp;lt; effectCount; i++)&lt;br /&gt;            {&lt;br /&gt;                ae = new AbilityEffect();&lt;br /&gt;                ae.Attribute = input.ReadString();&lt;br /&gt;                ae.Modifier = input.ReadDouble();&lt;br /&gt;&lt;br /&gt;                effects.Add(ae);&lt;br /&gt;            }&lt;br /&gt;            m.AbilityEffects = effects;&lt;br /&gt;&lt;br /&gt;            return m;&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;As you can see this file contains 3 classes. The first class is our ability class. The second is our AbilityEffect class that we use to make lists of effects. The last is the important one, the AbilityReader. This class goes through the xnb file and populates our Ability.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;All of this stuff might seem like a lot but when we load the actual abilities into the game the actual code just looks like this:&lt;br /&gt;&lt;pre class="code"&gt;Ability WolfHowl = Content.Load&amp;lt;Ability&amp;gt;(@&amp;quot;Abilities\\WolfHowl&amp;quot;);&lt;/pre&gt;&lt;br /&gt;Sorry if this post was really code heavy, but code is what has taken up a lot of my time lately making all these files for both maps and abilities. Next I will be doing the same for Unit and CharacterClasses. &lt;br /&gt;&lt;br /&gt;My next post will be focused more on design than code, so stay tuned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36777682-7758563714842952532?l=gorlith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorlith.blogspot.com/feeds/7758563714842952532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gorlith.blogspot.com/2010/07/abilities-extending-xna-content.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/7758563714842952532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/7758563714842952532'/><link rel='alternate' type='text/html' href='http://gorlith.blogspot.com/2010/07/abilities-extending-xna-content.html' title='Abilities (Extending the XNA Content Pipeline)'/><author><name>Ray Crego</name><uri>https://profiles.google.com/112783501436078185945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-dYS8kFRJdZc/AAAAAAAAAAI/AAAAAAAADqI/JXHfTrRz4jQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36777682.post-3564429352753933331</id><published>2010-06-17T15:34:00.000-04:00</published><updated>2010-06-17T15:34:55.423-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='brewing'/><category scheme='http://www.blogger.com/atom/ns#' term='game-dev'/><category scheme='http://www.blogger.com/atom/ns#' term='other'/><title type='text'>Reading</title><content type='html'>Sorry for the lack of posts as of late. I've been spending a large amount of spare time reading. Mays book was 'Guns, Germs, and Steel' by Jared Diamond. This month I am reading 'The Rise of Theodore Roosevelt' by Edmund Morris.&lt;br /&gt;&lt;br /&gt;On the brewing front:&lt;br /&gt;Almost out of American Wheat. Loved this one, will be brewing it again many times.&lt;br /&gt;Gotta bottle 'Starcraft 2 Release: The Beer' this weekend I hope.&lt;br /&gt;&lt;br /&gt;On the coding front:&lt;br /&gt;Got maps to import through the content pipeline but the list of tiles is coming up blank, an odd problem. I'm having trouble figuring out why this is happening. Going to post my code to see if people on the XNA forums can help.&lt;br /&gt;&lt;br /&gt;On the personal front:&lt;br /&gt;Spent last weekend looking at towns in MD. Getting excited to go house hunting. Looking forward to the move.&lt;br /&gt;Also, reading about TR has me wanting to keep a journal, so I'm keeping one using Evernote. I doubt it will last, frankly. Lastly, kettlebells and situps have been paying off, I've lost about 10-12 pounds over a very slow amount of time, (i started with pushups and situps in January). My pants and shirts are all fitting better lol. Still got a long way to go on the beer belly though.&lt;br /&gt;&lt;br /&gt;I think my hobbies are rather well rounded lately. (reading, brewing, working out, coding: mind and body both very active) Tiring as hell though, feels like I'm always at full speed. Possibly part of why I really like reading about TR.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36777682-3564429352753933331?l=gorlith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorlith.blogspot.com/feeds/3564429352753933331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gorlith.blogspot.com/2010/06/reading.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/3564429352753933331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/3564429352753933331'/><link rel='alternate' type='text/html' href='http://gorlith.blogspot.com/2010/06/reading.html' title='Reading'/><author><name>Ray Crego</name><uri>https://profiles.google.com/112783501436078185945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-dYS8kFRJdZc/AAAAAAAAAAI/AAAAAAAADqI/JXHfTrRz4jQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36777682.post-6361332693903070574</id><published>2010-05-12T22:17:00.002-04:00</published><updated>2010-06-08T16:42:31.926-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='game-dev'/><title type='text'>Norse TRPG</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;As I mentioned in my most recent post, I am working on a game in my spare time. I have been a full time developer for years now, but this is the first time I am truly working on something for myself. The game is an&amp;nbsp;amalgam of some of my favorite things: tactical rpgs and&amp;nbsp;Norse&amp;nbsp;mythology.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 13px;"&gt;I am currently working on the engine a few weeknights a week. I am also trying to work on the earliest pieces of documentation, including: a concept document, a proposal document, and a technical design doc.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;I'll discuss some story concepts in my next post, but until then I'll leave you with some concept art drawn up by my babyboy &lt;a href="http://www.freewebs.com/rumandskeletons/"&gt;Bryan Glynn&lt;/a&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;This is the concept for the main character, yet to be named.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_t6LECbx-18o/S-tgCHk9EnI/AAAAAAAACK0/NI46VlTeYKg/s1600/Wanderer.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://3.bp.blogspot.com/_t6LECbx-18o/S-tgCHk9EnI/AAAAAAAACK0/NI46VlTeYKg/s400/Wanderer.jpg" width="330" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;iframe align="left" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?t=gorsblo07-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0292764995&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="align: left; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36777682-6361332693903070574?l=gorlith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorlith.blogspot.com/feeds/6361332693903070574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gorlith.blogspot.com/2010/05/norse-trpg.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/6361332693903070574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/6361332693903070574'/><link rel='alternate' type='text/html' href='http://gorlith.blogspot.com/2010/05/norse-trpg.html' title='Norse TRPG'/><author><name>Ray Crego</name><uri>https://profiles.google.com/112783501436078185945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-dYS8kFRJdZc/AAAAAAAAAAI/AAAAAAAADqI/JXHfTrRz4jQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_t6LECbx-18o/S-tgCHk9EnI/AAAAAAAACK0/NI46VlTeYKg/s72-c/Wanderer.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36777682.post-463156169890141675</id><published>2010-04-21T13:42:00.002-04:00</published><updated>2010-04-21T13:50:25.529-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='game-dev'/><title type='text'>Getting in the Game (what a corny title!)</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;My first gaming system was the NES. I got my first computer when I was 9. It was my xmas gift, not a family PC. I've always been a geek. Me and Dan started trying to make games using shitty 'make your own game' apps when we were in grammar school. I started learning c++ and html when I was in about 6th grade. I've been coding ever since. I've been gaming and I've been coding. So why haven't I started learning actual game development until now?&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Back in November 2009 I was listening to the first episode of 1ups &lt;/span&gt;&lt;a href="http://www.1up.com/do/minisite?cId=3172958"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Oddcast&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;and heard a fantastic interview with James Silva. James is an experienced developer from &lt;a href="http://www.ska-studios.com/"&gt;Ska Studios&lt;/a&gt;, the team that made &lt;a href="http://www.xbox.com/en-US/games/d/dishwasherdsxboxlivearcade/"&gt;The Dishwasher: Dead Samurai&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;. He talked about how he made the game:&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;strong&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;a href="http://marketplace.xbox.com/en-US/games/media/66acd000-77fe-1000-9115-d802585502a6/" style="text-decoration: none;"&gt;I MAED A GAM3 W1TH Z0MB1ES 1NIT!!!1&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal; font-weight: normal; line-height: normal;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;in just a few days using the &lt;a href="http://creators.xna.com/en-US/"&gt;XNA framework&lt;/a&gt;. He talked about how all you need is the free version of &lt;a href="http://www.microsoft.com/express/Downloads/#SQL_Server_2008_Express_Downloads"&gt;Microsoft Visual Studio C# Express&lt;/a&gt;, the free XNA framework, and some knowledge of coding (c# in particular would be good.) Well Shit. I've been making webapps in C# at work for a while now, and I've got at least 10 years of coding under my belt (although the first 5 years are bullshit lol). I headed out to B&amp;amp;N and picked up a book about XNA and started learning about how the whole thing works.&lt;br /&gt;&lt;br /&gt;Most tutorials are really boring. I learn a ton, but it is never focused towards what I want to make. So sometime around the end of March or so I started working on my own project. It's not pretty, and it's not good, but it's mine. I'll keep working on other tutorials as well, but I'll keep feeding everything I learn into my game, and I'll focus on learning things in such a way that it moves my game forward. I'm working on My game idea for once.&lt;br /&gt;&lt;br /&gt;More to come.&lt;/span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;strong&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium; font-style: normal; font-weight: normal; line-height: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;strong&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium; font-style: normal; font-weight: normal; line-height: normal;"&gt;&lt;iframe align="left" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?t=gorsblo07-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0672330229&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="align: left; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"&gt;&lt;/iframe&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/strong&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36777682-463156169890141675?l=gorlith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorlith.blogspot.com/feeds/463156169890141675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gorlith.blogspot.com/2010/04/getting-in-game-what-corny-title.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/463156169890141675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/463156169890141675'/><link rel='alternate' type='text/html' href='http://gorlith.blogspot.com/2010/04/getting-in-game-what-corny-title.html' title='Getting in the Game (what a corny title!)'/><author><name>Ray Crego</name><uri>https://profiles.google.com/112783501436078185945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-dYS8kFRJdZc/AAAAAAAAAAI/AAAAAAAADqI/JXHfTrRz4jQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36777682.post-1157912751662346135</id><published>2010-04-21T11:24:00.001-04:00</published><updated>2010-04-21T13:46:26.599-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='beer'/><category scheme='http://www.blogger.com/atom/ns#' term='brewing'/><title type='text'>American Wheat</title><content type='html'>This weekend I am bottling my latest batch of beer. I made an &lt;a href="http://www.northernbrewer.com/brewing/american-wheat-beer-extract-kit-2.html"&gt;American Wheat&lt;/a&gt; from &lt;a href="http://www.northernbrewer.com/"&gt;Northern Brewer&lt;/a&gt;. I'm hoping is comes out well as an excellent treat to enjoy this summer. Anyone available for bottling this weekend? The more the&amp;nbsp;merrier, we can drink (other beers) while we work!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;p.s. I also just ordered another kit:&amp;nbsp;&lt;a href="http://www.northernbrewer.com/brewing/twisted-enkel-blonde-extract-kit.html"&gt;Twisted Enkel Blonde&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36777682-1157912751662346135?l=gorlith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorlith.blogspot.com/feeds/1157912751662346135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gorlith.blogspot.com/2010/04/american-wheat.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/1157912751662346135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/1157912751662346135'/><link rel='alternate' type='text/html' href='http://gorlith.blogspot.com/2010/04/american-wheat.html' title='American Wheat'/><author><name>Ray Crego</name><uri>https://profiles.google.com/112783501436078185945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-dYS8kFRJdZc/AAAAAAAAAAI/AAAAAAAADqI/JXHfTrRz4jQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36777682.post-3568173567869584955</id><published>2010-04-06T15:23:00.000-04:00</published><updated>2010-04-06T15:23:23.905-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><title type='text'>Refocusing</title><content type='html'>So it's pretty obvious I don't post often, and when I take a look back most of the posts are garbage. Time for a re-focus.&lt;br /&gt;&lt;br /&gt;Right now out of my hobbies 2 have taken the forefront: Games (in a new way) and Brewing.&lt;br /&gt;&lt;br /&gt;I got rid of the posts about whats going on in my life and whatnot because frankly, who cares. I'm not gonna be so much of a&amp;nbsp;narcissist&amp;nbsp;as to think anyone cares about what I'm up to on a day to day basis. This is the same reason I've pretty much dropped off the map on twitter too.&lt;br /&gt;&lt;br /&gt;I'm not going to b.s. and say that I will be posting often either, we've seen how that worked out last time. (I've had this blog since 2006 and only had about 26 posts, I just deleted like 20 of those.)&lt;br /&gt;&lt;br /&gt;Alright back to the main issue, from now on my posts will generally be about 2 things: 1. brewing 2. games.&lt;br /&gt;&lt;br /&gt;You've already seen some of my brew focused posts, I hope to expand on those a bit eventually.&lt;br /&gt;&lt;br /&gt;My other major project right now is learning some game development. I've been a developer for years, but only in the application and web-app side of the house. I've started self teaching myself the game-dev side of things since December and have some ideas for a project. I'll get into this in later posts.&lt;br /&gt;&lt;br /&gt;That's all for right now.&lt;br /&gt;&lt;br /&gt;-Ray&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36777682-3568173567869584955?l=gorlith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorlith.blogspot.com/feeds/3568173567869584955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gorlith.blogspot.com/2010/04/refocusing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/3568173567869584955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/3568173567869584955'/><link rel='alternate' type='text/html' href='http://gorlith.blogspot.com/2010/04/refocusing.html' title='Refocusing'/><author><name>Ray Crego</name><uri>https://profiles.google.com/112783501436078185945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-dYS8kFRJdZc/AAAAAAAAAAI/AAAAAAAADqI/JXHfTrRz4jQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36777682.post-1907263440820078258</id><published>2010-01-15T14:50:00.000-05:00</published><updated>2010-01-15T14:50:35.045-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='beer'/><category scheme='http://www.blogger.com/atom/ns#' term='brewing'/><title type='text'>How I Brew [Part 3]</title><content type='html'>Now that I told you about the equipment I use and the ingredients needed, it's time to learn about the actual brewing process.&lt;br /&gt;&lt;br /&gt;I should note that I don't currently know hot to do all-grain brewing, so this will be an explanation of how extract brewing works.&lt;br /&gt;&lt;br /&gt;The night before brewing day I take my Wyeast Pack and pop the inner bag that has yeast food in it, then I let the yeast start getting busy over night. Then I go to sleep, dreaming of beer.&lt;br /&gt;&lt;br /&gt;Here is the way brewing day goes.&lt;br /&gt;&lt;br /&gt;First I take my brewing kettle and put like 3 gallons of water in it. I start heating it up. Meanwhile I crush my specialty grains a bit to make sure the oils are free. I put the grains in a mesh bag and steep them in the water like I am making tea. I do this for about 30 minutes, keeping the water hot but not boiling. Once I am sure that most of the oils and sugars and other goodies have been imparted to the water I remove the bag. I then take the malt extract and add it all to the water. Now I bring the water to a boil. When the water hits a boil I add the first batch of hops. I keep the water at a rolling boil and stir it a bit to keep the malt from sticking to the bottom and burning. I keep an eye on the time, and add the rest of the hops at the time the recipe calls for. Total cooking time is usually an hour.&lt;br /&gt;&lt;br /&gt;When the hour hits I fill my sink with ice and cold water. I take the kettle off the heat, keep it sealed tight, and place it in the ice. The goal is to bring the temperature down to a cool temperature the yeast can survive, as quickly as possible. Eventually I am gonna get equipment to to this faster and more efficiently.&lt;br /&gt;&lt;br /&gt;While the wort is cooling I take the carboy I am going to use for fermentation and make sure its sanitary. I do this by cleaning it free of dust and gunk and make sure it's super clean, then I fill it with warm water mixed with sanitation solution. I also sanitize the airlock and hydrometer, and anything else that will touch the wort.&lt;br /&gt;&lt;br /&gt;Once the wort is cooled I add it to the carboy and I add enough cold filtered water to fill the carboy to about 5 gallons. I take some of the wort and take a reading of its original gravity to check it against what the recipe thinks the O.G. should be. Then I add the yeast, seal it with a bung and an airlock, and put it in a cool, dry, dark place.&lt;br /&gt;&lt;br /&gt;All done! Brewing day should take about 2-3 hours including setup and cleanup.&lt;br /&gt;&lt;br /&gt;Questions?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36777682-1907263440820078258?l=gorlith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorlith.blogspot.com/feeds/1907263440820078258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gorlith.blogspot.com/2010/01/how-i-brew-part-3.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/1907263440820078258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/1907263440820078258'/><link rel='alternate' type='text/html' href='http://gorlith.blogspot.com/2010/01/how-i-brew-part-3.html' title='How I Brew [Part 3]'/><author><name>Ray Crego</name><uri>https://profiles.google.com/112783501436078185945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-dYS8kFRJdZc/AAAAAAAAAAI/AAAAAAAADqI/JXHfTrRz4jQ/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36777682.post-4523960579981995640</id><published>2009-12-18T15:36:00.063-05:00</published><updated>2009-12-18T16:12:30.911-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='beer'/><category scheme='http://www.blogger.com/atom/ns#' term='brewing'/><title type='text'>How I Brew [Part 2]</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.craftbrewing.org.uk/recipes/ingredients.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="212" ps="true" src="http://www.craftbrewing.org.uk/recipes/ingredients.jpg" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size: xx-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;This pic belongs to &lt;/span&gt;&lt;a href="http://www.craftbrewing.org.uk/"&gt;&lt;span style="font-size: xx-small;"&gt;http://www.craftbrewing.org.uk&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: xx-small;"&gt;. &lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: xx-small;"&gt;I'll remove it if asked and am not makign any money off it, etc...&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Time for part two of my little brewing series. None of this is intended to really get into detail since there are plenty of great great sites and books to read if you want to get into brewing. This series is just here to answersome of the questions I get about how I brew and whatnot.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This post will focus on the ingredients and things that are not a one time purchase, the consumables. I'll mention some different ways in which I've done things. Just like someone that like baking, sometimes you have the time to make your own recipe and make everything from scratch, sometimes you gotta just get some&amp;nbsp;&lt;em style="font-style: normal;"&gt;&lt;span style="font-family: inherit;"&gt;Pillsbury's&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;lol.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Grains&lt;/strong&gt;&lt;br /&gt;Grains are the heart of all beer. More specifically Malted Barley is the heart of all beer. Even Wheat beers usually contain a good amount of Barley. Barley is soaked in water gor a day or two at least, then it is germinated. To germinate it they put it in a room thats about 60 degrees F and leave it (about 8 inches depth worth) for about 8-15 days, with daily turning and moving of the grains. After this they gather the ones that have an acrospire growing from it and kiln them. The kilning process takes two steps. First they dry the grains over low heat (around 90-100 deg F) for about 2 days. Next, they are put to around 170-220 deg F for another day and a half or 2. &lt;br /&gt;&lt;br /&gt;At this point the grains are lightly malted and grains that are malted to this point are categorized based on the time and heat used since it affects the malt variety and then these are used as the &lt;strong&gt;base malt&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;But to create the huge variety of beer in the world, more than just these base malts are needed. They also continue to malt some of the grains at an even higher temperature and create many colors of malt. From the browner ones used in brown ales and red ales, to the darker ones used in porters, stouts, etc... These are all called &lt;strong&gt;specialty grains.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;When you brew beer you use mostly a base grain, and augment it using&amp;nbsp; a mix of specialty grains.&lt;br /&gt;&lt;br /&gt;Then depending on your setup you either buy the base grains and go through the process of extracting the malted sugers and whatnot, or you buy the malted sugars in a jug or can.&amp;nbsp;You always buy the specialty grains whole.&amp;nbsp;Eventually most brewers use the base malt grains themselves (all-grain brewing). I don't have the equipment and time to learn that right now unfortunatly so I am doing it the chump way and buying the malt extract (extract brewing).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Water&lt;/strong&gt;&lt;br /&gt;The next major part is water. I wont get into detail on this because I don't know much about it yet. For brewing I usually use tap water (through my brita recently). I used to buy a few gallons of water, but now I don't. If I was going to become a serious brewer that needed very consistent results I would take some readings of the chemicals and ph of the water and use salts and chemicals to make the water harder or softer and to adjust magnesium and calcium levels and whatnot, but I don't. To learn more go read a brewing book.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Hops&lt;/strong&gt;&lt;br /&gt;Hops give the beer bittering and aroma. Without hops beer would taste sweet and malty with only grainy smells and tastes. The hops are collected and dried, and then sold as either pellets or whole. I have sofar only used pellets. Different varieties have different acidic properties and provide different flavors and aromas, but I am no expect in this yet. Generally my beers use 2 or maaaybe 3 hops varieties.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Yeast&lt;/strong&gt;&lt;br /&gt;Yeast is the last major player in this masterpeice. There are many strains of yeast, both top-fermenting (generally used in Ales) and bottom-fermenting (generally used in Lagers). The yeast eats the sugars in the cooked ingredients and breaks them apart releaseing other varieties of sugar and flavor, alcohol, and CO2. The CO2 eventually kills off the yeast. I'll talk more about yeast when I explain the brewing process. Just know that lagers use bottom-fermenting yeast that prefer lower temperatures and give you smoother, crisper lagers. Top-fermenting yeasts prefer room temperature environments and give you frutier, sweeter ales.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Other&lt;/strong&gt;&lt;br /&gt;Beer purists, like the Germans, will tell you that beer only contains the above ingredients. But many brewers employ extras sometimes. You can add honey, or spices, or juices, fruits, peppers, salts, etc. There is an infinite number of things you can add to the beer to affect it's flavor, it all depends what you want to do. These final things are usually used in special beers and often in small doses. The more common ones are the spices, honey, and juices.&lt;br /&gt;&lt;br /&gt;One last thing that get's bought is a little it of fine sugar to help bottle-carbonate the beer. I'll talk about that in the bottling day post.&lt;br /&gt;&lt;br /&gt;Sometimes I use recipies and buy the ingredients on their own at the Gaslight or online. Sometimes I use northern brewers recipe kits. Lungfish is really based off of northern brewers irish red recipe: &lt;a href="http://www.northernbrewer.com/brewing/recipe-kits/extract-kits/extract-ale-kits/irish-red-ale-extract-kit.html"&gt;http://www.northernbrewer.com/brewing/recipe-kits/extract-kits/extract-ale-kits/irish-red-ale-extract-kit.html&lt;/a&gt;, Dark Templar was based on a recipe i found online, firebat was a mix of that same recipe and my desire to put peppers in something.&lt;br /&gt;&lt;br /&gt;Anyway, next time I'll talk about the actual process on brewing day.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36777682-4523960579981995640?l=gorlith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorlith.blogspot.com/feeds/4523960579981995640/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gorlith.blogspot.com/2009/12/how-i-brew-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/4523960579981995640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/4523960579981995640'/><link rel='alternate' type='text/html' href='http://gorlith.blogspot.com/2009/12/how-i-brew-part-2.html' title='How I Brew [Part 2]'/><author><name>Ray Crego</name><uri>https://profiles.google.com/112783501436078185945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-dYS8kFRJdZc/AAAAAAAAAAI/AAAAAAAADqI/JXHfTrRz4jQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36777682.post-5587571213705809891</id><published>2009-11-28T13:16:00.002-05:00</published><updated>2009-11-28T13:24:04.365-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='beer'/><category scheme='http://www.blogger.com/atom/ns#' term='brewing'/><title type='text'>How I Brew [Part 1]</title><content type='html'>&lt;span style="font-family: inherit;"&gt;I've been asked quite a few times lately about how I brew and what I use to do things so I figured that I could explain here on the blog. I'll also say right off the bat that the pics of Northern Brewer's products are copyright by them and all that so Northern Brewer I'll take them down if you want, but otherwise it makes for free&amp;nbsp;advertisement&amp;nbsp;right?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family: inherit;"&gt;Equipment&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="font-family: inherit;"&gt;The startup cost for home brewing isn't as high as you might expect.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: inherit;"&gt;I started out with:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;a href="http://www.northernbrewer.com/media/catalog/product/cache/1/image/5e06319eda06f020e43594a9c230972d/7/6/7601.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;img border="0" height="200" src="http://www.northernbrewer.com/media/catalog/product/cache/1/image/5e06319eda06f020e43594a9c230972d/7/6/7601.jpg" width="200" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;li&gt;&lt;span style="font-family: inherit;"&gt;a Northern Brewer &lt;/span&gt;&lt;a href="http://www.northernbrewer.com/brewing/starter-kits/basic-starter-kit.html"&gt;&lt;span style="font-family: inherit;"&gt;Basic Starter Kit&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: inherit;"&gt; (~$75)&lt;br /&gt;Includes:&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: #2f2f2f; font-size: 12px; line-height: 18px;"&gt;&lt;span style="font-family: inherit;"&gt;Six gallon fermenting bucket with lid&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: #2f2f2f; font-size: 12px; line-height: 18px;"&gt;&lt;span style="font-family: inherit;"&gt;Six gallon bottling bucket with spigot&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: #2f2f2f; font-size: 12px; line-height: 18px;"&gt;&lt;ul style="list-style-image: initial; list-style-position: initial; list-style-type: none; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: inherit;"&gt;Fermentation lock&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: #2f2f2f; font-size: 12px; line-height: 18px;"&gt;&lt;span style="font-family: inherit;"&gt;Siphon tubing&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: #2f2f2f; font-size: 12px; line-height: 18px;"&gt;&lt;ul style="list-style-image: initial; list-style-position: initial; list-style-type: none; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: inherit;"&gt;Bottle filler&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: #2f2f2f; font-size: 12px; line-height: 18px;"&gt;&lt;span style="font-family: inherit;"&gt;Bottle brush&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: #2f2f2f; font-size: 12px; line-height: 18px;"&gt;&lt;ul style="list-style-image: initial; list-style-position: initial; list-style-type: none; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: inherit;"&gt;AutoSiphon&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: #2f2f2f; font-size: 12px; line-height: 18px;"&gt;&lt;span style="font-family: inherit;"&gt;Bottle capper&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: #2f2f2f; font-size: 12px; line-height: 18px;"&gt;&lt;ul style="list-style-image: initial; list-style-position: initial; list-style-type: none; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: inherit;"&gt;144 bottle caps&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: #2f2f2f; font-size: 12px; line-height: 18px;"&gt;&lt;span style="font-family: inherit;"&gt;Hydrometer&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: #2f2f2f; font-size: 12px; line-height: 18px;"&gt;&lt;ul style="list-style-image: initial; list-style-position: initial; list-style-type: none; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: inherit;"&gt;8 oz. One-Step Sanitizer&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span style="color: #2f2f2f;"&gt;&lt;span style="line-height: 18px;"&gt;&lt;span style="color: black; line-height: normal;"&gt;&lt;span style="font-family: inherit;"&gt;a&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.northernbrewer.com/brewing/5-gallon-stainless-kettle.html"&gt;&lt;span style="font-family: inherit;"&gt;5 Gallon Stainless Kettle&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;(~$38)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: inherit;"&gt;48 &lt;/span&gt;&lt;a href="http://www.northernbrewer.com/brewing/brewing-equipment/bottling/bottles/beer-bottles-12-oz.html"&gt;&lt;span style="font-family: inherit;"&gt;12oz Beer Bottles&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: inherit;"&gt; (24 x2) (~$28)&lt;br /&gt;&lt;br /&gt;This makes the Startup cost about &lt;/span&gt; &lt;b&gt;&lt;span style="font-family: inherit;"&gt;$150&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: inherit;"&gt; plus shipping, so around &lt;/span&gt;&lt;b&gt;&lt;span style="font-family: inherit;"&gt;$200&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: inherit;"&gt; (rounding up)&lt;br /&gt;You could probably bring this down by saving up your own bottles and buying a cheaper kettle somewhere, but really it's more convenient to order them all from NB.&lt;br /&gt;&lt;br /&gt;Since then I got:&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: inherit;"&gt;(2x)&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.northernbrewer.com/brewing/5-gallon-glass-carboy.html"&gt;&lt;span style="font-family: inherit;"&gt;5 Gallon Glass Carboy&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;($31.99 each)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: inherit;"&gt;a thermometer&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: inherit;"&gt;an airlock&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: inherit;"&gt;some bungs&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: inherit;"&gt;a big as hell&amp;nbsp;Tupperware&amp;nbsp;container to store stuff and in which to&amp;nbsp;sanitize&amp;nbsp;things&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: inherit;"&gt;probably one or two other random things.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;Next time I'll talk about ingredients and other things that I need to keep buying, etc.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36777682-5587571213705809891?l=gorlith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorlith.blogspot.com/feeds/5587571213705809891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gorlith.blogspot.com/2009/11/how-i-brew-part-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/5587571213705809891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/5587571213705809891'/><link rel='alternate' type='text/html' href='http://gorlith.blogspot.com/2009/11/how-i-brew-part-1.html' title='How I Brew [Part 1]'/><author><name>Ray Crego</name><uri>https://profiles.google.com/112783501436078185945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-dYS8kFRJdZc/AAAAAAAAAAI/AAAAAAAADqI/JXHfTrRz4jQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36777682.post-7028005004023843027</id><published>2009-11-19T20:55:00.000-05:00</published><updated>2009-11-19T20:55:20.510-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='beer'/><category scheme='http://www.blogger.com/atom/ns#' term='brewing'/><title type='text'>Finally Brewing Again!</title><content type='html'>A few years ago I decided to try homebrewing. I ordered a starter kit, ingredients for an irish red and gave it a try. It was tough work, but the beer was great, and I was able to let people drink beer that &lt;i&gt;I&lt;/i&gt;&amp;nbsp;made! What a great feeling. Anyway I fell in love with brewing.&lt;br /&gt;I've brewed:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;2 batches of Irish Red (Lungfish)&lt;/li&gt;&lt;li&gt;2-3 batches of Stout (Dark Templar)&lt;/li&gt;&lt;li&gt;A Jalapeno Stout (Firebat)&lt;/li&gt;&lt;li&gt;A Pilsner (Hyperion)&lt;/li&gt;&lt;li&gt;A Smoked Porter (Oseberg)&lt;/li&gt;&lt;li&gt;A Dopplebock (Grimnirator)&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;But since I made Grimnirator around May 2008 I hadn't had any time to brew. There was wedding planning to be done in large amounts, then our wedding in May 2009, then ll sorts of stuff till this fall. But in October I said "If I don't brew I'm gonna murder a baby". So I finally forced in the time and made another batch of Lungfish.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I did a two week primary fermentation followed by a two week secondary. I bottled it a little over a week and a half ago on Nov 8th with help from Andrew, JR, and Tanya. I will be starting to let people try it around Thanksgiving and my Birthday (Next Thurs and the following Sunday respectively.) So hit me up for some beer!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36777682-7028005004023843027?l=gorlith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorlith.blogspot.com/feeds/7028005004023843027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gorlith.blogspot.com/2009/11/finally-brewing-again.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/7028005004023843027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/7028005004023843027'/><link rel='alternate' type='text/html' href='http://gorlith.blogspot.com/2009/11/finally-brewing-again.html' title='Finally Brewing Again!'/><author><name>Ray Crego</name><uri>https://profiles.google.com/112783501436078185945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-dYS8kFRJdZc/AAAAAAAAAAI/AAAAAAAADqI/JXHfTrRz4jQ/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36777682.post-116210504658606575</id><published>2006-10-29T01:55:00.000-05:00</published><updated>2006-10-29T01:57:26.593-05:00</updated><title type='text'>First post on Blogger</title><content type='html'>Here is my first post on blogger. I'm trying it out to see how well I can integrate it with other things I use.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36777682-116210504658606575?l=gorlith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorlith.blogspot.com/feeds/116210504658606575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gorlith.blogspot.com/2006/10/first-post-on-blogger.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/116210504658606575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36777682/posts/default/116210504658606575'/><link rel='alternate' type='text/html' href='http://gorlith.blogspot.com/2006/10/first-post-on-blogger.html' title='First post on Blogger'/><author><name>Ray Crego</name><uri>https://profiles.google.com/112783501436078185945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-dYS8kFRJdZc/AAAAAAAAAAI/AAAAAAAADqI/JXHfTrRz4jQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
