serious geekery
Well, this is a fun little puzzle from Google Blogoscoped
I’ve translated them to Ruby-esque code fragments (with some Rails-isms sprinkled in.)
-
original: // idiom 1 cop[0].goodInPercent = 100; cop[1].goodInPercent = 0;my version: GoodCop=cop[0] BadCop=cop[1] return GoodCop + BadCop -
original: // idiom 2 isCrowd = personCounter >= 3;my version: assert (3 == isCrowd) original: // idiom 3 injury += insult;my version: return (insult + injury)// idiom 4 1: board.draw(); goto 1;my version: def Board.back Board.type = 'drawing' endoriginal: // idiom 5 if (bird[1].feather == bird[2].feather) { bird[1].flock(bird[2]); }my version: flock.collect {|bird| feathers.each {|feather| bird.find_by_feather(feather)}}original: // idiom 6 a = getThickness('blood'); b = getThickness('water'); assert(a > b);Blood.SpecificGravity = 1.0506 # reference: http://www.clinchem.org/cgi/content/abstract/20/5/615 Water.SpecificGravity = 1.0000 assert (Blood.SpecificGravity > Water.SpecificGravity)(See: [Specific Gravity of Blood and Plasma at 4 and 37°C][2]) [2]: http://www.clinchem.org/cgi/content/abstract/20/5/615 “Trudnowski and Rico · “Specific Gravity of Blood and Plasma at 4 and 37°C” · Clinical Chemistry 1974 20(5):615”
original: // idiom 7 a_spade_a_spade();my version: class Spade def Spade.call(value) Spade.name = value end end Spade.call ('Spade')original: // idiom 8 die(1000); function die(max) { for (i = 1; i <= max; i++) { cut(); } }my version: Death.find_by_cut('1000')original: // idiom 9 prey = 'worm'; time = getCurrentTime(); if (time >= 4 && time <= 8) { bird.catch(prey); }my version: bird = Creature.new(:shift => 'early') worm = Creature.new if bird.shift == 'early' bird.catch(worm) endoriginal: // idiom 10 while ( rome.fire() ) { doFiddle(); }my version: Nero(:instrument => 'fiddle') while Rome.is_burning?original: // idiom 11 function getValue(garbage) { return garbage; }my version: Value.In(:Garbage) print Value.Out ==>Garbageoriginal: // idiom 12 take(salt * .01);my version: Salt.take(:mass => 0.06479891, :unit => 'gram')original: // idiom 13 var here = false; var there = false;my version: assert (!(here or there) == true)original: // idiom 14 if (i == 2) { tango(); }my version: </li>def self.takes(value) if value == 2 then self.tango(); endoriginal: // idiom 15 days = 365; for (day = 1; day <= days; day++) { if ( random(0,100) <= 50 ) apple++; } if (apple <= days) doctor();my version: year.collect {|day| if day.apple_count > 0 then doctor.keep_away()}original: // idiom 16 if ( !dogs.sleep() ) { disturb(dogs); }my version: if dog.is_asleep? then dog.lay()original: // idiom 17 function tunnel() { var dark; for (i = 0; i < 10; i++) { dark = true; } dark = !dark; return dark; }my version: Class Tunnel def self.is_there_light? return (self.position == END) end endoriginal: // idiom 18 if ( ape.inLineOfSight(it.x, it.y) ) ape.do(it);my version: if monkey.does_see?(:actor) then monkey.do(Monkey.action_seen(:actor))original: // idiom 19 return way.my || way.high;my version: return way(:my) || way(:high)original: // idiom 20 hay[ random(0, hay.length - 1) ] = 'needle';my version: hay = Stack.new hay.find('needle')original: // idiom 21 a = 0; b = 1; hand[a].wash(hand[b]); hand[b].wash(hand[a]);my version: hand['left'].wash(hand['right']) hand['right'].wash(hand['left'])original: // idiom 22 function getGain(pain) { return pain >= 1; }my version: if (pain.level == 0) then gain.level = 0original: // idiom 23 if (cooks >= 3) { broth = null; }my version: if cook.count >= 3 then broth.is_spoiled? = trueoriginal: // idiom 24 if (a != 'cake') a.eat();my version: Class Cake def Cake.have() Cake.is_had? = Cake.is_eaten? ? false : true end def Cake.eat() Cake.is_eaten? = Cake.is_had? ? false : true end endoriginal: // idiom 25 doesStand = you == me;my version: if We.is_united? then We.stand() if We.is_divided? then We.fall() </ol>original: // idiom 26 var location = getLocation(); if (location == 'rome') { do( location.getCitizen() ); }my version: if person.locale == 'Rome' then person.behavior(:Roman)