第1回WordBench東京勉強会に参加した

http://tokyo.wordbench.org/2009/06/08/wordbench-tokyo-20090628/

WordPressの勉強会があるとのことで席が取れたので参加してきた。
発表資料はWebで公開されるようだけど、ざっと取っていたメモと感想をアップします。

WordPress 翻訳システム入門
発表者:tenpuraさん

  • wordpressが採用している国際化
    • gettext
    • 独自の国際化システム(浸透中)
  • getext
    • poファイルでやるやつ
    • わからない人は挙手→4人くらい
    • wordpressはmoファイルの法を読んでいる
    • 部分的にはハードコードして翻訳している
      • setup-config.php akismet.php (gettextが初期化されてないタイミング)
      • ヘッダコメント内のDescription
      • WinMergeで差分を確認するデモ
    • Poedit
      • バイナリも作れる
  • 翻訳データ読み込みの流れ
    • WPLANG
    • moファイルを読み込む
    • 翻訳メモリを作成 $l10n
  • 国際化システムの仕事その1
  • その2
    • /*WP_I18N_XX*/ 置換されるマジックコメント
  • その3
  • 2.8で変わったこと
    • msgctxtがサポートされた
    • 同じmsgidでもコンテクストごとに訳を変えられる
    • poファイル内にmsgctxt
    • msgidが衝突しても大丈夫
    • 外部のライブラリを使っていた部分を独自ライブラリに置き換えた。
    • _c() _x()は _x() _nx()になった。
  • Pendingの例
    • 承認待ち
    • レビュー待ち
  • translators:xxx コメントの追加
  • 詳しくは
  • 注意
    • Poeditはmsgctxtには未対応(表示できない)
    • コメントは表示してくれるので translatorsは見れる
  • 自作プラグインでの国際化の例

感想
WordPressの国際化対応をしている際に必要な知識のサマリといった感じ。コミュニティが活動しているお陰で日本語対応されているソフトウェアが使えるのはありがたいですね。ここで得た知識がどういう局面で利用できるのかの例が出ているともっと身近に理解できるのかも。
国際化対応する際にmsgidがバッティングすることはよくあるのでmsgctxtの例が見れたのはよかった。


CMS として使う WordPress の○×
発表者:大曲さん

  • CMSの動向
    • 今後の導入希望 13.6% +1.8%
    • MT 27.2% インストール型 22.1
    • インターネット白書2008からの抜粋
  • CMSとして見たWPの丸
    • 無料
    • 本体改編なしにカスタマイズ可能
    • 生PHPなので初心者でも扱える
    • 世界シェアNo1
  • ×
    • ブログとしての限界
      • 更新時にプレビューできない
      • 承認フローが困難
      • やっぱりメインは投稿
    • 不具合が多い
    • 動的ページ生成による負荷
      • HTMLと比較して10倍ほど遅い
      • 10000記事から体感的に重い
  • 適したサイト
    • コストがシビア
    • 承認なしでの運用
    • 100ページ以内くらい
    • カスタマイズが必要な場合
  • 構成方法
    • ページ機能をベースとして構成
      • 親子関係も使う
      • wp_list_page を使いナッビゲーションを制御
    • 投稿は最新情報やカテゴライズされる情報に
    • サイドバーなどはウィジェット、非公開ページで管理
  • CMSとして使う場合のテーマ
    • Classicテーマをベースにしてカスタマイズ
      • index.phpのみ使う
      • 必要な機能はfunctions.phpへまとめる
  • プラグイン
    • WP Multibyte Patch
    • あと10個くらい
  • 大事なこと
    • ユーザに合わせた更新方法
      • youtubeなどはショートコードで。
      • TinyMCE Advanceでstyle.cssを編集時も反映
    • 管理範囲の策定
  • サイト紹介
    • 新華通信ネットジャパン
      • 11万記事
      • 会員機能とのブリッジや広告管理をプラグインで実装
    • ミヤガワホームズ
      • カスタムフィールドなどを活用
    • シンxクロ

感想
CMSとして使う場合の定番プラグインなどがあると思いきや、カスタムフィールドや非公開記事などを活用してCMS的に使うという話。事例を公開されているのが先進的だなぁと思います。他のブログエンジンやCMSとの比較があってもよかったかも。


WordPress ビデオ映像配信入門
発表者:Atsushiさん

  • 自己紹介
    • WordCampでビデオ撮影してました
  • VideoPress
    • wordpress.com向けのサービス
    • $60でHD画質で配信可能、3GBまで。
    • 管理画面のメニューからアップグレードを選択すればサインアップできる
    • podcastとかもやってくれる
  • Threetype of wordpress
  • Video Solution Framework Plugin
    • wordpress.com で使われているやつが公開されている
    • .org にも MU にも使えるはず
    • 複雑
      • NFSとかDBとかいろいろ使う、変換サーバも別に用意
  • WordPress.tv
    • プロトタイプだったらしい
    • サンフランシスコの映像とかが今は多い
    • 北海道在住のMicheal Pickの好意で管理画面を見せてもよいとの便り
    • 1映像・1記事
    • 映像向けの分類が拡張してある(プロデューサ、スピーカー、タグとか)
  • WordPressでやるなら

感想
WordPress.comのサービスを使ったことがないので、すこし新鮮だった。youtubeなどを張りこむだけなら何も準備はいらないけれど、動画の配置場所やホスティングサービスの追加機能を使うかどうかで開発の必要性が変わってくるのかもしれない。


WordPress 2.8用のウィジェットの開発
発表者:藤本壱さん

  • 自己紹介
  • ウィジェットAPI
    • 2.8でクラスが新設された
  • 手順
    • WP_Widgetを継承する
    • 4つの関数を作る
  • ステータス表示ウィジェットを作ってみる
    • クラスとコンストラクタを定義
    • formメソッド
      • フォームを出力する処理
      • $instanceに現在のエントリ情報
      • formを表示する処理を書く
      • エスケープは esc_attr でやってた
    • updateメソッド
      • $old_instanceを元にあれこれつくって returnする
      • 変数を加工するだけで保存とかはやってくれるわけですね
      • strip_tagsでいいのかなぁ・・・
    • widgetメソッド
      • ウィジェットの内容を出力する
      • 前後の出力内容はパラメータで渡る
      • $instanceと$argsを使ってあれこれ出力すればよい
      • $wpdbのグローバルとかを獲得すればDB処理とかも適当にできる
    • ウィジェットの登録
      • add_action をクラス定義の外で呼んで登録する。


感想
サイドバーなどに独自の処理を入れる際に便利なウィジェット機能の紹介。小さなフレームワークのようになっていて、変数などを簡単に操作するだけでウィジェットとしてデータ操作などをやってくれるのがとても便利そうに見える。WordPressに関する開発の書籍を刊行予定との事でそちらも面白そうです。


MacPorts で作る WordPress ローカル環境
発表者:池田百合子さん

  • WordPressの動作環境を作る
    • テーマやプラグインのテスト
    • ただし自動アップグレードはうまく動かない ~を解釈できない
    • 半数ぐらいの人はローカル環境らしい
  • OS Xなら簡単
  • Variants
    • preforkとworkerとか
    • メタパッケージ的なもの
    • debianはパッケージ数が多くなりがち
  • XCode を入れる
  • post installなコマンドは自分で実行する
  • mysqlのソケットの位置が特殊なので注意する

感想
MacPortsで開発環境を作る手順の説明。Macを開発に使ったことがないので知らない事が多かった。他のパッケージ管理方法との比較などがなかったのでMacPorts自体の特徴がよくわからなかった。とはいえMac使っているヒトは大抵つかっているようなので機会があれば使ってみよう。


全体を通しての感想

やはり初めての会場は迷ったりするので、会場の案内などは毎回丁寧すぎるくらい必要なのだろうと感じた。また勉強会や発表の方向性を主催者側が示すと方向性はあつまりそうだけれど、特に指定がない今回のようなスタイルは全体の雰囲気や関心の度合などを推し量るような感じになるのだろうと感じた。

主催者、発表者のみなさんおつかれさまでした。