Happy My Life

日常とか技術とか

最悪なHello World

To all who Think Themselves a Programmerより。

サンフランシスコのある会社での求人なのだが、この会社では一次選考として、どの言語を使用してもいいので最悪なHelloWorld(画面にHello Worldと表示させるだけのプログラム)を書いてもらい、それを採用基準にしている。

最善の手法ではなく、最悪な手法で試すとはなかなか面白い。言語選びなどでも個性が出るので、その人の潜在的なスキルが試される。日本じゃこんな手法を採用している企業なんて少ないよなぁ。

採用された例

原文より抜粋して掲載。変態的(褒め言葉)なHello Worldの世界へご招待。

その1

y = lambda { |f| lambda { |x| lambda { |n| (f.call (x.call x)).call n } }.
call lambda { |x| lambda { |n| (f.call (x.call x)).call n } } }

hw = y.call lambda { |f| lambda { |n|
    if n  0 then (f.call (n-1)) end } }

puts hw.call 5

その2

import urllib2
import re
u = urllib2.urlopen("http://saymix.com/")

from tokenize import generate_tokens, STRING
from collections import defaultdict
wf = defaultdict(lambda: 0)

for tp,vl,_,_,_ in generate_tokens(u.readline):
    if tp == STRING:
        for v in re.compile(r'w{5}').findall(vl):
            wf[v.lower()] += 1

print "%s %s" % tuple([v[0] for v in sorted(wf.iteritems(), key=lambda (k,v): (v,k))[-2:]])

その3

import sys;y = 0;z=""
for a in [["y+=1","y<.".find(m)] for m in 
          "+>>>>++>>.+>>+>>+++++>>+.+>>++>>+++>>.+>>++>>+++>>.+>>++>>+++>>+++.+>>>>"+
       ">.+>>+>>>>+++++++.+>>++>>+++>>+++.+>>++>>+++>>++++++.+>>++>>+++>>.+>>+>>+++++>>."]:exec(a)
print z

その4

from random import choice
from itertools import count
from zlib import crc32
import sys
any(crc32(h)==472456355 and not sys.stdout.write(h) for h in(''.join(choice('! edHlorW')for _ in '.'*12)for _ in count()))

その5

set 68 65 6C 6C 6F 1 77 6F 72 6C 64; while  $1 ; do dd if=/dev/urandom bs=1c count=1 2> /dev/null | sed -n "/\x$1/{ p; Q1; }" || shift; done; echo

その6

eval(gzinflate(base64_decode('
4+Wyt+PlsrEvyCjg5UrOSSwuVgjPL8
pJUajm5eIsKE3KyUxWSCvNSy7JzM9T
8EjNyclX0NAES3KmJmfkK8THu4X6OY
d4+vvFx1vDRZMzijSMjTStkZQ5+zgG
B0PU1PJyAZFKhYKtQl5qOcQ+a5CArh
3YBg2QRiRnAQA=')));

で上記のコードを展開したのがこれ。

class World {
    public function Hello () {
        echo __FUNCTION__;
        echo chr(32);
        echo __CLASS__;
    }
}
$x = new World;
$x->Hello();

その7

ps aux | head -1 | awk '{print $11$5}' |  tr '[103117115115101116104126123132]' '[110145154154157127157162154144]' | sed 's/o/o /'

その8

ps ax | awk -F":" '{ print $2 }' | grep "Hello Bitches" | awk -F" " '{print $3 " " $4 }'

よくこんなコードのを思いつくなと感心する。

この本の内容も負けず劣らず変態的(誉め言葉)なコードのオンパレード。こちらの本に書かれている内容はずっと実用的だが。