3つで¥198、6つだと¥398
某スーパーマーケットでパックごはんを買いました。
3個入りは¥198、6個入りは¥398。・・・3個入りパックを2つ買うと¥396。
普通、「たくさん入ったパッケージ」の方が安いんだけど、この店ではそうではないらしい。
もちろん、3個入りパッケージを2個買いました。この方が¥2安い。たったの2円。でも、2円。
なに考えてるんだろうね、この店・・・と思ってしまいました。えっ、何も考えていないって?
某スーパーマーケットでパックごはんを買いました。
3個入りは¥198、6個入りは¥398。・・・3個入りパックを2つ買うと¥396。
普通、「たくさん入ったパッケージ」の方が安いんだけど、この店ではそうではないらしい。
もちろん、3個入りパッケージを2個買いました。この方が¥2安い。たったの2円。でも、2円。
なに考えてるんだろうね、この店・・・と思ってしまいました。えっ、何も考えていないって?
一般的には、タイムアウトするまでセッションを維持し、何らかの要求があったら、タイムアウトのためのタイマーをリセットする、といった方法を使います。サーバー側の都合ではタイムアウトまでの時間は短くしたい一方、ユーザー側の都合では「十分に」長くしたい。
Web ベースアプリの場合、ユーザーはブラウザを使ってアクセスするわけですから、ログアウトせずにタブ、ブラウザを閉じたり、他のサイトへ移動したりできます。問題なのは、そのような操作が行われた事をサーバーが知る方法がない事です。結果、決して使われない「ゴミ・セッション」がタイムアウトまで残ってしまいます。これ、何とかしたい。
ブラウザから一定時間間隔で「使っています」シグナルをサーバーに送信し、それを受け取ったサーバーは「このセッションは維持すべき」と判断すればいいのです。一定時間以上「使っています」シグナルが受信できなかった場合、このセッションは不要と判断できます。
このような方法を「ハートビート heartbeat」とか「キープアライブ keepalive」などと言います。
1分ごとに「使っています」をサーバーに送信するとすれば、サーバー側のタイムアウトは1分強まで短くできます。ネットワークの遅延とか、ブラウザ側の負荷とかを考えても数分まで短縮できるでしょう。もっとも、ハートビートの間隔をあまり短くすると、サーバーはその処理に忙殺されてしまうので、あまり短くはできません。
さて、どのように実装するか。必要条件は、ページ本体は更新しないことです。
html に <iframe> というのがあります。ブラウザの画面内の画像が一定時間ごとに更新されるなどに使われているのが iframe です。本体ページは更新されず、iframe 内だけが更新されます。
setInterval() を用いて一定時間ごとに iframe を再ロードすればOKです。iframe 内の表示を更新するならば、「次の画像を下さい」とか要求するのですが、ここでは keepalive のためのサーブレットなどを呼び出します。
・タイマーの起動は <body onLoad> で実行するメソッドで行います。
<body onload="startTimer()">
function startTimer(){
setInterval(keepAlive, TIME); // TIME は heartbeat 送信間隔
}
・iframe 用の <form> を用意します。
<form name="xxx"> ... </form> // これはメインの form
<form name="KeepAlive" target="HeartBeatFrame">
// これがハートビート用の form。target に iframe の名前を指定します。
<input type="hidden" name="HeartBeatInfo" value=....>
// サーバーにパラメータを渡すならば、こんな感じ。セキュリティーのために暗号化しましょう
</form>
・iframe を用意します。
<iframe name="HeartBeatFrame" height="0" width="0">
// 表示する必要はないので、高さ、幅は0にします。表示してもいいけど・・・
・ハートビート送出
function keepAlive(){
document.KeepAlive.action="KeepAlive..."; // KeepAlive を行うサーブレットなどの URI
document.KeepAlive.submit(); // form KeepAlive の target に iframe の名前がセットされているので、iframe だけが更新されます。
}
これだけだと永遠ハートビートが送出されるので、最大○回までとかの制限が必要でしょう。
まだ試していないけど、最大回数近くになったら「まもなくタイムアウトします」などと表示する事もできそうですね。もっとも、ユーザーが放置しているからタイムアウト間近になったわけで、表示しても誰も見ていない可能性が高そうですが・・
ずいぶん前から気になっていた言葉に「よろしかったですか」があります。
私(注文している・・たとえば焼肉屋で)「カルビとタン塩とレバーと野菜焼きとビール」
店員「カルビとタン塩とレバーと野菜焼きと・・・それからビールでよろしかったですね。」
これならばいいんだけど、
ハンバーガー屋さんてフライドチキンを注文(ソースは指定していない)。
「ソースはバーベキューソースでよろしかったですか」これは変。。というか、誤り。
「よろしかったですか」は、確認する場合の言い回しで、まだ「どのソースにするか」を伝えていない場合に使うのは変です。こんなの、いっぱいあって、
コンビニでお弁当を買いました。
店員「お箸は1膳でよろしかったですね」・・・お箸、いくつとか伝えていないんだけど・・・
それから気になるのは「レシートのお返しです」
私「お返し・・・レシートなんぞ預けてないぞ」
預かっていない物をを返すって・・・変ですよね。
そう言えば、客の側にもヘンなのがいて、
店員「いらしゃいませ、ご注文をお伺いいたします」
客「・・・お持ち帰りで・・・」
自分の行動に「お」を付けてはいけないよね。
探せば他ににもありそうだけど、今日はこんなところかな
舞鶴市長が土俵上で倒れて・・の話題、少し静かになりましたね。
今日の話題は「相撲」とヘンデル。
ヘンデル(ゲオルグ・フリードリヒ・ヘンデル)はドイツ出身の作曲家、1685年2月23日 - 1759年4月14日
千秋楽の取組みが終わると優勝力士の表彰式がありますね。表彰式で優勝力士が何かを受け取る時の音楽がヘンデル作曲、オラトリオ「ユダス・マカベウス」の第58曲「見よ勇者は帰る」なんです。相撲は「伝統」を重視するんじゃなかたの。ヘンデルは17世紀の人だから、十分「伝統的」かもしれないけど、長い相撲の歴史で「勝者をたたえる音楽」くらいはあったんじゃないの?
雅楽風とか神楽風とか、長唄、小唄、地唄とか、なかったのかねぇ。
何でヘンデルになったんだろう。
瀬戸大橋開通30年記念イベントにブルーインパルスが来るというので、行ってきました。どこで見ようか・・・イベント会場とか、旧下津井電鉄、琴海駅跡付近とか何案かあったのですが、結局、鷲羽山山頂付近にしました。
法界院(津山線)8:30の列車で出発。児島着9:08.展示飛行は10:55からなので、もっと遅く出発しても間に合うと思いましたが、児島からは歩くつもりだったので、そして、1つ後の列車では間に合いそうにないので、この列車にしました。
児島駅から歩くって・・・シャトルバスがあるだろう・・・どうせバス乗り場は長い列だろうし・・・行ってみるとたいした事なかった。早めの時間だったからかな・・・、渋滞がひどくて「歩くよりは早い」程度だろうし・・・確かに、かなりの渋滞でした。でも、シャトルバスは専用?の車線を走るようで、渋滞にはまったりはしていなかったようです。
これだったら、1つ後の列車でもよかったかな。
さて、鷲羽山山頂に着いたのは10:15ごろ。展示飛行は10:55からなので、40分待ち。ぼんやり待っていました。近くにいた人が「無線機」を持っていて、どこと交信しているのか単に傍受しているのか分かりませんが、いろいろな情報を発信してくれました。なんでも、飛行機の出発が15分遅れるとか。更に15分待ちました。
「来た!」という声が聞こえたので、海の上空を見回すと、ケシつぶのような黒い点々がかなりの速度で移動しているのが見えました。何秒か後スモークを出してくれたので、はっきり確認できました。近づくと6機編隊でした。右から左へ(南に向かって見ているので、西から東へ)普通に飛んで視界から消えました。今度は左から右へ。瀬戸大橋より西で編隊がばらけて、何か「技」をやるのかな・・と思っていたら、バラバラのまま東へ飛んでいって、それでおしまい。
なんでも、機体にトラブルが起こったので中止だそうです。(上述の無線機を持った人の情報)
電車代よこせなどと言うつもりはありませんが、整備くらいちゃんとやれよ。展示飛行なので観客ががっかりするだけだけど、お前ら、空自だろ。実戦だったらどうするのよ。などとブツブツ言いながら帰りました。やれやれ。
ブルーインパルスは小松基地(石川県、金沢の西)から飛んで来たんだそうです。Yahoo 地図で見ると約300km。小松基地から鷲羽山上空まで約15分。時速にすると1200キロ。本当に?
ブルーインパルスが使っている飛行機はT-4練習機で、最高速はマッハ0.91、560ノット、1008km/h
時速1000kmで飛べば20分弱。15分ではないと思うけど、まっ、いいか。
野菜、安くなりましたね・・・って、本来の値段に戻っただけですが・・・
スーパーマーケットでほうれん草、その他食材を買いました。でも今日はなんか疲れたから、お料理は明日ね。翌朝、1日置いたほうれん草はフニフニになっていました。コレ、使うの?まぁ、食べても大丈夫だろうけどね。
その時、何故か分からないけど、生花なんかで使う「水切り」を思い出しました。なんで思い出したんだろうね。生花なんかやった事がないのに。
で、ほうれん草の根本近くを「水切り」して、ボールに「いけて」おきました。
数時間後には、シャキシャキほうれん草に復活していました。
ほうれん草さん、がばったね。
でも、そのほうれん草を切り刻んで調理して食べてしまいました。
植物だって「生き物」なんだよね。合掌。
ちなみに、作ったのは「ほうれん草と人参のソテー、ベーコン入り」でした。
ずいぶん久しぶりの書込みです。
実は、要介護の老人(私の父)がインフルエンザにかかったんです。インフルエンザと診断されたのは2月。回復するまでの期間が約6週間。若い人ならば、せいぜい1週間でしょうけど、なんせトシだからねぇ。
2週間ほど入院していました。退院して老人ホームに戻ってからも毎日点滴。点滴中は、自分で点滴針を抜いたりしないように見守る必要があるのですが、老人ホームのスタッフのスタッフには無理。(そうでなくても人手不足なんだから・・)
そんなわけで、私が毎日「点滴の見張り」に行っていました。老人ホームまで約1時間ドライブ。待ち時間と点滴が約2時間。終わったら、また1時間ドライブして帰って来るわけです。
「点滴の見守り」って、特に体力を使うわけではないし、頭を使うわけでもないし、「見ている」だけなんですが、こういうの、疲れますよね。その上、行き帰りの道が県道岡山西大寺線。いつも渋滞。まともに走るよりも、はるかに疲れますよね。
そんなわけで、帰ってきて「やらなくてはならない」事をやったら、もう、ぐったり。
ブログを書き込む余裕がなかったわけではないんですが、「心の余裕」がなかったんですね。
ま、一段落したので、ぼつぼつ何か書くつもりでいます。
なんでもいいから、たくさん書きますね・・・とか書いたのは覚えていますが、久しぶりの書込みです。
ジジ様(私の父、要介護)が体調を崩していたこともあって、やたら忙しかったのです。正確には、大して「忙しく」はなかったのですが、心の余裕がなかったのです。(v_v)
さて、「お片付け」をしていたら、「十五少年漂流記」が見つかりました。小学上級向け、2002年刷。子供が小さい時に買ったに違いない・・・それ以外に買う理由がない・・・
そ~か。こんなん、買ったんだ。読んでみると、けっこうおもしろい。でも、気になる記述がありました。
フレンチ・デン(少年たちが過ごした洞穴)に着いた時、「すごいご馳走だった。メニュー・・・それにシェリー酒までついている」・・・シェリー酒って、ワインの一種ですよね。で、この小説は「十五少年漂流記」だよね。登場人物の紹介の部分では、最年長でも14才となっている。これが書かれた当時(1888年)のヨーロッパでは、この年齢の子供たちがワインを飲むのが普通の事だったのかしら。
こんな記述もありました。「大きな野がん4羽と、しぎだちょうをたくさんしとめた」どう読んでも、鉄砲で仕留めた事になる。この時代のヨーロッパでは、子供が鉄砲を撃つのは普通の事だったのかしら。
そういえば、アメリカのボーイスカウト(タイガーカブ、小学校低学年)の装備品には「ナイフ」があったし、キャンプのメニューには「射撃」(エアガン)があったなぁ。こういうの、カルチャーが違う・・とか言うのかしら。
彼ら(十五少年)は、今の日本の中学生には出来そうもない事をいっぱいやっているんですね。まぁ、「小説」だし、当時のヨーロッパの中学生たちが「普通に」できた事かどうかは分かりませんが・・・ごく普通の事だと、この種の小説にできない・・・
私が中学生の頃を考えると・・・ワインはともかく、鉄砲は扱えないし、ナイフも「図画工作」以外では使った事がない。「野生のセロリ」なんて知らないし・・・無人島に流されたら、多分、飢え死にだろうなぁ。
というわけで、結構、いろいろ考えてしまいました。面白かった・・・
読み返してみると、結構「都合のいい」お話ですね。船が暗礁にぶつかって壊れる心配をしていたら、大波が来て砂浜に打ち上げられたとか、船の解体にてこずっていたら、嵐がきて船がバラバラになったとか、冬ごもりできる場所を探していたら「フレンチ・デン」が見つかるとか、ほら穴を拡げようとしたら、隣接するほら穴が見つかるとか・・・でないと、「お話」にならないか・・・
このブログのトップページにしているページ「CD、LP管理と音楽のデータベース・システムを作りました」から、作ったシステムへのリンクが切れていました。
友人が教えてくれました。感謝、感謝。自分では気づかなかった。
システム内の xxx.jsp や xxx.java などのファイル、サーバー類には気を付けていたんですが、ブログページは放置状態でした。でも、このようなブログを書くと、これも「システムの一部」なんですね。反省。以後気を付けます。リンク切れの間にクリックして下さった方にはお詫びいたします。
原因は、サーバーアプリのアップデートの時フォルダ名を変えた(新しいバージョンのフォルダを作成し、動作確認後、旧バージョンのフォルダを削除した)のですが、このブログ内のリンクは旧バージョンのフォルダを示したままになっていました。
ご迷惑をおかけしました。
豪雪地帯の人がこのタイトルを読むと【激怒・・でなくても不愉快】かもしれませんが、ここは岡山県南部です・・・
去年の10月末ごろ、オールシーズンタイヤを買ったんですが、まだ氷雪路では試していません。
天気予報では、今日の午後は雪だったので、ワクワクして待っていたのですが、残念、積もらなかった。タイヤ、試してみたかったんだけどねぇ。
まだ若くておバカだった頃だと、ためらわずに県北にでも「出動」したと思いますが、そこまでの熱意というか元気がありませんでした。
結局、試せていません。残念。・・・トシかな。