«前の日記(2007年10月03日) 最新 次の日記(2007年10月05日)» 編集

Matzにっき


2007年10月04日 [長年日記]

_ [Ruby] Skype開発ミーティング

スポンサーが居なければ、そうそう毎週東京に出かけるわけにもいかないので(というか、できるものなら出かけたくない)、Skypeを使って開発ミーティングをしてみる。

ネットの品質が悪いのか結構ノイズが乗る。 test callではきれいに聞こえるんだけどなあ。 あと、私のPCの内蔵マイクではキーボードを打つ音を拾って うるさいそうなので、社内にあったマイク付きヘッドセットをつないだら ずいぶん改善されたそうだ。

今度自分用に買ってこよう。

で、「#`バーチャルネットプログラマ テオリア,(receive (_ e) (frexp 1e6) e)歳 - 開発スプリント」には、 Skypeを使った開発スプリントの注意点として「一番やってはいけないのは、ずーっと Skype を繋げっぱなしにしておくこと」とあるが、 今回われわれはあまり問題を感じなかった(私だけ?)。

これは我々が「喋りながらコーディングする不思議な人々」だったせいだろう(私だけ?)。 実際、議論してる最中にコミットしてたりするし。

今回の「ふりかえり」は

  • Skypeはネット回線品質に依存する(回線をケチるなと言うこと?)
  • ヘッドセットも用意しよう。ささだくんのところでは会議用スピーカ(マイク付き)を用意したそうだ
  • Skypeの会話は記録に残らない。この点はIRCやLingrの方がよい。
  • Wikiなどに議事録をまとめながら作業するとよい
  • ミーティングの最初でアジェンダを作る。各論に入らない

くらいだろうか。

_ [言語] p-nand-q.com : humor : obfuscating python

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()

_ [言語] Otaku, Cedric's weblog: Erlang: the verdict

Erlangを勉強してみたけど、個別の機能は理解できるが 全体として何がうれしいのかいまいちピンとこない、という話。 実は、私も似たような感じを受けている。

Erlangを見た時の反応はかなり人それぞれで

  • これはすばらしい。「次の言語」はこれだっ
  • 関数型言語ワケわかんね

という両極端の間のどこかに収まる。

私自身は、関数型言語に苦手意識があるという背景を置いといても

  • ある種のタスクで優れた性能を出しているのは認める
  • 副作用がないのは並列プログラミングに向いているようだ
  • が、Erlangって明示的なプロセス通信のせいでいまいち「宣言的」ではないような
  • 信頼性(five nines)とかも、わかったようなわからないような
  • しかも、実際に自分で使ってみると、エラーが致命的にわからない

という理由もあって、私自身がErlangにハマることはなさそう。

が、Erlangが「素敵な言語」であることには間違いないので、 もうちょっと勉強しておきたい気はする。

『Programming Erlang』でも読むか。

_ Rails on Git: How much hype fits in 9MB? | Sanity, Inc.

RailsのSubversionレポジトリの7500以上のコミットが Gitに格納すると9Mバイトに収まる、という話。

圧縮してると言うのは聞いてたけど、そこまでとは。

あー、でも手元のRubyのgitレポジトリは272Mあるなあ。 なにか明示的に圧縮しないといけないのかな?

まあ、RailsよりもRubyの方が歴史、コミット量とも圧倒的に多いのではあるけれど。

_ [Ruby] Life is beautiful: 教えながら学ぶRuby:イテレータに片思い

まさか、「Life is beautiful」でRubyがとりあげられることがあるとは。 バブルって恐ろしい(笑)

特にイテレータが気に入っていただいたようで、ありがたいことである。 で、書籍『オブジェクト指向スクリプト言語Ruby』の中でイテレータの扱いが いまいちであることにご不満のようである。

まあ、あれはもう8年も前の本で、イテレータ(というかブロック)に 関する知見がまださほど蓄積されていなかった、ということで勘弁していただきたい。 Rubyも(私も)発展途上なので。

っていうか、イテレータは1.9での「Enumerator標準添付」+「ブロックなしメソッドがEnumeratorを返す」新機能で、また新しい境地に突入するのではないかと思う。

2.0でLazyArrayが登場したら、もっと変化するよ、きっと。


«前の日記(2007年10月03日) 最新 次の日記(2007年10月05日)» 編集