mtddc meetup nagoya 2014-01-18 seiichiro hazama

Post on 20-Aug-2015

1.801 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

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 の焼き直しと

言いつつ

携帯電話では

動きません。

おしまい

top related