2012年12月13日木曜日

[読了]パブリック

Jeff Jarvisの『パブリック』を読みました.

Jeff Jarvis: パブリック, NHK出版, 2011-11-25

本書についてメモしておきます.

本書は,個人や社会のパブリックな領域が拡大する中で,その状況とどのように付き合っていけば良いのかについて述べられている.本書を読んで得た知見を私見を交えながら以下に記す.

テレビ,ラジオ,新聞,出版,広告など,旧来のメディアからの情報を単に消費する存在であった大衆が,インターネットというパブリックな圏域に向けて気軽に情報をプッシュできる時代が到来している.

情報をパブリックな場所に置くと,集合知の形成に寄与したり,セレンディピティやコラボレーションを引き起こすきっかけになったりする.一方,そうすると,周囲の人をハラハラさせたり,ときには何らかのトラブルを引き起こしたりする.情報をパブリックな場所に置くことは,良い面だけでなく,悪い面もある.

大衆の一人としては,良い面より悪い面のほうが気になるし,そのことを声高に叫ぶ識者もいる.だから,情報をプッシュするのに及び腰になるのも当然のような気がする.しかし,情報をプッシュすることで何かしらのメリットを受けられるなら,積極的にそれを活用し,自分を拡張していけばよい.すでにそれを実践して,その恩恵を受けている先駆的な大衆はいるのだから,彼らの仲間入りを果たせばよい.

そこで,必要となるのが,パブリックとプライベートの境界線を見出すことである.パブリックとプライベートの境界線は,個人の価値観や環境で決まるので,万人に共通するものは存在しないようだ.したがって,その線を見出すには,実践しかない.パブリックな場所に情報をプッシュし,周囲の人の反応を見極めながら,自分が居心地のいい境界線を見つけるしかない.この境界線を見出す力は,これからの時代に必要なリテラシーになるような気がする.

2012年10月11日木曜日

JSONとオブジェクトを相互に変換する方法

JSONとオブジェクトを相互に変換する方法についてメモしておきます.

JSONオブジェクトのparseメソッドを使えば,JSONをオブジェクトに変換できます.

var json = '{"server_side": "Java", "client_side":"JavaScript"}';
var object = JSON.parse(json);
console.log(object);

JSONオブジェクトのstringifyメソッドを使えば,オブジェクトをJSONに変換できます.

var object = {"server_side": "Java", "client_side":"JavaScript"};
var json = JSON.stringify(object);
console.log(json);
参考資料
[1] JSONについて
[2] ネイティブJSONを使う

2012年9月24日月曜日

インスタンスイニシャライザを利用したMapの初期化方法

インスタンスイニシャライザを利用したMapの初期化方法をメモしておきます.

インスタンスイニシャライザという仕組みを使えば,初期化されたマップを宣言できるようです.例えば,"a","b","c"というキーに対してそれぞれ1,2,3を値とするマップを宣言する場合は,以下のようなコードとなります.

Map map = new HashMap() {{
    put("a", 1);
    put("b", 2);
    put("c", 3);
 }};

一見文法違反のように見えますが,無事コンパイルできます. HashMapを継承した匿名クラスのインスタンスイニシャライザ内で,HashMapから継承したputメソッドを呼び出しているからOKということなんでしょうか(適当に書いているので間違っているかもしれません). Javaでこんな書き方ができるなんて,知らなかった〜.

参考資料
[1] イニシャライザ
[2] [Java] インスタンスイ二シャライザで初期化したMapのシリアライズで

2012年8月26日日曜日

[読了]ゲーミフィケーションー〈ゲーム〉がビジネスを変える

井上 明人の『ゲーミフィケーションー〈ゲーム〉がビジネスを変える』を読みました.

井上 明人: ゲーミフィケーションー〈ゲーム〉がビジネスを変える, NHK出版, 2012-01

本書の感想をメモしておきます.

思えば,今の職業についたきっかけはゲームだった.お気に入りのゲームと同じようなものを自分で作りたくなり,親にせがんで買ってもらったコンピュータを使って,プログラムを作り始めた.一応その甲斐あって,今は,ゲームではないものの,プログラムを作る職業についている.

先日ちょっとしたきっかけからゲームを作ることになった.といっても,テレビやゲーム機の画面で娯楽のために行うゲームではない.それとは別の目的に使うものだ.ちょっとしたゲームはこれまで何度も作ったことはある.しかし,確実に他の人に使ってもらうゲームを作るのは初めてだ.だから,何か手助けになる情報はないかと,グーグル先生に聞いてみたら,「ゲーミフィケーション」という言葉に出くわした.ゲーミフィケーションとは,ゲームの要素を応用して,社会の諸問題を改善しようとする試みらしい.まさにドンピシャということで,さらにグーグル先生に聞いてみたところ,本書にたどり着くことになった.

本書は,近年注目を浴びているゲーミフィケーションについて解説している.ゲーミフィケーションとは,「ゲームの考え方やデザイン・メカニクスなどの要素を,ゲーム以外の社会的な活動やサービスに利用するもの」であり,オバマ大統領の選挙運動,ナイキ社が提供するナイキプラスというサービス,便器についた的などですでに実践されている.

ゲーミフィケーションによって得られる効果の一つに関係性の強化がある.とある企業のサービスにゲーム的要素を組み込むと,それに動機付けられた顧客が,その企業のサービスを再利用するケースが増えるらしい.動機付けには,外的な動機付けと内的な動機付けがある.外的な動機付けとは,報酬や罰により動機付けられることである.一方,内的な動機付けとは,自らの活動それ自体に動機付けられることである.ゲーミフィケーションで施される仕掛けは外的な動機付けであるが,それをきっかけに顧客が内的な動機付けを持つに至ると,企業と顧客との関係性が強化される.ゲーミフィケーションの効果は多岐に渡るが,この効果が一番心に残った.

ゲーミフィケーションに注目が寄せられ始めたのは,数年前からである.その要因についても本書は言及している.その要因とは,空間,時間,人である.まず,空間とは,センシング技術の高度化により,ゲームの素材となる情報を日常生活の中で獲得できるようになったことを指している.次に,時間とは,モバイル端末の普及により,情報の発信や取得のタイムラグが縮小し,適切にフィードバックを受けられるようになったことを指している.最後に,人とは,ゲームに慣れ親しんだ世代の人口が拡大したことを指している.いくつかの条件が揃えば,一つの大きなムーブメントが起こるというのは,「フリー」や「シェア」などの他書でも見てきたとおりで,ゲーミフィケーションというのもそれに当たるものなんだと思う.

本書では,ゲーミフィケーションがもたらす二つの未来について述べられており,両方とも以下に記しておく.1番目がジェシー・シェルによるもの,2番めが本書の著者によるものである.2番目はなかなか素敵だと思う.

「朝起きて歯を磨くと歯ブラシについたセンサーが感知して,歯磨き粉メーカーから「よくできたました!10ポイント」と褒められる.朝食にコーンフレークを食べると,ケロッグから10ポイント.通勤にバスを使うと政府からエコポイントが支給され,それは減税の対象となる.定刻にオフィスに着いたら会社からポイント.打ち合わせ先にバスに乗らずに歩いて行くと,医療保険会社からポイント・・・」

「朝起きて歯を磨くと歯ブラシについたセンサーが感知する.このセンサーの情報はとりあえず集積させておくことができ,歯ブラシを使ったゲームはざっと100種類からダウンロードできる.自分の気に入ったゲームをいつからでも遊ぶことができるし,飽きたらやめてもいい.歯ブラシのセンサー機能を利用して自分でゲームをつくることも,そんなに難しくはない.以前,自分でつくった歯磨きゲームは他のプレイヤーには不評だったけど,自分にとってはけっこうたのしく遊ぶことができた.会社に行くと,新しい人事評価の仕組みがつくられていた.今度の仕組みでは子育てをがんばっている同僚が結果的に損をしてしまう可能性がある修正が加えられていたので,とりあえず自分が仕切っているプロジェクトではちょっと抵抗を試みる.家で子どもとコミュニケーションの時間をとっておくことが,プロジェクト内においてよい評価につながるようにゲームの仕組みを少しカスタマイズしておいた」

2012年8月18日土曜日

[読了]オーバーフローする脳―ワーキングメモリの限界への挑戦

Torkel Klingbergの『オーバーフローする脳―ワーキングメモリの限界への挑戦』を読みました.

Torkel Klingberg, 苧阪 直行(訳): オーバーフローする脳―ワーキングメモリの限界への挑戦, 新曜社, 2011-11

本書の感想をメモしておきます.

誰かに話をしている途中で,その話が本筋から脱線してしまうことがよくある.それはそれで問題はないのであるが,自分の場合,脱線した箇所を見失ってしまい,本筋に戻れなくなることが結構ある.その原因について気になっていたところで目に止まったのが本書である.

本書は,ワーキングメモリをテーマにしている.ワーキングメモリとは,数秒の間,情報をアクティブに保つために備わっている脳の能力のことであり,注意を集中すべきものが何かを保持するのに使われている.ワーキングメモリには容量の制限があり,知覚した新しい情報がどんどん押し寄せてくると,古い情報はそこから溢れだしてしまう.注意すべきものについての情報はワーキングメモリにあるので,何らかの影響でそれへの意識が薄れてしまうと,自分にとって大切なものであっても,ワーキングメモリから消失してしまう.どうやら自分の身に起こっているのは,この現象のようだ.

情報の世界では,データ構造とアルゴリズムという分野があって,データの効率的な表現方法や処理方法が提案されている.私達の脳が持つ数多くの機能は,そこで提案されている各種手法によりモデル化できると思う.そして,このワーキングメモリという能力に至っては,キューのようなものであるような気がする.注意しているものはキューに収まっているので,それが溢れそうになったときに取り出して再びキューに入れないと,それは失われてしまう.そう考えると妙にフィットする.

この考えでいくと,脱線した話を本線に戻せないのは,キューのサイズが小さくなっているとか(年齢のせい?),キューに情報を入れすぎていて,再投入が間に合わずオーバーフローを起こしているとか(話を膨らませすぎ?)が思いつく.どうも両方とも当てはまるような気がしてきた.なお,ワーキングメモリは実際に加齢により容量が低下するらしい.ただ,訓練により増加させることも可能なそうなので,何かいい素材を探してみたいと思う.

2012年8月6日月曜日

著者の名前をHTMLでタグ付けする方法

著者の名前をHTMLでタグ付けする方法をメモしておきます.
<address class="author">mizo0409</address>
参考資料
[1] Which HTML5 tag should I use to mark up an author’s name?

2012年7月16日月曜日

[読了]友達の数は何人?

Robin Dunbarの『友達の数は何人?』を読みました.

ロビン ダンバー: 友達の数は何人?―ダンバー数とつながりの進化心理学, インターシフト, 2011-07

本書の感想をメモしておきます.

本書は,生物の進化に関する様々な知見を交えながら,私達人類が備えている特徴を数多く紹介している.例えば,女性の中には男性よりもカラフルな視覚を持つ人がいるとか,言葉を発達させたのは,狩りをする男性ではなくて,実は留守を守る女性であった可能性があるとかだ.中でも,一番興味深い特徴は,本書のタイトルにもなっている「友達の数は何人?」の解答である.その解答とは,150.この数は,ダンバー数と呼ばれるもので,脳の容量と集団サイズに関する研究成果から予測された数だそうである.

ダンバー数と一致するかどうかは別として,そのような数があることは間違いない気がする.最近,ソーシャルグラフ(人の繋がり)を核に置いたサービスが活況を呈しており,自分もそのユーザの一人である.自分では知り得ない情報を入手できるので,調子に乗ってリンク(他人から自分へ向かうリンク)を増やし過ぎたことがあったが,その時はそこから流れてくる情報を消化するだけで一日を費やしてしまうことがあった.的を得た例ではないと思うが,とにかくリンクを増やしすぎると,本来の活動に支障をきたすことになるのは間違いない.キュレーションという言葉もよく目にするようになったが,これはダンパー数を超えた繋がりを持った人が増えてきたためではないだろうか,つまり,情報の消化不良に陥った人が,手持ちのリンクのいくつかを良質な情報をもたらすリンクに置き換える必要が生じたためではないかと考えている.

2012年5月17日木曜日

ビューポートのscroll系プロパティ

JavaScriptでアクセスできるビューポート(Webブラウザ上でWebページが表示される領域)のプロパティに,「scroll...」というものがあります.それらの意味を図でまとめてみました.

どうもIEとそれ以外のブラウザでは,document.body.scrollXXXとdocument.documentElement.scrollXXXの役割が入れ替わっているようです.早く統一してほしいですね.

参考資料

HTML要素のscroll系プロパティ

JavaScriptでアクセスできるHTML文書内の要素のプロパティに,「scroll...」というものがあります.それらの意味を図でまとめてみました.

これを見ると,marginとpaddingの役割が見えてきますね.両者の違いは,borderの内と外というのではなく,要素が持つ内容の外側につくのがpaddingで,要素の外側につくのがmarginなんですね.

参考資料

[読了]キャズム

Geoffrey A. Mooreのキャズムを読みました.

Geoffrey A. Moore, 川又 政治(訳): キャズム, 翔泳社, 2002-01

本書の(自分にとって必要な部分の)概要と感想をメモしておきます.

キャズムとは,初期市場を制したベンダーが,メインストリーム市場に立ち向かう際に超えなければならない大きな溝のことである.ハイテク製品をリリースしてからの時間推移と理想的な販売数との関係をグラフにした場合,そのグラフは正規分布のようなベルカーブを描く.このベル・カーブには,5つの特徴を持つ顧客層があり,最初から記すと,イノベータ,アーリーアドプタ,アーリーマジョリティ,レイトマジョリティ,ラガードとなる.初期市場は,イノベータとアーリーアドプタが参加する市場で,その規模はベル・カーブの6分の1であり,この市場の顧客はハイテク製品に好意的である.一方,メインストリーム市場は,アーリーマジョリティ,レイトマジョリティ,ラガードが参加する市場で,その規模はベル・カーブの6分の5であり,この市場の顧客は,ハイテク製品に保守的である.キャズムは,そのような性質の異なる二つの市場の間に存在する大きな溝である.ハイテク製品を販売するベンダーは,この溝の両側にある市場の特徴に合わせてマーケティングを行わないと,初期市場を制しても,メインストリーム市場には進めない.

自分の位置づけは,初期市場を制するようなイノベーションを起こすことにあるので,キャズムと直接対峙するような場面には出くわさないと思うが,そのような視座を得ることができたという意味で本書は大変有益だった.キャズムという言葉は,ネット上の記事でよく目にしていたが,その原点となった本書を読むことで,以前よりは正確にこの言葉を使っていけるような気がする.本書では,ベル・カーブに登場する各顧客層の特徴やキャズムの越え方についても詳しく述べられている.自分としては,キャズムに直面するようなハイテク製品を何とか生み出せるように努めていきたい.

2012年5月2日水曜日

Windows 7の起動時に「Unable to open the service 'Tomcat6'」が表示される問題

Windows 7の起動時に「Unable to open the service 'Tomcat6'」が表示される問題に対する解決方法をメモしておきます.

  1. Tomcatの実行ファイルがインストールされたフォルダ(デフォルトだと多分ここ→「C:\Program Files\Apache Software Foundation\Tomcat 6.0\bin」)を開く.
  2. 「Tomcat6w.exe」をポイントして,右クリック.
  3. ポップアップメニューの「プロパティ」をクリック.
  4. 「Tomcat6w.exeのプロパティ」ダイアログの「互換性」タブをクリック.
  5. 「特権レベル」にある「管理者としてこのプログラムを実行する」のチェックボックスをクリック.
  6. 「OK」ボタンをクリック.
参考資料
[1] エラーが出た場合の対処方法 Unable to open the service 'Tomcat6'

2012年4月20日金曜日

IE9で開発者ツールを使うとスクリプトが正しく動作する問題

開発者ツールを起動したIE9と他のブラウザでは正しく動作するスクリプトが,開発者ツールを使う前のIE9だと異常終了してしまうという問題に遭遇してしまいました. 原因がわかったのでメモしておきます.

IE9では,「window.console」の値が一度開発者ツールを起動した場合とそうでない場合とで異なるようです. 一度開発者ツールを起動した場合,「window.console」の値をassert関数で表示すると,「[object]」となります. 一方,一度も開発者ツールを起動していない場合,その値は「undefined」となります.

スクリプト内に「console.log("hogehoge");」のようなコードがあると, 一度も開発者ツールを起動していない状態では,「undefined」な値を持つconsoleに対して,logメソッドを呼び出してしまうことになります. そのためにスクリプトが異常終了してしまうようです.

この問題はなかなか手強かったです.とにかく解決してよかった.

参考資料
[1] IE9では開発者ツールを起動しないと window.console は undefined だった

Moodleでadminのパスワードを忘れてしまったときの対処方法

Moodleでadminのパスワードを忘れてしまったときの対処方法をメモしておきます. 下記のコマンドを実行すると,adminのパスワードがmoodle-adminになります.
$ mysql -u root -p moodle
mysql> UPDATE `mdl_user`
SET `password` = '628879860f2d4b5815bbf726f45b3330'
WHERE `username` = 'admin';
mysql> exit
参考資料
[1] 管理者パスワードについて

MySQLでrootのパスワードを設定する方法

MySQLでrootのパスワードを設定する方法をメモしておきます.
$ mysql -u root -p
mysql> SET PASSWORD FOR root@localhost=PASSWORD('hogehoge');
mysql> exit
参考資料
[1] MySQLのrootパスワード設定

2012年3月4日日曜日

[読了]シェア

Rachel BotsmanとRoo Rogersのシェアを読みました.

Rachel Botsman, Roo Rogers, 小林 弘人(監), 関 美和(訳): シェア, NHK出版, 2010-12

本書の概要と感想をメモしておきます.

現代社会は,ハイパー消費一辺倒の状況からコラボ消費の比重が増す方向へ移行している.ハイパー消費とは,際限なく多くのリソースを消費することである.一方,コラボ消費とは,リソースをシェアして有効に活用することである.コラボ消費は,リソースを社会に優しい形で利用するだけでなく,個人の帰属や自己実現の欲求も満たす.そして,それらは社会の持続性や弱体化した社会資本の問題の解消に繋がる.コラボ消費が現代社会において受け入れられているのは,このためである.コラボ消費は,古来から連綿と続くものであって,現代特有のものではない.ただ,現代のコラボ消費の特徴は,同じ志向を持つ人々からなるコミュニティの形成や,効率的にシェアするためのシステムが,インターネットに代表されるテクノロジーによって実現されていることである.

本書の概要をまとめている絶妙のタイミングで,NHKが「ヒューマン なぜ人間になれたのか」という番組を放送していた.この番組によると,人類が人間になれたのは,シェアするという行為を獲得したからだそうだ.だから,今私たちが直面している状況は,一度は疎遠にしてしまったけれど,その価値に気付いて再び歩み寄っているといったところなのだと思う.ただ,その歩み寄り方は,以前のものとは異なっているようだ.寄り添う相手,価値を共有する相手は,物理的に近い人々だけではなないということである.オンライン上の人々も含まれているのである.このことが,現代社会で行われているシェアの大きな特徴だと思う.

2012年3月3日土曜日

[読了]マネジメント【エッセンシャル版】—基本と原則—

Peter F. Druckerのマネジメント【エッセンシャル版】—基本と原則—を読みました.

Peter F. Drucker, 上田 惇生(訳): マネジメント【エッセンシャル版】—基本と原則—, ダイヤモンド社, 2001-12

本書に対するコメントを以下に記します(やっと書けた).

現代社会が抱える問題や要求に対して,個人で対処する余地はまだ残されているものの,それらの大部分は一人の手に負えないレベルに達している.したがって,我々はそれらに対して組織で立ち向かう.組織とは,個としての人間一人ひとりに対して,また社会を構成する一人ひとりの人間に対して,何らかの貢献を行わせ,自己実現させるための手段である.本書では,そのような組織に成果をもたらすための機能,つまり,マネジメントに関する基本と原則が記されている.理解不足の感はあるが,誤解を恐れずそれらについて記してみると,まず,マネジメントの基本とは,組織を望ましい状態に置くこと,つまり,構成員を生かしながら,自ら掲げる使命を果たし,社会に貢献する状態に組織を置くことである.そして,マネジメントの原則とは,顧客への価値提供を最優先とすること,組織の目的と目標を明確化すること,責任と権限を適切に配置すること,そして,利益を追求することである(ここは追加・変更・削除するかもしれません).

今回,本書に通して得た一番の成果は,マネージャの資質とは何かを知り得たことである.それは真摯たることであるが,そうあるのはなかなか難しい.小規模ながらも一つの組織を預かってから10年以上になる.それらの年月を振り返ってみると,自分は真摯な姿勢でマネジメントをしていなかったことに気付かされた.果たして,マネージャの資質を得ることができるかどうかは分からないが,今後はそれを目指しながらマネジメントしていこうと思う.そういうわけで,今は自分の組織にとって顧客とは何かについて頭を悩ませている最中である.

DOCTYPE宣言

DOCTYPE宣言について以下にメモしておきます.

DOCTYPE宣言は,自身がどの文書型定義に従って記された文書であるのかを示すものです. 文書型定義ごとのDOCTYPE宣言は以下のとおりです.

HTML 4.01 Transitional
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
XHTML 1.0 Strict
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
HTML 5
<!DOCTYPE html>

DOCTYPE宣言では,公開識別子によりDTDの種類が,システム識別子によりDTDの保管場所が示されます.システム識別子の有無によりページの表示方法が変化するので,注意が必要とのこと.

参考文献
[1] 文書型宣言の意味

HTML5文書の基本構造

HTML5文書の基本構造をメモしておきます.

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8"/>
    <title></title>
</head>
<body>
</body>
</html>

参考資料
[1] HTML5, 1.8 A quick introduction to HTML
[2] HTML5 differences from HTML4, 2. Syntax