2005-07-20 (Wed)
_ Rubyist のための他言語探訪 【第 1 回】 Python
次回は、Ruby に影響を与えた言語の一つ、CLU を紹介する予定です。 お楽しみに!
[Rubyist Magazine - Rubyist のための他言語探訪 【第 1 回】 Pythonより引用]
おお。
_ ECMAScript 4 Namespaces
今さらながらECMAScript 4のnamespaceの仕様を勉強。 ちょっとややこしいのが、x.nのようなプロパティ参照によって、どのように プロパティ(JavaScriptだとメソッドもプロパティ)が検索されるか。
まず、すべてのプロパティはq::nCのように修飾された名前を持つ。 ここで、qはnamespace、nは識別子、Cはクラスである。
次に、xを評価するとインスンスになるような式、Σをプロパティ参照を含むすべてのスコープの集合、QをΣのスコープでuseされているすべてのnamespaceの集合とする。
x.nのようにnamespaceを明示せずにプロパティを参照した場合、次のような探索が行われる。
- Aを、xが少なくとも一つのq::nA(qはQの任意の要素)という プロパティを持つ、最も派生していない(Objectに近い)クラスとする。 もし、そのようなプロパティがなければエラー。
- Q'を、Qに属し、xがq::nAというプロパティを持つすべてのnamespaceの集合とする。
- Pを、xのq::n(qはQ'の要素)というプロパティのうち最も派生的なすべての プロパティの集合とする。
- もし、Pがただ一つの要素pを持つ、あるいはPのすべての要素が一つのプロパティp の別名である場合、pを選択する。それ以外の場合はエラー。
興味深いのは、まず最もObjectに近いクラスに定義されたプロパティを探して、 namespaceの候補を絞りこむ点。 同じ識別子を持つプロパティでも、起源となるクラスによって区別することが できるということか。
あと、namespaceに関しては、
# String#lengthの定義
class String {
function length() {
...
}
}
# jcodeというnamespaceの定義
namespace jcode
# jcodeにString#lengthを定義
class String {
jcode function length() {
...
}
}
# MyString#lengthを定義
class MyString {
function length() {
...
}
}
# jcodeの使用を宣言
use jcode
s = new MyString("あいうえお")
len = s.length()
とした時に、s.length()が呼び出すのが、jcodeのString#lengthなのか、 MyString#lengthなのか、というのが疑問だった。 ECMAScriptでは、デフォルトのnamespaceはpublicというnamespaceで、 明示的にuseしなくても利用できるらしい。 ということは、MyString#lengthが呼び出されるのだろうか。
2011-07-20 (Wed)
_ 3.0.2にアップデート
ずっとアップデートしてなかったんだけど、ようやく3.0.2にアップデートした。
Gemfileやconfig.ru、Capfileが同梱されていて驚いた。たださんみたいなオールドタイプ(失礼)がBundlerとかRackとかCapistrano使っている姿はイメージできないんですけど。テストもRSpecで書いてあるし。
2019-07-20 (Sat)
_ NESTアルミ削り出しペダルセット
250DUKEのペダルは内側よりになっていて、ぼーっとしているとたまに踏み外したりするのでNESTのペダルセットに交換してみた。
オレンジやブラックも選べたけど、無難に純正と同じシルバーにした。
シフトロッドもセットで売ってたけど、前にシフトロッドエンドを交換しているのでそちらは購入せず。
雨で乗れないのでペダル交換の効果はまだわからない。
_ ソフト99 赤サビ転換防錆剤
サイドスタンドの付け根あたりの錆が気になってきたので、サンドペーパーで軽く磨いてソフト99の赤サビ転換防錆剤を塗ってみた。赤錆を黒い防錆塗膜に転換してくれるらしい。
目立つところだと再度上から塗装した方がよさそうだけど、サイドスタンドだから錆が進行しなければそのままでいいかなと思っている。



_ ただただし [#来週には3.1が出ます テストの充実はhsbtがメインなのでw でもちゃんとcommit前にtest流したりはし..]
_ shugo [きっとhsbtさんががんばってるんだろうなと思いました:) commit前にtest流すのは偉いですね。Rubyでは..]
_ naruse [当然みなさん流していると思っていますが…]
_ shugo [そうですよね、当り前ですよね、ははは…]