2010-10-01から1ヶ月間の記事一覧

Marc Feeley教授によるGambit Schemeの実装

Gambit Schemeの作者Marc Feeley教授が同言語の実装に関するプレゼンを出した。 http://www.iro.umontreal.ca/~gambit/Gambit-inside-out.pdf (23mのPDFファイル)GambitはSchemeからC言語へのコンパイラで、ポータブルでなネィティブなプログラムが組める。 …

Paul Grahamに聞く: Lisp対Python (2010年版)

上記の質問がハッカーニュースに上った: http://news.ycombinator.com/item?id=1803351 さすがHNだけあって、PGはもとよりDaniel WeinrebやPeter Norvigを含む豪華絢爛のキャストで議論が行われた。 長いけどLispやダイナミック言語一般に興味のある方には…

FireSheep: ワンクリックで他人になりすませるFireFoxプラグイン

凄いfirefoxプラグインが出た: http://codebutler.com/firesheep使い方 大勢の人が使っているwifiに接続する 「キャプチャ開始」ボタンを押す 待つ このプラグインの対象となっているサイトにログインしたユーザがいるとそのユーザのプロフィール画像と名前…

Force-TLS: FireSheep(が明るみに出す脆弱性)からプライバシーを守るFFエクステンション

FireSheepというFirefoxエクステンションが明らかにするように、ログイン後にもHTTPSを使わないサイトのアカウントはセッションクッキーを盗み見ることによって簡単にハイジャックできてしまう。この記事によると、Force-TLSというFirefoxエクステンションが…

Googleの名刺

これをもらった人はLarryに働きにこないかと誘われたが、「サーチエンジンはもう必要ないでしょ」と言って断った。 よく見ると安っぽいプリンターで刷ってあるのがわかる。元ネタ: http://www.reddit.com/r/AskReddit/comments/dv0hk/oops_whats_the_most_e…

宣言型model-viewクライアントフレームワーク「knockoutjs」を試す

knockoutjs (http://knockoutjs.com/)というクライアントフレームワークを試してみた。モデルとUIの依存関係を宣言することにより、自動的に更新してくれるというものだ。売り文句をまとめると: OSS, 他フレームワークとの利用可能、軽い、ブラウザサポート…

JavascriptでHereDoc(複数行の文字列リテラル)

JavascriptでHereDocのやりかたがわかった。 var lines=().toString();mookから教わった: http://mook.wordpress.com/2005/10/30/multi-line-strings-in-javascript/ 言語に組込まれているシンタクスではなくて、XML拡張機能を使っているようだ。Firefox3.x…

Python WTF2: スコープ

Pythonのスコーピングルールでよくつまづく。これはwtfよいうよりGotchaだな… list comprehension内の変数が、外のを上書き item="hoge" foos=[ "foo"+str(item) for item in range(5) ] print item 4for item in items: でも同じだと思う。Python3だとこう…

Python WTF: 同じモジュールが二つ?

ふーをインポート import foo違うパスでインポート import sys,os sys.path.insert(0, '..') import adir.fooここで「同じモジュールを2回インポートするなよ!」と叱られてほしい。モジュールスコープの変数は違ったインスタンス。これにケツを噛まれた。 p…

Goslingがオラクルを辞めた理由

Gosling氏のOracle対Google訴訟に関する見解は以前紹介した。今度はOracleを辞めた理由。http://www.eweek.com/index2.php?option=content&task=view&id=63554&pop=1&hide_ads=1&page=0&hide_js=1&catid=13以下、eweek誌とのインタビューからつまみ訳。 原文…

lexical closureの続き: 「ダブルラムダ」でpythonにloop変数を覚えさせる。

shota243さんのダブルlambda コメントから: 「ループの『変数』を覚えているから lambda の外でその変数の値が変われば変わった値を取ってきます。lambdaを作成されたときの値を覚えておくためにはそのための変数をそれぞれ作成してその変数を覚えさせる必…

perlによるaccumulator

Matz氏は「Perlのように変数をcloseすると、例えばPaul Grahamのアキュミュレータ例題が実現できないような。」とつぶやきました。 http://twitter.com/yukihiro_matz/status/26687943572 でも実はPGのaccumulatorをaccumulateするページにはperlの実例があ…

スクリプト言語間における「lexical closure」の違い、それともプログラムの違い?

Matzさんに「closureの件、結論としては元記事のPerl, Python(+JavaScript), Schemeプログラムがそれぞれまったく別のことをしていただけで、closureの仕様はすべて同じであるということ。」と指摘されたので、もう一度整理してみます。 http://twitter.com/…

スクリプト言語間における「lexical closure」の違い

update: なんとMatz様から直々の指摘を受けてしまった: http://twitter.com/yukihiro_matz/status/26685527109 実はこのポストの後、ベンチプレスを1セットやって一息ついていいたところ、schemeの例が間違っていることに気付いた。確かにループのボディー…

pythonによる小さな玩具VM

現実逃避したかったので、tinyvm.cなるプログラム(http://pastebin.com/f22e2c91)をpythonに移植した。 class Ins(object): def __init__(self, op, *arg): self.op, self.arg = op, arg def __repr__(self): return "%s(%s)" % (self.op.__name__, ','.join…