ブログ一覧

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

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

「9/2 OpenPNE3で学ぶsymfony勉強会@Nifty(19:00〜)」の開催レポートです。

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

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

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

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

関連記事:

9/24 9/25 PHPカンファレンス2010に参加します。

9/24 9/25 大田区産業プラザPiOにて「PHPカンファレンス2010」が開催されます。

http://phpcon.php.gr.jp/2010/

お世話になっているPHPに少しでもお返しができればと、今年はスポンサーとして参加します。

手嶋屋とOpenPNEプロジェクトはブース出展、セミナーでの講演を予定しています。

セミナーでは、最新バージョンであるOpenPNE3.6の新機能を中心に、今後のロードマップなどを発表する予定です。

※詳細が決まり次第続報をお届けします。今のうちから予定を空けておいてください。

関連記事:

とっさの即席カーテン

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

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

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

用意するもの

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

・普通のホッチキス。

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

即席カーテンの作り方

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

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

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

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

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

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

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

関連記事:

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

OSS化のススメ

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

OSS関連の書籍から学ぶ

・伽藍とバザール

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

・JustForFun


・The Apache Way

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

・WordPress
http://wordpress.org

・OpenPNE
http://www.openpne.jp

経験から学ぶ

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

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

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

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

関連記事:

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

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

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

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

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

関連記事:

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

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

ページの先頭に戻る