水無月ばけらのえび日記

bakera.jp > 水無月ばけらのえび日記 > 2011年のえび日記 > 2011年11月

2011年11月

2011年11月30日(水曜日)

robustな人材

公開: 2011年12月11日13時55分頃

こんな話が興味深いと思いました……「平松さんの支援集会で話したこと (blog.tatsuru.com)」。たいへん長いのですが、後半の「学力とは何か」以降の話が面白いです。

印象に残ったのはこのあたり。

子供たちを競争に追いやったり、格付けしたり、「グローバル人材」に育て上げたりすることが今われわれがなすべきことではありません。世界はほんとうに激動しているんです。新しい指導的なアイディアを世界中の人が求めている。

激動しているからこそ、すぐに使える技を身につけるのではなくて、もっと根本的なものを大事にしていく必要があるという話ですね。

「大学でも社会で即戦力になる人材を育成するべきだ」という主旨の議論を目にすることがありますが、そういう時に思うのが、大学は4年あるということ。大学1年生に対して社会の即戦力としての教育をするとなると、4年後に役に立つことを教えなければなりません。4年先に社会で何が必要とされているのかを見越した教育が必要になります。小中学校での教育を考えると、見通さなければならない未来はもっと先のものになります。

ビジネスマンがビジネスマンに向けてビジネスセミナーで語るのであれば、今この瞬間に役立つことを話すことに意味があるでしょう。しかし学校教育では、今この瞬間に「役に立つだろう」と考えていることが、子どもが社会に出たときに本当に役に立つという保証はありません。逆も然りで、役に立たないと思われていたことが、役に立つようになっているかも知れません。

それだけの時間が経つと、今までなかった新しい職種が生まれることもあります。Web業界はその典型でしょう。私が小中学生の頃には、「マークアップエンジニア」という職種は、名前はもちろん、HTMLというもの自体が存在していませんでした。

※SGMLはありましたが (ISO規格化されたのが1986年)、SGMLを書く人とは性質がだいぶ違うはずなので。

逆に、当時は隆盛を極めていたのに、今は廃れてしまったものもあるでしょう。変化は避けられないので、変化するということを前提に考える必要があります。

このような考え方は、ウェブアクセシビリティの世界にもあります。WCAG2.0では、ウェブコンテンツ技術が変化するということを前提にして、HTMLという特定の技術に依存しない形でガイドラインを規定するようになりました。同時に、4つの原則のひとつに "robust" というキーワードを挙げています。

Principle 4: Robust - Content must be robust enough that it can be interpreted reliably by a wide variety of user agents, including assistive technologies.

Guideline 4.1 Compatible: Maximize compatibility with current and future user agents, including assistive technologies.

以上、Web Content Accessibility Guidelines (WCAG) 2.0 W3C Recommendation 11 December 2008 より

現在のものだけでなく、将来のものも含めた、あらゆるブラウザや支援技術からアクセスできるように考える必要があるということです。小手先のギミックでアクセシビリティを担保しようとするのはよろしくない、というのはこのあたりの話ともかかわります。

"robust" は、そのまんま「ロバスト性」と訳されたりしますし、JISでは「頑健性」という訳語が採用されています。アクセシビリティもそうですが、人に関しても、「robustな人材」を育成することが必要なのではないかと思います。

関連する話題: Web / アクセシビリティ

安全なWebアプリを作りたければ新しいフレームワークがオススメ

公開: 2011年12月10日21時20分頃

こんな記事が……なぜPHPアプリにセキュリティホールが多いのか? 第44回 セキュリティ対策が確実に実施されない2つの理由 (gihyo.jp)

例えば,Railsの入力のセキュリティ対策はセキュアであるとは言えません。Railsのバリデーションは「データベースにデータが保存される前」に行われます。データベースにデータを保存する必要がないようなアプリケーションの場合,入力のバリデーションをフレームワークとして行う仕組みになっていません。本来入力はデータベース利用の有無に関わらず入力を受け入れた直後に行うべきです。多くのフレームワークがRailsの影響を受け同様の仕様となっています。Railsが脆弱な仕様を採用したことは不幸なことだったと思います。

……。

まず、バリデーションはセキュリティのためにする処理ではありません。たまたまセキュリティの役に立つこともありますが、役に立たないこともあります。たとえば、問い合わせフォームに本文の入力欄があり、任意のテキストが入力できて、DBにはText型 (任意の長さの任意のテキスト) として保存するとましょう。この場合、空欄だとエラー、という程度のバリデーションしか行われないはずです。長すぎるデータを蹴る場合もありえるでしょうが、いずれにしてもセキュリティの役に立つ処理ではありません。

どんなバリデーションが行われるのかは、単に仕様によります。任意のテキストを許す必要があるなら、' (単引用符) だろうとでも < (小なり) だろうと入力させなければなりませんし、エラーにしてはいけません。セキュリティの観点から勝手なバリデーションをすると、そういった文字が入力できない残念なシステムになってしまいます。

逆の言い方をすると、バリデーションを行っても、それはインジェクション系の脆弱性への対応とはならないということです。数値のみを入力させる場合などは対策にもなり得るのですが、それはたまたまですので、バリデーションとは別途に考えなくてはなりません。題名の「セキュリティ対策が確実に実施されない理由」という観点で言うなら、バリデーションをセキュリティ施策の一環だと誤解している人がいる、ということが理由のひとつではあるでしょう。

それはさておき、なぜかRailsが叩かれているので、Railsの話を少し。

RailsにはActiveRecordというものがあります。これはDBのカラム名や型を見て、自動的にモデルクラスを作ってくれるというものです。逆に言うと、DBに保存しないデータはActiveRecordでは扱えません。

ActiveRecordのバリデーションの仕組みは優れているので、DBに保存しないデータも同じようにバリデーションしたい、というニーズはあります。ただし、これはセキュリティとはあまり関係なく、単に同じように扱いたいという動機であることがほとんどでしょう。古いRailsではこれが大変で、いろいろ頑張ってActiveRecord::Baseを拡張したクラスを独自に作ったり、かなり面倒なことをしていました。

そして、おそらくそう思った人が多かったからでしょう、Rails3ではActiveModelというクラスが追加されて、お望みのことが簡単にできるようになりました。古いRailsもべつに脆弱というわけではないと思いますが、DB由来でないデータもバリデーションしたい場合はRails3をオススメします。

※もし「バリデーションのタイミングが気に入らない、入力直後に常にやるべき」という話であれば、before_filterでvalid? メソッドを呼ぶようにでもすれば良いのではないでしょうか。特に意味はないと思いますが、やりたければ。

Viewヘルパーを利用すれば安全,と考えるのは危険です。Railsアプリケーションのソースコード検査も仕事でしていますが,Railsで開発している方でもViewヘルパーがすべてのパラメータをエスケープ処理してくれないことを知りません。これはRailsだけの問題でなくすべてのWebアプリケーションフレームワーク共通の問題だと思ってください。

「Viewヘルパーがすべてのパラメータをエスケープ処理してくれない」というのは、何を言われているのか良く分かりませんでした。Viewの中で変数を出力する際にHTMLタグなどがエスケープされない、という話をされているのでしょうか?

昔のRailsでは、Viewに <%= var %> のように書くと、値はそのまま出力されていました。エスケープしたい場合は <%=h var %> のように書く必要があります。つまり、ヘルパーメソッド h() を呼ぶ必要があります。

逆に言うと、h() さえ呼べば、ほとんどの場合は問題ありません。問題が起きるのは、属性値に引用符を付けていないとか、単引用符で括ろうとしているとか、JavaScriptのコードを出力しているとか、javascript:で始まるURLが入力できるとか、そういった限定的な状況だけです。通常は単に h() を呼べば良いだけです。ただ、h() を書き忘れることはあるので、そういう意味では注意が必要ではあるでしょう。

……というのは古いRailsの話で、Rails3では h() を呼ばなくてもデフォルトでエスケープされるようになりました。エスケープせずに出力したい場合は、明示的に <%=raw var %> と書く必要があります。というわけで、Rails3の方がXSSを避けやすくなっています。

Rails以外で言うと、ASP.NET4では <%: var %> のように書くとデフォルトでエスケープされます。以前、安全なテンプレートシステムはあるのかという話で「2種類のデータがどちらも同じ string 型なのがややこしさの元」と書きましたが、.NET4にはHtmlStringという型があって区別できるようになっています。エスケープなしで出力する場合は、HtmlString型の値を渡すとそのまま出力されます。

ASP.NET MVC3で使われるRazorも同様で、デフォルトではエスケープされ、HtmlString型を渡すとそのまま出力されます (HtmlStringのコンストラクタを呼ぶかわりに、「@Html.Raw(foo)」と書くこともできます)。

そんなわけで、新しめのフレームワークでは、Viewでの変数出力はエスケープされるのがデフォルトになってきています。結論としては、安全なWebアプリケーションを作りたければ、新しめのフレームワークを使うのがオススメ、ということで。

※ただ、PHPのフレームワークがどうなっているのかは良く知らないのですが。PHPに詳しい大垣さんが「すべてのWebアプリケーションフレームワーク共通の問題」と言われているということは、PHPのフレームワークはまだ駄目なのでしょうか……?

関連する話題: Web / セキュリティ / クロスサイトスクリプティング脆弱性

傍聞き

公開: 2011年12月10日1時0分頃

読み終わったので。

これは面白かったです。4つの短編からなるのですが、どれも見事です。ミスリードもうまいですし、伏線の張り方、回収の仕方も素晴らしく、全てが一気に収束してぱっとパズルが完成するようなカタルシスが得られます。

表題作「傍聞き」も良かったですが、いちばん印象に残ったのは、最初の「迷走」。救急車に乗務する救急救命士の話なのですが、娘の仇と思われる人物を救急車に乗せ、病院に着く直前で何故か方向転換――という話。その理由が明らかになったところでちょっと泣きそうになってしまいました。読み直してみると、意味不明と思えた言動も実は最初から一貫した行動になっていて、ミスリードの巧みさに驚かされます。

短くて軽く読めますし、かなりオススメできる作品です。

傍聞き (双葉文庫)

関連する話題: / 買い物

2011年11月29日(火曜日)

ゼルダの伝説 スカイウォードソード 終盤へ

公開: 2011年12月7日0時55分頃

ゼルダの伝説 スカイウォードソード (www.amazon.co.jp)」、引き続きプレイ中です。

おそらく終盤に突入。

中盤のボスにだいぶ難儀しました。特にイカ。まず、通常の攻撃は効いていないように見えて、そこまでは良いです。で、スカイウォードを当てると、ずばっと音がして触手が引っ込むわけです。こういう挙動をされると、スカイウォードでダメージが通っているように見えるのですね。しかし実際には縦斬りのスカイウォードはダメージになっておらず、延々30分戦っても終わらないというひどいありさま (しかもどこかで見たような光景)。

結論としては横切りのスカイウォードを当てれば触手が一発で斬れるのですが、そもそもスカイウォードを横切りで出せるということ自体知らなかったという……。ダメージが通っていないならいないで、そう分かるようにしてほしかったです。

正直なところ、「難しい」というよりも「面倒くさい」という印象のボスが多いです。ボスの攻撃は結構見切れるので、こちらは長期戦に耐えられます。倒し方さえ分かれば実行するだけです。ただ、倒し方が分かっても、それを正確に実行できるかどうかは別の問題です。横斬りでないと駄目と分かっていても縦斬りになってしまったりとか、突きを出せば良いと分かっていても斜め切りになってしまったりとか。リモコンをタイミング良く特定の方向に正確に振ることが求められるので、そんなに簡単な話ではありません。特にボス戦では焦りのせいか、リンクが思うように動いてくれないことが結構多いです。

いや、実際は、焦らなくても良いように設計されているのですね。リモコンを素早く振ったりする必要もなくて、むしろゆっくりやらないと駄目な場合が多いです。ギラヒムへのフェイントなどが典型例で、素早くやろうとするとフェイントが効かずに30分も決着がつかなかったりします。と、分かっていれば語れるわけですが、これは結果論です。初見のプレイヤーにはそんなことは分からないので素早く振ろうとするに決まっていますし、初見のボスにそんなに冷静にゆっくり対応できるわけがありません。

逆に言うと、2周目なら冷静に対応できるはずなので、かなり楽なプレイになるかも知れません。ボス撃破後にヒント映像を見ているというのも大きいです。

※……ちなみにこのヒント映像、基本的にスカイロフトでしか見られないので、ボス戦のヒントを見ようと思ったら負けた後にものすごく面倒な空の往復が必要になります。普通の人は撃破前にわざわざ見に行ったりしないと思うので、勝った後で見る感じになるでしょう。

まあ要するに、今までのゼルダ以上に、ボス戦でもプレイヤーの知識が重視される構成になっているということです。

関連する話題: ゲーム / Wii / ゼルダ / ユーザビリティ

2011年11月28日(月曜日)

「科学的思考」のレッスン

公開: 2011年12月4日23時50分頃

読み終わったので。

二部構成になっていて、前半では科学的な思考法について、後半では原子力発電の話を交えつつ「リテラシー」の話が展開されます。後半は、どちらかというと一般市民と科学との付き合い方という観点で、コミュニケーションの話に近いです。「もうダマされないための「科学」講義 (www.amazon.co.jp)」と似たようなテーマの本だなあと思ったら、巻末で

何がショックといって、自分の本の校正をしているときに、よく似たねらいの、しかもよくできた本が先に出ることくらいショックなことはないです。

以上、p287 より

と、紹介されていますね。

興味深く思ったのは後半の方です。「もうダマされない……」にもトランス・サイエンスという言葉が出ていましたが、こちらでも同じ概念が紹介されています。ページ数を多く割いていることもあって、整理の仕方はこちらの方が分かりやすいと思いました。

トランス・サイエンスの問題は、大きく次の三種類に整理できます。

(1) 知識の不確実性や解答の現実的不可能性のせいで解決できない。

(2) 対象がそもそも不確実な性質をもつために解決できない。

(3) 価値判断とのかかわりが避けがたいために解決できない。

原発事故に関して生じている問題にはこの全ての特徴が当てはまるでしょう。

以上、p199 より

それから印象に残ったのはこのあたりの表現。

必要なのは、「科学がどういうふうに進んでいくのか」「科学がどういうふうに政策の中に組み込まれているのか」「科学はどんな社会的状況が生じたら病んでいくのか」についての知識です。原子力発電の場合もそうです。

以上、p210 より

科学は自分たちとは関係ないよ、という態度では駄目だし危ないという話ですね。それから、最も印象に残ったのはこのくだりです。

この方は、さらに「でも、これだけ安全ですよと言っても、安心とは別ですからね」とおっしゃいました。いくら科学的には安全だと言っても、皆さんは安心できませんよね、ということです。ずいぶん物わかりのいい言い方ですが、これはまさに、安心とは心の問題である、科学的安全性と、安心は別問題です、と言っているわけです。

以上、p254 より

「科学的には安全」という言葉を一方的に繰り返しても意味がないと。単に正しいというだけでは駄目で、何が求められているのかを考えることも含め、コミュニケーションの仕方が重要だということですね。

「科学的思考」のレッスン 学校では教えてくれないサイエンス (NHK出版新書)

関連する話題: / 買い物 / 科学 / 原子力

2011年11月26日(土曜日)

よつばと! 11

公開: 2011年12月4日23時15分頃

よつばと! 11巻! 出ました!

しまうー! しまうーじゃないですか! しまうーが出ただけで満足ですが、全体的に素晴らしい面白さ。うどん、ピザ、栗と食べ物の話が結構多めですがことごとく面白いです。やんだが実はけっこう良い人っぽかったりとか。

あとはやっぱりジュラルミン水没事件ですね。鳴く機能があったとか、読んでいる方も忘れていましたよ。

よつばと! 11 (電撃コミックス)

関連する話題: マンガ / 買い物 / よつばと!

2011年11月25日(金曜日)

ゼルダの伝説 スカイウォードソード UI関係のメモ

公開: 2011年12月4日22時45分頃

ゼルダの伝説 スカイウォードソード (www.amazon.co.jp)」、引き続きプレイ中です。

中盤は過ぎたと思うので、このあたりで主にUI関係のメモなどを。

アイテム選択

アイテム選択は使いやすいような、そうでもないような。アイテム選択画面を出している間も時間は止まらないので素早く選択する必要がありますが、けっこう戸惑う場合があります。リモコンを傾けて選択するのですが、リモコンは普段、剣を向けている方向に傾いているので、デフォルトで選ばれるアイテムは剣が向いていた方向のものということになります。要するに、デフォルトはランダムになってしまっているということです。あらかじめ狙って選ぶのは、よほど慣れないと難しいと思います。

Bボタンを短く押すと選択済みアイテムを再使用できるのですが、戦闘中に焦っているとどうしても強く長く押してしまうので厳しいです。

社長が訊く (www.nintendo.co.jp)で言われていた「ヒモ付き」の仕組み自体は良くできていると思います。画面上に選択するべきボタンが8つしかないなら、そのボタンの外側の範囲にポインタが動く必要はないわけです。ただ、PCだと全画面表示のアプリにしか適用できないので、あんまり参考にはならないかも。

ポーチアイテム選択

「-」ボタンを押してリモコンを傾けるとポーチアイテムを選択できます。ポーチには盾やビン (主に回復の薬) が入っているのですが、盾は非戦闘時に装備しておけばヌンチャクでいつでも使えるので問題ありません。

問題は薬。ポーチアイテムの選択の仕方はBボタンアイテムと似ているのですが、薬を選んだ後はAボタンを押して使用する必要があります。Bボタンのアイテムを使うときはAを押すという操作はないので、Bボタンのアイテムと似ていながらも異なる操作になっています。

薬は滅多に使わないのですが、ピンチの時は急いで使う必要があります。急いでいるときに薬を選択すると、どう使えばいいのかとっさに分からなくて死ぬことが結構あります。薬ビンを持った状態は盾も構えていなくて無防備です。薬を飲むときは走って逃げながら飲む必要があるのですが、逃げ場がなかったりすると薬を飲めずに死ぬことが良くあります。

たぶん慣れれば大丈夫なので、薬を飲む練習をしておくと良いかも知れません。:-)

大空

鳥に乗って空を移動するシーンが何度もあるのですが、この操作がなかなか厳しいです。羽ばたいて上昇、リモコンを前に傾けると下降しながら滑空してスピードアップ、なのですが、このスピードアップの操作が大変。そもそも、リモコンを前に傾ける動作は人間工学的に無理があるのか、手首がつらいです。それを維持するとなるとかなり大変で嫌になってきます。

しかも、この空の移動が何度も何度もあります。最初は気持ち良いのですが、同じ経路を何度も往復するとなるとすぐに飽きます。

ボス戦の前で回復の薬を使い果たしてしまった……という場合、薬を補給しに戻りたいわけですが、薬を売っている店は空の上のスカイロフトにしかありません (空の上が拠点で、他の店もそこにある)。ダンジョンの中のセーブポイントからは一瞬でダンジョン外に脱出できますし、外のセーブポイントからは一瞬で空に戻れるのですが、空からスカイロフトまではわざわざ飛ぶ必要があります (加速できるポイントなどもあるのですが、やっぱりある程度は飛ぶ必要がある)。

この、空を飛んで戻るのがとにかく面倒に感じてしまって厳しいです。空の道中で敵と戦ったり、という要素もほとんどありません (たまに申し訳程度にルピーをぶら下げたカラスが飛んでいる程度はありますが、相手にするより無視した方が明らかに早い)。行きに飛ぶ必要があるのは良いとして、戻るときはワープする方法があっても良かったのではないでしょうか。

関連する話題: ゲーム / Wii / ゼルダ / ユーザビリティ

2011年11月24日(木曜日)

ゼルダの伝説 スカイウォードソード Wiiモーションプラスを使ったバクダン転がし

公開: 2011年12月4日21時55分頃

ゼルダの伝説 スカイウォードソード (www.amazon.co.jp)」、引き続きプレイ中です。

実は、このソフトを買った理由のひとつは、アイテム選択画面を試してみたかったから。

画面を見なくても、アイテムがある角度にWiiリモコンプラスを傾ければ、アイテム選択ができるようになったんです。

(~中略~)

あと、もうひとつ重要なポイントがあって、アイテム選択画面には指のアイコンが表示されるんですけど、それにヒモが付いてるんです。

以上、社長が訊く『ゼルダの伝説 スカイウォードソード』 第1回:「Wiiモーションプラスがもたらした新操作」篇 より

こういう新しいユーザーインターフェイスには興味があるので買ってみたというわけです。まだアイテムがそんなにたくさんないので、このあたりが実際どうなのかはまだ何とも言えませんが。

ところで、今気になっているのはこちらの話。

それにバクダンも、Wiiリモコンプラスを上に向けて振ると、上から投げることができて、下に向けて振ると転がすこともできて、しかも、回転もかけられたりするんです。

以上、社長が訊く『ゼルダの伝説 スカイウォードソード』 第1回:「Wiiモーションプラスがもたらした新操作」篇 より

2番目の大地である「オルディン火山」をクリアするためには、バクダンを転がすテクニックが必須です。しかし、これがなかなか難しい。そもそも、座ってプレイしていると、転がすアクションをしようとしてリモコンを下に向けたら床についてしまうわけです。バクダンを転がす必要がある場合は立ってプレイしろというのでしょうか。いやまあ、膝立ちでも大丈夫ですが……。

しかもバクダン花は早く転がさないと爆発してしまうので、立つ→リモコンを下向きに構える→転がす、を素早くやる必要があってかなり大変です (バクダン袋入手後は転がし始めるまで火がつかないので大丈夫)。

関連する話題: ゲーム / Wii / ゼルダ

2011年11月23日(水曜日)

ゼルダの伝説 スカイウォードソード

公開: 2011年12月2日14時40分頃

今日はゼルダの発売日ですよ。というわけで以下2点を購入。

今回のゼルダはWiiモーションプラス対応なので、通常のWiiリモコンだけではプレイできません。WiiリモコンにWiiモーションプラス (www.amazon.co.jp)を取り付けるか、あるいはWiiモーションプラスの機能を内蔵した「Wiiリモコンプラス」を使う必要があります。

Wiiモーションプラスをつけるとリモコンが長くなってしまって明らかにダサいので、Wiiリモコンプラスを購入。

実はWiiリモコンプラスを同梱した25周年記念パック (www.amazon.co.jp)というものも存在するのですが、リモコンが金色というのがちょっと抵抗があります。それ以前に、そもそも完売していて買う余地がなかった (予約もずっと前に終了していた) ので、普通にWiiリモコンプラスのシロを購入しました。同梱版と比べてコストパフォーマンスが非常に悪いのですが、仕方ありません。

※これにより手元のWiiリモコンがひとつ余ったので、会社に置いておいてマリオ3人プレイができるようにしたいと思います。

とりあえずプレイ。チュートリアルは親切でそんなに迷いませんが、操作はけっこう難しい……。リモコンを傾けて操作するのがとても苦手です。あと、思ったように剣が振れなくて、封印の地で最初に出会ったデクババに殺されました。orz

それから、ギラヒム! 攻撃がほとんど通用せず、まぐれ当たりのダメージ蓄積でひたすら頑張って30分くらい戦った挙げ句、やっと勝ったと思ったらモードチェンジされてあっさり殺され、最初からやり直しに。その間こっちはずっとリモコンをガンガン振っていたわけで、もう肩で息をしている感じなのですが。

2戦目では突きを出そうとして、その突きがギラヒムには当たらずに、テーブルの上の湯飲みに直撃。湯飲みはひっくり返るわ、手は痛いわでさんざんな目に逢いました。ギラヒム戦の際にはテーブルの上は片付けておきましょう!

関連する話題: ゲーム / Wii / ゼルダ

2011年11月22日(火曜日)

孫正義はiPhoneのためにボーダフォンを買収した

公開: 2011年12月2日13時50分頃

こんな記事が出ていますね……「アホだと思われるのがベストの戦略」孫正義インタビュー(前編) (business.nikkeibp.co.jp)」。

興味深いのはこのあたり。

―― つまり携帯に参入するにあたり、将来の「iPhone」というものの像が見えていたわけですか。

孫:もちろんそうです。そうでないとやみくもに2兆円のばくちは張れないですから。要するに勝負できる、勝てる構えをつくってから、少なくとも頭の中にそういうシナリオがあってからじゃなければ動きません。ただ単に料金を安くしますとか、広告宣伝をうまくやるというのは戦術のレベルでしょう。戦術だけでは短期的な勝負はできても大きなばくちはできないですよね。

以上、「アホだと思われるのがベストの戦略」孫正義インタビュー(前編) より

時系列としては、ソフトバンクによるボーダフォンの買収が発表されたのが2006年3月、AppleがiPhoneを発表したのが2007年1月、日本での発売が2008年7月、という順番です。ボーダフォン買収はiPhone発表よりも前の出来事ですが、このとき既にiPhoneの将来像が見えていたということですね。まだ発表もされていない、詳細も分かっていないiPhoneのために、2兆円を使ってボーダフォンを買収したというのは素直にすごいと思います。

※ADSLもそうですが、他の人が思い至っていない未来像のようなものを見るのがうまいのでしょうね。

関連する話題: iPhone

2011年11月21日(月曜日)

ITシステム導入の失敗

公開: 2011年11月27日13時40分頃

こんな記事が……「「IT中毒」の会社が陥る会議漬け [14]仕事を減らしたくない事務方が導く無限ループ (business.nikkeibp.co.jp)」。

本当は必要か不要なのか分からないのに、ITを導入検討したくなる人たちがいる。それが、いわゆる「事務方」と呼ばれる人たちだ。企画部や社長室といった、企業の事務方部門はIT化の検討、導入サポート、お守りをするのが仕事の大半を占めていたりする。最初はそのつもりがなくとも、結果的にそのようになっているケースが多々あるのである。

私もIT企業に勤めていたのでよくわかる。IT企業の営業がターゲットにしている部門は、まさにこういった企業の「事務方」である。彼らは事務方部門に出入りし、営業攻勢をかけて、多額なシステムの導入を検討してもらっているのだ。

なぜ経営者は使えない情報システムを採用するのか」という話がありましたが、同じことを別の方向から見たような感じの話ですね。

本来は「業務を効率化しようとしたらシステムが必要になった」という流れであるはずで、そういうニーズもないのに「システムを導入すれば業務が効率化されるはず」という話になってしまうと、高確率でプロジェクトは迷走します。

これはCMSも同じです。「どういう体制でサイトを運営したいのか」という構想があった上でCMSが必要になって導入する、というのなら問題ありません。しかし、世には「CMSを入れる」ということが目的化してしまっているプロジェクトが結構あります。そういうやり方をすると、導入時の開発プロジェクト自体が迷走してCMSの品質が低下したり、結局のところ現場の満足度が低かったり、といったことになりがちです。

何事も、目的をしっかり認識することが重要ということだと思います。そして時には、目的に必要のないシステムをバッサリ捨てる覚悟も必要でしょう。

関連する話題: Web / システム開発 / 思ったこと / クラウド / 経営

2011年11月18日(金曜日)

事実の説明と結果の理解

公開: 2011年11月24日15時30分頃

PSNのトロフィー問題で、こんな記事が……「「ソニー、PSNプレイ情報の公開問題について謝罪。規約変更で対処 (japanese.engadget.com)」。

ポイントは末尾部分でしょうか。

そもそもの問題は 「いつどんなゲームをどの程度遊んだ」や「どのジャンルの番組を好んで視聴している」といった情報の公開について、「嫌なら使うな」以前に嫌かどうか自覚して選択する機会が与えられず、ウェブ公開に至っては規約を読み込んでも書いていなかったこと。規約に書かれた範囲を超えて公開していたのは論外として、利用者が明確な説明を受けた上で選択する仕組みがほしいところです。

「利用者が明確な説明を受けた上で選択する仕組みがほしい」というのはその通りだと思います。「嫌なら買わなければ良い」というようなコメントをされる方もいるようですが、実際、知っていたら買わなかったという人もいるでしょう。そういう人が正しく「買わない」という選択をできるようにしなければなりません。重要なのは「明確な説明」というところで、利用者がきちんと理解できるようにする必要があるということです。

しかし思うに、利用者に伝わるように説明するというのは、それほど簡単なことではないかもしれません。というのも、単に事実を事実として伝えるだけでは、何が起きるのかを正確に理解できない場合があるからです。

たとえば、今回改訂されたPSNの規約では、トロフィーについて以下のように言っています。

SCEは、PSNのサービスの提供およびPSNのサービスにおけるユーザー体験を向上させる等の目的のために、オンラインID、自己紹介等のアカウントに関連する情報、トロフィー情報およびお客様のゲームプレイに関係した情報(レベル、ランキングなど)を含む一定の情報を公開することがあります。

以上、利用規約 より

「トロフィー情報および……関係した情報(レベル、ランキングなど)を含む一定の情報を公開」という表現です。この表現は嘘ではないのでしょうが、しかし、これを読んで「トルネのトロフィー情報から分かること」に書いたようなことがイメージできるでしょうか。「トロフィー情報が公開される」と言われただけで、「ある時刻にPS3でゲームをプレイしていたことが分かってしまう場合がある」というところまで理解できる人は多くないと思います。実際、私も自分のトロフィー情報を分析してみて初めて気付いたようなところが大きいです。

余談ですが、「事実を説明されても、それがどんな結果をもたらすかまでは理解されない場合がある」という現象は、この話に限ったことではありません。セキュリティ問題の説明の際にもそういう話が良くあって、昔はXSSでさえも「だから何なの?」というような反応が多かったわけです。事実を事実として説明すれば伝わるはず、という期待はけっこう当たらない場合があるので、気をつける必要があるでしょう。

規約改定は規約改定で必要だととして、それとは別にきっちりと説明することが必要になるのではないかと思います。

関連する話題: セキュリティ / プライバシー / PS3 / PlayStation Network

2011年11月17日(木曜日)

PS3トロフィー問題でPSN規約改訂

公開: 2011年11月20日23時20分頃

PS3のトロフィーが公開されている話ですが、SCEからこのようなお知らせが出ましたね……「2011年11月17日 PlayStation®NetworkおよびPlayStation®Homeオフィシャルサイトをご利用中のお客様へ重要なお知らせ (www.jp.playstation.com)」。

この考え方に基づき、PSNの利用規約にて、ユーザーの皆様のゲームプレイに関係した情報は他のPSNユーザーの皆様に提供させていただくことがある旨ご案内しておりますが、PSNユーザー以外の方への情報の提供につきましては、明確な記載がございませんでした。また、『torne(トルネ)™』のトロフィー情報が、ゲームのトロフィー情報と同様に運用されることについての説明も、不十分であったと認識しております。このことにより、一部のユーザーの皆様に混乱を与えてしまう結果となりましたことを真摯に受け止め、お詫びします。

「一部のユーザーの皆様に混乱を与えてしまう結果」というのは良く分かりませんが、ともあれ問題があることを認められた形ですね。

そして、規約を実態に合わせる形で改正。

PSNの利用規約につきましては、ユーザーの皆様によりわかりやすくご理解いただけるよう、情報の公開にかかわる「1.アカウント作成」および「10.情報公開」を見直しのうえ、本日付で改訂いたします。詳細につきましては、下記サイトのリンクにてご覧いただけます。

http://www.jp.playstation.com/R/psn_kiyaku

規約の改訂だけで対応? ……と一瞬思いましたが、今後の対応も検討されているそうで。

また、ユーザーの皆様のゲームプレイに関係した情報の開示の可否につきましても、個々のユーザー様のご希望に応じて選択いただけるような仕組みを、将来の新サービスの導入時やシステムソフトウエアアップデートを通じて提供することを検討してまいります

「検討」という表現ではありますが、まあ、さすがに規約だけで済ませるということはないでしょう。書かれている内容を見るに、非表示にできる機能を追加したり、ユーザーに分かりやすく表示したりする対応が必要だと考えられているように思えます。

ただ、そのような表示や機能の追加はすぐには実装できないので、ひとまず、今すぐできる規約変更だけを済ませたのでしょう。非表示にする機能を追加するとしても、規約に「表示されることがある」という内容が含まれていないとまずいわけで、この改訂はいずれにしても必要になります。

近いうちに何らかの対応がなされるものと思いますので、期待して待ちたいと思います。

関連する話題: セキュリティ / プライバシー / ゲーム / PS3 / PlayStation Network

Self-XSSはブラウザの脆弱性か

公開: 2011年11月20日20時20分頃

こんな記事が……「Facebookの問題画像の氾濫はWebブラウザの脆弱性に原因か? (www.itmedia.co.jp)」。

Facebookはメディアに寄せたコメントで、この攻撃にはWebブラウザの「self-XSS」の脆弱性が悪用されたとの見方を明らかにした。

(~中略~)

今回の攻撃ではユーザーが不正なJavaScriptをWebブラウザのアドレスバーにコピー&ペーストするよう仕向けられたとされる。現時点で、どのWebブラウザが影響を受けるのかは分かっていない。

ブラウザのアドレスバーにjavascript:で始まる文字列をコピーさせてスクリプトを実行させるという話ですが、これ、ブラウザの脆弱性なのでしょうか。ユーザーが自らコピーして実行してしまうのではどうしようもないような……。

……と、思ったら、実は最近のブラウザではけっこう対策されているのですね。たとえばIE9の場合、

javascript:alert(document.cookie)

……という文字列をアドレスバーにコピーしても、

alert(document.cookie)

という文字列がペーストされます。つまり、頭の"javascript:"が取り除かれます。このままEnterを押してもスクリプトは実行されず、検索されることになります。手動で頭にjavascript:と打ち込むことはできて、そうするとスクリプトが実行されます。

というわけで対策されているのですが、攻撃者には「javascript:と入力してからコピーしてください」という指示をする余地もあるので、この対策で万全なのかと言われると微妙なところです。

ではFirefox8ではどうかと思って試してみると、こんな力強いメッセージが。

javascript: and data: URIs typed or pasted in the address bar are disabled to prevent social engineering attacks.

Developers can enable them for testing purposes by toggling the "noscript.allowURLBarJS" preference.

これはおそらく、手元のFirefoxに拡張の「NoScript」を入れているために出ているのでしょう。手入力だろうと何だろうと力強く警告されて全く動作しません。書かれているように、設定でこの機能を無効にできるようですが、それをしない限り鉄壁のディフェンスです。

そんなこんなで、対応方法はあると言えばあるというわけですね。しかし、こういう対策が実装されていないからといって、それがブラウザの脆弱性と言えるのかどうか、なかなか微妙なところではあります。

※個人的には、javascript:document.cookieをアドレスバーに入れてCookieを操作したいときが結構あるので、まったく使えないとそれはそれで困ったりもします。

関連する話題: Web / セキュリティ / UA / IE / Firefox

2011年11月16日(水曜日)

スーパーマリオ3Dランド タイムアタックの世界へ

公開: 2011年11月20日2時55分頃

スーパーマリオ3Dランド (www.amazon.co.jp)、最終鬼畜面を含む全コースをクリアしたわけですが、まだプレイ熱が冷めず。

何をやっているかというと、タイムアタックです。

今回のマリオには「すれちがい通信」の機能があって、アイテムがもらえたり、ミステリーボックスが交換できたりします。が、アイテムがもらえても、たいして嬉しくありません。アイテムが欲しかったら、W1-1(最初の面)やS1-1(最初の裏面)で木の葉を2枚取ってくれば、それでフル装備です。ミステリーボックスの交換は、スターメダルがもらえるというメリットがありますが……これも、スターメダルがそんなにたくさんあっても特に意味がないので、そこまで重要なわけでもありません。

というわけで、マリオのすれちがい通信にはあまり意味がない。……そう思っていた時期が私にもありました。

実は、マリオのすれちがい通信にはもうひとつ、隠し機能があります。それは、コースのクリアタイムを交換できるというもの。タイムが表示されるようになるのはクリア後からなので、取説には書かれていない隠し機能になっているものと思われます。まあ、隠しと言っても、「社長が訊く」で発売前から明かされていた仕様ではあるのですが。

ノーマルエンディングをクリアすると、タイムアタックモードがオープンになって、すれちがった人の中から「自分の実力に合った人」のタイムが見られるようになっています。同じくらいのレベルの人と切磋琢磨し合って、タイムを縮めるという遊びが楽しめます。

以上、社長が訊く『スーパーマリオ 3Dランド』 開発スタッフ篇 3. 気がついたら3Dマリオで遊んでいる より

タイムを交換するためには、クリア後の人とすれ違う必要があります。すれちがいを始めたころはクリアした人が少なかったためか、あまり早い人はいませんでした。しかしここ数日、かなり頻繁にクリア後の人とすれちがうようになって、良いタイムが入ってくるようになりました。

タイムが交換されると、自分のタイムとライバルのタイムが交互に表示されるようになります。そして、早い方のタイムが黄色で、遅い方のタイムが白で表示されます。すれちがい通信をしていると、ふと気付いたときに、「いつのまにか自分のタイムが白になっている」という現象が発生することになります。

私はタイムアタックにはそんなに興味がない、つもりでしたが……こんなふうに演出されると、やっぱりタイムを更新してライバルに勝ちたくなるわけです。そんなわけでここ数日、コース選択画面をうろつき、自分のタイムが白くなっているところを発見しては、それを黄色にするという作業に没頭していました。簡単に更新できる場合もありますが、なかなか更新できない場合もあって、けっこうアツいです。

今までも、ランキングでプレイヤー同士が競えるようなゲームはありました。しかし、その手のランキングでは、上位プレイヤーは全く手が届かない高みにいて、自分には関係ない世界だと思ってしまいがちでした。

すれちがい通信の場合、ライバルはプロのゲーマー (?) ではなく、単に自分の近くを通りがかった人です。なので、なんとなく倒せそうな気がするのですね。そして実際、けっこう簡単に勝てたりします。これは、あえて「最も早い人」ではなく「自分の実力に合った人」のタイムを表示しているからなのでしょう。

タイムを全部更新して安心していても、またいつの間にか更新されていたりします。この演出のため、すれちがう度に、手の届きそうな範囲で少しずつ世界が広がって行きます。

表面をクリアすると、「ここからが本番」とばかりに裏面が出ます。そして全コースをクリアすると、ここで初めてタイムが気になり始めて、タイムアタックの世界がやってくるわけです。そして、そのタイムアタックの世界は、すれちがう度に際限なく広がっていく……。

つくづく奥が深いゲームだと思います。

関連する話題: ゲーム / 任天堂 / ニンテンドー3DS / スーパーマリオ3Dランド

2011年11月15日(火曜日)

コンテンツをアクセシブルにするのか、アクセシブルなコンテンツを作るのか

公開: 2011年11月19日22時30分頃

アクセシビリティ系の飲み会で、JIS X 8341-3:2010の7.2.4.10「セクション見出しに関する達成基準」の話で盛り上がったり。

達成基準の内容はこんな感じです (規格票から引用)。

セクションの見出しを用いてコンテンツを体系化していなければならない。

注記1 ここでいうセクションとは,ユーザインタフェースコンポーネントのまとまりではなく,一つ以上の関連するトピック又は考えを扱う自己完結的なコンテンツの一部であり,文書におけるセクションを意味している。なお,セクションは一つ以上の段落からなり,グラフィック,表,リスト及びサブセクションを含む。

注記2 ここでいう見出しは一般的な意味で用いられており,タイトル及び様々なタイプのコンテンツに見出しを付加するその他の手段を含む。

注記3 この達成基準は,ユーザインタフェースコンポーネントについてではなく,文書におけるセクションについて述べている。ユーザインタフェースコンポーネントについては,7.4.1.2 を参照する。

注記4 この達成基準は,等級AAA の達成基準である。

以上、JIS X 8341-3:2010 7.2.4.10 セクション見出しに関する達成基準 より

この解説が、「セクション見出し:達成基準 2.4.10 を理解する (waic.jp)」。

この達成基準がレベル AAA になっているのは、すべての種類のコンテンツには適用できないのと、見出しを挿入することが常に可能であるとは限らないからである。例えば、既存の文書をウェブで公開する際、その文書の作成者が付けなかった見出しを挿入できないことがあるからである。あるいは、長い手紙には様々なトピックが書かれていることが多いが、手紙に見出しを付けるととてもおかしくなってしまう。しかし、文書を見出しの付いたセクションに分けることができるのであれば、文書は理解しやすく、ナビゲートしやすいものになる。

以上、セクション見出し:達成基準 2.4.10 を理解する より

で、この関係の話でいろいろ盛り上がりました。議論の中身は割愛しますが、私がポイントだと思ったのは「既存の文書をウェブで公開する際……できない」という話。逆に言うと、「既存の文書」ではなくウェブ用に文書を作成する場合は、見出しを付けたりしてアクセシブルになるように注意すべきだということでもあります。

もっと言うと、ウェブに掲載する文章を用意するときは、ライティングの段階からアクセシビリティに配慮したほうが良いということです。この達成基準では見出しが取り上げられていますが、私がよく気になるのは画像の代替テキストです。

会社の業績などをグラフで説明するようなコンテンツは良くあると思いますが、見出しとグラフだけしかなかったりして……。

(見出し) [売上げの推移]

(画像代替テキスト) 【グラフ: 2011年の売上げ推移】

これでは肝心な情報がさっぱり分からないので、適切な代替テキストをつける必要があります。たとえばこう。

(見出し) [売上げの推移]

(画像代替テキスト) 【グラフ: 2011年の売上げは、Q1が1000万円、Q2が1200万円、Q3が1100万円、Q4が2000万円と推移しました。Q3からQ4の間に急激な上昇に転じています。】

こうすると、まあ分かるようにはなります。ただ引っかかるのは、頑張って書いたテキストが、画像の見える環境では読めないということです。なんだかもったいない感じがしてきます。

そんなに書くことがあるなら、それは本文で良いのではないでしょうか。つまり、こうなっていれば良いのではないかと。

(見出し) [売上げの推移]

(本文) 2011年の売上げは、Q1が1000万円、Q2が1200万円、Q3が1100万円、Q4が2000万円と推移しました。Q3からQ4の間に急激な上昇に転じています。

(画像代替テキスト) 【グラフ: 2011年の売上げ推移】

テキストを読むだけで分かるようにコンテンツを作成して、画像は画像で補助的に使うという形になります。

コンテンツを作る人に「画像には代替テキストが必要」という知識があると、コンテンツのあり方からして変わってくる場合があります。マークアップする人がアクセシビリティの知識を持っていれば良いのではなく、ウェブに関わる全ての人に知っておいてほしいところです。

関連する話題: Web / アクセシビリティ

れんげ野原のまんなかで

公開: 2011年11月19日16時25分頃

読み終わったので。

図書館系の話。

貸出情報の漏洩のエピソードがあって、「大変なことだ」「どうして漏洩したのか」という話になるわけです。が、私の脳内では直ちに「本番サーバ上のファイルをコピペして別の図書館のサイトを構築したので漏れた」というストーリーが想像されてしまって変なことに。もちろんそういう話ではないのですが。

若干説明不足気味なところがあったりして気になったりもしたものの、最後の話などは面白くて良かったと思います。

れんげ野原のまんなかで (創元推理文庫)

関連する話題: / 買い物

2011年11月11日(金曜日)

ウェブサイトに必要になるお金

公開: 2011年11月19日15時10分頃

こんな話題が……「原子力安全庁のウェブサイト作成予算は1億4千万円 (it.slashdot.jp)」。

内容がはっきり分からないので何とも言えないところもありますが、省庁のサイトを新規に構築して1年間運用するとして、予算が1億4千万円というのは十分にあり得る話でしょう。

最近はほとんどの案件で何らかのCMS導入が絡んできます。このサイトでもCMSを入れるのだろうと思いますが、CMSは規模によって金額が大きく異なります。エンタープライズ系のCMSを導入する場合、ライセンス費と開発費と保守費を合わせて1億を超えるというのも珍しい話ではありません。

もっとも、原子力安全庁にそのような規模のCMSが必要なのか、という問題はあります。省庁系の案件では、RFPに異様に厳しい要件が書かれているせいで高いCMSが選定されてしまう、などというパターンも多いです。CMSもいいけど、もっと他のところにお金を使った方が良いのでは……と感じることは結構ありますね。

※CMSなんかは中央でひとつ入れて共通で使わせるようにすれば良いのではないか、という意見もありますが……コンテンツの性質が違ったりもするので、なかなか難しい面もあるようです。

では、CMS以外ではどの程度の費用がかかるものなのでしょうか。

そもそも、ウェブサイト構築にはどのようなタスクがあって、どのくらいのお金がかかるのか、一般にはあまり知られていないのかもしれないですね。それなりの規模の組織のウェブサイトをつくるには、個人ブログの開設とは全く異なるプロセスが必要です。

とりあえず、サイトの大枠部分ができるまでのプロセスをざっと紹介してみます。なお、これは私の (うちの会社の) やり方なので、他の方はまた違うやりかたをしているかもしれません。

サイト戦略と要件定義

まず、要件定義を行います。このサイトの目的は何で、プロジェクトで何を実現する必要があるのか、といったことを決めます。

要件定義にかかる時間は、やりたいことがどの程度決まっているかによります。あまり決まっていない場合、要件定義と前後して「サイト戦略定義」のようなプロセスを入れることもあります。ウェブはあくまでコミュニケーション手段のひとつに過ぎませんので、組織の行動戦略全体の中でウェブをどこに位置づけるのか、ウェブを通じて何を実現するのか、といったところから決める必要があります。

要件定義は、スムーズに行けば1~2週間で終わることもありますが、だいたい1ヶ月くらいかかります。場合によっては数ヶ月かかる場合もあります。「やりたいことははっきり決まっている」と言って要件定義を軽視する方もいますが、そういう方は要注意。そういう時に限って要件がコロコロ変わったりして、プロジェクトがどんどん延びていくことが多いです。

サイト設計・情報設計

サイトの目的やプロジェクトの目的が決まったら、サイトの設計に入ります。まず、このサイトにどのような情報を掲載する必要があるのかをざっくりと洗い出します。このとき、サイトの目的がはっきり決まっていないと、何が必要で何が不要なのか判断できなくなります。

ある程度決めたら、構成を決めていきます。情報の括りや分類などを考えながら、「ハイレベルサイトマップ」と呼ばれるサイト構造の概要を作成したりします。このあたりは一見簡単そうに見えて、実のところなかなか難しいタスクです。何と何をどういう順番で並べると分かりやすいのか、ある情報をどこに関連づけると迷わないか、といったことを考えつつ整理していきます。

サイトマップがある程度できたところで、ワイヤーフレームを作成していきます。ワイヤーフレームというのは、各ページの枠組みで、どこにどのような情報が入るのか、というアタリを付けたものです。具体的なコンテンツやビジュアルまでは決めませんが、主要なナビゲーション部分の要素はこの時点でほぼ決定します。

情報設計のプロセスは、サイト規模にもよりますが、やはり1ヶ月程度はかかります。場合によってはもっとかかることもあります。

基本ビジュアルデザイン

ワイヤーフレームが完成したところで、ビジュアルデザインに入ります。といっても、具体的なコンテンツはまだ決まっていないので、ひとまず大枠の部分についてデザインを進めることになります。

まず、デザインの方向性を決定する必要があります。ここでもサイトの目的が重要で、サイトの目的によって何が重視されるのかが違ってきます。たとえば、確実・堅実なイメージなのか、やわらかい・親しみやすいイメージなのか。要件でその辺りまで詰めていない場合は、ここであらためてキーワードを抽出したり、ムードボードを作成したりして、方向性を探ることもあります。

方向性が決まったら、グリッドを決めたり、カラースキームを決めたりしながらビジュアルデザインを進めていきます。トップページ、主要インデックスページ、末端ページなど数ページについて、実際にビジュアルを作成してスタディしたりします。

このプロセスは社内で詰められる部分が多いので、意外にスムーズです。規模によって1週間~1ヶ月弱程度でしょうか。方向性が決まらないと延びることがありますが、決まってしまうと意外に早いです。

……と、大枠の部分ではこんなところです。

あとはコンポーネントデザイン、コンテンツ仕様作成などを経て、詳細デザイン、マークアップ、システム実装などの実装タスクに入っていきます。実装の期間はサイト規模に依存するのでピンキリです。1週間で終えることもあれば、3ヶ月を超えることもあります。

ちなみにCMSがオーサリング機能を備える場合、個々のページのマークアップは必要ない場合もあります。しかし、その場合にはテンプレートを作らなければならないので、実装の工数は発生します。また、データの入力も必要です。たまに「CMSを入れると制作工数が大幅に削減できる」と思っている方が (主に経営者に) いらっしゃいますが、そうでもないので注意しましょう。CMSがあると後の運用は楽になることが多いですが、初期構築の負荷はそれほど減りません。むしろ、一度マークアップしてからそれをテンプレートとして実装しなおす必要があったりするので、実装の工数は増える場合も多いです。

それから、必要に応じたシステム開発、サーバの構築と保守があります。これがモノによってまた高いわけです。どこかその辺のレンタルサーバにでも置いて良いなら安く済みますが、そういうわけには行かないでしょう。

そして、サイト完成時の検証をどのくらいやるのか。JIS X 8341-3:2010で規定されているアクセシビリティの試験や、脆弱性診断などを実施するのだとすると、それにもかなりのコストと期間がかかります。役所系だと要件に入ってくることは多いでしょう。

と、ここまでが初期構築の話。それとは別に、運用費がかかります。サーバやドメイン、証明書の維持費がかかるのはもちろんですが、サイトを更新していくのには人件費を含めたさまざまな費用がかかるわけで、それも予算に入れておかなければなりません。

原子力安全庁は新しい庁なので、既存の積み上げがほとんどありません。原子力安全庁とはどういう組織なのか、そのウェブサイトはいかにあるべきで、どういうポリシーを持たなければならないのか、といったところから決める必要があるので、要件定義や情報設計には時間がかかるでしょう。そんなこんなをちゃんと見積もると、構築と一年間の運用で、3,000万円~5,000万円くらいかかってもおかしくないのではないでしょうか (規模によりますが)。

あとはCMSを含むシステム系とインフラの費用で、ここが高いか安いかはちょっと微妙なところです。ウェブだけで考えると高い気もするのですが、自前のサーバを買ってインフラも一から作って……とすると、かなりかかりそうだとは思うのですが。

関連する話題: Web

2011年11月10日(木曜日)

スーパーマリオ3Dランド 王冠ステージクリア

公開: 2011年11月16日1時15分頃

スーパーマリオ3Dランド (www.amazon.co.jp)、王冠ステージをクリア!

難しかったですが、意外にも後半はそれほど難しくないですね。コースはワープの箱でいくつかに分割されていて、順に突破して行く感じになります。

※追記: ちくわ地帯が抜けていたので追加。あまりに印象がなくて忘れていました。

足場地帯がとにかく厳しくて、目で確認してというより、ジャンプのタイミングや間隔を身体で覚える感じで突破しました。ここさえクリアできれば、あとは割と何とかなります。練習あるのみです。

関連する話題: ゲーム / 任天堂 / ニンテンドー3DS / スーパーマリオ3Dランド

2011年11月9日(水曜日)

スーパーマリオ3Dランド 残機が王冠に

公開: 2011年11月17日1時0分頃

スーパーマリオ3Dランド (www.amazon.co.jp)、王冠ステージをクリア?

……いや、たまたまミステリーボックスで拾ったパタパタの羽根を持っていて、邪魔だったので試しに使ってみたというだけですが。ルイージで羽根を使ってクリアしてみたらルイージでクリアしたことになりましたが、タイムは記録されず。そもそも、ちゃんと自力でクリアしないと意味がないステージなので、ちゃんとクリアしますとも。

ところで、残機が増えて999機に達しました。これでカンスト……と思いきや、さらに1UPすると、ゴージャスな音と共に残機の100の位が王冠の表示に。さらに残機を増やしていくと、1100機になったところで10の位も王冠に (このときの1UP音は普通)。さらに10機増やすと3桁とも王冠になって、ここでカンストしました。最終的には王冠が3つ並ぶ表示になります。

この王冠には、おそらく意味があります。

初代のファミコン版のスーパーマリオでは、通常の残機の表示は一桁しかなく、10機になると、10の位に王冠が表示されていました。どんどん増やしていくと1の位もバグった表示になるので、これは意図した表示ではないのかもしれませんが……ともあれ、当時のプレイヤーなら、この王冠の表示は印象に残っているはずです。

そして3Dランドでは、この初代の挙動をリスペクトして、あえて残機が王冠になる演出を入れたのだと思います。これはなかなかニクい演出ですね。

関連する話題: ゲーム / 任天堂 / ニンテンドー3DS / スーパーマリオ3Dランド

2011年11月8日(火曜日)

スーパーマリオ3Dランド 星5つ達成

公開: 2011年11月16日1時0分頃

スーパーマリオ3Dランド (www.amazon.co.jp)、ルイージで全コースを一通りクリア。

すると、セーブデータに星が5つつきました。そして、スペシャルステージ8ワールドに新たなステージが登場。コースの番号部分が王冠の記号になっていて、最終ステージの風格が漂います。

その難易度は……鬼! 鬼畜! とんでもない難しさで、たぬきマリオを使用しても最後まで行ける気配が感じられない勢いです。何が難しいって、画面奥方向に存在する一マスの足場に正確に着地しなければならないというのが……。これが横方向であればそんなに難しくないはずです。実際、横方向から見てパタクリボーを踏むのはそんなに難しくなかったりもします。

立体視があっても奥方向へのジャンプは難しい、ということを再認識すると共に、今までそんなに難しくなかったのは、カメラアングルがちゃんと考慮されていたからなのだ、と改めて感じさせられました。

まあ、練習あるのみです。

関連する話題: ゲーム / 任天堂 / ニンテンドー3DS / スーパーマリオ3Dランド

トルネのトロフィー情報から分かること

公開: 2011年11月15日2時20分頃

※この日記にはトルネ (www.amazon.co.jp)の隠しトロフィーに関するネタバレが含まれています。隠しトロフィーの情報を知りたくない方はご注意ください。

PS3のトロフィー情報からユーザーをプロファイリングする」の続きです。既に高木さんが「テレビ録画機「トルネ」の視聴ジャンルが無断公開されている (takagi-hiromitsu.jp)」という記事を書かれていますので、興味のある方はそちらも参照してみると良いでしょう。

さて、私のトロフィー情報は「プロフィール - MinazukiBakera (playstationhome.jp)」で公開されていますが、ここにはトルネのトロフィーもあります。

トルネのトロフィーは全てが隠しトロフィーのようで、端から見ても名前が分かりません。そのため、どのトロフィーを取得しているのかは分からない……と言いたいところですが、そんなことはありません。

既に述べたように、トロフィーの並び順は固定です。そして、トルネにどんなトロフィーがあるのかは既に広く知られていて、「トルネ トロフィー」などで検索すればすぐに分かります。

そうして調べた並び順と、私の取得済みトロフィーのデータを合体すると、以下のようになります。

名称条件取得日時
全ジャンル制覇すべてのジャンルのビデオを再生した(未取得)
視聴100時間達成視聴時間が100時間を超えた2011.09.30 00:45
新番組マスター新番組のビデオを10本再生した(未取得)
最終回マスター最終回のビデオを10本再生した2011.10.14 01:04
視聴時間10時間達成視聴時間が10時間を超えた2010.09.17 15:57
スポーツマスタージャンルが「スポーツ」のビデオを10本再生した(未取得)
ワイドショーマスタージャンルが「情報/ワイドショー」のビデオを10本再生した2011.09.30 00:45
ドラママスタージャンルが「ドラマ」のビデオを10本再生した2011.05.03 15:47
音楽マスタージャンルが「音楽」のビデオを10本再生した(未取得)
バラエティマスタージャンルが「バラエティ」のビデオを10本再生した2011.09.15 23:38
映画マスタージャンルが「映画」のビデオを10本再生した(未取得)
アニメ/特撮マスタージャンルが「アニメ/特撮」のビデオを10本再生した2010.12.11 00:06
ドキュメンタリーマスタージャンルが「ドキュメンタリー/教養」のビデオを10本再生した2011.04.30 12:56

後半に注目すると、番組のジャンルが並んでいます。「視聴100時間達成」を持っているにもかかわらず、スポーツ、音楽、映画が未取得です。つまり、これらのジャンルをほとんど観ないということが分かります。

また、最終回マスターを持っているのに、新番組マスターを持っていません。このことから、新番組を熱心にチェックするタイプではない、ということも推察できます。まあ、最終回マスター取得は最近なので、ここは微妙なところではありますが。

さらに、取得済みトロフィーを取得日時で並び替えてみると、以下のようになります。

名称条件取得日時
視聴時間10時間達成視聴時間が10時間を超えた2010.09.17 15:57
アニメ/特撮マスタージャンルが「アニメ/特撮」のビデオを10本再生した2010.12.11 00:06
ドキュメンタリーマスタージャンルが「ドキュメンタリー/教養」のビデオを10本再生した2011.04.30 12:56
ドラママスタージャンルが「ドラマ」のビデオを10本再生した2011.05.03 15:47
バラエティマスタージャンルが「バラエティ」のビデオを10本再生した2011.09.15 23:38
視聴100時間達成視聴時間が100時間を超えた2011.09.30 00:45
ワイドショーマスタージャンルが「情報/ワイドショー」のビデオを10本再生した2011.09.30 00:45
最終回マスター最終回のビデオを10本再生した2011.10.14 01:04

こうすると、ジャンルごとの視聴頻度まで分かってしまいます。ズバリ、上にあるジャンルほど視聴頻度が高いわけです。最も観ているのが「アニメ/特撮」、そこからかなり遅れてドキュメンタリー、ドラマ、バラエティー、ワイドショーの順になっています。まあ要するに、アニメばっかり観ているのが丸わかりということですね。

ドキュメンタリー、ドラマ、バラエティーあたりも観ているのですが、それらのトロフィーは今年に入ってからの取得です。単に視聴頻度が低かったと考えることもできますが、3月の震災を境にして観る番組のジャンルが変化した、という可能性も考えられそうです。

そして、取得日時が零時前後に固まっている傾向がはっきり分かります。録画した番組を深夜に観るという行動パターンが分かります。昼に取得しているのは4月30日(土曜日)や5月3日(憲法記念日)で、休日です。これらの日の昼には家にいたらしい、ということも分かりますね。

※こうして見ると、取得/未取得だけならまだしも、取得日時が公開されていることが問題を大きくしているように思います。トロフィーを自慢するために意図的に公開しているのだとしても、取得した日時まで表示する必要があるのでしょうか?

このようにして、趣味や嗜好、行動の傾向まで見て取れる場合があるわけです。

私個人について言うならば、自身の情報の公開にはさほど抵抗がありません。「このような情報を公開してよろしいですか?」と質問されていたなら、即座に許可していたことでしょう。ただ、それを質問されていないことに違和感があるだけです。

しかし、「このような情報を公開してよろしいですか?」と質問されたとき、「それはちょっとやめて欲しい」と答える方もいらっしゃるのではないでしょうか。「ゲームは良いけれど、番組録画のジャンル傾向は知られたくない」という方もいらっしゃることでしょう。

そういう人の選択肢が「トルネを利用しない」になってしまうのだとすると、それはちょっと寂しく感じます。公開・非公開をユーザーが選べるような機能があっても、罰は当たらないと思うのですが。

※まだ続くかも。続かないかも。

関連する話題: セキュリティ / プライバシー / ゲーム / PS3 / PlayStation Network

2011年11月7日(月曜日)

経営者は裁量労働を甘く見ていないか

公開: 2011年11月14日2時15分頃

こんなお話が……『「退職で損害」と訴えられたSE、残業代未払いで会社を訴え勝訴 (slashdot.jp)』。

また裁量労働制としながらも、納期やノルマを定められ、ときに営業といった制度対象外の仕事も要求されていたことから、要件を満たしていると認められないとして、残業代については請求通りの1136万円の支払いを命じた。

「裁量労働制だから残業代を払わなくて良い」と考えてしまっている経営者も存在するだろうと思いますが、それは大きな間違いなので注意しましょう。「裁量労働」という名前がついているかどうかは関係ありません。実態を見られます。

そもそも、裁量労働で残業代込みの支払いをしていても、深夜や休日の割増賃金は支払わなければなりません。それを払っていない場合、後で付加金つきで支払う羽目になる可能性があります。

(付加金の支払)

第百十四条  裁判所は、第二十条、第二十六条若しくは第三十七条の規定に違反した使用者又は第三十九条第七項の規定による賃金を支払わなかつた使用者に対して、労働者の請求により、これらの規定により使用者が支払わなければならない金額についての未払金のほか、これと同一額の付加金の支払を命ずることができる。ただし、この請求は、違反のあつた時から二年以内にしなければならない。

以上、労働基準法114条 より

37条というのが「時間外、休日及び深夜の割増賃金」を定めたものです。このあたりを甘く見ていると、会社にとってきわめて大きなリスクになる可能性があります。

裁量労働を「残業代を払わなくて良いので人件費をカットできる制度」と思っている経営者の方がもしいらっしゃったら、注意した方が良いでしょう。特に、「裁量労働にしたら人件費が減った」という実績が実際にある場合、会社は既に爆弾を抱えてしまっていると思った方が良いです。残業代込みのどんぶり勘定で払うようにしたはずなのに減ったとしたら、それは違法な運用になっている可能性が高いです。

心当たりのある方はくれぐれもご注意を。

関連する話題: 法律

PS3のトロフィー情報からユーザーをプロファイリングする

公開: 2011年11月13日23時55分頃

PS3のトロフィー情報が公開されている話の続きです。

前回の話は、PlayStation®Homeのサイト (playstationhome.jp)でPSNユーザーのプロフィールが公開されており、一度でもログインするとトロフィーの詳細情報まで見えるようになる、というものでした。

そうは言っても、ゲームのトロフィー情報が公開されたところで大したことはない、と考える人も多いでしょう。ここでは、どんな情報が公開されているのか、その情報からどんなことが分かるのか、といったことを考えたいと思います。

どんな情報が公開されているのか

トロフィーの詳細を表示すると、まず、トロフィーのあるゲームの一覧が表示されます。ユーザーによってはトロフィーがゼロのゲームも表示されていますので、トロフィーを取得したことがなくても、プレイすればここに表示されるようです。ただし、そもそもトロフィーが存在しないゲーム (体験版やゲームアーカイブスのゲームなど) は、ここには表示されないようです。

ゲームを選択すると、各ゲームごとのトロフィーの詳細が見られます (ただし前回述べたように、一度もログインしたことがないと、サーバの応答がおかしくなって表示されません)。表示されるのはトロフィーの名称、取得条件、取得日時です。

名称が「???」と表示されているものもあります。これは「隠しトロフィー」と呼ばれるものです。主に、トロフィーの名称や取得条件がネタバレになるような場合に「隠しトロフィー」として設定されています。隠しトロフィーであっても、取得済みの場合は取得日時が表示されます。

なお、ログインすると、自分が取得した隠しトロフィーについては名称が表示されるようになります。

隠しトロフィーでない通常のトロフィーの場合、未取得でも名前が表示されます。ただし、未取得の場合はアイコンに鍵マークが表示されますし、取得日時も表示されませんから、取得済みかどうかは簡単に区別がつきます。

まとめると、トロフィーの名前と取得日時が表示される条件は以下のようになります。

-未ログイン時の名称表示ログイン時の名称表示取得日時
未取得通常トロフィー名称を表示名称を表示なし
未取得隠しトロフィー「???」と表示「???」と表示なし
取得済み通常トロフィー名称を表示名称を表示取得日時を表示
取得済み隠しトロフィー「???」と表示名称を表示取得日時を表示

要するに、取得日時が表示されていれば、そのトロフィーは取得済みということになります。名前が表示されたりされなかったりしますが、そこは気にせず、取得日時があるかどうかを見れば取得済みかどうか判別できます。

そして重要なのは、トロフィーの並び順が固定だということです。トロフィーは取得した順に並んでいるわけではなく、その順番はゲームごとに完全に固定になっています。「隠しトロフィー」は、一般には名前が伏せられていますが、取得したことのある人なら、どの位置にどのトロフィーがあるのか確認することが可能です。また、自らトロフィー取得を達成しなくとも、誰かが達成してその情報を公開すれば、誰でも確認することが可能になります。

つまり、たとえ名前が表示されていなくても、そのトロフィーが何なのかは分かるということです。

その情報から何が分かるのか

さて、このトロフィーの情報からどのようなことが分かるでしょうか。具体的に、私のトロフィー情報を見てみることにします。私のトロフィー情報は、「プロフィール - MinazukiBakera (playstationhome.jp)」で公開されています。

ゲームの一覧

まず、ゲームの一覧が表示されますので、プレイしたゲームが分かります。私の場合、「torne™」「Wizardry 囚われし魂の迷宮」「FINAL FANTASY XIII」の3つです。……えらい少ないですね……。私の場合、PS3は耐えきれずにFF13専用機として購入したという感じなので、他のゲームはあんまりプレイしていないのでした。

※ゲームアーカイブスのゲームにはトロフィーがないので、プレイしたはずのサガフロンティア2は表示されていません。

一覧で表示されるというのがミソで、見るとけっこういろいろなことが分かりそうです。数が多いか少ないかという時点でゲーマーなのかどうかということが分かってきますし、シューティングばかり並んでいるとか、同じシリーズがずらりと並んでいるとか、逆にまんべんなく手を出しているとか、そういったことも分かります。

トロフィー詳細

個々のゲームごとにトロフィーの詳細が表示できます。こちらがポイントで、トロフィーの種類によってはかなり細かいことまで分かる場合があります。

たとえば、私の「Wizardry 囚われし魂の迷宮」のトロフィーを見てみましょう。取得日順に並べ替えると以下のようになります。けっこう持っていますね。

名称条件取得日時
1万Gold取得達成所持金 10,000Gold2010.02.05 00:07
無欲な収集家獲得アイテムの種類30種類以上2010.02.06 00:50
迷宮の入門者試練の迷宮 MAP踏破率30%2010.02.06 11:29
10万Gold取得達成所持金 100,000Gold2010.02.06 12:12
新米冒険家合計撃破数 1,500匹2010.02.06 16:24
迷宮の常連シーインの迷宮 MAP踏破率30%2010.02.06 17:18
永遠の安らぎを与えし者特定種族の撃破数 アンデッド種族 500匹2010.02.06 21:41
頼もしい仲間を持つ者LV20以上のキャラを保有2010.02.06 21:41
??? (33)2010.02.07 00:28
良き友を持つ者全職業を保有2010.02.07 02:46
収集家を自覚した冒険家獲得アイテムの種類70種類以上2010.02.07 11:14
迷宮の番人シーインの迷宮 MAP踏破率70%2010.02.08 00:51
剛腕を知る者LV30以上のキャラを保有した経験あり2010.02.09 00:02
シーインの迷宮を極めし者シーインの迷宮 MAP踏破率100%2010.02.10 01:04
??? (30)2010.02.10 23:10
クリス・シナリオクリア人間(男)~クリス~シナリオクリア2010.02.11 01:02
??? (18)2010.02.11 01:10
??? (20)2010.02.11 01:37
合計プレイ時間・30時間達成合計プレイ時間 30時間2010.02.11 14:14
ニア・シナリオクリアドワーフ(女)~ニア~シナリオクリア2010.02.11 15:09
??? (19)2010.02.11 15:09
バーン・シナリオクリアエルフ(男)~バーン~シナリオクリア2010.02.11 15:37
ペグマ・シナリオクリアドワーフ(男)~ペグマ~シナリオクリア2010.02.11 15:58
ボリス・シナリオクリアポークル(男)~ボリス~シナリオクリア2010.02.11 16:22
アッシュ・シナリオクリアポークル(女)~アッシュ~シナリオクリア2010.02.11 23:08
ディア・シナリオクリアノーム(女)~ディア~シナリオクリア2010.02.12 00:40
騒乱を未然に防ぎし者特定種族の撃破数 悪魔種族 500匹2010.02.13 00:42
リンド・シナリオクリアエルフ(女)~リンド~シナリオクリア2010.02.13 01:34
オデッタ・シナリオクリア人間(女)~オデッタ~シナリオクリア2010.02.13 19:12
エルノ・シナリオクリアノーム(男)~エルノ~シナリオクリア2010.02.14 00:15
ディメントを救いしモノ。全キャラのメインシナリオクリア2010.02.14 00:16
竜殺しを名乗る者特定種族の撃破数 ドラゴン種族 500匹2010.02.16 23:15
熟練した冒険家合計撃破数 15,000匹2010.02.21 19:37
合計プレイ時間・100時間達成合計プレイ時間 100時間2010.03.28 00:59

隠しトロフィーは「???」となっていますが、区別できるように横に数字を記しました (数字は、上から何番目の項目かを表しています)。

※隠しトロフィーの取得が「シナリオクリア」の前後に固まっているのが目につくと思いますが、これらの多くはシナリオのボスを撃破した際のものです。ボスの名前がネタバレになるので隠しトロフィーになっているのでしょう。

名前を眺めていても大したことは分かりませんが、取得した日時の方に注目してみましょう。はっきり目立つのは、トロフィーの取得が2月6日と2月11日に集中していることです。しかも、時刻のほうはバラバラです。2月11日には「合計プレイ時間30時間」も達成しています。ちなみに2010年2月6日は土曜日、2月11日は建国記念の日で祝日。休みだったので、一日中家にいてゲームをやっていたのでしょう。

また、平日だけを見ると、トロフィーの取得時刻は0時前後に集中しています。つまり、平日は深夜にゲームをして、休日は一日中ゲームをやるという行動パターンが見えてきます。

……という具合に、トロフィーの取得日時が分かると、「この日はずっとゲームをやっていた」とか、「この人はいつも深夜にゲームをプレイしている」といった行動が推測できる場合があります。こうなってくると、あまり他人に知られたくないと考える人もいるのではないでしょうか。

私の場合は、2010年2月6日2011年2月11日も日記でこのゲームのことを書いていて、推測されるまでもなく自ら公開しているので問題ありません。しかし、そんな人ばかりではないでしょう。

それでも、ゲームに関する行動パターンを知られたところでたかが知れている、と思われる方もいらっしゃるかと思います。しかしPS3には、トルネ (www.amazon.co.jp)という番組録画のためのツールがあります。そしてこのトルネにも、トロフィーがあります。

……長くなってきたので、いったんこのあたりで切ります。続きます : トルネのトロフィー情報から分かること

関連する話題: セキュリティ / プライバシー / ゲーム / PS3 / PlayStation Network

2011年11月6日(日曜日)

みなみけ9

公開: 2011年11月13日16時25分頃

出ていたので購入。

いつもどおりで特筆することもあまりありませんが、飲み物を持って時計を見る話が面白かったです。

みなみけ(9) (ヤンマガKCスペシャル)

関連する話題: マンガ / 買い物 / みなみけ

PS3のトロフィー情報が公開されている話

公開: 2011年11月13日13時25分頃

なぜソニーが駄目でアップルやマイクロソフトは良いのか (takagi-hiromitsu.jp)」。本人が知らないうちにPS3のトロフィー情報が公開されているという話。

PS3のゲームをプレイしていると、画面右上に「トロフィーを取得した」旨の表示が出ることがあります。どんなトロフィーがあるのか、どんな条件で取得できるのかはゲームによって異なりますが、たとえば「ゲームクリア」「合計プレイ時間が一定以上」「達成率やアイテム収集率が100%」「特定の強敵を撃破」というような条件があります。

トロフィーは、自分で眺めて満足するだけではなく、他人に自慢することもできます。「PS3™ | トロフィーコレクションについて (manuals.playstation.net)」では、以下のように説明されています。

トロフィーの情報をPlayStation®Networkのサーバーに保存する

PlayStation®Networkのアカウントを作成すると、獲得したトロフィーの情報をPlayStation®Networkのサーバーに保存できます。獲得したトロフィーを(フレンド)の[プロフィール]でも確認できるようになり、獲得状況をフレンドと比較することもできます。

以上、PS3™ | トロフィーコレクションについて より

つまり、PSNのアカウントを作ると、トロフィーの状況がフレンドと共有されることになります。ここまでははっきり説明されていることでもありますし、まあ問題ないでしょう。

ところが、実はフレンドに限らず、誰でもトロフィー情報を閲覧できる状態になっている、というのが冒頭のお話です。しかも、ソニーの見解は以下のようなものだそうで。

「これは意図した仕様なのか、それとも不具合による事故なのか」を質問したところ、「仕様である」との回答を得た。さらに、「設定で公開を止めることはできるか」を尋ねたところ、「止める方法はない」との回答が得られた。

以上、なぜソニーが駄目でアップルやマイクロソフトは良いのか より

つまり不具合ではなく、ソニーが意図して公開しているという事になります。

さて、公開されている情報ですが、以下のようなURLで見ることができます。

http://playstationhome.jp/community/mypage.php?OnlineID=オンラインID

この「オンラインID」は、PSNにサインインするときに入力する「サインインID」とは別のもので、PSN上で他のユーザーに対して表示されるIDです。「PlayStation®Networkアカウントの取得方法 (www.jp.playstation.com)」を見ると、オンラインIDは「公開されます」と明記されています。

実際に公開されている様子は、PlayStation®HomeオフィシャルBBS (playstationhome.jp)で見ることができます。発言したユーザーのオンラインIDが表示されていて、上記のURLにリンクしています。また、プレイヤー検索 (playstationhome.jp)でオンラインIDを検索することもできます。

ゲーム内でも、他のプレイヤーのオンラインIDを知る機会はたくさんあります。たとえばPlayStation®Homeに入ると、周囲を歩く人のオンラインIDはふつうに見えています。

つまり、オンラインIDは秘密情報ではありません。高木さんは冒頭で以下のような書き方をされていますが、

こんなことになているとは知らず、私は8月14日の日記で、自分のPlayStation NetworkでのID(「オンラインID」と呼ぶらしい)を公開してしまった。

以上、なぜソニーが駄目でアップルやマイクロソフトは良いのか より

オンラインIDはもともと公開情報で、日記で公開するまでもなく、誰にでも知られ得るものです。日記で公開したことに落ち度があるというわけではありません。

ところで、私もPSNのアカウントを持っていて、"MinazukiBakera" というオンラインIDを使っています。つまり、以下でトロフィー情報にアクセスすることができます。

……と思ったのですが、ゲームの一覧までは表示されるものの、各ゲームの詳細を表示しようとすると、延々とローディング表示になってしまいました。

調べてみると、JavaScriptから送られたPOSTリクエストに対して、サーバは200で応答しています。しかし返しているのはHTMLで、よく見るとこんな文字列が含まれています。

申し訳ありませんが、指定されたユーザページは存在していません。

あからさまにバグだと思うのですが、トロフィーの詳細が見えるアカウントもあるので、その違いが良く分かりませんでした。私の情報が見えない旨をとツイートしたところ、@toshiwoさんから重要なヒントが……!

因果関係があるかどうかわかりませんが、自分の場合は playstationhome.jp に一度ログインした状態で表示した後であれば、非ログイン状態でも詳細が表示されるようになりました。参考になれば・・・

以上、http://twitter.com/toshiwo/status/133179284666859520 より

ご指摘いただいたとおり、一度playstationhome.jpに (PCから) ログインしてみたところ、ちゃんと (?) 詳細が表示されるようになりました。

これは意図した挙動であるようには思えません。おそらく、初回ログイン時に何かデータを作っていて、そのデータがないとサーバが「指定されたユーザページは存在していません」というHTMLを返してしまうのでしょう。仕様だと回答しているわりに、雑なつくりだという印象が否めません。

……続きます : トルネのトロフィー履歴からユーザーをプロファイリングする

関連する話題: セキュリティ / プライバシー / ゲーム / PS3 / PlayStation Network

スーパーマリオ3Dランド すれ違い通信

公開: 2011年11月13日1時50分頃

スーパーマリオ3Dランド (www.amazon.co.jp)、ルイージでプレイ中。

外に出て電車に乗ってみると、あっさりすれ違い通信に成功。すれ違った人のマリオ率が50%を超えているような気がしますが、やはり売れているのでしょうね。

※「すれ違いMii広場」ですれ違うと、プレイしていたゲームが相手に表示される仕組み。

すれ違った人の中には星2つの人がいたのですが、その人のコースクリアタイムが表示されるようになりました。こうしてタイムアタックが熱くなるという仕組みなのですね。

ところで、電車やバスでプレイしていて気になったのが、大砲の挙動。望遠鏡や大砲はスライドパッドで動かせるのですが、ジャイロセンサーにも対応していて、3DS本体の向きを変えると照準が動きます。普段は素早く動かせて便利なのですが、揺れる電車やバスの中では本体の揺れを拾ってしまい、照準がふらふらと動いてしまいます。

望遠鏡は多少揺れても問題ないのですが、大砲の照準がずれると生死に関わるので厳しいです。ジャイロ有効・無効を切り替えられると良いと思うのですが……。

関連する話題: ゲーム / 任天堂 / ニンテンドー3DS / スーパーマリオ3Dランド

2011年11月5日(土曜日)

数学的帰納法を用いたパズル問題

公開: 2011年11月12日21時45分頃

大手IT企業の難解ななぞなぞのような採用試験問題 (it.slashdot.jp)」という話で紹介されていた問題。

100組の夫婦のいる村の男全員が不倫しています。どの妻も夫意外の男性が浮気していることは瞬時に分かってしまいます。しかし自分の夫の浮気には気がつきません。自分の夫が浮気していることを証明できる場合、妻は必ず夫をその日のうちに殺さなければなりません。村の女性はこの法を順守しなくてはなりません。ある日、村の女王が訪れ不倫している夫が最低でも1人いると告げます。どうなるでしょうか?

翻訳の問題なのでしょうが、文章が変だったり表現が曖昧なところがかなりありますね。アプローチの仕方として、「表現の曖昧さを指摘する」という方向に行くのは自然な流れでしょう。

しかしこの問題、元々は純粋に数学的なパズルとして考えられていたのではないでしょうか。せっかくなので、パズルとして解いてみたいと思います。曖昧な部分について、以下のような条件を加えて考えてみました。

こうするとパズルとして解けるようになってきます。以下、思考の過程。

方針

「100組の夫婦」というのはいかにも数が多いので、まず数が少ない場合を考えてみて、一般化できないか考えてみます。

夫婦が1組の場合

夫は村に一人しかいません。「不倫している夫が最低でも1人いる」という条件から、その夫が不倫していることが確定します。妻はその日のうちに夫を処刑します。

夫婦が2組の場合

夫婦をそれぞれA,Bとし、A妻の行動を考えます。

A妻はB夫の不倫を知っていますが、自身の夫であるA夫が不倫しているかどうかは分かりません。「不倫している夫が最低でも1人いる」という条件を与えられても、A夫の不倫は確定しません。A妻はB夫が不倫していることを知っていて、それだけで条件は満たされているからです。

問題は、「A夫は不倫しておらず、B夫だけが不倫している」のか、それとも「A夫、B夫共に不倫している」のか、ということです。後者であれば夫を処刑しなければなりません。

ここで、A妻は背理法を使って以下のように思考します。

  • まず、A夫が不倫していないと仮定する。
  • 仮定によりA夫が不倫していないのだから、B妻は「A夫が不倫していない」ことを確信する (夫以外の男性について、「不倫している→不倫していることがただちに分かる」が成立しているので、対偶の「不倫していることがただちには分からない→不倫していない」も成立)。
  • 「不倫している夫が最低でも1人いる」という条件から、B妻はB夫が不倫していることを確信する。
  • 従って、B妻は夫を今日中に処刑する。

つまりA妻は、「A夫が不倫していなければ、B夫が今日中に処刑されるはずである」と考えることになります。そこでA妻は1日様子を見ることにします。

しかし実際には、A夫は不倫をしているのですから、翌日になってもB夫は処刑されません。この時点で「A夫が不倫していない」という仮定が誤りだったことがわかります。すなわち、A妻は2日目になって夫の不倫を確信します。

結果として、A妻は2日目に夫を処刑することになります。

B妻もA妻と同じように思考して同じように行動することになりますので、1日目は互いに様子見で何も起きず、2日目になって夫2人が処刑されることになります。

夫婦が3組の場合

夫婦をそれぞれA,B,Cとし、A妻の行動を考えます。

A妻はB夫,C夫の不倫を知っていますが、自身の夫であるA夫が不倫しているかどうかは分かりません。

A妻は以下のように思考します。

  • まず、A夫が不倫していないと仮定する。
  • このとき、B妻、C妻の置かれている状況は、前述の「夫婦が2組の場合」と同じである (仮定のもと夫が浮気していないA夫婦が蚊帳の外に置かれて、残りの2夫婦B,Cについて「夫婦が2組の場合」と全く同じ状況が成立する)。
  • 従って、B妻、C妻は2日目に夫を処刑するはずである。

つまりA妻は、「A夫が不倫していなければ、B夫,C夫は2日目に処刑されるはずである」と考えることになります。そこでA妻は2日様子を見ることにします。

しかし実際には、A夫は不倫をしているのですから、2日目になってもB夫は処刑されません。この時点でA妻は夫の不倫を確信します。

結果として、A妻は3日目に夫を処刑することになります。

B妻もA妻と同様に思考して同様に行動しますので、2日目までは何も起きず、3日目になって夫3人が処刑されることになります。

夫婦がn組の場合

……と、ここまで考えると分かりますね。夫婦がn組の時、各妻は夫が不倫していないと仮定して、残りのn-1人の妻の行動を観察します。「夫婦がn-1組の場合に結論が出る日」を待って、その翌日に結論を出します。

また、n=1のときは、1日目に結論が出ます。

ということで、n組の夫婦がいるとき、n日目に結論が出て、全ての夫が処刑されることになります。

結論としては、夫婦が100組の場合、100日目に全ての夫が処刑されることになる、というのがパズル的な答えになるでしょう。

背理法、数学的帰納法といった考え方ができるかどうかを問う問題、というところでしょうか。

関連する話題: 数学 / 論理

スーパーマリオ3Dランド スペシャルステージクリア

公開: 2011年11月11日1時35分頃

スーパーマリオ3Dランド (www.amazon.co.jp)、スペシャルステージを一通りクリア。

さすがに裏面だけあって容赦がないですね。特に、終盤でマネックが出る面が鬼畜で死にまくりました。しかも、スペシャルステージではアシストブロックなんてのは出ないので、1つの面で10機以上死ぬのもザラです。

特に苦戦したのは7-4。苦戦の原因ははっきりしていて、一発でスターメダルを3枚取ってクリアしようとしていたからなのですが。メダルを無視してたぬきマリオで駆け抜けると意外に楽な面だったりします。

あとは8-4など、終盤でマネックが出てくるステージはだいたい鬼畜ですね。そのわりに、最後の最後は思ったほど厳しくはありませんでしたが……。

スペシャルステージのラストをクリアすると、もう一度表ワールド8の最後の城が未クリア状態になります。クッパの炎がちょっとパワーアップしていたりしますが、それほど難しくなっているわけでもなく、難なく2度目のエンディング。エンディング後、ピーチ姫がたぬきになる絵が出たので「これはピーチが使えるということかっ!!」……と思いましたが、そうでもなかったようで。

ともあれ、裏表を一通りクリアして、これでセーブデータに星が4つつきました。

気がつくと、何気にマリオ・ルイージそれぞれでのステージクリア履歴が表示されるようになっています。この後はルイージで全コースをクリアしろということなのでしょうね。

関連する話題: ゲーム / 任天堂 / ニンテンドー3DS / スーパーマリオ3Dランド

2011年11月4日(金曜日)

スーパーマリオ3Dランド 表面クリア

公開: 2011年11月10日0時30分頃

スーパーマリオ3Dランド (www.amazon.co.jp)、ワールド8のクッパを倒してクリア! この段階でセーブデータに星が2つつきました。表クリア + 表8ワールドの全コースクリア、ですかね。

面白かった! ……と思う間さえも惜しむかのように、裏面のスペシャルステージが出現。

スペシャルコースでは1-1から地蔵になれる葉っぱが出現、そして毒キノコも出現。基本的には表面と同じコースを使い回しているのですが、全く違った見せ方になっていて楽しませてくれます。そして、スペシャルのワールド1をクリアするとルイージが使用可能に。

ルイージはジャンプ力が高くて滑りやすい、といういつもの性能です。スーパーマリオ2からの伝統ですね。ちなみに、葉っぱを取るとキツネになりますが、性能はたぬきと同じです。滑りやすいので使いにくい面もありますが、段差を一気に上れたりるのでタイムアタックには向いていそうです。また、180度方向転換しようとするとスリップしてしまいますが、弧を描くようにしてターンすれば滑らずに済みます。操作の仕方次第ではうまく使えそうで、上級者向けという感じですね。

とはいえ、まずはマリオを使おうというところで、マリオでスペシャルステージのワールド5までクリアしました。表と同じ構成でもタイムが30しかないとか、マネック (黒いマリオ、マリオの動きを追跡してくる) から逃げ続けなければならないとか、そういった裏面ならではの演出で新しい感覚になっていたりもします。

感心したのはタイム30の面。敵を倒すとタイムが増えるようになっているのですが、マリオが最初に登場するとき敵の真上に出現して、自動で最初の敵を倒すようになっています。これによって、敵を倒すとタイムが増えるのだということがプレイヤーに伝わるわけですね。

関連する話題: ゲーム / 任天堂 / ニンテンドー3DS / スーパーマリオ3Dランド

2011年11月3日(木曜日)

スーパーマリオ3Dランド

公開: 2011年11月9日1時30分頃

もちろん購入。

3Dゲームのキモは奥行き」という話を聞いたときから、買うと決めていたソフトです。このソフトのために3DSを買ったわけですから、買うに決まっています。

ソフトのパッケージが妙に軽いと思ったら、取説らしい取説が入っていないのですね。ソフトの他はクラブニンテンドーのポイント登録の紙と、「アクションガイド」という二つ折りの紙だけです。アクションガイドにはマリオの操作説明が書かれているだけですが、よく見ると「本ソフトの説明書について」という注意書きがあります。

本ソフトの詳しい説明は、画面で見る電子説明書をお読みください。

HOMEメニューで「スーパーマリオ 3Dランド」を選び、「説明書」ボタンをタッチすると、本ソフトの説明書が表示されます。

※ニンテンドー3DS本体の取扱説明書もあわせてお読みください。

ということで、取説は電子化の方向のようですね。そもそも、取説がなくても問題なく遊べるゲームではありますが。

さて、とりあえずワールド7までプレイしてみての感想を。

立体視で奥行きが分かりやすくなっている、という点については……確かに分かりやすくなっているような気もするのですが、それでもやっぱり、距離感が分からないときは分からないです。ブンブン (戦艦に出てくるボス) なんか、一発でうまく踏めたためしがありません。奥方向へのジャンプが難しいのも相変わらず。3Dマリオ苦手感が完全に克服されるには至らないようです。

とはいえ、やはり面白いですね。今作はひとつのコースが短めですし、残機もどんどん増えるので、多少死んでも気にせず気軽にプレイできます。難易度も全体的に低めになっているように思います。

ただし、スターメダルを全部集めようとすると難易度が上がります。スターメダルを一定数持っていないと入れないステージがあるのですが、そのステージは難易度がかなり高いです。気軽に遊びたい人はとりあえずクリアを目指して、手応えを感じたい人はスターメダルを集めながら、という風に遊び方を変えることができるようになっています。

※私はスターメダルを全部集めてから次の面に進むスタイルなので、難易度高めの道を行くことになります。

あと、気付いた点など。

全体的に、マリオ64から続く3Dマリオの要素がありつつも、初代スーパーマリオから続く2Dマリオの要素がミックスされていて、しかも違和感がないという感じになっています。出来は良いと思いますし、ゲームとして面白いです。このために3DSを買っても良いと思います。

※しかし本来であれば、これはニンテンドー3DSの発売と同時にローンチタイトルとして出さなければならなかったソフトですよね。いや、むしろニンテンドー3DSの歴史はこの日から始まったのであって、今までは本体のテストか何かだったと考えるべきかもしれません。

関連する話題: ゲーム / 任天堂 / ニンテンドー3DS / スーパーマリオ3Dランド

ニンテンドー3DSのデータ移行

公開: 2011年11月7日2時20分頃

ねんがんのアイスホワイトを手に入れたぞ!

アイスホワイトと称していますが、基本的には真っ白ですね。よくよく見ると、ふたの部分は白の上に透明な素材が載っていて、透明部分にグラデーションがつけられていますが、まあ普通に白に見えます。

※ふた部分のグラデーションは今までの色にもありますが、こういう、ぱっと見て分からないような微妙なグラデーションは個人的にはあまり好きではないです。塗りムラのようにも見えますし。

さて、問題はデータの移行。今まで使っていたフレアレッド (www.amazon.co.jp)には、写真やゲームのデータがけっこう貯まっています。

まず写真ですが、これは単なるJPEGとMPO (JPEGを複数枚まとめた立体写真用のフォーマット) のファイルなので、コピーしてやれば問題ありません。

移行が難しそうなのは、主に通信関係のデータで。フレンドコード、すれ違いMii広場のすれ違い通信のデータなどは、簡単にコピーできるようにはなっていないでしょう。また、「ポケモン立体図鑑BW」のポケモンのデータなど、手動で移行もできるけれども面倒くさい、というものもあります。

しかし幸いなことに、ニンテンドー3DSにはデータ移行の機能があるようです。「本体設定」→「その他の設定」→「ソフトとデータの引っ越し」の中に「ニンテンドー3DSと引っ越し」というメニューがあります。

【写真:「ニンテンドー3DSと引っ越し」メニュー】

というわけで、移行機能のメニューが存在することまでは確認していたものの、そこから先の作業を行うのは今回が初めて。ということで、緊張しつつ「ニンテンドー3DSと引っ越し」を選択してみると、そこに書いてあったのは……。

【写真:「ニンテンドー3DSと引っ越し」メニュー選択後に表示された画面】

ニンテンドー3DSとの引っ越しは
今後、本体更新されたときに
ご利用いただけます。

くわしくは任天堂ホームページを
ご覧ください。

……えっ? ええーっ!?

本体の更新は実行してみましたが、最新ですと言われました。実はスーパーマリオ3Dランド (www.amazon.co.jp)を起動しようとしたら本体更新が走ったので、更新したばかりだったり。

というわけで、データ移行終了のお知らせ。

ちなみに、「ポケモン立体図鑑BW」はSDカードにセーブデータを持つのですが、SDカードを入れ替えただけではデータ移行できませんでした。SDカードの中身を見ると乱数で命名されたらしいディレクトリがあり、これが本体ごとに違う値になっていて、セーブデータはその下のディレクトリで管理されるようです。

幸い、「ポケモン立体図鑑BW」にはポケモンのデータを1体分ずつ送る機能がありますので、それを約150回繰り返してデータを移行しました。

※データをいじったりすれば一発で移行できる可能性もあるかもしれないとは思ったのですが、データの改造にあたる可能性もあるので諦めました。ポケモンのデータ改造はしない主義なので。

関連する話題: ゲーム / 任天堂 / ニンテンドー3DS

2011年11月2日(水曜日)

ブラクラで逮捕?

公開: 2011年11月6日21時50分頃

不正指令電磁的記録供用の疑いで逮捕者が出たという話が。

しかしよく見てみるとブラウザクラッシャー、いわゆるブラクラで逮捕という話のようで。FNNニュースの動画を見ると警察が実施したデモが見られますが、どうもウィンドウを大量に開くもののようで、本当にどう見てもいわゆるブラクラですね。チャットサイトに送りつけたという話が良く分かりませんが、サイトに持続型XSSがあってスクリプトを書き込めたということなのでしょうか?

仮にそうだとすると、たとえば以下のような文字列を書き込むだけで良いわけですが。

<script>window.open(location.href)</script>

これは一例で、他にもいろいろなパターンがあります。for(;;) とか。まあ何でも良いですけど。

どうも「コンピューターウイルスを自宅のパソコンで作った」という供述が出ているようですが、作るもなにも……という感じではありますね。「ウイルス」という言葉はおそらくきわめて広義の意味で使われていて、実際には「不正指令電磁的記録」のことを指しているのでしょう。すなわち、「人が電子計算機を使用するに際してその意図に沿うべき動作をさせず、又はその意図に反する動作をさせるべき不正な指令を与える電磁的記録」ということなのですが……それにしても、こんな単純なタイプのブラクラが該当すると言われると、ちょっと微妙な感じはするところです。

なんだか全貌も良く分からないので、続報に期待しつつ見守りたいところではあります。

関連する話題: Web / セキュリティ / 法律

人気のページ

最近の日記

関わった本など

デザイニングWebアクセシビリティ - アクセシブルな設計やコンテンツ制作のアプローチコーディングWebアクセシビリティ - WAI-ARIAで実現するマルチデバイス環境のWebアプリケーション体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践ウェブの仕事力が上がる標準ガイドブック 5 WebプログラミングWeb Site Expert #13Dreamweaver プロフェッショナル・スタイル [CS3対応] (Style for professional)

その他サイト