2008-01-01から1年間の記事一覧

石見銀山に行ってきました!

せっかくの世界遺産ということで石見銀山に行ってきました。とても自然の美しい所で楽しかったのです!でも、うーんどうなんだろう、と思うところもあったのでまとめておきます。 良かった点 町並みが美しいので、天気の良い日にぼーっと眺めると最高だと思…

KM で遊ぼう!

KM

さて今日も眠れないので、KM について書いておこうと思います。KM ってなに?と思う人がほとんどのことかと思われますが、これは F-Logic の仲間みたいなものです。つまり知識をあーだこーだして遊ぶための枠組みです。"The Knowledge Machine"という格好の…

「Rubyの普及を目指した自治体基幹業務システム構築」成果報告書をざっと読みました

以下の記事を読んで興味を持ったので「Rubyの普及を目指した自治体基幹業務システム構築」成果報告書をざっと読みました。この報告書見て、一体何人がRoRを使おうと思うか興味津々なんです。 - ぐらめぬ・ぜぷつぇんのはてダ(2007 to 2011)報告書は以下から…

1.9 trunk の proc{}[1,] 問題

先日は各種 1.9 対応用パッチを投げましたが、Ramazeさんへのパッチは追記したようにどうにもマズいものでした。各種1.9対応パッチ投げますよ! - ¬¬日常日記これを受けて manveru さんが ruby-core に投げたメールは次のものです。[ruby-core:18560] Re: [A…

私にも出来るPPA

なにか良く分かっていないのですが PPA って便利そうですね。だから私もやってみることにしました。 君にもできる PPA - アカウントを取ろう - May the Source be with you 君にもできる PPA - アクティベーションしよう - May the Source be with you 君に…

Rubinius は出来る子!という話

以下の記事を読みました。lambdaの動作 - はてなかよっ!それはさすがにどうだろう、と思うわけですが、でも我々には Rubinius という素晴らしい武器があるではないですか! class Foo Map = { 'key1' => lambda { |bar| puts bar p MethodContext.current.s…

OSC島根2008雑感

スタッフの皆様大変お疲れ様でした。ありがとうございました。私はダラダラ話を聞くだけでお気楽に生きててごめんなさい!そんなわけでOSC島根2008の感想をメモしておきます。 12日 最初の対談は遅刻したから聴いてません! 教育:誰に教えるかで立場も目的…

各種1.9対応パッチ投げますよ!

ruby1.9 に対応してる gem は少な過ぎると思うわけです。いや、だって trust/untrust 使いたいんだから(せっかく作ってもらったのに使わなかったらもったいない!)、1.9 じゃなきゃダメなの。そういうわけだからあちこちパッチ投げますよ! Ramaze さん Ra…

Rubinius のコミット権をもらっちゃうよ!な話

先日 Rubinius にパッチを送りました。Rubinius に Module#include のパッチ送ってみました - ¬¬日常日記パッチは無事に採用されたようです、ありがとうございました。なんか色々と勘違いしているような気がして心配していたのですが、取り込まれて良かった…

OSC2008島根に行きます!宣言

行きます!というかあるのをすっかり忘れてました!!オープンソースカンファレンス2008 Shimane - いらっしゃいっ忘れてたくらいだから何がなんだか良く分かってないけどとりあえず眺めてきます。一番興味があるのはこれです。オープンソースカンファレンス…

for in else end 的な話

以下の記事を読みました。2008-09-09 for in else end私は Ruby の for 構文は全く使いません。なので for in else end みたいなのが増えてもきっと使わないと思います。だけど記事にあるような場面ってしばしばありますよね。というわけで代替策を考えてみ…

Rubinius の変なところ:モジュールまわりをいじっていて気付いたところ篇

keita% ./shotgun/rubinius -e "module ::A; end" An exception has occurred: Missing or uninitialized constant: A (NameError) Backtrace: Module(Class)#const_missing at kernel/core/module.rb:713 Object#__script__ {} at (eval):1 Kernel(Module)#…

Rubinius に Module#include のパッチ送ってみました

前に Rubinius の Module#inlcude がおかしいから直すって書いたきり、直してないのを思い出しました。Rubinius で循環継承 - ¬¬日常日記有言実行ということでとりあえずパッチを作りました(パッチは LightHouse のトラッカーに送ればいいみたいですね)。こ…

Ruby で Notation3 パーサな ruby-n3 を作りました

Notation3 こと n3 の Ruby で書かれたパーサ ruby-n3 を作りました。strscan と racc でみやびに実装しました。http://github.com/keita/ruby-n3/tree/master(野心をいだいたので改名しました)n3 は、RDF とかで知識書き下したいなぁー、でも XML なんか…

Ruby のコマンドラインオプションを復習しました!

ダオカオス☆技術局こういうのはワンライナーで十分だよね。と思いつつも、Perl の時は多少なりともワンライナーで書いていたのに Ruby では全然書いてなくて、それでもってオプション指定しようとして戸惑いました。これはマズい!と思ったので、慌てて復習…

無音の『シーン』は「マンガ表現」?

以下の記事を読みました。http://sankei.jp.msn.com/life/education/080826/edc0808260809004-n1.htm「無自覚の刷り込み」って煽り過ぎではないでしょうか。という事はまず置いておくとして、次の部分はとても気になりました。 吉村さんは「何も音がしない状…

Selfish で BankAccount

Selfish で BankAccount を書いてみました。BankAccountただしまた setter の記法を変更してしまいました。というのも、BankAccount を書いていて「これはマズい!」と思ったからです。どこがマズいのかというと、まず getter と setter の区別が表面的につ…

ブロックの self を差し替えたい、という話

Selfish では Self を真似るため(本当の目的は delegation を行なうため)にメソッドをオブジェクトとして持つ必要があります。Self のメソッドオブジェクトはコードにおける暗黙の self の差し替えが可能です。でもなぜそうした目的のためにわざわざ Selfi…

Selfish にメソッドオブジェクトを追加しました

Selfish のスロットの値割り当て方法を変更 - ¬¬日常日記昨日は id:miura1729 さんのおかげで Selfish がぐっと Self っぽくなったので、これに刺激を受けてさらにメソッドオブジェクトをきちんと実装してみました。そんなわけでメソッドの書き方も変更にな…

Selfish のスロットの値割り当て方法を変更

「 Selfish: Ruby で Self 的プロトタイプベース!」の変更案 - miura1729の日記id:miura1729 さんの変更案がとっても素敵なので、こちらを採用させて頂くことにしました。誠にありがとうございました!そうですよね、代入の"="なんて邪悪!この変更のおかげ…

局所変数無き荒野を生きる

古の超最先端言語である Self の際立つ特徴は二つにまとめられます。 プロトタイプベース 局所変数がない Self はしばしばプロトタイプベースのオブジェクト指向計算機言語の代表格に挙げられますが、そのもう一つの重要な側面である局所変数がないという特…

要素代入演算子式に関する落とし穴

Ruby の要素代入演算子(演算子でいいのかな?)は定義が可能です。 class A def x=(a) return 1 end end 上の定義は A.new.x = y の形で y の値にかかわらず常に 1 を返すように意図したつもりですが、実際には上手くいきません。 A.new.x = 5 #=> 5 A.new.x …

Selfish: Ruby で Self 的プロトタイプベース!

Ruby に Self 的なプロトタイプベースオブジェクト環境を導入する Selfish というものを作りました。http://github.com/keita/selfish/tree/masterこれは、Self に興味があるけど試せない人のために、Ruby でそれっぽい感じに Self の雰囲気を再現しようとい…

脆弱性って何かを知りませんでした!

以前セーフレベル4関係で送ったパッチが脆弱性ということで報告されててまぁびっくり。Rubyに複数の脆弱性なぜびっくりかと言うと、私はこれらを脆弱性だと認識していなかったからです(特に untrace_var のは)。「セキュリティーホール」とかの言葉とごっ…

とっても優しい Self の書き方

実際に書かないと分からないので色々やってみました。統語規則は大体のところ Smalltalk っぽいので(多分統語だけじゃなくって world のあり方とかその他の大部分も相当似てるような感じです、なんというかプロトタイプベース版 Smalltalk みたいな?)、先…

__proto__ で循環継承

Javascript 実装の一部には __proto__ というのがあるのですね。http://developer.mozilla.org/en/docs/Differential_inheritance_in_JavaScriptこれはまさに delegation における parent です。で、なんでこれが非標準なのでしょうか。プロトタイプベース言…

Self 処理系を色々試してみました

http://research.sun.com/self/Self やるぞー!と鼻息をぷんぷんさせていたところ、純正 Self はとってもプラットフォームを選ぶことが判明しました。動くのは、 MacOSX Solaris(SPARC が載ってるのだけ?ソースからコンパイルすれば大丈夫なのかな) のみと…

delegation って何?

DelegateClass の謎 - ¬¬日常日記さて、このように Ruby の DelegateClass は良く分からない事でいっぱいです。しかし そもそも「delegation って何?」ということを理解していないと、MLで聞くことも出来ませんので delegation について調べてみることにし…

DelegateClass の謎

DelegateClass に起因するスペックテスト問題 - ¬¬日常日記というわけで、さて本論の DelegateClass の謎について書いてみたいと思います。まず前提として、私は delegation というものが何か今はまだよく分かっていません。だから、謎は謎のままです。今後…

DelegateClass に起因するスペックテスト問題

私の大好きな Bacon さん(一応 RSpec クローンですけど、記法が色々違うので注意して下さい)で DelegateClass を使って定義したクラスのオブジェクトの振舞いを定めていて気付きました。RSpec についても同様の状況ですので、DelegateClass を使う場合には…