PHP

2011年6月 6日 (月)

オープンソース徹底活用 symfony1.4によるWebアプリケーション開発

日本Symfonyユーザー会でsymfony1.4の本を出しました。

Symfony14bookcover
オープンソース徹底活用 symfony 1.4によるWebアプリケーション開発|秀和システム

ユーザー会のメンバーとして、たいへん少ない分量ですが参加させていただきました。symfony使い11名が分担して、symfonyフレームワークの現在の安定最新版であるバージョン1.4のインストールから実践的な利用法までをまとめています。

日本語のsymfony1.xの本は過去に何冊かでているのですが、それらが1.4より前に出版されたものであることと、symfonyが1.2, 1.3の時に改良された項目も多いことから、今からはじめるならこの本がおすすめです。

Symfonyのコア開発者は新バージョンであるSymfony2に注力していますし、ちょっと遅れてますがSymfony2も相当おもしろいものになりそうです。しかし、バージョン1系の集大成であるsymfony1.4も、2012年11月までコアチームのサポートが行われることが約束されており、その安定度からまだまだいろいろなサイトで利用されていくことが見込めます。Symfony2が安定して、今回のような使い込みの本が出るのはもうちょっと先になるのかなと。どんな使い込みかについては目次を見ていただければ。

本書の正誤表などサポート情報については、日本Symfonyユーザー会のページを参照ください。

# 発行が育休中だったのでご紹介するのを失念していました。

2010年12月 2日 (木)

DropboxをCDNにするWordPressプラグインDropbox CDN

Dropboxといえば、複数のパソコンやスマートフォンの間でファイルを共有できるサービスの中でも有名な一つですね。一番容量が小さいプランでは無料で使える、いわゆるフリーミアムモデルになっていることからもユーザー数はどんどん増えているようです。

# 使ってみたいという方はここから登録すると紹介ボーナスが僕とあなたの両方について無料分の容量が増えます(よろしく)

さて、そんなDropbox、会社と家とかデスクトップと出先のノートPC/スマートフォンの間でファイルを共有するという以外に、グループ内でファイルを共有したり、ファイルをブラウザからアクセスでけいる形で公開して相手に渡すといった機能も持っています。

ファイルをブラウザに渡す、という機能に着目したある利用者が、それってウェブサーバーなんじゃないかと考えて、Dropboxを静的なファイルサーバーとして使うようなWordPressのプラグインを作ったようです。

Dropbox CDN

このプラグインを使うと、Dropboxのサーバーを、コンテンツ配信ネットワークとして使い、CSSやJavascript、画像などのファイルをWordPressにアップロードするのではなく、Dropboxから直接見せてしまうことができます。

自分のDropboxにファイルを置くのは、パソコン上でローカルにファイルを置く操作でできてしまうので、画像をパソコン上で公開用のフォルダにコピーするだけで、その画像をWordPressから呼び出して一般向けに表示できてしまうことになります。これは通常の公開に比べてもずっと手順が楽ですね。

落とし穴

このプラグインの紹介記事を見たときは、おもしろいことを考えるなあと思って感心したのですが、Dropbox側にしてみればこんな使い方を大量にされては、たまったものではありません。

同ブログの続報で、公開ファイルのダウンロードには最大10GBの帯域制限が掛っており、それを越えるとファイルのアクセスは404になってしまう、というのが明らかになりました。

明らかに目的外使用っぽいのでしょうがないですが、この方法で画像やCSS/JS置き場として使えるのは、それほどアクセスが無い小さなサイトだけのようですね。

ということで、ちゃんとお金を払って保証されたCDNをWordPressで使いたい場合は、Amazon S3 For WordPress Pluginなどをどうぞ。

2010年10月 4日 (月)

PHPカンファレンス2010の感想など

イベントが続いていて感想が遅くなりましたが、先週末に開催された年に一度のPHPに関する大イベント、PHPカンファレンスにスタッフとして参加しました。

Phpcon2010topscreenshot

海外ゲストの招待と同行

昨年のPHPカンファレンス2009では、symfonyフレームワークのトップであるファビアン・プートンシェさんをフランスからお呼びして、セッション以外の通訳や交通・ホテルの手配を担当しました(セッションの通訳はプロの通訳の方にお願いしています)。その影響があったかどうかはわかりませんが、今年2010年のセッションでは、「symfonyを使っている」「symfonyで作った」という発表が割合として非常に多かったようです。

スタッフのメーリングリストでは、今年も海外からPHPのすごい人を呼びたいね、という話になり、いろいろな人の名前が挙がったのですが、PHP開発者やPHPで仕事をしている人であれば海外・英語でのPHP情報をそれほどウォッチしていない人でも知っている一番の有名人は、PHPを最初に作り始めたラスマス・ラードフさんだろう、という話になりました。

懇親会等で「どうやってお呼びできたんですか?」と何人かの方に訊かれたのですが、普通に公開されているメールアドレスにメールを出して、こういうイベントを毎年やっているので基調講演をしてもらえないか、とお願いしただけです。

なんでも、年に50件ぐらいはこういうお願いのメールが来るそうで、その中から、行ったことがない所や行って楽しそうなところで、時間が許せばOKと返事をするようにしているんだとか。

ラスマスさんは、2003年頃にYahoo!社員として、ヤフージャパンに一週間ぐらい出張で来日されたことがあるようですが、その時は日本のヤフーの社員と、あとはごく少数の日本のPHP開発者と会ったぐらいだったようで、一般向けに講演をいただくのは今回が初めてでした。

基調講演の詳細は、gihyo.jpなどでレポートされています。スライドはこちら

DSC00891

HipHopの話をされたスコット・マクビカーさんの方は、ニューヨークで働いているyandoさんがアメリカのカンファレンスで直接交渉して招待となったようです。こちらも、C++へのコンバーターでPHP処理系そのものを速くしてしまおうという巨大企業らしい強引な解決法で、興味のあるエンジニアの方は多いのではと思います。

DSC01045

インタビュー

初日はラスマスさん自身はセッションがなかったので、複数のメディアの記者の方とインタビューをセッティングしました。すべてのインタビューを横で聞いていたので、最後のあたりではラスマスさんが次にどう答えるのか、かなり予測がつくぐらいに彼とPHPの哲学が理解でき、面白かったです。

インタビューの一つは既にgihyo.jpで公開されていますので、「なんでPHPはこうなのか」といった疑問を持ってるユーザー・開発者の方はぜひ読まれてみてはどうでしょうか。面白いですよ。

写真

二日目に、ラスマスさんに「Flickrを検索したけど初日の写真がまったく出てこないよ」と言われました。たしかにその時点ではタグphpcon2010でも数枚しか写真が現れず。アメリカのカンファレンスだとFlickrにはたくさん出てくるんでしょうかね?

日本ではみんながFlickr使ってるわけではないという話をしましたが、じゃあ撮られた写真はどこにあるのか、と言われると、国内の複数の写真サービスに分散してたり、Twitterと連動している写真アップロードサービスに個別に載ってたりするのかなあと思うのですがどうでしょう。

(見つけた|スタッフによる)カンファレンスの写真です

Flickr:Tsukimiya

Flickr:kanreisa

Flickr:michiyas(LIND), (2)

Flickr:wozozo

他にいい写真が公開されている場所があったら教えてください。ラスマスさん、スコットさんにメールしようと思います。

ジョギング

僕は案内役としてラスマスさんやスコットさんと同行したので、記者として取材したわけじゃないので、話した内容をなんでも公開するのはやめておこうと思いますが、滞在中にツイッターでつぶやかれてることは公開されたものなので、カンファレンス以外の裏話としてそこで出ていたジョギングの話をご紹介します。

ラスマスさんは滞在中に東京でのランニングを楽しまれたようです。iPodで記録して走った距離や速さを集積するようなサイト(Slowgeek)があるんですね。

カンファレンス初日の朝の蒲田周辺と、カンファレンス翌日の皇居一周が表示されてます。皇居一周の方は、地図上にマップされたものも公開されていました。これはFacebookのスコットさんも一緒に走ったみたいですね。

また、こんなつぶやきも。

東京の地図についてはヤフージャパンの方がグーグルより良いかもしれないと試したんだけど、どうもSilverlightが必要っぽいので諦めた

ラスマスさんは、今のベンチャーWePay.comに入るまではアメリカのヤフーにいらしたので、日本でヤフーがとても強いということを知っての発言なんですね。で、結局グーグルマップスを使われたみたいですが、地下鉄が表示されたりされなかったりすることに閉口されたようです。縮尺によって地下鉄駅や路線が表示されたり隠れたりということかな?

2010年8月13日 (金)

WordPressでツイッターの公式ツイートボタンを表示するプラグイン

昨晩公開された、ツイッター社自身による公式ツイートウィジェット(ブログパーツ)、Tweet Button、さっそくいろんなサイトやブログで記事に表示したり、これまで使われていたTweetmemeらによるボタンからの置き換えが起こっているようですね。

ボタン作成のページで必要な情報を打っていけば、簡単なボタンは作れるのですが、そのままだと「今ボタンが表示されているページのURLをつぶやく」という動作になるので、ブログの個別記事ページにはそれで良くても、トップページや過去記事が複数載っているページでは都合が悪いわけです。

そこで、ボタンのコードに、つぶやかせたい内容を渡してボタンを作ることになります。まあやればできるのですが、こういうのはほとんどの場合、もうやってる人がいるので、WordPressのプラグインを探してみました。

まず、ブログホスティングサービスであるWordPress.com、日本で言うとlivedoorブログとかアメブロみたいなものですね、では、既にこのツイートボタンに対応してることが公式ブログで発表されていました。

そして、そのコメント欄で、この中の人Andy Pさんが

We’ve got a something great in the works, keep an eye out next week for it on the WordPress.org plugin repo.

WordPress.org(自分でインストールする方のワードプレス)のプラグインもすごいのを作ってるので、来週プラグインのページをチェックしてくれよ

と言ってます。オープンソース版のWordPressでも、来週公式のプラグインが出てくるようです。なので、「公式の(おそらく)ちゃんとしたプラグインが出るまで待つ」人はこれでいいでしょう。

それ以外で作ってる人を探したら… ありました。@dcgwsさんによるTweetbutton for Wordpress Plugin

まだWordPressのプラグインレポジトリには無いので、記事中のリンクからダウンロードします。

# とりあえずソースは一通り眺めました。念のため。

あとはWordPressにログインして、プラグインメニューの「追加」から「アップロード」でこのダウンロードしたzipファイルをインストールします。

プラグインを有効化したら、サイドメニューに[TweetButton]-[Settings]が出ているので、開いて調整をします。といっても、デフォルトのままで問題なく動いてますけど。(キャッシュを効かせている人はキャッシュクリアを忘れないように)

このブログ自身はWordPressじゃないので、WordPressを使ってる個人ブログと、これも個人でやってる英語ブログAsiajin(アジアジン)に導入してみました。どちらもTweetmemeボタンからの置き換えです。

Tweetbuttononasiajin

手元のGoogle ChromeでTweetボタンが反応しないのだけれど、他のブラウザでは問題なく動き、これまでのTweetmemeボタンを置き換えています。また、RSSフィードにもツイートボタンを置くようになっています(設定でオン/オフ)

2010年8月 6日 (金)

PHP賛歌

PHP/セキュリティの専門家として知られるクリス・シフレットさんのブログで紹介されていたのが、Emergent Collective OneによるPHPを讃える歌"PHP Anthem"。ラップです。

シフレットさんが歌詞を聞き取ってくれています。英語の歌詞はリンク先で。面白いので日本語に訳します。歌詞中に適宜解説のリンクがつけられてますので、PHPの勉強にもなるのでは。

オーイェー (オーイェー)
(ある日突然そいつはオマエにヒットした。それはまるで…)

オーイェー。 今年はとてもPHPだぜ。
左手にはマイク右手には冷えたビール
Apacheをコンパイルしろ。
今やバージョン5、そして後部座席には二人の美女だぜ。
ああ、時にはコードがちょっとクズっぽく見えることもあるさ
でもよ、これはコールドフュージョンじゃないんだぜ。
sassy(馴れ馴れしく)話すのはやめて、彼女らのパンティーを引き上げな。

俺はホントに…俺はたた言うんだ; なんでおまえらAPIリファレンスをチェックしないんだ。
それはホントにいいんだぜ。
(いいんだぜ)

アンダーラインなのかキャメルケースなのか?
思い出せない; パウンドケーキのために忙しいんだ。
それがPHP開発者のすること。
俺たちすげえうまくいってるぜ。おまえらよりな。
俺たちの匂いに嫉妬するなよ; Booleanチェックしな、そこに書いてあるぜ…

[コーラス]
(オーイェー)
Booleanチェックしろよ、お前; trueって書いてあるぜ。
(オーイェー)
PHPはすげえうまくいってるぜ。お前よりな
(オーイェー)
Booleanチェックしろよ、お前; trueって書いてあるぜ。
(オーイェー)
PHPはすげえうまくいってるぜ。お前よりな
(オーイェー)
Booleanチェックしろよ、お前; そこに書いてあるぜ…

ほんとうさ、PHPはすげえうまくいってるぜ。お前よりな、
でも俺たちまだcleanにしてるぜ。
MySQLホントにホントに全部文字列にラップしちゃうのさ。
入力のフィルターはヘルペス菌みたいだった。
(俺の言ってる意味わかるかい?)
俺たちがSTDクラスを手に入れたのはそういう訳さ。
俺たちが渡すオブジェクト捨てなきゃならんかもしれないな。
カノジョ、なにしてるんだい?

こっちにきてこれをgunzipしろよ。
俺が文字列からスラッシュを全部取るから目撃者になってくれよ
そう、やらなきゃならんことはやったぜ。
そうすべきじゃないときにファイルシステムをトラバースすんなよ。
これがPHPでノッってくやりかただぜ。
ホットな女たちはみんな、イエー、PHPを愛してる。
(本当のことさ)
(オーイェー、俺はそれを話してるのさ)

[コーラス]

(ヨー、ヨー、それをやつらにも伝えてくれよ)

PHP: ハイパーテキスト プリプロセッサー.
リアルにそこにあるぜ。
誰かmod_securityお偉いさんr呼んだ方がいいぜ。
俺は弱っちくてバカなスクリプト言語たちに興味があるんだぜ。
俺たちとはなかよくできないやつらさ。
おかしなことさ、やつらはつるんではいつくばっているのさ
完全には死んでないやつもいてそれが俺たちを苦しめているのさ

PHPはムキムキだぜ。
一言でいうと、何一つそれに似てるものはないのさ。

太古の文化占い師が予言してたのさ。
再帰的な状態を夢見ていたやつらさ。
オープンソース コミュニティの門を予告してたとささやいているぜ
PHP

(オーイェー…)

[コーラス]

mp3ダウンロードはこちらから

2009年9月14日 (月)

Swift MailerがsymfonyのFabien Potencierさんに移管され、ライセンスがLGPLであることが確認されました

Symfony_logo

Swiftmailerlogo

d11wtq: Just finished 3 hour and 15 mins IRC chat with Fabien Potencier. Swift Mailer now handed over, though I'm still involved at this point.

d11wtq: Fabien Potencierさんとの3時間15分のIRCチャットを終えました。私もまだ関わっていますが、Swift Mailerはここに移管されました。

先日のPHPカンファレンスに合わせた来日時に話は伺っていたのですが、PHP5用のメールライブラリとして有名なSwift Mailerが、オリジナル作者のChris CorbynさんからFabien Potencier(ファビアン・プートンシェ)さんに移管されました。Fabien Potencierさん、つまりSymfonyプロジェクトのリーダーですね。

Swift Mailer(スウィフトメーラー)は、PHP5ベースでオブジェクト指向的に書かれたメールライブラリで、symfonyのチュートリアルでもメール送信を行う際に使うライブラリとして使われています。

プロジェクトページのトップには、引き継ぎについての案内が短く載っています。

As of September 13, 2009, SwiftMailer has a new project manager, Fabien Potencier. This takeover have been discussed between Chris Corbyn, the current lead of the project, and the main developers behind SwiftMailer. Everything is now in place to keep the project moving forward.

2009年9月13日づけで、SwiftMailerは新しいプロジェクトマネージャーFabien Potencierを迎えました。この移管は現在のプロジェクトリードChris CorbynとSwiftMailerの主要開発者達の間で相談されてきました。プロジェクトを前進させるためのすべての体制が整いました。

移行はオーストラリアのChrisさんとフランスのFabienさんの間でIRCによる3時間半の会談で行われていて、ログを見ることができます。オープンソースプロジェクトの移管を英語で行う実例を読めるので、よい勉強になるかと思います。

前半のドメインやサーバ、リポジトリの移管といった話から、後半はなぜ今のような実装になっているのか、実装方法について疑問があるところなどが議論されています。それにしても社長兼プログラマーで多忙なのに、良く働く人です。

最後の方では、開発者の一人Xavierさんに対して、日本語固有の問題点があるのでは、という質問をしてくれています。(Shift-JISはまあ検討はずれですが、それはしょうがないでしょう)

Swift MailerのライセンスはLGPL! GPLではありません

FabienさんはSwift Mailerと日本語の問題、日本独自のメール仕様に関する問題などについては、今回の来日で多くのPHPユーザーからさんざん聞かされているので、移管後さっそく「日本での問題もすべて解決したいので、問題点についてすべて知りたい。まとめるか、詳しい人を紹介してほしい」というメールをいただきました。これについては別途記事を立てて情報を集めたいと思います。

IRCチャットの冒頭で、FabienさんがChrisさんに対してライセンス問題を明らかにしています。Swift Mailerではバージョン3からバージョン4になったときに、GPLライセンスの文書も同梱されるようになったため、LGPLからGPLになったのではないか、と考える企業や個人がでてきて、それが原因で利用を諦めた、とブログ等に書かれる方もちらほら出ていました。

今回Fabienさんとの質疑で、Chrisさんとしては「LGPLのコードを配布する際に、GPLライセンスの文書も入れないといけない」と思っていたということ(これの真偽はわかりません)で、Swift Mailerのコードは過去も今も、ずっとLGPLのままだ、というのが明言されました。

symfonyのコアはLGPLより緩いMITライセンスですが、symfonyのようにメールライブラリをプラグインとして利用する形であれば、Swift MailerがLGPLであれば特に問題は起こらないのではと思います。

移管の影響

symfonyとの親和性が良くなるのはもちろんですが、symfonyはバージョン2でコンポーネントの切り分けを強く意識しており、Swift Mailerがsymfonyと依存しあうような形になることは決してないだろうと思います。あくまでFabien Potencierさん個人としてプロジェクトを引き受けたようですし。

PHP5のクラス等をつかって書かれたクリーンでわかりやすい/拡張しやすいメールライブラリは、symfonyユーザに限らず需要の高いところではないかと思います。今回の来日でFabienさんに強く感じてもらえたことの一つが、日本のsymfony企業が個別にメールの送受信部分に手を入れたり、古いライブラリを改造して使っていたりしてメールまわりの開発効率が良くない、という点だったので、Swift Mailerがパッケージのままで日本でも問題なく使えるように、お手伝いしていきたいと思っています。

人気エントリ

RSS feed meter for http://developer.cybozu.co.jp/akky/ あわせて読みたい

著書

PHPxWebServiceAPIConnections.jpg

ブログ著者について

週三日勤務でこのブログを書き、残りの日は個人で活動しています