Hatena::ブログ(Diary)

techlog RSSフィード Twitter

理解というものは、つねに誤解の総体に過ぎない
 「スプートニクの恋人」とか「かえるくん、東京を救う 」より

2012-02-08

[][][][]HTML5とか勉強会 第25回 に行ってきて、@ITで書きました

長いけど、まあそんな感じ。

発表はこんな感じ。

  • ゲーム、新聞、家電業界などのHTML5への対応
    • 小林雅一(@)さん (KDDI総研) 20min
  • 家電にもブラウザがあるさ
    • ダニエル・デイビス(@)さん (オペラ・ソフトウェア)30min
  • Web Intents入門
    • 白石俊平(@)さん (オープンウェブ・テクノロジー代表/C.A.Mobileフェロー) 30min
  • HTML5で画像編集アプリ!
    • 山崎大助(@)さん(GENOVA所属・デジタルハリウッド講師)5min
  • アクオスのインターネットボタン押してみた
    • 若狭正生(@)さん (株式会社コネクティ) 5min

ゲーム、新聞、家電業界などのHTML5への対応

家電にもブラウザがあるさ

Web Intents入門

アクオスのインターネットボタン押してみた

HTML5で画像編集アプリ!


まとめ

正直なところ、僕は家電にあまり興味がない。TVあんまり見ないし。でもこうやって家電とWebがつながっていくと、ちょっとわくわくする。

すぐに実現できることはまだ少ないかもしれないけど、そこまで遠い未来でもないんじゃないかと感じた。


HTML5とか勉強会

HTML5とか勉強会に関するものの一覧は、こちらのタグで。


執筆など

執筆に関するエントリの一覧は、こちらのタグで。

2012-01-31

[]EPUB 3 スタンダード・デザインガイド

EPUB 3 スタンダード・デザインガイド」を読了した。

電子書籍にはあまり興味がなかったんだけど、EPUB3にはなんだか惹かれていた。ま、このあたりのことについてはまた別の機会に書く、かも。

250ページくらいで、1/3がEPUB3の概要で、2/3がデザインについての内容。僕はEPUBの概要を手っ取り早く抑えたかった。だから最初の1/3をしっかり読んで、あとは超斜め読み。それでも、とても勉強になった。もちろん全部しっかり読んだほうが勉強になるだろうけど。


EPUB3については、ちょこちょこWebの情報を読んでいたけど、あまり理解できなかった。だからこうやってまとまったものを読めてよかった。EPUB3の概要が書いてある最初の80ページくらいを読めば、とりあえずシンプルなEPUBは作れるようになる。

デザインの部分もけっこう面白く読んだ。僕はデザインの基本をほとんど知らないので、参考になることが多かった。逆引きっぽい感じなので、実際にEPUBを作るときに役立ちそう。というか、この本のメインコンテンツはこのデザインの部分だと思うけど。


個人的にはもう少しJavaScriptに関することも書いてあると嬉しかった。「EPUB 3 スタンダード・開発ガイド」とかが出ると嬉しいw このリーダーで使えるAPIはこれだ!とかが書いてるようなイメージ。

でも、これだけまとまったものを日本語で読めるというのはとても助かる。この本を片手に、ちょっとEPUBを作ってみよう。


EPUB 3 スタンダード・デザインガイド
境 祐司 こもりまさあき 林 拓也 秋田克彦
マイナビ
売り上げランキング: 21824

2012-01-30

[]本質を掴む

「専門用語や横文字を 覚える/理解する のが難しい。覚えないと意思疎通に支障があるか?」的な文章を読んで、思ったことをつらつらっと。


専門用語に限らず、その用語の本質がうまく掴めていないと、うまく理解できないと思う。

例えば「Facebookが楽しい」と言われて、それを言葉で説明をされただけでは、おそらく楽しさを実感できない。実際に使って、試してみないとわからない。そういった行為を通じて「Facebookの楽しさ」を理解していくと思う。

専門用語も同様に、使い方や使われ方に触れていかないと理解しにくい。たとえばオブジェクト指向とか、クラスとか、インターフェースとか。試す過程や、理解する過程をまとめて「本質を掴む」と僕は表現している。

ま、端的に書くと、いろいろ使って試してみないとぶっちゃけわかんないよねーって感じ。


人によって、見ている本質や掴み方は異なるので、同じ用語を使っていてもうまく伝わらないことがある。たくさんある。

僕にとっての「HTML5」が、ほかのひとにとっての「HTML5」と同じものかというと、ある程度は一緒だけど、全くの同じものではない。これは何を本質と思うか、どうやって掴むか、というのが人によって異なるから。物事はそれを捉える視点によって、大きく姿を変える。例えば「正義」は、人によって大きく異なる。

Facebookの例だと、それぞれのひとが何を楽しいと思っているかは異なる、と言える。友達のFeedを読むのが楽しい、Likeするのが楽しい、コメントするのが楽しい、など。


本質を掴めばを、それをうまく説明できるかというとそうでもない。何かを食べて美味しいと感じても、それをうまく表現できるとは限らない。概念を言語化するには、また違った能力が必要になる。

何かを5歳のこどもにわかるように説明してみる。「海」を見たことない人に「海」を説明してみる。といったことを考えると、その難しさの一端がわかると思う。

あと、バズワードの説明はすごく難しい。考えてみるとけっこう楽しいけど。

たとえば「クラウド」という言葉を説明してほしい、と言われたらどうするか。僕にはいい説明がなかなか思いつかない。

言葉はとても不完全なもので、「理解とは誤解の総体である」ということを意識している。


最初の「専門用語や横文字を 覚える/理解する のが難しい。覚えないと意思疎通に支障があるか?」的な文章に戻ってみると、これは用語の問題よりも勉強していてわからないことが多い、という捉え方もできる、気がする。僕にはそういうことがよくある。そんなときは、とりあえず気にせず最後まで読むようにする。最後まで読んで、やっぱりわからなければ、もう一度読んで、じっくり考える。それでも隅から隅まで理解することはできない。

本質を掴むのは大変だけど、なにかを理解できたときの感動ってけっこう大きくて、それが楽しいと思う。

2012-01-21

[]HTML5とか勉強会のスタッフになりました

HTML5とか勉強会のスタッフになりました。

はじめてHTML5とか勉強会に参加したのは、第13回(2010年12月)だった。

HTML5のことはたまにセミナーで聞くけど、ちゃんと調べたことはなかった。なんとなく申し込んでみたら面白くて、それから毎月参加していた。人気があって申し込むのが大変だった。

一度は勉強会の募集開始が、奥さんや会社の同期とディズニーランドに行っているときで、iPhoneで頑張ってatndの登録をしていたら、一体何やってるのと言われ、勉強会の申し込みと答えたら呆れられた。


勉強会に参加して、「第0回 HTML5 プログラミング&クリエイティブ・コンテスト」にZen-CodingのChrome Extensionで応募して、特になにも受賞しなかったので第17回(2011年5月)でExtensionについてLTして、それがきっかけで@ITの何本か記事を書くことになって、他のところでも何回か講演をやって、気がついたら、こんなところまできてました。


自分がスタッフになってしまったら、そのコミュニティを褒めることってなかなかできない。というわけでいまのうちに。

html5j.orgは、すばらしいコミュニティです(笑)

毎月100名規模の勉強会を開催するというのは、かなり大変だと思う。でもこういった活動があるから、HTML5に興味を持つ人が増える。僕みたいに。

勉強会に直接参加できなくても、Ustなどの配信があるし。いろいろな対応をしてくださるスタッフの方々のおかげで、勉強会に参加していていつもとても楽しかった。

これからは、微力ながらお手伝いをしていきたい。


僕はまず、自分が楽しみたい。でも、自分がなにかして他の人が楽しんでくれると、自分も楽しくなるじゃない。それに自分が楽しめないことは、続けられないし。

感謝の気持ちと、初心を書いておきたいな、と思って、これを書いた。もっとWebやHTML5が、楽しく、愉しくなるといいな、と思いつつ。

2012-01-20

[][]wasbook reading #11

「体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践」読書会の第11回。

今回読んだのは以下の範囲。

  • 7章 携帯電話向けWebアプリケーションの脆弱性対策
    • 7.1 携帯電話向けWebアプリケーションの技術的特徴
    • 7.2 携帯ブラウザの技術仕様
    • 7.3 かんたんログインの問題
    • 7.4 URL埋め込みのセッションIDによる問題
    • 7.5 その他の問題
    • 7.6 まとめ

7章 携帯電話向けWebアプリケーションの脆弱性対策

7.1 携帯電話向けWebアプリケーションの技術的特徴

携帯からのアクセスの場合、キャリアのゲートウェイからインターネットに接続される。ゲートウェイはプロキシのように動作し、WebサーバにはゲートウェイのIPアドレスが記録される。

ゲートウェイでは携帯IDの付与、クッキー保持、絵文字の変換などが行われる。

携帯のブラウザには機能制限がある。クッキーやJavaScriptが使えなかったり、いくつかのヘッダが制限されていたり。

携帯電話からのリクエストには、携帯ID(契約者固有ID、端末固有ID、個体識別ID、ケータイIDなどをまとめて携帯IDと記載する)が付く場合がある。


7.2 携帯ブラウザの技術仕様

キャリア毎にJavaScriptの制限が違っていて大変そう。

キャリア毎にCookieの制限が違っていて大変そう。


7.3 かんたんログインの問題

一定周期で話題になっているような気がする「かんたんログイン」。かんたんログインとは以下のような方法で実装されることが多いみたい。

  • 携帯電話からのアクセスであることを確認する
  • 利用者登録の際に携帯 ID を記録しておく
  • ログイン時には、携帯 ID を調べ、登録済み利用者が見つかれば認証成功とする

先に書いておくけど、携帯IDを利用したかんたんログインを安全に実装するのはすごく大変なので、やめたほうがいいと思う。


かんたんログインを安全に実現するには、「携帯電話からのアクセスであることを確認する」必要がある。これ、すごく難しい。

携帯IDを確認しても、それは偽装されているかもしれない。かんたんログインは携帯IDのみで認証成功とするので、携帯IDを偽装されるとなりすましができてしまう。

そのためにはリモートIPアドレスで確認する必要がある。

でもテザリング(携帯電話経由でのPCのインターネット利用など)している場合も携帯か判別する必要があるし、リクエストヘッダをJavaScript書き換えられる可能性もある。

じゃあどうするかというと、パスワードによる認証にして、ログイン状態の保持にはCookieを利用するのがよい。つまり普通の認証と同じように実装するということ。ユーザとしても、かんたんログインはなるべく利用しないようにしたい。


7.4 URL埋め込みのセッションIDによる問題

iモードではCookieが使えない時代がけっこう長かった。そんなわけで、URLにセッションIDを埋めこんだりすることもあったけど、これも危ない。

セッションIDの固定化や、セッションID付きのURLをだれかに教えてしまったりと。そうすると、意図せずなりすましになってしまうこともある。

対策としては、できる限りはCookieを使う、外部リンクにはクッションページをはさむ、ログイン後にセッションを開始する、といった方法がある。


7.5 その他の問題

普通のWebサイトと同様に、脆弱性対策を行う必要がある。


7.6 まとめ

Cookieに対応していない端末の対処が煩雑になりがちで、Cookieが使えないと認証とセッション管理に大きな影響があるので注意する必要がある。


まとめ

かんたんログインについては、こちらも読んでおきたい。

携帯電話のJavaScriptについては、こっちも読んでおきたい。

携帯(ガラケー/フィーチャーフォン)向けシステムの構築は難しい。僕がこれから新しく作ることはあまりなさそうだけど、こういった問題があることは十分に意識しておきたい。


これまでののメモはこちら。


体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践
徳丸 浩
ソフトバンククリエイティブ
売り上げランキング: 3997