2008年12月23日火曜日
遂にとらえたカワセミ!
昨日来の強い風もおさまり、20℃近かった気温も急激に下がった今日でしたが、日差しが快く
二重川沿いの散歩コースに行く。
鎌ヶ谷付近から川を下り、ゴルフ練習場を過ぎた地点で、小鳥の飛ぶ気配がする。
よもや、と思い目をこらすと、居ましたカワセミが!
カメラでは中々捉えられませんでした。
とにかく、連射モードに設定し撮りまくりました。
その一枚が、この写真です。
ピントが甘くボケていますが、もうこれがコンデジの限界です。
2008年12月20日土曜日
神崎川にカワセミ!
清水口調整池から神崎川を下る。河原子を通り過ぎ、市民プールを左に見て、木下街道方面に少し歩いた地点に、カワセミがいました。
場所は、「カワセミ発見場所」を参照してください。
カメラを向けようとした瞬間、下流方向に飛び去ってしまいました。
運が良ければ、再度見れるだろうと200m程歩くと居ました。
今度こそとカメラを向けるも、先程とは逆の上流方向に逃げられてしまいました。
羽が水色で、雀ほどの大きさでした。
多分カワセミに間違いないと思いますが、如何せん鳥には全く疎いので自信はありません。
場所は、「カワセミ発見場所」を参照してください。
カメラを向けようとした瞬間、下流方向に飛び去ってしまいました。
運が良ければ、再度見れるだろうと200m程歩くと居ました。
今度こそとカメラを向けるも、先程とは逆の上流方向に逃げられてしまいました。
羽が水色で、雀ほどの大きさでした。
多分カワセミに間違いないと思いますが、如何せん鳥には全く疎いので自信はありません。
2008年12月5日金曜日
Rubyのyield
「Rubyと云う言語をご存知ですか?」
「はい。少々の知識ならあります。」
「では、yieldについて説明してください。」
「・・・・・」
コールバック関数同様、分かった様な分からない様な代物。
(勿論、私だけのことかもしれませんが・・・)
そこで、白黒をつけようと、納得いくまで調べることに。
分かったことは、「主客を逆転して考えること」でした。
例えば、以下のコードを見てください。
(これはRuby本家からの引用です。)
bar {・・・} が主(呼ぶ側(メイン))で、def ~end が客(呼ばれる側(関数))ですが、
誤解を懼れずに、yieldを単なる関数名として書き換えてみると、理解し易くなります。
確認のため、もう1例(「Rubyプログラミング入門」から)。
この場合、 x=1, y=3 なので
結果は
x + yield(6,y) = 1 + yield(6,3) = 1 + 2 = 3
になります。
「はい。少々の知識ならあります。」
「では、yieldについて説明してください。」
「・・・・・」
コールバック関数同様、分かった様な分からない様な代物。
(勿論、私だけのことかもしれませんが・・・)
そこで、白黒をつけようと、納得いくまで調べることに。
分かったことは、「主客を逆転して考えること」でした。
例えば、以下のコードを見てください。
def bar
yield 10
end
bar {|v|
p v + 3
}
(これはRuby本家からの引用です。)
bar {・・・} が主(呼ぶ側(メイン))で、def ~end が客(呼ばれる側(関数))ですが、
誤解を懼れずに、yieldを単なる関数名として書き換えてみると、理解し易くなります。
def yield(v)どうでしょう。関数からメインをコールするように主客が逆転しています。
p v + 3 # メイン内のブロック
end
yield(10) # 関数内の yield 10
要するに、コールバック関数(メイン内のブロック)をコールするのがyieldです。
これでスッキリ。頭の中のモヤモヤが取り払われませんか。
唐突に、メインに出現する変数 v の意味も、漸く理解できたのではないでしょうか。これでスッキリ。頭の中のモヤモヤが取り払われませんか。
確認のため、もう1例(「Rubyプログラミング入門」から)。
def foo(x,y)
x + yield(6,y)
end
bar (1, 3){|a,b|
a / b
} #=> 3
この場合、 x=1, y=3 なので
def yield(a,b)と、書き換えることができます。
a / b
end
yield(6, 3) #=> 2
結果は
x + yield(6,y) = 1 + yield(6,3) = 1 + 2 = 3
になります。
2008年12月3日水曜日
Ajaxにおけるコールバック関数
コールバック関数、とりわけAjaxに関してのものが、分かったような分からないようなモヤモヤ状態が漸く解消しました。
Itproの記事、「第3回 基本的なAjaxアプリケーションを作成してみよう(中編)」にありました。一部を転載しておきます。
<------ (以下が引用部分) ------>
Itproの記事、「第3回 基本的なAjaxアプリケーションを作成してみよう(中編)」にありました。一部を転載しておきます。
<------ (以下が引用部分) ------>
コールバック関数は,HTTP通信の状態が変化したタイミングで内部的に呼び出される関数です。コールバック関数を利用することで,以下のような処理を定義することが可能になります。
・応答待ちの状態を画面上に表示する
・サーバーから正常な応答を受け取ったタイミングでページの内容を更新する
・サーバーからエラーを受け取った場合にエラー・メッセージを表示する
コールバック関数を定義するのは,onreadystatechangeプロパティの役割です。onreadystatechangeプロパティでは,
xmlReq.onreadystatechange = showResponse;
のように,別に定義した関数名(ここではshowResponse)を指定することもできますが,本サンプルではよりシンプルに匿名関数を利用しています。匿名関数とは,その名の通り名前のない関数のことで,以下のようにプロパティ値に直接格納することもできます。
xmlReq.onreadystatechange = function() {
...関数定義...
}
<------ (以上が引用部分) ------>
要は、onreadystatechangeプロパティに、関数名(関数のアドレス?)を設定することにより、その関数が
サーバからコールバックされるということ。
登録:
投稿 (Atom)
ただいま作業中
2022/04/13 MySTの翻訳環境作り サイドメニューをプログラムで変換可能にすること 作業の中心場所 – jupyter notebook : g:\jupyter\python pythonをwebでも可能に – g:\webapp\Doc-tools ...
-
Microsoftは認めないだろうが、こんなのはVBAのバグじゃないのか? Sub test() a= 35 * 3600 End Sub このたった3行を実行すると「オーバーフローしました。」との実行時エラーになる。 aのデータ型を指定しないためかと、「Long」や「Vari...
-
前のパソコンがクラッシュしたため復旧作業中。 復旧といっても、ほとんどが構築し直し。 今日は、プリンタ接続が完了したので、winampのインストール後 曲を聴こうとしたら、apeが再生できないことが判明。 インターネット上でいろいろ調査したが、方法はこれ以外なさそうなの...
-
利根川一帯の奇妙な事柄 1.利根川の対岸に張り出した野田市 大きな地図で見る 近くに橋もなく(最寄の橋は芽吹大橋)、利根川沿いに対岸に行くには最短でも5km以上はある。 かてて加えて地区の西側に飯沼川が浸入を阻むように南北に流れており、適当な橋も見当たらない(地図上は)ので、迂回...