<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.2.3" -->
<rss version="0.92">
<channel>
	<title>Klank Boom Klang</title>
	<link>http://www.klankboomklang.com</link>
	<description>Ruby and otherwise by Patrick Farley</description>
	<lastBuildDate>Mon, 24 Mar 2008 23:57:47 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>Modules Part II - Strange Brew</title>
		<description>This post continues to look at Ruby Modules and their properties.

It's possible to mix a Module into a second Module which can then be mixed into a class.  The result is that an entire Module chain is moved into the a classes inheritance chain with one call to include.

[source:ruby]
module ...</description>
		<link>http://www.klankboomklang.com/2008/02/04/modules-part-ii-strange-brew/</link>
			</item>
	<item>
		<title>Modules Part I - Enter the Include Class</title>
		<description>Modules in Ruby serve two purposes.  One is to provide namespace scope for code organization seen in the syntax Test::Unit::TestCase, where TestCase is a class defined inside of the Unit module, which is in turn defined within the Test module.  The second purpose of modules is to provide ...</description>
		<link>http://www.klankboomklang.com/2007/11/25/modules-part-i-enter-the-include-class/</link>
			</item>
	<item>
		<title>Class Methods Part IV - DSL&#8217;s</title>
		<description>This last post in a series on Ruby class methods focuses on Domain Specific Languages.

There are many different types of DSL's.  The broadest classification, coined I believe by Martin Fowler, distinguishes between internal and external DSL's.  External DSL's are languages with a language specific compiler or interpreter.  ...</description>
		<link>http://www.klankboomklang.com/2007/11/16/class-methods-part-iv-dsls/</link>
			</item>
	<item>
		<title>Class Methods Part III - Structural Duplication</title>
		<description>This post in a series on class methods in Ruby focuses on removing structural duplication.

Whether it's called OnceAndOnlyOnce or DRY good developers should agree that in the overwhelming majority cases duplication in software is a bad thing.  Duplication comes in many forms.  The simplest to identify (and remove) ...</description>
		<link>http://www.klankboomklang.com/2007/11/12/class-methods-part-iii-structural-duplication/</link>
			</item>
	<item>
		<title>Class Methods Part II - Annotations</title>
		<description>Part II of this series on Ruby class methods is a look at annotations in Ruby.

The term annotation here refers to a Ruby technique that belongs to the same family as Java annotations, C# attributes, and C compiler directives.  These language features are of course not identical, and the ...</description>
		<link>http://www.klankboomklang.com/2007/10/26/class-methods-part-ii-annotations/</link>
			</item>
	<item>
		<title>Class Methods</title>
		<description>In my last post I wrote that providing a home for class methods was the raison d’être of the Metaclass.  So why go through all the trouble?  What are class methods good for?  Four uses worth exploring are Object Creation, Annotations, DSL's, and removal of structural duplication

This ...</description>
		<link>http://www.klankboomklang.com/2007/10/19/class-methods/</link>
			</item>
	<item>
		<title>Objects, Classes, and JRuby Internals</title>
		<description>A walk through of the JRuby implementation wraps up this series on Ruby internals and Singleton classes.  

JRuby is a Java implementation of the Ruby interpreter.  That is to say, that one can write plain ol' Ruby files and hand them off to the JRuby interpreter for execution ...</description>
		<link>http://www.klankboomklang.com/2007/10/12/objects-classes-and-jruby-internals/</link>
			</item>
	<item>
		<title>The Metaclass</title>
		<description>If you search around the web a bit, you are sure to find the Ruby Metaclass defined as "The singleton class of a class."  While this definition is accurate, it doesn't contribute to an understanding of why Metaclasses exist.  It is also guilty of underplaying some notable difference ...</description>
		<link>http://www.klankboomklang.com/2007/10/05/the-metaclass/</link>
			</item>
	<item>
		<title>Real Class</title>
		<description>It interesting that Ruby, a language which allows you to so easily bypass encapsulation, encapsulates it's own internals to the point of occasional prevarication.  Heres an example...

[source:ruby]
pirate = Object.new
def pirate.speak
	"Yarrrr"
end
pirate.class == Object.new.class
#=> true
[/source]

In my last post I explained how the code above forces the interpreter to assign a newly ...</description>
		<link>http://www.klankboomklang.com/2007/09/28/real-class/</link>
			</item>
	<item>
		<title>The Singleton Class</title>
		<description>There's no shortage of literature on singleton classes, but it's rare to see an explanation that covers implementation.  This is unfortunate, as the implementation is not complex and familiarity with it leads to a more nuanced understanding.

A good way to look at singleton classes is to ask the question, ...</description>
		<link>http://www.klankboomklang.com/2007/09/21/the-singleton-class/</link>
			</item>
</channel>
</rss>
