ドキュメント書いておりますか?

ここのところ、 管理上の問題から OpenPNE 3.4 のチュートリアルをSphinx を利用するような形式に変更しようと思っている。

しかし、問題が発生。(小さいながらも)

Sphinxのコードハイライトの機能として

.. code-block: php

  <?php
  echo "hogehoge";

とやると、Pygments とやらがいろいろしてくれて
コードを見やすくしてくれるという洒落た機能がある。

しかしながら、<?php を省略してしまうとハイライトされない、という事実に気づき落胆した。

ってことで、Pythonのコードを久々に読んだ。
といっても僕はPythonは1週間くらいしか触ったことの無いPython入門者状態なので
ものすごく手探り。


TracのシンタックスハイライトでPHPのタグを省略可能にしてみた
http://d.hatena.ne.jp/pasela/20090421/trac_pygments

のような知恵も見つかり、

さらにはSphinxの優れたドキュメントで、拡張らへんの話しに辿りついたので、やってみた。

conf.py の一番下のほうに追加

import pygments
from pygments.lexers import get_lexer_by_name

def setup(app):
    app.add_lexer('php-inline', get_lexer_by_name('php', startinline=True))

これだけ。

あとは、<?php がなくてもハイライトさせたいコードの場合以下のようにやる

.. code-block: php-inline

  echo "hogehoge";

これで、できた!
正しい方法かは知らん!!!!!

(ちなに、自分の環境は Sphinx 0.6.5のようだ)

mongoDBをちょっと触ったら楽しかったので
本格的に導入してみる

あと、Doctrine2用のODM (relational databaseじゃないので ORMじゃない)
を使ってmongoDB厨になろうと思う。

Debian lennyのデフォルトではaptで取得はできない。

なので、最初、バイナリ取得して、init.dスクリプト書いて
とか面倒なことをやっていたが、よくよくドキュメントを見ていたら
パッケージとやらがあるようだ。

http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages

$ sudo vim /etc/apt/sources.list

で、以下の行を追加

deb http://downloads.mongodb.org/distros/debian  5.0 10gen
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10

鍵周りうんぬん。

$ sudo apt-get update
$ sudo apt-get install mongodb-stable

これだけ。

ひとまず、

$ mongo

とかやると
ハイパーモンゴタイムが始まる。

うん。19日に0.9.0-betaをリリースしたばっかりなんだけど、
早速だけど問題がいろいろ見つかってしまったんだ。
すまない。

修正された問題・改善

  • 致命的なことにメモリリーク発生あり。全力で直した。
  • ログを残せるようにした。
  • コードの可読性向上とか

しまった、ドキュメントに ログについての話しを忘れていた…

このプラグインに含まれている各タスクで

–log-file=ログファイルのパス か -l ログファイルのパス

を指定してやると、メールの送信についてのログ(成功・失敗・メモリ消費量)
が記録されるようになります!

現状は bin/*.cron をいじるなどして対処してください。

次は、1回あたりの送信でメンバーID区切ったりできるようにしてみようかな。
デイリーニュース送信を複数台体制でできるようにしてみるわけです。

手嶋屋内で思い切って、ってかデイリーニュースってコアにいらなくね?
っていったら意外にも賛同を受けたので、メーリングリストにあとで話しを持ち出す。
今のOpenPNE3はよりフレームワークにするために、現状コアにある機能を
削除していくというのも大事かもしれない。
(もちろん、少なくともニーズがあったのならば
削除するに当たって、代替えするものをプラグインで実装する必要性はある。)

—-

インストールとか

インストールもアップデートも以下をOpenPNE3のディレクトリで実行して頂きたい。

$ ./symfony opPlugin:install opLiteMailTaskPlugin -s beta
$ ./symfony cc

あとは、ドキュメントやらを見てください。

—-

ドキュメント
開発リポジトリ
プラグイン情報

開発なツッコミは Twitterで @ooharabucyouまで。