Hatena::ブログ(Diary)

お腹周りの脂肪がやばい

2012-01-27

CPANでモジュールをインストール

| 02:38

ちょっとばかしPerlを使わなくちゃいけなくなったのでCPANを使おうとしたらはまったので備忘録。環境は Ubuntu 10.4 で perl5.10.1。

sudo perl -MCPAN -e shell

CPANシェルを立ち上げて

install DateTime

とかすると入ってくれるはずが、

Could not read '/Users/hoge/.cpan/build/DateTime-0.72-dCvvhy/META.yml'. Falling back to other methods to determine prerequisites

とかエラーが出て入らない。

Warning で、YAMLがないよ、とか言われるんだけど、(usually harmless)とか書いてあるし、ネットで調べても出力がでないだけ、とか書いてあったので無視・・・したのが間違いの元だった。

結局YAMLが入ってないとMETA.ymlがパースできないらしい。

apt で以下の二つを入れて解決。

libperse-cpan-meta-perlは入れなくても動くのかもしれない。先に入れたからわからん。


[追記]

Macではhomebrewを使っているのだが、homebrewにはlibyaml-perlがなかった。

どうしたもんかとまた調べていたら、普通にCPANYAMLを入れれば良かっただけだった。。おそらくUbuntuでもそうなんだろう。

いや、YAMLがなくてもCPANYAMLインストールできるんですね。

2011-12-25

Firefoxの拡張を開発しようとするお話5

| 20:44

だいぶ更新していなかったけど、地道に作っていました。

ということでいきなりですがβ版をリリース。

https://addons.mozilla.jp/firefox/search?q=read+hatebu+later


開発はここで。

https://github.com/hatz48/Read-Hatebu-Later


使い方は一応アドオンページに書いてあるけど、

ロケーションバーのボタンで登録/削除ができるのと、

リンクを右クリックして出てくるコンテキストメニューで追加が可能


今のところソースコードも汚く「とりあえず動く」レベル。

問題としては


使ってみて意見をもらえるとうれしいのだけれど、

このブログ見てる人いないからな。。。

2011-10-10

筑波山に

| 17:04

去年の夏に富士山に登ったんだけど、そのとき買った装備を寝かせておくのはもったいないので登山に行くことに。

装備の話抜きにしても登山はわりと好き。


ということでこないだ行った筑波山。低い山なので登山というよりはハイキングなんだけど、頂上からの景色はなかなか。

f:id:hatsu48:20111004125610j:image

二つある山頂の片方からとったもの。

f:id:hatsu48:20111004111957j:image

二つの山頂の間のちょっと開けたとこ。


なにより天気が良くて気持ちよかった(*´ω`*)今月また手頃な山に行く予定ー。

2011-09-25

非標準プロパティ __noSuchMethod__ (´・ω・`) またはソースコードを追いにくくする方法

| 23:59

Java で null に対してメソッド呼び出しをするとどうなるでしょう?

はい、ぬるぽ→ガッ となりますね(´・ω・`)

Integer a = null;
a.toString();     // NullPointerException !!

JavaScriptでも、undefined(というか関数でないオブジェクトすべて)に対して関数呼び出しを行うと TypeError がでますね(´・ω・`)

var a = {};
a.hoge();   // TypeError !!

となるわけです。


以下のコードはどうなるでしょう??(´・ω・`)

dump(a.a); // undefined が出力される.
a.a();
dump('hoge!'); // 出力される??

当然 TypeError が出て以降の処理は終わると思うじゃないですか(´・ω・`)

それでは魔法のコードを足します。

a.__noSuchMethod__ = function(id,args) { dump('fuga'); };
dump(a.a);
a.a();
dump('hoge');

これを実行すると、undefindが出力された後、fuga、そしてhogeと出力されます(´・ω・`)

つまり定義されていないメソッドが呼び出された場合、__noSuchMethod__に定義された関数が呼ばれるそうです。詳細は↓

https://developer.mozilla.org/ja/Core_JavaScript_1.5_Reference/Global_Objects/Object/noSuchMethod


幽霊メソッドが動いてるのかと思いましたヽ(`Д´)ノウワァァァン