IEの場合だけoffset.topが絶対座標を返さない(jQuery)

マウスオーバーでメニューバーの「上に」メニューを表示する機能を実装していたら、IEの場合だけoffset.topの値がおかしい事に気づいた。

日々の小ネタ:IEにおける座標の取得

またもや先人達の貴重なページのおかげで、IEの場合だけoffset.topの値がスクロール量を差し引いた「表示画面内の位置」、IE以外はスクロールを考えない「ドキュメント全体内の位置」を示している事に気づいた。jQueryでもいまだに解消されていないブラウザ間の差異だ。
仕方なくブラウザで場合分けしたコードを書いた。

var v_parent_menu_top = $(‘#parent_menu’).offset().top;
if ($.support[‘cssFloat’]) {

var v_new_top = v_parent_menu_top – v_menu_box_height;

} else {

var v_new_top = v_parent_menu_top – v_menu_box_height + $(‘html:first’).scrollTop();

}

いつまでたってもシステム屋の苦労が絶えないわけである。

識別子、文字列または数がありません。(IE6のみ)

IE6でだけページロード時に「識別子、文字列または数がありません。」というJavaScriptエラーが出る。

IE8では出ない。FireFox3.5.5でも出ない。Chromeでも出ない。IE6でだけエラーになる。
のた打ち回っていろいろ検索してみたら、先人達のこんなページがあった。

識別子、文字列または数がありません。

自分のコードの怪しそうな所を虱潰しにあたってみると、こんなコードがあった。

$.post(
‘https://…..’,
{
‘data_id’ : v_data_id,
},
……..
)

カンマが一つ余計だったので、

$.post(
‘https://…..’,
{
‘data_id’ : v_data_id
},
……..
)

としたらエラーは出なくなった。
この世から早くIE6が消えて欲しいと思った。

Cacooがかなりすごい

仕事でお世話になっている「Backlog」のNulabさんだが、新しいサービスの提供がはじまった。

http://cacoo.com/

簡単に言うと「Visio」のオンライン版だ。まだベータ版だが、使ってみるとかなりすごい。

仕事柄ドキュメントでチャートを描くことが多いのだが、機能もレスポンスも申し分ない。さらに「Backlog」のWiki文書にも貼り付けられるそうだ。

こういうものが作れるNulabさんは心から尊敬する。

introセッション(高田馬場)

今日は高田馬場「イントロ」のセッションに行った。

6時頃店に入ると、半分くらいの席が埋まっている。ここのセッションは夕方5時スタートで朝5時終了なので、この時間ではまだそんなに人は来ていないのだ。昔初めてここのセッションに来た時、午後1時頃スタートで夕方5時頃終了だった。当時はまだ常駐ベーシストを雇っていなかったので、セッションに行くとベースが私一人だけになって帰るに帰れない事もあった。だんだん人が増えてきたのでオールナイトセッションにしたのだろう。

常連の宮部さん(p)山岸さん(ds)がいたが村山さん(b)がいない。どうしたのかな?と聞いてみると他のお店に行っているとのこと。珍しいですね。今日はドラムが5人くらいいて、ベースが私とあと二人、ピアノが3人、テナー二人、アルトが井上マスターを含めて二人、トランペットがいなかった。もちろん時間がたつにつれだんだん演奏者が多くなる。

演奏者でなくギャラリーとして来ていた人だったら、赤ん坊と小さな子をつれた家族連れがいた。イントロで子供を見るのは鬼束大我くん以来でびっくりした。私自身は、「It Could Happen To You」「Straight, No Chaser」「Who Cares」「Just Friends」の4曲を演奏して、9時頃帰る。

クラウド

セールスフォースが好調だ。

霞が関が続々とシステム採用 米セールスフォースの快進撃

なかなか理解されていないようなので少し解説したい。結論から言うとセールスフォースの強みはロジックは複雑ではないがユーザーやデータが多い、「データ蓄積・参照型」のシステムで、そのタイプに当てはまるシステム構築には最強のコストパフォーマンスを発揮する。アクセスで部門システムを作れるユーザーさんなら同じ感覚でユーザー数1万データ100万件くらいのシステムを作れるだろう。ただ複雑な計算をセールスフォースの上でさせるのは間違いだ。

セールスフォースのデータのモデルはアクセスと同じ「1対他の親子関係モデル」で、それにユーザー認証がついてWebから使えるものになっていると思えばそう外れていないと思う。テーブルを作って項目を定義し、そこから紐付く子テーブルをまた作ると自動的に入力画面も作れるというイメージだ。大量データのお守りやチューニング、不正アクセスや使われているソフトウェアのセキュリティについてはセールスフォースのエンジニアが命をかけてメンテナンスしているのでユーザーはそこを気にする必要はない。彼らは同じシステムを大量の客に使ってもらっているので、一人あたりのコスト負担は少なくてすむ。

もともとCRMを出発点にしているのでもちろんそれに向いているが、苦情のトラッキングをするようなコールセンターシステム、申請を受け付けて状態管理するようなシステムにも向いている。高度な検索ができるので大量のデータを保管してほしいデータを表示させるようなシステムには向いている。

逆に単純な親子関係で定義できない(ER図に乗りにくいような)データを扱うには向いていない。夜間バッチで何時間もかかるような複雑なロジックを実装するにも向いていない。SCMのようなプラニングエンジンが最適な計画を算出するようなシステムには最も向いていない。あくまで部門システムがスケールアウトしたものと考えるべきだろう。

銀河アリーナ

今日は息子と二人で銀河アリーナにスケートをしに行ってきた。

今日はちょうど感謝デーみたいな日でスケート場の入場料が無料になっていた。こういう企画は人集めのためにやるのだから、せめてホームページには載せて宣伝するべきではないかと思った。

息子は小さい頃からなぜかスケートが好きだった。よく冬になると銀河アリーナに連れて行ってくれと言われるのだった。娘のほうは基本的にスポーツよりも絵を描いたり本を読んだりするほうが好きなので、誘ってもあまり行きたがらない。

今シーズン初滑りである。貸しスケート靴のエッジもまだ利いている。北国育ちの私はスポーツが大の苦手であるが、スケートを滑る時だけは自分がスポーツが得意な人物になったような気分になれるのだ。独特の滑走感を1時間ほど楽しんだが、リンクを降りるともう足がプルプルしているのだった。

ふらふらとスケートを楽しんでいるアベックが無帽なのを見て、相変わらず私は複雑な気持ちになる。前に八王子駅のホームで乗客同士のいざかいで倒された客が後頭部を打って死亡するという事があった。後頭部を堅い地面にぶつけるのは命にかかわるのである。初心者の大人が何もかぶらずにスケート靴を履いてリンクに出るのは非常に危険だと思うのだが、レジャーで来ているアベックに無料貸し出しのヘッドギアをかぶってもらうのはいかにも非現実的だし、毛糸の帽子ももっていないだろう。初心者こそ何か頭にかぶって安全にスケートを楽しんでほしいと思うのだが、なにかいい方法はないだろうかといつも思う。

ちなみに私はしっかり大人用ヘッドギアをかぶってスケートした。

本石町

先日、日銀の貨幣博物館に子供と行ってきた。

小三の息子が日銀の博物館で一億円を持ち上げるのがあって、行ってみたいと言ってたので、連休の最終日に息子と娘を連れて行ってきた。子供が言っていたのは、日本銀行金融研究所 貨幣博物館という所だった。場所は、本石町、東京駅から歩いて10分である。

貨幣博物館は無料で入れる博物館で、日銀の別館のなかにあった。正直あまり期待していなかったのだが、行ってみると色々面白いものがあって、私も楽しめた。本物の大判小判、和同開珎、藩札や軍票があったり、歴代の日本銀行券が全て展示してあって、聖徳太子の一万円札を見てすごく懐かしい気持ちになった。最初の日本銀行券の絵が「大黒様」だったのには思わずのけぞった。紙幣というものが19世紀になってからやっと登場したというのも知らなかった。もちろん一億円を持ち上げるというのもあって、子供は二人ともおおいにはしゃいでいた。

行ってよかったと思った。