社長BLOG

HOUOU symfonyが見えると、シンプルに見えない

はじめに断っておくとsymfonyが嫌いなわけではない。優れたアプリケーション構造を持ち、PHPであれだけ深いレベルのプラグイン機構を備えていることは凄いと思う。

構造としては素晴らしいが、一般ユーザーやOpenPNEを拡張するデベロッパーにとって使いやすいか?
というと話が変わる。

symfonyはシンプルではない。自分はsymfony自体がシンプルである必要はないと思っている。
あれほど複雑なことを実現するんだから、フレームワーク自体が複雑になっても仕方がない。
OpenPNEの内部にsymfonyがいて、それが複雑でも構わない。

ただ、その複雑な構造が外から見えてしまうことは避けなければならない。
車だって、電話だって、テレビだって、内部の構造はどんなに複雑でも、エンドユーザーから見るとシンプルだよね。

OpenPNEは独自のソーシャル・ネットワークを構築する人のためのソフトウエアだ。
組織やコミュニティの運営に関わる人達に使ってもらいたいソフトウエアだ。
シンプルで、十分に使いやすくなければならない。

開発期間の短いHOUOUシリーズではそれほど改善できないが、symfonyを外から見えにくくしていく取り組みは行いたい。

symfonyコマンド
./symfony openpne:install
symfonyって何?って思う。
./op3 openpne:install のほうが理解しやすくないか?

Doctrineって何?
Doctrine::getTable(“Member”)->find(1); Doctrineって何?って思う。
OPDB::find(“Member”,1);のほうが理解しやすくないか?

ymlって何?
エンドユーザーがymlを知っている必要はない。
オールドスタイルのconfig.phpのほうが慣れているしシンプルだ。

こんなことが、ぱっと思いつく。
これまでのOpenPNE3は素晴らしいけど、ちょっと難しすぎる。

OpenPNEの発展を示す指標

OpenPNEの発展を示す指標ってなんだろうか?
プロジェクトの目標を確認する上で、HOUOUの進行中に定めておきたい。

・ダウンロード数
・セットアップ数
・生きているSNSの数(測れるの?)
・利用ユーザー数
・アクティブ率

などなどいろいろあるけど、どれがいいだろうか?

jQueryMobile1.0がリリースされた

jQueryMobileが正式バージョンとしてリリースされた。

jQuery MobileはjQueryコアおよびjQuery UIをベースに開発されたモバイルデバイス向けのフレームワーク。スマートフォンのみならずタブレットデバイスや電子リーダ、デスクトップまで幅広いプラットフォームに対してHTML5技術をベースとしたUIを提供することを目的としている。

引用元: jQuery Mobile 1.0、待望のリリース | エンタープライズ | マイナビニュース.

HOUOUのスマートフォン対応で使えないか?と調査をしたが、全面的な利用は見送ることにした。
SNSのホーム画面やフレンド画面のような複雑なレイアウトをこれで設計するのは難しいと判断したためだ。
多数のブラウザで同じ動作をする互換性を重視しているため、たとえばiPhoneで見たときに、iPhone専用に作られた画面よりも見劣りするというのも少し気になった。

それでも、表示が単純な設定変更画面や情報一覧画面などでは、活用できる可能性もあるので、
スマートフォン化の取り組みの中で、jQueryMobileも試してみようとおもう。

HOUOU ゴルゴンハニーのUI案

週末はゴルゴンハニーについて考えてみた。

UIはFacebookのガッツリ感とTwitterの軽やかさ、シンプルさを合わせ持ったような構造を目指している。

サンプルで作ってみたのはこれ。
◆ゴルゴンハニーPC UI #1

最近のソーシャルサイトでよくあるように、テキストボックスをクリックすると拡大する。
FacebookもTwitterもボタンが隠れていたり、そもそもボタンが存在しなかったりする(Enterで投稿となる)のだが、
これはUI的に分かりにくいと判断し、常に投稿ボタンが表示されているようにした。

表示名が@${screenname} となっているのは、jQuery Template形式の表示スタイルを使っているからだ。
まだ軽く試しただけだが、さすがjQueryだけあってJSONAPIとの相性がすこぶるよろしい。
今後のスマートフォンUI対応でも、このテンプレートスタイルとAPIリクエスト方式を採用したい。

月末リリース予定のマイルストンには、このUIをもっと洗練させて、HOUOUとこのプラグインを同時提供する。
プレーンなHOUOUと、新しいコミュニケーションスタイルのゴルゴンハニーとのすてきなハーモニーとなるか?

ゴルゴンハニーピザのような、シンプルなのにおどろきの美味しさを表現したい。

HOUOU情報更新

HOUOUの開発についての段取りでアップデートした内容を共有する。

マイルストンは一ヶ月ごと

毎月月末を開発マイルストンとし、その時点のパッケージをリリースする。最初のマイルストンは11月末。タグの名前はHOUOU20111130とでもしようか。
3.7.xといったどの開発バージョン番号を振るかはまだ決めていない。

11月、最初のマイルストンの内容

OpenPNE開発版の最初のマイルストンは、OpenPNEをスリムにして開発のスタートラインに立つことを表明するリリースにしたい。「シンプル」「スピード」「スマートフォン」のうちの「シンプル」を体現するリリースになる。

プラグインバンドル外し、prototype=>jQueryへの置き換え、インストールプロセスの短縮(ネットワークレス)、プラグインの手動インストールの利便性向上このあたりを盛り込む。

OpenPNEが裸一貫、プレーンな状態からスタートするイメージだ。ただ、プレーンなままじゃ使っても楽しくない。ここは並行して開発が進んでいるタイムライン機能「ゴルゴンハニー」も手軽に試してもらえるようにしたい。プラグインの手動インストールはこのために手配する。

いまのところのステータスは、5のうち2つ終わった状態。残りは取り組んでいる最中だ。
・prototype=>jQuery
・インストールプロセス短縮
・プアラグイン手動インストール利便性向上
DONE:プラグインバンドル外し
DONE:ゴルゴンハニー初期版

12月のマイルストンの予定

11月のマイルストンは、とりあえずスタートラインに立ったというものになる。12月が新しい要素を組み込む勝負のリリースだ。12月のマイルストンで予定しているのは、目玉の一つであるスマートフォン対応。
基礎的な部分(新規登録、招待、画像投稿)などは当たり前にクリアする。

これに加えて、どこまでUIやプラグインに対応できるかが重要だ。とはいえ、OpenPNEのコアをいきなり書き換えたり、プラグインを間違った方法で対応してもいけない。ここでもゴルゴンハニーに活躍してもらい、プラグインのスマートフォン化の最初の実験台になってもらう。

ゴルゴンハニーをとりあえずスマホ化しようと考えたのは、新規作成のプラグインであり、UIや使い勝手において、後方互換性を考慮する必要がないので試しやすいからだ。

すでにゴルゴンハニーは、従来のsymfonyアクションモデルを利用せず、
jQueryを利用したAPIベースのUIハンドリングで構築している。今のところ問題がない。
このままうまく行けばコアやプラグインのスマートフォン化にも反映する。もし失敗したら従来の方法で実装することになるだろう。

はじめて Adobe BrowserLabを使ってみた

Adobe BrowserLabとはAdobeが用意している、ブラウザの互換性チェックを楽にしてくれるサービスだ。

◆Adobe BrowserLab

手元に複数のブラウザやOSを用意しなくても、Adobeがクラウド上にたくさんのブラウザ環境を用意してくれて、そのレンダリング結果を画像キャプチャして届けてくれるというもの。

こんなふうに別々のブラウザでの表示結果を左右に並べて比較できたり、

◆左右で比較

同一画面に重ねて比較ができたりする。

◆重ねて比較

Adobe使いの人には当たり前の機能なのかもしれないが、初めて使ってみてとても面白かった。

キャンプファイヤーxハッカソン@ふじみ野

イベント写真

◆現地の様子

※これは手嶋のプライベートなイベントです

11月26日 土曜日から日曜日にかけて、ふじみ野のログハウスで
キャンプファイヤー&ハッカソンイベントを開催します。
【場所】ふじみ野のログハウス http://g.co/maps/js5s5

焚き火とハッカソンなので、合わせて「発火ソン」。
ハッカソンの参加が初めてという方も、歓迎します。ぜひご参加ください。
ハックしないけど焚き火はしたい、深夜のハックに欠かせないノイズを供給しに来たい、という方面大歓迎です。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
【イベント名】「キャンプファイヤーxハッカソン@ふじみ野」
【日時】11/26(土)13:00〜(日)朝まで
【場所】ふじみ野のログハウス http://g.co/maps/js5s5
【電車での行き方】
東武東上線池袋駅〜ふじみ野駅(特急24分)
現地はふじみ野駅から2km程のところ。駅から送迎します。
※駐車場あります

【募集参加者】
ハック担当、焚き火担当、料理担当、畑草むしり担当、買出し担当、運転担当、食べるだけ担当

途中参加、途中退場可能です。
オーバーナイト希望者は寝袋や毛布を持参してください。
なければ駅前のアウトドアショップで2,000円程度で購入できます。

【参加費】
無料。食事やスナックなど食べ物、飲み物の差し入れをお願いします。

今回はプレ会で、現地に固定ネット回線を引いていません。
(プレ会が好評なら引きます)。
無線Wifiを持参&共有いただけると助かります。

【参加方法】
Facebookイベントから申し込み
http://www.facebook.com/event.php?eid=276864375684425

【スケジュール】
〜11/26土曜日〜
12:00 主催者現地集合
13:00 ハッカソンスタート
18:00 夕飯
20:00 キャンプファイアー
22:00 希望者は近所の温泉へ(ログハウスにお風呂もあります)
※当日お帰り組の送迎もここで行います
00:00 深夜セッション「未定」

〜11/27日曜日曜日〜
09:30 ハック結果の共有&お開き
11:00 最終撤収

【幹事】
手嶋 守 @tejima tejima@gmail.com
※緊急連絡先は別途お伝えします

HOUOU SNSの活性度インジケーター

アクティブ率、日記投稿数、コメント数、コミュニティ数などSNSの活性度を示す指標はいくつも考えられるが、
これもHOUOUで再定義したい。

今検討しているのは

月間のべログイン回数だ。簡単に言うと
10,000人のユーザーが居るSNSの月間最大のべログイン回数は、10,0000 x 30 = 300,000回(または310,000回)となる。
この回数をマックスとして、全ユーザーが2日に1回ログインすると、月間のべログイン回数は10,000人 x 15回 = 150,000回となる。さらにそれが半分のユーザーだとすると5,000 x 15 = 75,000だ。

なるべく多くのユーザーがなるべく毎日サイトに訪問することがSNSの成功を示しているという形は、分かりやすいと思う。
もし会社などで、土日に使われないことが分かっているSNSであれば、毎月の分母を30、31ではなく20などと営業日換算すればいい。
企業に置ける毎月の最大述べログイン回数は、
10,000 x 20 = 200,000
となる。

これはHOUOUのサクセスレベルとは独立して管理用集計プラグインとして独立して開発しようと思う。

HOUOUのスマートフォン化はゴルゴンハニーが人柱になる

スマートフォン対応の、実装方法についてどのような方針が良いかを決定するために、
ゴルゴンハニーが人柱になって先行して実装する。
この研究を元に、コアやプラグインの実装方針に対するガイドラインになってもらうことにする。

HOUOUのスマートフォン対応は3つのセクションに分かれる。

1.基盤部分
・新規登録、招待関連
・携帯メール投稿
・UIDを使わないクッキー認証(使い勝手がいいようにログアウトまでの期限はめちゃくちゃ長くしたい)

マイルストン HOUOU2で仕上がる予定。

2.OpenPNEコアUI
・ミニマムサクセス:ログイン、ホーム、フレンド、コミュニティ、ログアウト

マイルストン HOUOU2で仕上がる予定。

・フルサクセス:日常的に使う画面(プロフィール変更、設定画面)
・アドバンスドサクセス:全画面(おそらく非対応に)

3.プラグインUI
・プラグインはどのようにスマートフォン対応してもらうか?

ゴルゴンハニーでどのようなアクションモデルを検討しているかについては
のちほど柏木さんに解説してもらうことにする。

HOUOU開発ミーティングメモ

手嶋、柏木、木村3名でミーティングしたメモを共有。

先週の取り組み内容

各自ブログで取り組みや考えを書く
週初めに、各自のブログ記事へのリンクを「先週のHOUOU」としてOpenPNE公式ブログで共有する。

Github上にhouou organizasionを作った
「openpne/OpenPNE3のブランチじゃだめなの?」と川原さんから指摘。
opnepneレポジトリの操作、作法に慣れてないから練習のため、と答える。
木村さんから、手嶋、柏木が作法を教えてもらって、早急にマスターする。

RedmineよりもタグとVersion
RedmineのサブプロジェクトでHOUOUを作っているが、それよりも、タグとVersionを使ったほうが良いのではないか?
これまでのやり方に対して、迷惑をかけないように、別プロジェクトや別organizationを作っているが、逆にバグチケットを登録したりする作業がやりにくくなり、閉鎖的になってしまう可能性がある。

ゴルゴンハニー
キラープラグインは開発ネームをゴルゴンハニーと名付けた。
HOUOUのミドルウエアとしての実装を確かめるために、HOUOUと寄り添う形で開発する。
ゆくゆくはHOUOUの魅力を高めるキラープラグインとしてバンドルを目指す。

ゴルゴンハニーのPC版のアクションスタイルは
jQuery=>JSON Action=>jQueryTemplateで実現。
ユーザータイムライン相当の機能はできたが、コメント機能はまだ。
PC版もスマートフォン版も同一のJSON Actionを利用する予定だ。

OpenPNEコアの動き
プラグインは外した状態での動作は、わりとしっかりしている。
prototype外しは、意外とuse_helper Javascript が多い。
=>sfProtocorusに入っているヘルパーをリプレイスする方式にする。インターフェース一緒で実装を入れ替えるリファクタリング的な発想。どうもそれほど大した関数は使ってないようだ。

この変更は、リファクタリングとなり、過去との違いが分かりづらいかもしれない。
プラグイン作者に対しても告知が必要だ。

最初のマイルストンについての各自の予定と進捗

・openpne本体でのブランチ操作
・prototype=>jQueryに移行中であることのブログ、ML表明
・openpne:install で、ネットワーク通信なし、pluginサーバ確認なし、パッケージ同梱で、セットアップできるようにする
・openpne:installのインタラティブをやめる
・opPlugin:install-from-zip などをつくって、ネットワークレス、手動設置でプラグインをインストールできるようにする。(マイグレートのダウンサイズ版)
・機能ごとにブランチを作って、変更単位が分かりやすくする。(木村さんおしえて)houhouで1回実行=>openpneのブランチで本番

HOUOUマイルストンの確認

HOUOU_NOVEMBER
・prototype=>jQuery
・インストールがネットワークレス
・インストールに必要な全プラグインをZIP同梱
・ガジェットレイアウトをさっぱり
・プラグインを手動設置したときの配慮
・ゴルゴンハニーがスムーズに動くようにする

HOUOU_DECEMBER
・スマートフォン基盤系
・コアから機能を外す
・スマートフォンUI一部(新規登録、ログイン、ホーム)
※バンドルプラグインのスマートフォン化は方式が完全に固まってから
・ゴルゴンハニー:一部スマートフォン対応
・スマートフォン向けにJSONタイプのアクションを整備する

TODO:RedmineにHOUOUプロジェクトが作られているが、OpenPNEプロジェクト内のバージョンとタグでやれるようにする。木村さんがチケット作ってみて。ブログも書く。

OpenPNE�~�蓈���񋟃T�[�r�X�̂��m�点

  • ��K�̓z�X�e�B���O
  • �Z�p�T�|�[�g
  • �J�X�^�}�C�Y
  • OpenPNE Manager
  • ���q���܃T�|�[�g

ページの先頭に戻る