a man gets to say what music he likes
Methods

	- default values for optional parameters is pretty similar to c#:
		def func(a, b=:default_value)
	- Private methods can not be accessed from outside the class (thank god) .. and if called a 'NoMethodError' is raised
	- the last expressions' value in a method is returned as the methods' return value, unless the explicit (and rather fuzzy) return statment is used. BTW, the return statement doesn't necessarily have to be the last statement; why do we keep doing the same mistakes, Matz?
	- similar to C# params keyword, you can use * operator to define a variable length parameters list ..
			- def test(*params)
				params
			end

			- calling test() returns []
			- test('one') => ['one']
			- test('one', {:a=> 'a'}) => ['one', {:a => 'a'}] .. etc.

	- Parantheses are not required until they are required

Thank you Jim Weirich - I miss you
Keyword Argumes (Named parameters, for short)

	- they must be also optional ...
Constants
	- Constants are also inherited
	- Lexical scoping can sometimes override hierarchical scoping
Control statmenets

aside from the late use of if and unless, nothing is truly new to me here
Everything in ruby is true, except for false and nil