スポンサーが居なければ、そうそう毎週東京に出かけるわけにもいかないので(というか、できるものなら出かけたくない)、Skypeを使って開発ミーティングをしてみる。
ネットの品質が悪いのか結構ノイズが乗る。 test callではきれいに聞こえるんだけどなあ。 あと、私のPCの内蔵マイクではキーボードを打つ音を拾って うるさいそうなので、社内にあったマイク付きヘッドセットをつないだら ずいぶん改善されたそうだ。
今度自分用に買ってこよう。
で、「#`バーチャルネットプログラマ テオリア,(receive (_ e) (frexp 1e6) e)歳 - 開発スプリント」には、 Skypeを使った開発スプリントの注意点として「一番やってはいけないのは、ずーっと Skype を繋げっぱなしにしておくこと」とあるが、 今回われわれはあまり問題を感じなかった(私だけ?)。
これは我々が「喋りながらコーディングする不思議な人々」だったせいだろう(私だけ?)。 実際、議論してる最中にコミットしてたりするし。
今回の「ふりかえり」は
くらいだろうか。
Pythonはひとつの書き方が強制されるので、結果として読みやすい、 とよく言われるが、難読プログラムを書くのが不可能というわけではない。 というか、禁止することが不可能なんで、 別に当たり前のことなんだけど。
以下のFibonacci数計算とか素敵
fibonacci = lambda x:map(lambda o:(map(lambda c:map(lambda l: o.__setslice__(l[0],l[1],l[2]),([o[2]+3,o[2]+4,[o[0]]],[0,3,[o[1], reduce(lambda x,o:x+o,o[:2]),o[2]+1]])),range(x)),o)[1],[[1,1,0]+ range(x)])[0][3:] print fibonacci(20)
このBrainF*ck interpreterとかもなかなかだが、ちょっと不自然な難読化かもしれない。
import sys z,x,y= "}{|}A|k{|kA|}=BE1)|BF}))|$}:~pI~/;@Go{H%{&A?|if }:~pJ"\ "IJ-1~#>=0:GoAG@HG;o{G;%-I&{?|m,kJ,j=C?;/@~o{~D:Gl[c]("\ ")?","G$p:%~;%~;el!]':p%break~;![':p%#<len(j):~%\n\t\t"\ "%if c=='%while o%\n%m[k]%+=1%\t%if not %c=j[o]%-=1%sy"\ "s.std%[0]*64000,0,0,open(sys.argv[1]).read()%if l.has"\ "_key(c)%in.read(%out.write(chr(%=1%,o".split('%'),"HG"\ "&%/~!#?}{;$@ABCDEFIJ" for i in range(len(x)):z=z.replace(y[i],x[i]) z=z.split('|') for o in range(9): exec("def %c():\n\tglobal k,m,o,j\n\t%s\n"%(chr(97+o),z[o])) l={'>':c,'<':d,'-': b,'+':a,',':e,'.':f,'[':g,']':h} i()
Erlangを勉強してみたけど、個別の機能は理解できるが 全体として何がうれしいのかいまいちピンとこない、という話。 実は、私も似たような感じを受けている。
Erlangを見た時の反応はかなり人それぞれで
という両極端の間のどこかに収まる。
私自身は、関数型言語に苦手意識があるという背景を置いといても
という理由もあって、私自身がErlangにハマることはなさそう。
が、Erlangが「素敵な言語」であることには間違いないので、 もうちょっと勉強しておきたい気はする。
『Programming Erlang』でも読むか。
RailsのSubversionレポジトリの7500以上のコミットが Gitに格納すると9Mバイトに収まる、という話。
圧縮してると言うのは聞いてたけど、そこまでとは。
あー、でも手元のRubyのgitレポジトリは272Mあるなあ。 なにか明示的に圧縮しないといけないのかな?
まあ、RailsよりもRubyの方が歴史、コミット量とも圧倒的に多いのではあるけれど。
まさか、「Life is beautiful」でRubyがとりあげられることがあるとは。 バブルって恐ろしい(笑)
特にイテレータが気に入っていただいたようで、ありがたいことである。 で、書籍『オブジェクト指向スクリプト言語Ruby』の中でイテレータの扱いが いまいちであることにご不満のようである。
まあ、あれはもう8年も前の本で、イテレータ(というかブロック)に 関する知見がまださほど蓄積されていなかった、ということで勘弁していただきたい。 Rubyも(私も)発展途上なので。
っていうか、イテレータは1.9での「Enumerator標準添付」+「ブロックなしメソッドがEnumeratorを返す」新機能で、また新しい境地に突入するのではないかと思う。
2.0でLazyArrayが登場したら、もっと変化するよ、きっと。