2008年 3月 の投稿一覧

クローラー

お勉強用フィードリーダのためにレンタルサーバーの上でcronを設定して動かしてるフィードクローラの巡回時間が段々長くなってきてレンタルサーバーの規定違反になりつつある...。
なので、フィードの更新間隔に応じて巡回頻度を変える様にした。
ちなみに現在登録しているフィードの更新頻度をグラフにすると以下の様な感じになった。
f:id:hideack:20080320181306j:image
更新頻度を数えるプログラムを書いて、フィード毎に更新頻度に応じて巡回頻度を5段階に分けて設定してあげる様にした。
一応、規定違反回避。
世間一般のフィードとかアンテナ用のクローラーってどうやって巡回してるのだろうと、ふと思う。
純朴に回ってる訳じゃないんだろうな。何か効率いい回り方とかやっているに違いない。。。

あぁ、今住んでる家が夏、普通の室温で維持されるなら家で運用するのだけどなぁ。
あと、keynoteでグラフが意外と簡単にかけることに感動した。

開花宣言

本日、東京で桜の開花宣言
近所の桜もあと一息な雰囲気。枝ではなくて幹から直接顔を出したつぼみがあった。
f:id:hideack:20080323125934j:image
幹のど真ん中に膨らむつぼみ。もう一息頑張って花を咲かせてほしい。

オープンソーステクノロジー勉強会

GREE Labs.でされている勉強会が、今度の火曜日であった。
今週の頭に申し込んだのだが、ぎりぎりセーフだったので参加させていただく予定。

もっとも不安なのは会場まで無事たどりつけるかという点だったりする。(そこかい!)
最近わかってきたのは、自分が相当方向音痴だということ。
田舎にいるときはそんな風に思ったこと無かったのだけど、それは単に道の選択肢が少ないからという理由だったらしい。

goo地図が結構すごい件

ニュースでも取り上げられていたのだが、goo地図(http://map.goo.ne.jp/ )が結構すごい。
昭和38年頃の東京23区内の航空写真を見ることができる。例えば吉祥寺駅周辺はこんな感じ。
f:id:hideack:20080320123833p:image
駅の位置とか大きな道は今と変わらないのだけど、今、駅の前にあるバスのためのロータリーとかがなかったのだなぁ。とかよくわかる。
現在の地図との重ね合わせ表示もできて今と昔との比較もすぐにできる。
自分の住んでいる近辺から駅までの道とかも地図中で追ってみたりもしたのだけど、なかなか興味深い。
来月には昭和22年版も公開されるということでまた見てみるつもり。

蛇足だが、こういうのが日本全国の地図と5年くらいのスパンで任意に選べたらなかなか楽しいことになりそうだとも思った。
自分史ではないけど、そういったものが時間+場所をブラウザの上で移動しながら眺められるコンテンツとか作れそう。
体は動かないけど、見た目の上ではタイムマシン状態。

20年前、新卒でこの土地に移ってその後に異動があってこっちにいって…。

とか、

戦争のときにここから出兵して、この街に移って、ここで終戦を迎えて…。

とか。
動画とか音声とかで体験談等々を残そうという話は聞くけど、そこにこういった情報等を合わせて残すと相当貴重な情報な気がする。

円高の影響

某氏は大丈夫であろうか。
ドルに対して円高なのであって、他は特に影響無いのかな。

パスタ

帰宅後、スパゲッティを作って食べる。
味付けオイルを買っていたので、ちゃちゃっと野菜とベーコン入れて混ぜて炒めてゆでたパスタ投入して終了。

JavaScriptでオーバーロード

うーん。修行不足を実感。
prototype.jsを使ってJavaScriptで下の様な感じのプログラムを書いてしまった。

var Car = Class.create();
Car.prototype = {
initialize : function(){
this.oil = 50;
},
chargeOil : function(){
this.oil += 50;
},
chargeOil : function(order){
this.oil += order;
},
showStatus : function(){
alert("Oil=" + this.oil);
}
};
window.onload = function() {
mycar = new Car();
mycar.chargeOil();
mycar.showStatus();
}

Java等々の言い方で言うとchageOilメソッドをオーバーロードの乗りで実装してしまったという訳。
これを実行したとき、頭では"100"と表示してほしかったところなのだけど、実行すると次の様に表示される。
f:id:hideack:20080317230534p:image
希望する動きにならない。次に次の様に書いてみる。

var Car = Class.create();
Car.prototype = {
initialize : function(){
this.oil = 50;
},
chargeOil : function(order){
if(arguments.length == 0){
this.oil += 50;
}
else if(arguments.length == 1){
this.oil += order;
}
},
showStatus : function(){
alert("Oil=" + this.oil);
}
};
window.onload = function() {
mycar = new Car();
mycar.chargeOil();
mycar.showStatus();
}

こうすると実行結果は次の様になる。
f:id:hideack:20080317230457p:image
JavaScriptでは...

  • 関数はオブジェクト。メソッドは関数のオブジェクトが納められたもの。
    • なので先の前者の例では、引数で1つ与えられている方が引数無しの定義を上書きした(ってことでいいのかな...。)
    • そのため引数無しのメソッドを実行した場合、"50 + Nan = Nan"になった(で、いいんかいな。)
  • JavaScriptで関数が呼ばれた場合、引数がargumentsオブジェクトに自動的に格納される。
    • argumentsオブジェクトはlength, calleeプロパティを持つ。
      • lengthプロパティを使うことで引数別の切り分けができる。

髪を切る

散髪に行ってきた。
えらくすっきり、さっぱりしてしまった。