mtddc meetup nagoya 2014-01-18 seiichiro hazama
TRANSCRIPT
Movable Type 6 でできること(仮)
SixApart KKMovable Type Engineer
Seiichiro Hazama
改め
Data API で遊ぼう(仮)
SixApart KKMovable Type Engineer
Seiichiro Hazama
発表させて
頂きます。
はじめまして。
間(はざま)
誠一郎と
申します。
Movable Typeエンジニア
です。
ネットでは
太鉄(たいてつ)
という名前で
活動しています。
MT4i の中の人です。
(MT4i については
後述)
まずは
自己紹介
がわりに、
私と
Movable Typeの出会いの話を
させてください。
私が
Movable Type と出会ったのは
2002年11月頃
カテゴリ分けの
できる
日記スクリプトを
探していて、
Movable Typeと出会う
まだ
「ブログ」という
言葉も
無い頃
「ウェブログ」
なのか
「ブログ」
なのか
そんな議論が
なされていた
時代のこと。
version は確か
2.51 とか 2.52 とか
そしてこの頃の
Movable Type には
日本語版など
存在せず
日本語化
する為には
有志による
パッチを
適用する必要が
ありました。
JapaneseLanguage Pack
http://uva.jp/dh/mt/archives/000190.html
daiji hirata
そして
2003年7月
バレーボールの
ブログを
始める
翌年が
アテネ五輪
女子バレーの
復興ムードに乗り
そこそこの
PVを稼ぎ
なんとなく
ブログブームに
乗っかった
その年末
その年の
ベストblogを
選出する
blog of the yeah!2003
が開催され、
その
スポーツ部門に
何故か私の
ブログが
ノミネートされる
という事故発生。
のこのこと
会場へ
でかけ、
惜しくも(?)
受賞は
逃すが
ここで
人生を変える
出会いをする
誰に会ったのか
というと
daiji hirata
JapaneseLanguagePackで
お世話になって
いたので
挨拶して
名刺交換させて
頂いた
これが
縁で
その約2年半後の
2006年6月
シックス・アパートへ 転職
Movable Typeが縁で
転職したので
当然
Movable Type を担当することに
なる
と
思うじゃ
ないですか
履歴書にも
「MovableTypeやりたい」
って
書きましたし。
ところが
その履歴書を
見た
面接担当者
daiji hirata
「Movable Typeじゃなきゃ
だめですか?」
とか
言うんですよ。
咄嗟に
「いや
かまいません。
なんでも
やります!」
って
応えたん
ですけど、
内心、
「え」
って感じでした。
そんな経緯で、
2006年~2010年
TypePad(現Lekumo
Business Blog)担当でした。
そして
2011年~2012年
Lekumoキャンペーン
ビルダー
を担当。
そして
2012年10月
遂に
満を持して
Movable Type担当へ。
使う側から
作る側に。
文句
言う側から
言われる側に
なりました。
しかし
開発担当
エンジニア
である前に
一ユーザーでも
あるわけなので、
自分でも
より
使いたく
なるような
そんな
魅力的な製品に
皆さんと一緒に
育てて
行けたらなと
思っております。
閑話休題
さて本題へ
Movable Type の長所と言えば
長らく
静的コンテンツの
生成
と
言われてきました
もちろん、
それは MT6 においても
顕在で
それに対する
一つの回答が
2014年01月15日に
リリースされた
新しい
Movable TypeAdvanced
の
サーバー
配信機能です。
MT で生成された
静的コンテンツを
外部のサーバーへ配信して
公開できる機能
公開サーバーと
アプリケーション
サーバーを
分離したり、
その公開サーバーを
ロード
バランシング
したり、
ステージング
環境として
使ったり、
コンテンツの
バックアップ元
として
利用したり。
静的コンテンツ
としての長所を
最大活用する
機能が、
サーバー配信
機能なんです。
これがまず、
CMSプラットホーム
としての
MT6 の回答の一つ。
そして
もう一つの
回答が、
Data APIです。
Web を取り巻く環境は
日々変化
しています。
ユーザーの
環境は
PCスマートフォン
タブレット
携帯電話
etc...
様々。
これまでは
必死に
それらの環境に
最適な
コンテンツを
サーバーサイドで
用意しようと
躍起になっていた
昨今のトレンド
サーバーサイド
では
REST API などで
データを
配信する
だけ
コンテンツの
生成は
データを
受け取った
クライアント
(Web ブラウザ)
側で
デバイスに
合わせて
構築する
それに対する
回答が
Data APIなんです
さて、
皆さんは
MT4i
って
ご存知でしょうか
MT4i を知ってる人は
挙手 ノシ
知らない
人の為に
ざっくり
説明すると
MT = Movable Type4 = fori = i-mode
当時
主流だった
i-mode
しかし前述の
JapaneseLanguage Pack
http://uva.jp/dh/mt/archives/000190.html
daiji hirata
UTF-8or
EUC-JPを選択する
必要があり
EUC-JPを選択していた
i-modeは
Shift_JISしか
理解できない
さて
どうしよう
無いなら
作ってしまえ
で
できたのが
MT4iでした
なにを
しているかというと
MT::Objectでデータを取得
文字コードを
Shift_JISに変換
全角カタカナを
半角カタカナに
変換
(データ量削減)
指定バイト数で
ページネーション
絵文字の
入出力
なんか
それっぽい
レイアウトで
出力
コメントも
投稿
できるよ
適用すると
これが
こんな風に
結構
色んな方に
使って頂きました
で、
Data API で何か作ると
考えた時に
まず最初に
思いついたのが
Data API を使って
MT4i を作り直すこと
実は過去、
XML-RPC API でチャレンジ
したことがあった
しかし
XML-RPC API はあくまで
編集用
EntryのStatusが取れない
(公開or下書)
コメントが
投稿できない
など、
様々な
問題に直面し
断念
でも
Data::APIなら
できるよね
できるんじゃ
ないかな
ということで
作ってみた
DEMO
AngularJS+
Bootstrapで開発
当初は
jQuery Mobile でチャレンジ
動的コンテンツに
向いてないかも…
そこで
なにやら
流行ってるらしい
AngularJS
所謂
Javascript のMVC フレームワーク
長所は
ModelView
Controllerが分離できて
比較的
見通しの良い
コードが
書けること
かつ
非エンジニアでも
使える
(分かり易い)
と
言われている模様
そして
Data API との相性も
良い
さて
開発中に
Data API の問題を
一つ発見
Entries: get で取って来た
body(本文)及び
more(続き)に
Text Filter(フォーマット)が
適用されていない
リッチテキストで
書いていれば
問題ないが
MarkDown や改行を変換、
独自の Filter など
使っていると
Filter 適用前の
素の Text が帰ってくる
これは困る
こう表示して
欲しいのに
改行が
無視されちゃう
そこで
callbackですよ
Data API はcallback を
使って
カスタマイズが
可能です
post_run_data_api.get_entryにて、
API が値を返す前に
Filter を適用する
すると
さて、
どのように
表示されるか。
こうだった
戻り値が
<p>さて、</p>
<p>どのように</p>
<p>表示されるか。</p>
こうなって
返ってくるように
なりました
また、
Entries: get の返す
Object には
next やprevious が
無く
Newer やOlder のボタン
これ
が
実装できない
ので、
これも
callback を使用し、
nextId とpreviousId という
field を
Entries: get の戻り値に
追加しました。
このように
Data API は
callback を駆使して
様々な用途に
柔軟に対応
できる
実は、
独自の
Endpoint も生やせる?
まだ
試してない
けど。
ではまとめ。
サーバーサイドで
なんでもかんでも
コンテンツを生成
するのではなく、
サーバーは
データを
返すだけ、
コンテンツの構築は
クライアント
サイドで、
というのが
今のトレンド
というのは
前述の通り。
だからこそ、
AngularJS のような
Javascript の フレームワーク
が
重宝がられて
いる。
そんな時代に
Movable Type が
Data API を実装したのは
まさに時代の
要求であり、
これからの
Movable Type の歴史は
Data API の歴史と
なって行くのだ
ろうなと、
エンジニアとしても
ユーザーとしても
ファンとしても、
感じている
次第です。
そんな Data API で皆さん、
是非是非
遊んで
みてください。
作るのは、
なんでも
良いと思います。
最初は
個人で
欲しいなと
思ったもので。
MT4i も最初は
そうでした。
そうやって
色んな人の
色んな何かが、
たくさん
出てくることを
願っています。
以上、
ご清聴
ありがとう
ございました。
ちなみに
さっきの
アプリは
MT4i の焼き直しと
言いつつ
携帯電話では
動きません。
おしまい