A Day In The Boy's Life -170ページ目

A Day In The Boy's Life

とあるエンジニアのとある1日のつぶやき。

人間の倫理は非理性的か:「トロッコ問題」が示すパラドックス @ WIRED VISION


頭の中では、そうするだろうと考えても実際にそうなったら「何もできない」というのが本当のところなのでしょうね。

なので、トロッコは最初からポイントが向いている方向にそのまま進むことになるでしょうし、橋の上からもただただ見過ごすしかできないというのが実際のところではないかと。

人間心理を観察するための実験なので、それを言っちゃお終いなのでしょうけど。


もし冷静に考える時間が与えられるなら、どちらがメリットがあるのかということを考えてしまうかもしれません。

一人の犠牲が恋人というのであれば、そちらを救う心情に駆られるでしょうし、著名人ならその後の恩をきせることができると考える人もいるかもしれません。

究極の状況下では人間が論理的に行動できる余地は著しく低いと思います。


以前に少し似たような事を考えた事がありました。

仕事で少し思い悩んでいたんですが、自分としては自信を少し過剰に持ち始めていて、もっと大きな仕事がやりたいという心情に浸っていました。

何でこんな小さなプロジェクトで、経験の浅いメンバーの面倒を見つつ仕事をしなきゃならないんだろうって。

大きな仕事って何だ、と漠然に考えてみた時に会社にとっては大きな利益になる事で、世の中的に見れば広く自分のアイデアの種が広まり芽を出す事と考えていましたので、自分のやってる事がひどくちっぽけに思えてきてしまったわけです。

でも、少し考えてみたらそのメンバーも自分のことを頼りにしてくれていましたし、そこで自分がする仕事の価値って何も世の中に与える影響の大きさじゃないんだなぁと感じたりもしました。


そこでも、例えばそのメンバーを途中で見捨てて自分の新しい道を進むということも考えられたわけですが、そうはしませんでした。

自分も今の環境で育ててもらった経緯を辿ってきているわけですから、その時より成長した自分はそれを受け入れるべきでしょうし、その環境や先輩・上司に恩返しもできるだろうと。


私は、自分の存在価値ってやつは他人から見てどれだけのメリットがあるか(与えているか)だと考えています。

例えそこに打算が含まれていても、自分を必要とする人がいるなら、自分の価値はあるだろうと。

プロジェクトのメンバーが自分を頼ってくれている、上司がそれを任せてくれている、そう思うと自分がそこにいる価値というものを少し感じ取る事ができたわけです。


これは、論理的思考ではないのだろうと思います。

自分がより大きな成長のチャンスがあるならそこに飛び込んで見るべきでしょうし、私がいてもいなくても少なくともそのメンバーはなんとかプロジェクトを進めることができたのだろうとは思います。


頭の中では漠然とそう割り切るべきと考えている事はあります。

これは無駄だからやるべきではないとか、自分の知識と経験からしてこれは正しいはずだとか、そんな思考も持っていたりもします。

ビジネスの現場であれば、そういう思考が重要な事はよくわかります。

しかしながら、幾つかの要因がそうさせない心情にさせてしまうことは、人間の心がそれに反応するような仕組みになっているからなんでしょう。

特に、そこに人というものがはっきりと見えてしまうとなお更です。

トロッコ問題もそこに人がはっきりと見えてしまう事で、思考が揺らぐのだと思います。

まぁ、それが人間らしさという奴ではないかと思ったりもしますが。





少し古いライブラリですが、thickboxというjQueryをベースにしたJavaScriptのライブラリがあります。

Ajaxを使った非同期通信で、画像や別のHTMLファイルを画面にオーバーレイして表示してくれるという特徴があります。


手っ取り早くthickboxを知りたい場合は、公式サイト の中にあるサンプル(上部メニューのExamplesから)を見てみるのが早いでしょう。

このように画像やコンテンツをページ遷移することなく、しかも格好よく見せることができるライブラリです。


このライブラリ自体は結構有名なのですが、実際に使うとなると使い道があまり見出せないと思う人も多いかもしれません。

個人のブログで、掲載した画像を格好よく見せたいという場合はありかもしれませんが、サイトやアプリケーションを構築するにあたって、画像を強調するような見せ方をすることは多くありません。


で、もう一つの機能である別のHTMLファイルを表示するという機能を使って、利用者に分かりやすいサイト作りをする方法を考えてみたいと思います。

例えば業務アプリケーションで多い、入力フォームを用意した画面に各項目の説明をこのthickboxを通して分かりやすく見せてあげるとか、文章中に出てくる難しい言葉の説明を、その文字列をクリックする事でFAQのように見せてあげるというような使い道があったりします。


こんな感じのHTMLがあって、特定の文字にthickboxを呼び出すロジックを組み込んでおきます(リンク部分)


thickboxサンプル1

このリンク部分をクリックすると


thickboxサンプル2


thickboxを動かして、そのリンク部分の説明書きを表示するとか。


以前に紹介した、特定の文字にマウスをあてると吹き出しを表示してくれるHints.js でも似たような事はできるのですが、このようなFAQ形式であれば文字数が多くなったりしますし、画面のレイアウトを自由に変えれるのでお勧めです。(Hints.jsは特定の位置にマウスをあて続けなければ表示が消えてしまいますし)



thickboxの設置方法


1. jQueryのダウンロード


最初に説明したとおり、thickboxはjQueryをベースに作られているので、まずはjQueryを設置する必要があります。

jQueryのダウンロードは、公式サイト より行えます。

今回は、2008年11月時点で最新のバージョン1.2.6を使用しています。

また、ここではファイル名をjquery.jsとしています。



2. thickboxのダウンロード


thickboxを使用するには3つのファイルが必要です。


- thickbox本体 (JavaScriptファイル)

- thickbox用のCSSファイル

- ページ読み込み時のアニメーションGIF (※)


※ なくても動きます。


しかし、thickbox本体に関しては、公式ページからダウンロードするのではなく、下記サイトからダウンロードしたものを利用した方がよさそうです。


Thickbox 3.1 IE7 Positioning bug @ Jamie Thompson


※ thickbox.patch.jsをダウンロード


理由は、本家のthickboxを利用するとInternet Explorer7で見たときに表示位置やレイアウトがずれるというバグがあります。

どうも表示するコンテンツの高さがブラウザのウィンドウサイズを超えて表示した場合に、位置がずれるというバグが出てくるようです。



3. jQueryとthickboxの配置


では、ダウンロードしたjQueryとthickboxを配置してみましょう。

今回は、下記のような構成で配置してみました。


.
|-- css
| `-- thickbox.css
|-- img
| `-- loadingAnimation.gif
|-- index.html
|-- js
| |-- jquery.js
| `-- thickbox.js
`-- readme.html

配置する位置は任意の位置でかまいませんが、thickbox本体(thickbox.js)内にローディング時のアニメーションGIFのパスを指定している箇所があるので、そこを編集しておく必要があります。


- thickbox.js 11行目

var tb_pathToImage = "/img/loadingAnimation.gif";


thickboxの使い方


先ほどの例で示したようなFAQ形式でHTMLファイルを表示する場合の方法について書きたいと思います。

呼び出しもとのHTMLファイルを作ります。


- index.html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>a day in the boy's life</title>
<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript" src="/js/thickbox.js"></script>
<link rel="stylesheet" href="/css/thickbox.css" type="text/css" media="screen" />
</head>
<body>
<br />
<br />
このサイトは、<a href="/help.html?height=200&width=400" class="thickbox">A Day In The Boy's Life</a>の別館です。
</body>
</html> 

最初に、jQueryのJavaScriptファイル(jquery.js)を呼び出した後に、thickbox本体を呼び出します。

そして、thickbox用のCSSも読み込むように指定します。


アンカータグ内で指定している、width(表示する画面の幅。デフォルト630px)とheight(表示する画面の高さ。デフォルト440px)のパラメータがthickboxで表示する際の横幅と縦幅になります。

これはお好みで調整可能です。

最後に、class名をthickboxと指定します。(このクラス名がthickboxの呼び出し対象となります)


呼び出し先のHTMLファイル(上記の場合、help.html)はなんでもかまいません。

この中に画像やFlashを埋め込んでいても問題なく動作します。

ただ、thickboxで表示する際の幅と高さにあわせた形で作っておいた方が綺麗に見せることができます。


また、今回は静的なHTMLファイルを呼び出してみましたが、FAQの文字列をDBに登録しておき、上手くパラメータを渡す事で動的に見せるプログラムファイルを指定しても問題なく動作します。



thickboxの応用


単純に言ってしまえば、ポップアップウィンドウの代用と言ったところですので、様々な応用が考えれます。

例えば、住所入力フォームで郵便番号検索を補助するような役割のヘルプ画面に応用してみましょう。

よくあるパターンでは、「郵便番号検索」というようなボタンをクリックすると新しいウィンドウが立ち上がって、そこから自分の住所を選択すると、元画面のテキストボックスに郵便番号が入っているというパターンです。


まずは、イメージから。


最初に、このような画面があって「こちら」の部分がリンクになっており、クリックする事でthickboxが呼び出されます。

thickbox-3

この画面から「こちら」というリンクをクリックすると、郵便番号検索画面がでてきます。


thickbox-4

この画面から「登録」というボタンを押すと、thickboxが解除されて元画面の「郵便番号」のテキストボックスに該当の住所の郵便番号が入るというものです。


ソースもいたって簡単にかけます。


- 呼び出しもとのファイル(input.html)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>a day in the boy's life</title>
<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript" src="/js/thickbox.js"></script>
<link rel="stylesheet" href="/css/thickbox.css" type="text/css" media="screen" />
</head>
<body>
<br />
<br />
<br />
郵便番号を入力してください。郵便番号が不明な場合は、<a href="address.html?width=400&height
=250" class="thickbox">こちら</a>から検索できます。
<br /> 郵便番号: <input type="text" name="text_box" id="zip_code"> </body> </html>


- 呼び出し先のファイル(address.html)

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>a day in the boy's life</title>
<link rel="stylesheet" href="/css/mystyle.css" type="text/css" />
<script type="text/Javascript">
<!--

function inputZipCode(zip_code) {
$("#zip_code").val(zip_code); // 開いたファイルにあるテキストボックスに郵便番号をセット
tb_remove(); // thickboxを解除する
}

// -->
</script>
</head>
<body>
<table class="help_tab">
<tr>
<th>-</th>
<th>住所</th>
</tr>
<tr>
<td><input type="button" value="登録" onClick="inputZipCode('160-0021')"></td>
<td>東京都 新宿区 歌舞伎町</td>
</tr>
<tr>
<td><input type="button" value="登録" onClick="inputZipCode('154-0017')"></td>
<td>東京都 世田谷区 世田谷</td>
</tr>
<tr>
<td><input type="button" value="登録" onClick="inputZipCode('150-0002')"></td>
<td>東京都 渋谷区 渋谷</td>
</tr>
</table>
</body>
</html>

「登録」ボタンが押されると、(jQueryの表記になりますが)受取った郵便番号を呼び出しもとのファイル(input.html)のテキストボックスの値にセットしてあげています。

そして、その後にtb_remove()関数でthickboxを解除しています。

tb_remove()関数は、thickbox.jsの中で定義されています。


使い方次第で色々な応用ができるライブラリなので活用してみては如何でしょうか。





iPhoneでワンセグも! ソフトバンクモバイル、2008年冬モデル発表会レポート @ 日経トレンディネット


今年の冬で2年前に機種変更した911SHの支払い(月賦)が完了するので、この冬モデルは結構注目しています。

iPhoneへ、とも思ったのですが、最近人気にかげりが出てきて今後てこ入れしてきそうな気もするので、その辺の動向をもう少し見守りたいかなぁと。


ただ、少し変な風にてこ入れしているみたいですけど・・・。


「ワンセグ」「絵文字」に見るiPhoneへの本気度 @ 日経トレンディネット


[CG]ソフトバンクの外付けチューナーでiPhone 3Gがワンセグに対応 @ TechCrunch Japanese


iPhone使ってまで、絵文字を使いたいという人いるのだろうか・・・。

これ使っている人って、今までの携帯の概念を取り払った新しい価値の携帯に期待感を寄せて、という人が多いような気がするのですがね。

ワンセグは良いのですが、外付けかぁ・・・。

わざわざチューナーを持ち歩いてまで外で見たいかどうか・・・。

あと、どこかのアンケートでワンセグって不要な機能にランキングされていましたけどね。


何れにせよ、私の方も次の携帯は脱こちら側という事で、インターネットへの接続性やよりパソコンに近い感覚で利用できる機種を選びたいなと思っています。

となるとスマートフォンが有力なんですけどね。

この辺りとか、ちょっと面白そうかなぁと。


ソフトバンクモバイル、HTC製スマートフォン「Touch Diamond」を8日発売 @ IT-PLUS


でもスマートフォンを使う上で痛手になるのが定期として使っているモバイルSuica。

チップを取り出して、オープンな規格で色んな携帯端末にセッティングできるようになったりしませんかねぇ。