開発者ブログ

手嶋屋の本棚を公開

川原 ( @ooharabucyou ) です。

手嶋屋のブログとして書くのは久しぶりです。

前々から、手嶋屋にある蔵書を管理したいと思っていたうえに、
それを公開してしまっては?っと思い、ブクログで公開することになりました!

http://booklog.jp/users/tejimaya

ブクログ上の見た目の整理も、まだまだですし
本以外の怪しいものも混ざっていますが、ぜひ御覧ください。

関連記事:

Have a good Symfony Day!

開発部の海老原です。

日本時間の昨日(2009/12/01)、 OpenPNE3 で使っている symfony 1.2.10、 symfony 1.3.0、 symfony 1.4.0 のリリースがありました。そして今日、 なんと新しいアドベントカレンダーがはじまりました!(しかも、もう日本語でも読むことができます!
この「アドベントカレンダー」というのは、 symfony 1.0 がリリースされた 2005 年の 12 月、そして symfony 1.2 がリリースされた 2008 年の 12 月におこなわれた、 12 月 1 日からクリスマスまでの間、チュートリアルを 1 日 1 章 symfony の公式ブログで公開していくという試みです。

More with symfony

さて、この新しいアドベントカレンダー、 「もっと知りたいsymfony(More with symfony)」 ですが、 1 日目の中程に僕の名前があるのに気がついた方はいらっしゃるでしょうか。

実は今回のアドベントカレンダーの翻訳では僕も参加しており、微力ながらプロジェクトに貢献をさせていただきました。
僕が翻訳を担当した章の公開はもう少し先の話になりますが、どの章をとっても symfony ユーザー垂涎ものの内容ばかりですので、毎日を楽しみにしていてください!

日本時間ではもう 12 月 1 日が終わってしまいましたが、 symfony はフランス製。まだまだ 2009 年の Symfony Day はこれからです。
というわけで、まだ symfony を触ったことがない! という方も、 1.x の最後の LTS (長期サポートのバージョン) が出て、翻訳チームの方々の尽力により日本語のドキュメントもばっちり揃ったこの記念すべき Symfony Day をきっかけに、是非 symfony の世界に足を踏み入れてはいかがでしょうか。
(そして symfony に慣れてきたら、どうぞ OpenPNE 開発にも足を踏み入れてみてください! お待ちしています!)

関連記事:

OSS を育てるために僕らができること

開発部の海老原です。

先日、 htmlspecialchars() の文字エンコーディングのチェックが甘く、これを利用して XSS に利用される危険があるということで日本人の岩本さんがパッチを提供しましたが、却下されてしまっていました
(ただ現時点で、 id:moriyoshi さんにより Subversion 上の PHP では対応済みです。ありがとうございます)

この件について各所で議論がされていました。
大まかな流れについては、徳丸浩さんがブログでまとめておられます
このエントリ中で、「このあたりから、一連の流れが広く知られるようになって、『もっと効果的な訴求方法があるよ』とか、海老原昂輔さんからもバグレポートが投稿されるなどの働きかけが始まっているようです。海老原さんのレポートには私のエントリも英訳されていて、本当にありがとうございます。」という風に述べられているように、僕もバグレポートの reject に対して抗議をしたり、その抗議のよりどころとして徳丸浩さんのエントリid:t_komura のエントリを英訳し、レポートとしてまとめたりしました(お二方にはこの場を借りて厚く御礼申し上げます)(僕のひどい英語についてはとりあえず目を瞑ってください……)。

ここまで読んで、こんな疑問を思った方はいらっしゃるでしょうか。「なぜ手嶋屋というアプリ屋の人間が / OpenPNE の開発者が PHP 内部のことに口を出すのだろう」と。
僕個人はあまり PHP に愛着を持っているわけではありませんし、文字エンコーディングについて精通しているわけでもありません。ただ、僕は、ひとりの OSS 開発者としてこの問題を見過ごせなかったのです。

ちょっと長くなってしまいましたが、このエントリでは、「なぜ海老原がそんなことを」ということから「OSS を育てるには?」というところをお話ししたいと思っています。
もちろん一口に OSS といっても様々ですので、すべてのプロジェクトに当てはまるとは思っていませんが、みなさんが「自分ももっと OSS に貢献してみよう」と思うきっかけになれば幸いです。
続きを読む

関連記事:

コミットメッセージに Issue ID を含むことを強制させる Git のフックスクリプトを書きました

開発部の海老原です。

OpenPNE プロジェクトで必要になったので、コミットメッセージに Issue ID を含むことを強制させる Git のフックスクリプトを書いてみました。
gist にコードをあげたので、是非ご自分の clone の .git/hooks/commit-msg 向けに変更して使ってみてください。
(僕はあまりシェルスクリプトを書き慣れてはいないので、指摘などもお待ちしています)

これを使うことで、たとえばコミットメッセージを含まないメッセージを記述した場合、エラーとなってコミットできないようになります。

また、 curl が実行可能な場合、 http://redmine.openpne.jp/ から Issue のタイトルを取得して表示させます。もし間違えた Issue を指定した場合でも、 git commit –amend ですぐにコミットを訂正することができます。

OpenPNE プロジェクトや手嶋屋での開発のように、チケットや Issue に強く依った開発をしている場合、コミット毎に Issue ID を強制することはかなり有効に働くはずです。是非活用してみてください。

関連記事:

symfony 1.3 で Symfony Templating を試してみた

開発部の海老原です。

本日、 Symfony ComponentsSymfony Templating が追加されました。

Symfony Components というのは Symfony 2 の構成要素となるライブラリ群のことですが、これらのライブラリは Symfony 2 とは関係なく独立して使用することができます。公開当初からドキュメントが完全に揃っていたり、ユニットテストのカバレッジが 100 % と謳われているなど、 symfony 以外で利用する場合でも魅力的なのではないでしょうか。

個人的にこのコンポーネントには Symfony2 に関するプレゼンテーション が公開されたときから注目していました。

Symfony Templating はいくつかの機能を備えています。ヘルパーはもちろん、テンプレートの継承や、ファイルだけでなくデータベース、メモリからのテンプレートの読み込みを可能にする機構(デフォルトはファイルのみ)、Smarty などの複数のパーサの利用を可能にする機構(デフォルトは PHP のみ)などです。
※かなりおおざっぱに紹介しているので、詳細は ドキュメント を参考にしてください。

管理画面からテンプレートの設定などをおこなう OpenPNE のようなソフトウェアにとって、複数のあるストレージやパーサを利用できるというのは非常に魅力的です。

ということでさっそく symfony 1.3 で Symfony Templating を使ってみたので紹介してみます。

※symfony ユーザとして世界ではじめて Symfony Templating を使う、というのを目指してみましたが、実のところどうだったんでしょう……

試してみたときのコード

試してみたときのコードを GitHub で公開しています。
http://github.com/ebihara/examine-template/tree/master

たいしたものではないですが clone や fork や pull リクエストはご自由にどうぞ!

symfony で使う手順

プロジェクトなどの生成

プロジェクト、アプリケーション、モジュールを生成してください。

Symfony Templating の追加

lib/vendor 以下に Symfony Templating を追加してください。

$ svn co http://svn.symfony-project.com/components/templating/trunk/lib/ lib/vendor/SymfonyTemplating

sfTemplatingComponentView.class.php の追加

lib/view 以下に拙作の sfTemplatingComponentView.class.php を追加してください

$ curl http://github.com/ebihara/examine-template/raw/master/lib/view/sfTemplatingComponentView.class.php > lib/view/sfTemplatingComponentView.class.php

オートローダーの設定

Symfony Templating 内のクラスがオートロードされるようにします。

config/ProjectConfiguration.class.php を以下のように変更してください。
http://github.com/ebihara/examine-template/commit/a2bf730058cd1fc58c1058b3f676b3e4b8422eba

View で Symfony Templating を使うように変更する

http://github.com/ebihara/examine-template/commit/62ce58a3a653ae390374e2f1b882c1e06f1ff992 の通りにやれば OK だと思います。以下にかみ砕いて説明します。

まず、ビュークラスとして拙作の sfTemplatingComponentView を使用するようにモジュールの module.yml に設定を記述します。


default:
  view_class: sfTemplatingComponent

また、アプリケーションの layout.php を、 Symfony Templating 向けに書き換えます。
layout.php で $sf_content を出力しているところを、 $this->get(‘content’) の返り値を出力するように変更します。


<?php echo $this->get('content') ?>

テンプレートでは、先ほどの layout.php を継承するために記述を加えます。


<?php $this->extend('layout.php') ?>

これで晴れて Symfony Templating が使えるようになるはずです!

sfTemplatingComponentView でいろいろやっているので、アクションからアサインされた変数を使用したり、ヘルパー関数を呼んだり、ということもいままで通りできます。

それからどうするの?

ここまででとりあえず Symfony Templating が手軽に使えるようになったと思います。

Symfony Templating の使用方法については ドキュメント に詳細な解説があるのでそちらを参考にしてください。

また時間があるときに、 Symfony Templating 自体の具体的な活用方法について紹介していければと思います!

関連記事:

社内勉強会で『OpenPNE3とOAuth』という発表をしました

開発部アルバイト川原です。
今日も元気に開発中のOpenPNE3ですが、
OpenPNE3.1.2からOAuthによるアクセス制御なるものが実装されるぜ! (trunkでは既にできている)
ということなので、この題材を扱ってみました。

まだまだ、改善の余地がありますが(特に認可画面)、
興味のある方は是非ともいろいろ実験してみてください。

関連記事:

社内勉強会で『symfony 開発見学ツアー+symfony 1.3 ってなんなんだー』という発表をしました

開発部の海老原です。みなさん今日も symfony 1.3 使ってますか?
ということで技術ネタです。
# 最近勉強会ネタばかりになってしまっていますが、落ち着いたら「コードの追い方」シリーズのようなものをまた連載していこうと思います。

今日、社内勉強会で、『symfony 開発見学ツアー+symfony 1.3 ってなんなんだー』というタイトルで発表したので、その資料を公開します。

弊社開発部はプログラマでないスタッフも多いので、前半はそういったスタッフ向けに、後半はバリバリに symfony 1.2 で開発をしているスタッフ向けにという二部構成で発表をおこないました。

OpenPNE 開発の中心となっている身として、 symfony の開発体制などから学ぶところはとても大きいです。他のスタッフもそういった視点でも symfony を見るきっかけになったようで、 発表者としてはとても嬉しい結果となりました。

開発者としてはやはり symfony 1.3 の痒いところに手が届く機能改善はかなり魅力的で、早くも symfony 1.3 使いたい病にかかってしまったスタッフが現れて、これも発表者としては嬉しい限りです。これからも引き続き symfony 1.3 に注目していきたいと思います。

みなさんも是非 symfony 1.3 の動向を見守ってみませんか?

関連記事:

社内勉強会で『OAuthで気持ちのいい アクセス制御を』という発表をしました

開発部の海老原です。みなさん今日も OAuth 使ってますか?
ということで技術ネタです。

今日、社内勉強会で、『OAuthで気持ちのいい アクセス制御を』というタイトルで発表したので、その資料を公開します。

発表中に出てくる、「うべったー(http://co3k.org/twitter/)」のソースコードは gist 上で公開しているので(突貫すぎてクオリティは高くありませんが)ご興味のある方はご覧いただけると嬉しいです。

関連記事:

社内勉強会で『PHP5.3ってなんなんだー』という発表をしてきました

開発部の海老原です。みなさん今日も PHP5.3 使ってますか?
ということで技術ネタです。

手嶋屋の開発部では、週2回、社内MTGルームで勉強会をおこなっています。
今日、『PHP5.3ってなんなんだー』というタイトルで発表したので、その資料を公開します。

ちなみに、今回主に参考にしたのが PHP 5.3 upgrading notes です。こちらもあわせてご覧ください。

PHP5.3、もう楽しみで仕方がないです! さっそくRC版で Phar アーカイブの作成など試してみようと思います。

関連記事:

symfony勉強会/懇親会で『ルーティングを使って シンプルなアプリケーション開発を』という発表をしてきました

開発部の海老原です。みなさん今日も元気に symfony してますか?
ということで、技術ネタです。

5/15 (金) に開催されたsymfony勉強会/懇親会にて、
『ルーティングを使って シンプルなアプリケーション開発を』
という発表をしてきました。

発表資料は以下になりますので、興味のある方は是非ご覧ください!

symfony 1.2 が出たばかりの頃ならともかく、いまこのネタをやるにはちょっと鮮度が落ちすぎているのではないか……と心配だったのですが、
聞いてみると意外に好評だったようで、これはこれでよかったのかな、と思います。
自分としてはもっと突っ込んだ話をしていきたかったので
それなりに悔いは残っていますが、また発表の機会があればそこで挽回したいです。

ともあれ、会場提供してくださった株式会社ディノ様、進行をしてくださった月宮さん、
つたないプレゼンを最後までお聴きいただいた参加者のみなさん、本当にありがとうございました!

※懇親会にも参加したのでそのときの様子もお伝えしたいのですが、
同行していた國忠さんがカメラでなにやら色々撮っていた気がするので、
その写真を入手して改めてエントリを書きたいと思います。もしくは國忠さんが書いてくれると思います。

関連記事:

  • OpenPNE Manager

ページの先頭に戻る