-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
numbers which are multiples of both three and five
print "FizzBuzz".
Pretend you’ve just walked into a job interview and been hit with this question.
Solve it as you would under such circumstances for this week’s Ruby Q…
My “honest” solution (what I really would have submitted to the
interviewer):
arr = (1…100).map do |i|
i = ((“FizzBuzz” if i%15==0) or (“Fizz” if i%3==0) or (“Buzz” if
i%5==0) or i)
end
puts arr
I couldn’t resist throwing in the Loki solution. Why Loki? Because
it’s a mischievous rascal, and it makes excessive use of the name
“it”, albeit misguidedly, which it thinks is fitting giving the recent
hoopla about “it”:
require ‘date’
class Fixnum
@@shapes = {
3 => “Fizz”,
5 => “Buzz”
}
def self.invoke it
@@shapes = it if it.kind_of? Hash
end
def self.reveal
puts @@shapes.value.join( ’ ’ )
end
def << it
return self if it.empty?
it
end
def options( sep="", it=[] )
@@shapes.keys.sort.each do |k|
it << @@shapes[k] if self%k == 0
end
self << it.join( sep )
end
end
loki_roused = ARGV[0]
if loki_roused
the_simpsons = {
3=>“Homer”,
5=>“Marge”,
7=>“Bart”,
11=>“Lisa”,
13=>“Maggie”
}
Fixnum.invoke the_simpsons
end
(1…100).each do |i|
puts i.options
end
if loki_disturbed
jd = Date.today.jd
puts “\n---------------------------------”
puts "\n Out of the simpson family – on this Julian day of #{jd},
Loki can shape shift into:\n #{(it = jd.options "
“).kind_of?(String) ? it : ‘none of them’}”
puts “---------------------------------\n”
end
Some thoughts:
This is, obviously, an incredibly easy programming puzzle – as far as
writing down the pseudo code in english. It took me, however, no lie,
a good half hour just to decide on a course of action. In my head, I
struggled with the virtues of simplicity and the “coolness” of
conciseness, all while trying to avoid mediocrity. Actual programming
was a breeze. From there, though, no lie, at least fifteen minutes to
debug. I’m not kidding.
Now, I’m the first to admit that I’m new to Ruby, and programming is
not my strong suit, but I would never think that I’m one of those
people that couldn’t program themselves out of a paper bag.
Thinking about this quiz just reinforced what I already knew about
myself. I’m not a guy who just jumps in and gets his hands dirty. In
fact, I’m the exact opposite. I over-think the problem and often get
nowhere. If this were a test of performance under pressure, I’m
certain I would have failed to impress during the interview.
In any case, to the other newbies out there: don’t be intimidated by
such frivolous pursuits of the lofty few such as “golf”. In fact, be
so bold as to join in if you dare. But, as in all things, be
steadfast in your Ruby endeavors. Enlightenment will come 
Todd