社長BLOG

09/02 symfony×OpenPNE3勉強会のまとめ(@Nifty会議室)

「9/2 OpenPNE3で学ぶsymfony勉強会@Nifty(19:00〜)」の開催レポート。
セッションの資料を共有する。

※手嶋以外のスピーカー資料も手に入り次第、本ページを更新します。

1. 「OpenPNEのモバイル機能とsymfony」スピーカー:手嶋守
日本で生まれたOpenPNEは、モバイルへの対応が充実しています。絵文字、携帯機種判別、フォームなどの個々の機能を紹介し、モバイル環境でのsymfony開発のアドバイスを行ないます。

20100902symfony xop3
http://dl.dropbox.com/u/151520/permalink/20100902symfonyXop3.pdf

1.5 「OpenPNEのモバイル機能とsymfony」スピーカー:川原翔吾
【特別LT参加】OpenPNEのモバイルOpenSocial機能について、プラグインの実装者本人のLTです!

2. 「OpenPNEコード探訪 - ソースから学ぶsymfony開発テクニック集 -」スピーカー:後藤秀宣
OpenPNE3には、随所にsymfonyを「使いこなす」ためのテクニックがちりばめられています。
このようなソースコードを具体的に取り上げ、symfonyを使った開発実務の現場で役に立つノウハウを紹介します。今回は「symfonyのイベントディスパッチャーを使って将来のカスタマイズに備える」を中心に話します。

OpenPNE同士のID設計【案】

OpenPNEの設計の話。

複数のOpenPNEをまたいだID設計を考えている。
このID管理体系を発展させ、Twitterや他のSNSサービスにも応用ができるようにしていきたい。

考えたIDは二つ

・ネイティブID
そのSNSに直接所属するID。社員番号や学籍番号みたいに組織が組織のメンバーに発行するIDだと思って欲しい。

・ゲストID
SNSにログインするために利用する外部のID。OpenPNEにGmailのメールアドレスでログインする。というのがこれに当たる。

例を出して、もう少し理解を深めよう。

Twitterの場合は、スクリーンネームがネイティブIDで、参加時に利用するメールアドレスがゲストID。
mixi.jpの場合は、ユーザーID(自分は2936)がネイティブIDで、ログイン用に使うメールアドレスがゲストID。

図示するとこうなる。
OpenPNE同士のサイト連携の場合、@teji.comというSNSのメンバーが@pne.jpというSNSにログインする場合は、mori@teji.com というゲストIDを利用することになる。

mori@teji.comは @pne.jpの運営者の判断でmori@pne.jpというネイティブIDを発行してもらうこともできる。

この辺りが基本構造。
※もう少しまとまったら、改めて記事を更新する。

さくらのVPSにOpenPNE3.6 Betaをセットアップ

さくらのVPSが正式にサービスインした。

512MBのメモリで月々980円はかなり安い。

さくらには昔から世話になっていたが、クラウドがブームになってからは、少し疎遠になっていた。
今回さくらが本気でサービスを作ってきたのはとっても嬉しい。
※個人的には、クラウドって名前を付けて欲しかったが、

サービスインを記念して、OpenPNE3.6 Betaをインストールしてみたので設置レポートする。

OpenPNE3を快適に動かせる環境かどうか、チェックしてみたい。

さくらのVPSトップ

契約するとこんなコントロールパネルが表示される

リモートコンソールも提供してくれている。ネットワークを間違えて切っても安心だ。

OpenPNE3.6 Betaをセットアップ

できあがりのディレクトリ構造

OpenPNEの本体を設置する場所

Apacheから参照する場所

実体を/home/admin/OpenPNEに設置し、シンボリックリンクを張ってApacheから参照できるようにするところがポイント。このやり方で無くてもいいが、非常にうまく行っているので参考までに。

設置手順

※viエディタがわからない人は nanoエディタを使ってみてください。多少分かりやすいはず。

いきなりOS再インストール

rootのパスワードがわからなかったので、再インストールしてパスワードを設定した。

※【追記】しばらく待っていれば、構築完了のメールが届くようだ。せっかちだったので、メールを待てなかった。

サーバにsshでログイン
OSXであればターミナルから直接ログインができる。

adminユーザーを作成

vi /etc/ssh/sshd_config ssh rootログインできないようにする。

パッケージのインストール

CentOS5そのままではOpenPNE3が必要とするPHP5.2が含まれていない。
Dinoさんのレポジトリを利用し、PHP5.2.11をインストールする。

yum update
rpm -ivh http://nog.dino.co.jp/dist/centos/5/dino/noarch/dino-release-1.0-1.noarch.rpm
yum -y install httpd mysql-server postfix aspell curl gmp libxslt wget httpd-devel php-5.2.11 php-cli-5.2.11 php-devel-5.2.11 php-pear-5.2.11 php-mbstring-5.2.11 php-pdo-5.2.11 php-mysql-5.2.11 php-gd-5.2.11 php-mcrypt-5.2.11 php-xml-5.2.11
yum -y remove sendmail

※単なる install php では libeditがないと怒られ、うまく行かなかった。バージョン指定で乗り切る。

/home/adminのディレクトリパーミッションは755に。

chmod 755 /home/admin

ここ(/home/admin/OpenPNE/xxx.com)にOpenPNEの本体を設置していく。

/var/www/snsにApache側から見たSNSの置き場所を作成

所有者をadminにしているのは、設置のしやすさを考えて。

ダウンロードのリンクアドレスをコピー

ターゲット環境(/home/admin/OpenPNE)でwgetして展開する

お好みでサイト名のディレクトリにリネーム。
今回はIPアドレスにする。普段はドメイン名を指定しているよ。

configディレクトリの中から2つのサンプルファイルをコピー

データベース作成とパスワードを設定

./symfony openpne:install でインストール

おっとメモリが足りない

vi /etc/php.ini で使用メモリを128MBまで増やす

再び ./symfony openpne:install 今度は成功だ

vi /etc/httpd/conf/httpd.conf でApacheの設定をする

AllowOveride を有効にしておくことがポイント。OpenPNEがmod_rewrite .htaccessで利用する。

シンボリックリンクをはる

実体を設置している/home/admin/OpenPNEとApacheから参照される/var/www/sns/をつなぐ。

設置完了!

APCで高速化【番外編】

このままでもOpenPNE3は動くが、快適に動かすにはAPCを追加で導入するといい。

pearコマンドでAPCをインストール

こんな表示が出ればインストールはOK。

有効にするためには、
/etc/php.ini に extension=apc.so を記述する。

ここでApacheを再起動。

phpinfo()で動作確認。

web/test.php ファイルを作成する。

ブラウザからtest.phpにアクセス。 http://59.106.172.77/test.php

これでAPCの動作確認も完了。

※このサーバは9月7日に解約します。しばらくデフォルト設定のままにしておくので、確認用にどうぞ。

株式会社手嶋屋の社内SNSを紹介

昨日EGMサミットというイベントに出席させていただいた。

EGM というのはEmployee Generated Media の略で、(主に大企業の)従業員が中心となってつくり上げる、社内ネットメディアのことを指すそうだ。

各社の利用事例を聞いて、刺激を受けた。
今日は手嶋屋も負けてないんだぞと、OpenPNE発明元としての、超絶な使い方を紹介したい。

まずは基本情報から

・メンバー実人数:40人(全スタッフ参加)
・登録種別:社員、業務委託、インターン、卒業生(卒業生はログイン停止)、ボット
・OpenPNEバージョン:3.4.6
・レンタルサーバ:ラックスペースクラウド(RackSpace)512MBメモリ
・OS:CentOS 5.5くらい

これがトップページだ。OpenPNE Ver3.4を利用している。
特徴は以下のとおり。

アクティビティ(つぶやき)

流行りのタイムライン風ユーザーインターフェースを採用した。日記はもう古いね。

全員参加
招待制ではなく、手嶋屋正社員、インターン、業務委託スタッフなど全員が参加している。

全員フレンド
強制的にみんな友達になる。インターンが参加しても、翌日にはみんなと友達になっている。
opAutoFriendPluginを利用して実現。

シングルサインオン
手嶋屋はGoogleAppsでメールやドキュメントの管理をしているが、そのアカウントとOpenPNEをシングルサインオンできるようにしている。
opAuthGoogleAppsPluginを利用して実現。

ランチランダマイザー
ランチのメンバーを自動的に決めてくれるボットプログラムを稼働させている。
opLunchRandmizerPluginを利用して実現。

社内SNSの中で、ランチのメンバー決めだけをひたすら続けてくれるバーチャル社員だ。

世間の声
3カラム目にTwitterのリアルタイム検索結果を表示している。検索文字列は「手嶋屋 OR OpenPNE」うちに対する世間のつぶやきを全メンバーで閲覧できるようにする狙いがある。

GoogleCalendar
GoogleAppsとシングルサインオンしているので、個々のメンバーのカレンダーを表示することもできる。
実験的にだが、OpenPNE内にカレンダーを表示している。

ここで紹介した機能は、すべてオープンソースとして公開している。
http://github.com/tejima

とっさの即席カーテン

引越しをした最初の夜、この部屋にカーテンが無いことに気づいた。

そんな経験はないだろうか?

さて困ったどうしよう、という時のライフハック。

用意するもの

・IKEAのセールで買った掛け布団カバー。中の布団は出した。

・普通のホッチキス。

この二つがあれば、即席カーテンが出来上がる。

即席カーテンの作り方

作り方は簡単。まず布団カバーの一辺に等間隔でホッチキスでパンチを打っていく。
カーテンレールのコマの数だけ打つ、今回は15ヵ所にパンチ。

ホッチキスの工夫が今回のポイントだ。
針の片側だけがカバーにかかるようにパンチする。もう片側はわざと空振りさせておくのだ。

そして空振りした方の針を開いて、フック状の形にする。

あとはそれをカーテンレールに引っ掛けるだけ!

なんとこれだけで、立派なカーテンができあがる。

ほら、どう見ても普通のカーテンにしか見えない。

なんだかもう、このままでもいいんじゃないか?という気がしてくるぐらい、部屋に馴染んでいる。

先週のOpenPNE3設置サイト数は117

総セットアップサイト数は6115 http://openpne.jp
ついぴーねから

OSS化のススメ

自社製品のオープンソース化を検討する企業に対するアドバイス。

OSS関連の書籍から学ぶ

・伽藍とバザール

http://cruel.org/freeware/cathedral.html

・JustForFun


・The Apache Way

OSSの先輩プロジェクトから学ぶ

・WordPress
http://wordpress.org

・OpenPNE
http://www.openpne.jp

経験から学ぶ

とにかくいち早く公開し、利用者のフィードバックに耳を傾ける。これが一番大事。

ソースコードが未完成でも、美しくなくてもいいので、公開する。
プロジェクトの運営も、相談もすべて公開された場所で行うことが必要だ。

ライセンスは頭を悩ますところだが、とりあえずソースを公開したうえで
「全著作権は◯◯に帰属します」としておけばOKである。
その後ライセンスを設定しても問題はない。

ちなみにOpenPNEプロジェクトの経験についてセミナーで話したものがある。
https://www.tejimaya.com/archives/5804

オープンソースの先輩、wordpress.comのUUがすごい

http://www.google.com/adplanner/static/top1000/
より、オープンソースのプログエンジンWordPressの商用ホスティングサイト、wordpress.comのユニークユーザー(UU)がすごい。

TwiterやBingを押さえてTop12位に位置している。
1億2000万ユニークユーザーというとてつもない数だ。

※Facebookのページビューも2位と十倍近くの差をつけ、ダントツですごいんだけどね。

理系女子大生コミュニティ「凛」がMITへのツアー参加者を募集中

理系女子大生コミュニティの「凛」がマサチューセッツ工科大学(MIT)へのスタディーツアーの参加者を募集している。

「凛」代表の辻さんには、Jobwebのインタビューの時にお世話になった。
http://student.jobweb.jp/contents/engineer/6302

その時以来、仲良くさせていただいている。今回、その「凛」がMITへのスタディーツアーを行うとのこと。

自分も19歳の時、MITに見学に行ったことがある。その時は単なる観光だったので、今回のようにスタディツアーとして中の人たちと交流することはできなかった。

自分が学生の時にこうしたプログラムがあったら、絶対に参加していただろう。

しかも今回は、理系女子サークルの企画だ。当然女子の参加が多そうだ!
ボストンにはハーバードもあるし(キャンパスにリスがいる)、湖や森はとてもステキだ。

ぜひサイトで詳細をチェックし、申し込んで欲しい。
http://rikeigirlsrin.blog103.fc2.com/blog-entry-247.html

===================================
HOW DO YOU BECOME A SPECIALIST?
———————————–
米・MITで学ぶ
スペシャリストとしてキャリア形成を
      考えるスタディーツアー
・  ・  ・  ・  ・  ・ 
一 般 参 加 者 募 集 開 始!
===================================

「変化が激しい世の中だからこそ、
 自分の強み を持たなければならない」

自分で自分のキャリアを築く必要性が
説かれるようになっている。

では、具体的に何をするべきなのか?

それをイノベーションの最先端を走って
いる人たちにきき、スペシャリストとして
キャリアを築く上で必要な観点を知る。

これが本スタディーツアーの目的です。

今回この目的に共感し、
インタビューやディスカッションに参加する
一般参加者を募集いたします!

また、事前インタビューとして、
MITメディアラボ副所長・Tangible Bits研究創始者の、
石井裕教授へのインタビューを東京にて実施いたします!
(8/15までにご応募いただいた方のみ同行可)
石井教授HPはこちらです。

一生に一度のチャンスです。
この機会をお見逃しなく!

===================================
ツアー概要
===================================

【実施期間】
 9月7日~9月11日
※9月7日 MITにて現地集合
※9月11日 ボストン市内にて解散
※9月5日 東京にて石井裕教授に事前取材
  (一次募集応募者のみ同行可・参加任意)
  (時間・場所等詳細は追って連絡いたします)

【プログラム内容(仮)】
 9月7日
  MITキャンパスツアー
  大学職員インタビュー
 9月8-9日
  現地スペシャリストインタビュー
  ※詳細調整中
  エンジニア、研究者等に依頼中
 9月10日
  現地大学生インタビュー
  ツアー参加者によるディスカッション

【参加費】
 プログラム参加費 5万円
(※渡航費、宿泊費等は含まれません)

【参加資格者】
 ・将来スペシャリストとしてのキャリアを築いていきたい方
 ・海外に留学したいと思っている方
 ・海外でのキャリア形成の実態を知りたい方

 ※社会人・学生・性別は問いません

http://rikeigirlsrin.blog103.fc2.com/blog-entry-247.html

9/2 OpenPNE3で学ぶsymfony勉強会@Nifty(19:00〜)

※告知をATNDに集中させます。

【お申し込み方法】
参加をご希望の方は、ATNDからお申込みください。
http://atnd.org/events/7417

【お問い合わせ】
twitter @tejima にご質問ください。
http://twitter.com/tejima

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

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

ページの先頭に戻る