iPhone で jQuery の live(click, ...) が効かないとき
jQuery で <li> などの本来クリックされることを意図していない要素に live で clickイベントハンドラを付けると、iPhone の Mobile Safari で反応してくれない「ことがある」。
<blockquote class="tr_bq">$(‘#an_element’).live(‘click’, function() {
// このイベントハンドラが iPhone では安定して呼び出されない
});</blockquote><li> に onclick=”” という意味のない属性を付けると、安定してこれを回避できる。
<blockquote class="tr_bq"> <li id="an_element" onclick="">ららら~</li></blockquote>
あるいは
<ul><li><li>ららら~</li> とする。</li><li>click イベントではなく tap イベントにする。</li><li>live() をやめて bind() にする。</li></ul>
jQuery Mobile も同じ。これに関しては Android は問題なし。
LIVE CLICK EVENTS DON’T REGISTER ON MOBILESAFARI (IPHONE)
http://bugs.jquery.com/ticket/5677
メンテナンスファースト
先日、昔の上司や先輩と呑んでいたときのこと。新規開発は楽しいけど、ソフトウェア業界の仕事って、メンテナンスのほうがずっと多いよねという話になりました。でも、みんなメンテナンスが嫌い。10年前のアジャイルムーブメントのように、メンテナンスを楽しくするようなパラダイムを作り出せれば、みんなが幸せになれます。ソフトウェア開発の潮流は、工程をどんどんと下っていって、ベタなコーディング→テストファースト→メンテナンスファーストへと進化していくのです。
というところでこの話はおしまい。メンテナンスファーストって、何をどうやるんだろう!? 実現できたらすばらしいことなので、心の片隅においておきます。リファクタリングやテストファーストの、ナチュラルな延長線上にあるものかもしれません。
私の志集 300円
私の志集 300円、を買いました。新宿駅西口に立ち尽くす、あの女性から。初めてあの人に気づいたのは学生のとき。もう20年くらい前ではないかと思います。正直いって、気味が悪かった。関わってはいけない雰囲気を感じました。ほとんどの人はそう思っているでしょう。
久々に新宿に行った一週間前のこと、またあの女性の横を通ったとき、失礼かと思いながらも顔をよく見たら、実は結構きれいな人なのではないかと感じました。50歳近いのですが、少なくとも醜い歳のとりかたはしていない。
それで興味をもち調べてみると、2ちゃんねるにスレッドがありファンもそこそこいることや、彼女は3代目で、25年くらい前から立っていること、初代は30歳離れた彼女の夫で、終戦直後から立っていたことなどがわかりました。
どんな事情で、どんな運命の巡り合わせで、あのような苦行ともいえることを始め、20年以上も続けているのか、気になって仕方がありません。今度新宿に行ったときは、必ず買おうと心に決めました。
昨夜再び新宿を訪れ彼女を視認したとき、一瞬の迷いはありましたが、近づいて思いきって声をかけると、意外と心穏やかに買うことができました。
一秒未満の短い間あわせたその瞳には狂気はありませんでした。コンビニ店員のような乾いた目もしていないし、ファーストフード店員のような作り笑いもありません。客に対する媚もなく、かといって事務的でもない、少しだけの、自然な笑顔。言葉は交わさなかったけど、それで充分です。
志集を開くと、手書きのきれいな字。きれいというより丁寧。一文字一文字を刻むように書き上げる姿が目に浮かびます。正直いって、詩の中身の良し悪しはわかりませんでしたが、また買い求めそうな気がします。
使い捨てコンタクトにも品質の違いがある
僕は10年以上、1日使い捨てのコンタクトレンズを使っている。使い捨てレンズはいくつかのメーカーから出ている。どれを使っても同じだよと思っていたが、品質に差があることがわかってきた。
昔、ワンデーアキュビューを使っていた。特に不満はなかったが、より安いフォーカスデイリーズが出たので、そちらに乗り換えた。そして最近、さらに安いユーロワンデーが出たので、また乗り換えた。どれもそんなに変わらない。最初のうちはそう思っていた。
ところが、ユーロワンデーに乗り換えてから2~3ヶ月後、夜になると目がぼやけてくるようになった。ただでさえ悪い視力が、格段に悪くなる。朝と夜とで見え方が違うのが、自分でもよくわかった。仕事が忙しかったし、そのせいだろうと片づけていたが、あるときふと、コンタクトを変えたらどうだろうとひらめいた。
少しだけ残っていたフォーカスデイリーズに替えたら、夜の視力の衰えがなくなった。びっくりだ。やはりユーロワンデーが合わなかったのか。
そうして振り返ってみると、ユーロワンデーは、ワンデーアキュビューやフォーカスデイリーズと比べて、明らかに品質が劣っていた。まず容器の精度が低い。アルミのふたを開けると、ビニールだけ残ることが1、2回あった。ビニールを破らなければレンズを取り出せない。レンズの精度も低いのか、容器の中でくるんと丸まっていることが何度かあった。一回だけ、ゆびでつついても丸まりがとれず、どうにも使えずに捨てたことがあった。
数百円の違いで目が悪くなったのではたまらない。ユーロワンデーの残りを捨て、いまはまたフォーカスデイリーズを使っている。家にいるときはメガネだけど。
Nagios/Icinga で MySQL のパフォーマンスデータ履歴を残す
標準の check_mysql を呼び出すラッパースクリプトを書いた。 <pre>#!/bin/sh LINE= /usr/lib64/nagios/plugins/check_mysql $*RC=$? THREADS= echo $LINE | awk '{print $4}'SLOW_QUERIES= echo $LINE | awk '{print $9}'OPEN_TABLES= echo $LINE | awk '{print $17}'QUERIES_PER_SECOND_AVG= echo $LINE | awk '{print $22}'echo $LINE | threads=$THREADS, slow_queries=$SLOW_QUERIES, open_tables=$OPEN_TABLES, queries_per_second_avg=$QUERIES_PER_SECOND_AVG exit $RC </pre> こんな感じでパフォーマンスデータ(パイプの後ろ)が取れていれば成功。これを Nagios/Icinga のコマンドとして、標準プラグインの代わりに呼び出す。 <pre>$ ./check_mysql2 Uptime: 1296308 Threads: 2 Questions: 3299665 Slow queries: 0 Opens: 73 Flush tables: 1 Open tables: 64 Queries per second avg: 2.545 |
threads=2, slow_queries=0, open_tables=64, queries_per_second_avg=2.545 </pre> |