[processing]新サイトを準備中です
Processingだけを扱った新サイトを準備中です。私だけでなく、共同で立ち上げを予定しています。そのうちこのブログに投稿したProcessing関連の記事の多くを寄稿する予定です。近日中に開設する予定です。
っていう告知だけ。
[JavaScript]UnixTimeを取得する
最近JavaScriptでUnixTimeを取得するプログラムを作る機会が増えてきた。ので、メモ代わりにここに1つ関数を書き残す。
-
function getUnixTime()
-
{
-
return parseInt((new Date)/1000);
-
}
別の書き方では
-
function getUnixTime()
-
{
-
return ~~(new Date/1000);
-
}
ようはnew Dateの中身がUNIXTIMEのミリ秒なので、切り捨ててやる。整数への変換はparseInt関数を使うとか、チルダx2でやるとか。チルダx2についてはMath.floor を使わずに小数を整数にする - IT戦記等を参考に。
[バージョン管理]分散型レポジトリの「分散」の意味を取り違えてた
分散型レポジトリが最近話題だけれど、字面だけ見てたから意味を取り違えていたらしい。
- × 中央サーバがバラバラなところにある。BitTorrent的なイメージ(ファイルの分散)
- ○ 各個人のローカル環境にレポジトリがあり、マスターレポジトリもその1つ(レポジトリの分散)
前者だったらおかしいよね。ちなみにSubversionとかCVSのような集中型レポジトリはレポジトリが1か所にしかない奴。最近はHDDの値段が下がって容量が上がったから、ローカルにレポジトリがあるってのも確かに便利だな。特にノートPCで外出先でやってるときは便利かもしれない。だから分散型レポジトリのgitが人気なのか。今のノートPCは3年前の60GBしかない奴だから正直容量不足に悩んでるし今は無理だよね。ノートPC買い換えたときにgitを考えてみようかな。
ちなみに、subversionにはsvkっていう派生プロジェクトがあるらしく、subversionを分散レポジトリ的に使うことができるらしい。
Subversion+svkでらくらく分散リポジトリ:第3回 SVKとSubversion|gihyo.jp … 技術評論社
ってことで、字面だけで知った気にならないで、関連記事の1つや2つは読んで、しっかりとしたIT知識を持ちましょう。俺。
[Excel 2007]オブジェクトの選択コマンド
Excel 2007で表に出なくなった機能で[オブジェクトの選択]というコマンドがあります。Excel 2003などではオートシェイプのツールバーの中に矢印アイコンで表示されていた機能です。セルには干渉せずにシート状のオブジェクトだけを範囲選択できるこのコマンドは使いこなすと結構作業がはかどります。
[オブジェクトの選択]は2007ではなくなってしまったわけではなく、カテゴリが変わってしまっただけのようです。[ホーム]タブの[編集]メニューの[検索と選択]というカテゴリにしっかりと入っていました。

私はめんどくさがり屋なので、さらにクイックアクセスツールバーにも追加しています。個の方が[オブジェクトの選択]コマンドを解除するのが楽なんです。

Excel 2007になってからインターフェースがガラリと変わって、未だに使いなれていない人や移行をためらってる人が結構いるのではないでしょうか。正直、私もOffice 2007はPowerPoint以外は操作性の面で否定的なのですが、とはいっても世の中は前向きに進んでいるので慣れようと心掛けています。おそらく昔あったコマンドは表に出なくなってしまったものもコマンドとしてはしっかり残っていると信じています。今回の[オブジェクトの選択]コマンドのように1つ1つサルベージしていくしかなさそうですね。
[OpenPNE3]管理画面付きプラグイン(opFreepagePlugin)#6 プラグインのパッケージング
前回まででopFreepagePluginの開発部分は完了しました。今回はプラグインのバージョン情報を定義し、アーカイブ化することで、外部に公開できるファイルにしたいと思います。なお、このプラグインのパッケージング方法はOpenPNE 3.0.0で確認しているものです。近いうちにプラグインリリース用symfony拡張コマンドを充実させる予定もあるようですので、その点は加味してご覧ください。
プラグインのパッケージングは非常に簡単です。まずはプラグイン情報が書かれたpackage.xmlを作成します。これもコマンド1つで作成できます。今回はopFreepagePluginをバージョン0.9.0、ステータスをbeta、リリース文を"First release"とします。以下のようなコマンドになります。
-
./symfony opPlugin:define opFreepagePlugin 0.9.0 beta "First release"
以下のような出力がなされます。
-
[uechooc@localhost pneroot]$ ./symfony opPlugin:define opFreepagePlugin 0.9.0 beta "First release"
-
>> sfPearFrontendPlugin Attempting to discover channel "plugins.openpne.jp"...
-
>> sfPearFrontendPlugin downloading channel.xml ...
-
>> sfPearFrontendPlugin Starting to download channel.xml (598 bytes)
-
>> sfPearFrontendPlugin .
-
>> sfPearFrontendPlugin ...done: 598 bytes
-
>> sfPearFrontendPlugin Auto-discovered channel "plugins.openpne.jp", alias
-
>> sfPearFrontendPlugin "plugins.openpne.jp", adding to registry
-
>> sfPearFrontendPlugin Attempting to discover channel "pear.symfony-project.com"...
-
>> sfPearFrontendPlugin downloading channel.xml ...
-
>> sfPearFrontendPlugin Starting to download channel.xml (663 bytes)
-
>> sfPearFrontendPlugin ...done: 663 bytes
-
>> sfPearFrontendPlugin Auto-discovered channel "pear.symfony-project.com", alias
-
>> sfPearFrontendPlugin "symfony", adding to registry
-
>> sfPearFrontendPlugin Attempting to discover channel
-
>> sfPearFrontendPlugin "plugins.symfony-project.org"...
-
>> sfPearFrontendPlugin downloading channel.xml ...
-
>> sfPearFrontendPlugin Starting to download channel.xml (639 bytes)
-
>> sfPearFrontendPlugin ...done: 639 bytes
-
>> sfPearFrontendPlugin Auto-discovered channel "plugins.symfony-project.org", alias
-
>> sfPearFrontendPlugin "symfony-plugins", adding to registry
-
>> sfPearFrontendPlugin Analyzing
-
>> sfPearFrontendPlugin apps/mobile_frontend/modules/freepage/actions/actions.class.php
-
>> sfPearFrontendPlugin Analyzing
-
>> sfPearFrontendPlugin apps/mobile_frontend/modules/freepage/templates/indexSuccess.php
-
>> sfPearFrontendPlugin Analyzing
-
>> sfPearFrontendPlugin apps/pc_backend/modules/opFreepagePlugin/actions/actions.class.php
-
>> sfPearFrontendPlugin Analyzing
-
>> sfPearFrontendPlugin apps/pc_backend/modules/opFreepagePlugin/templates/editSuccess.php
-
>> sfPearFrontendPlugin Analyzing
-
>> sfPearFrontendPlugin apps/pc_backend/modules/opFreepagePlugin/templates/indexSuccess.php
-
>> sfPearFrontendPlugin Analyzing
-
>> sfPearFrontendPlugin apps/pc_backend/modules/opFreepagePlugin/templates/listSuccess.php
-
>> sfPearFrontendPlugin Analyzing
-
>> sfPearFrontendPlugin apps/pc_backend/modules/opFreepagePlugin/templates/newSuccess.php
-
>> sfPearFrontendPlugin Analyzing
-
>> sfPearFrontendPlugin apps/pc_backend/modules/opFreepagePlugin/templates/_form.php
-
>> sfPearFrontendPlugin Analyzing
-
>> sfPearFrontendPlugin apps/pc_backend/modules/opFreepagePlugin/templates/_submenu.php
-
>> sfPearFrontendPlugin Analyzing
-
>> sfPearFrontendPlugin apps/pc_frontend/modules/freepage/actions/actions.class.php
-
>> sfPearFrontendPlugin Analyzing
-
>> sfPearFrontendPlugin apps/pc_frontend/modules/freepage/templates/indexSuccess.php
-
>> sfPearFrontendPlugin Analyzing config/config.php
-
>> sfPearFrontendPlugin Analyzing lib/opFreepagePluginRouting.class.php
-
>> sfPearFrontendPlugin Analyzing lib/filter/FreepageFormFilter.class.php
-
>> sfPearFrontendPlugin Analyzing lib/filter/base/BaseFreepageFormFilter.class.php
-
>> sfPearFrontendPlugin Analyzing lib/form/FreepageForm.class.php
-
>> sfPearFrontendPlugin Analyzing lib/form/base/BaseFreepageForm.class.php
-
>> sfPearFrontendPlugin Analyzing lib/model/Freepage.php
-
>> sfPearFrontendPlugin Analyzing lib/model/FreepagePeer.php
-
>> sfPearFrontendPlugin Analyzing lib/model/map/FreepageMapBuilder.php
-
>> sfPearFrontendPlugin Analyzing lib/model/om/BaseFreepage.php
-
>> sfPearFrontendPlugin Analyzing lib/model/om/BaseFreepagePeer.php
いろいろなファイルを解析していますが、これらはパッケージ内に含まれるファイル一覧を作成し、それぞれのファイルのチェックサムを取得している処理です。package.xmlには様々な設定項目があるのですが、コマンドラインで指定できる項目以外は固定で挿入されてしまいます。例えば、ライセンスはApache Licenseで固定されています。
パッケージ情報が生成できたので、アーカイブを作成します。これもコマンド一発です。以下のコマンドはopFreepagePluginのアーカイブををカレントディレクトリに作成します。
-
./symfony opPlugin:archive opFreepagePlugin ./
このコマンドを実行後、カレントディレクトリにはopFreepagePlugin-0.9.0.tgzというファイルが作成されています。バージョン名が付加されたtgzファイルですね。あとはこのファイルを公開すれば完成です。PEARのチャンネルサーバがあればコマンドラインからのインストールにも対応できると思うのでいいですね。plugins.openpne.jpなんかが一般開放されるとうれしいのですが。
以上でこの連載シリーズは終了です。OpnePNE3のプラグインが増えるといいですね!技術的な知識がある運営者ならばプラグインで独自の機能を作って自分のSNSを盛り上げることも可能でしょう。OpenSocialとsymfonyプラグインの双方で拡張できるOpenPNE3の可能性は無限大です!
