MTエンジニアブログ
onagatani
2012年01月16日
おはようございます。本日も帯広はマイナス14度でちょー寒いonagataniです。
昨日は半年ぶりくらいに個人的にコードを書く気力が出たのでMTプラグイン書いてみました。
(今回は完全趣味な上に業務時間外で書いているのでサポート等は会社に投げないでくださいませ。質問はTwitter@onagatani)
できることは少なくてDropboxにMySQLDumpを保存するだけです。
何が嬉しいかというとクラウド上にデータを保存するだけでなくDropboxの機能でクライアントAppを入れたPC全てで
データを同期するので、サーバ機で破損等あった場合でもほぼ100%データが復元できる事です。
逆にまだ実装していない機能として、MTのコンテンツを複数サーバ間で同期する機能があります。
こちらはコンテンツをバックアップしつつ、lsyncの様な使い方ができそうなので鋭意作成中なので検証完了しましたら公開させて頂きます。
使い方
-
以下のCPANモジュールをインストールして下さいWebService::Dropbox、Time::Piece(例:curl -L http://cpanmin.us | perl - WebService::Dropbox Time::Piece)
-
Dropbox.plをMTのpluginsディレクトリに設置して下さい
-
Dropboxのアカウントを作成しこちらのページでアプリケーションの登録を行なって下さい(アプリケーション名等は自由に設定して下さい。アクセス権限はフルアクセスでもディレクトリ制限有りでも どちらでも問題ないはずです)
-
アプリケーション登録を行ったら AppKeyとAppSecretをMTに登録して下さい(システム->ツールメニュー->プラグイン->Dropbox->設定
-
Key、Secret登録が完了したシステム->ツールメニュー->dropbox authを押下して下さい。先ほど登録したDropboxアプリケーションへ認証を許可します。許可するとMTのダッシュボードへリダイレクトされます
-
4の設定画面でデータベースバックアップを保存ディレクトリを指定します。事前にDropboxにディレクトリを作成して下さい(例:mtbackup)
-
以上でrun-periodic-tasksが一日に一回MySQLDumpをDropbox上に保存する用になります。dumpファイルはgzipにて圧縮保存されます
設定項目(mt-configに記述する例です)
-
MySQLDumpPath /usr/bin/mysqldump
-
GZipPath /usr/bin/gzip
ダウンロード
Dropbox01.zip
ライセンス
-
個人での利用はご自由にお願いします。但し問題があっても責任はもてません。
-
企業での利用は何か問題があっても責任が取れないので事前にご連絡下さい。
注意
-
CentOS5.6のMySQLサーバでのみ動作確認をしております。WindowsやMySQL以外のデータベースでは現状動作しませんので注意して下さい。要望あればWindowsや他DBに対応しますので@onagataniまで連絡下さい。
-
保存されるファイルのローテーションは現状実装されていません。ご自身で定期的に削除して下さい
-
本番環境に設置する前に事前に検証環境での動作確認を行なって下さい
-
Dropboxにファイルをuploadするために/tmpを利用します。バックアップファイルが設置される空き容量が一時的に必要になります
方川
2011年10月25日
本日、以下のプラグインをアップデートいたしました。
セキュリティ問題の改修に加え、いくつかの機能改善、信頼性の向上を行っております。プラグインをご利用の方はお手数ですがアップデートをお願いいたします。プラグインのダウンロードは各プラグインページからお願いいたします。
ご利用中のお客様にご迷惑お掛けしたことを、深くお詫び申し上げます。
セキュリティアップデート
Movable Typeで管理している情報を、アプリケーション上の一部の操作において、遠隔の第三者により更新、変更される可能性があります。
本セキュリティアップデートは以下の問題を修正しています。
アップデートしたプラグイン一覧
各プラグインのアップデート内容は以下となります。
onagatani
2011年09月30日
みなさんこんにちわ。最近体調くずしまくりで昼飯代が浮いて喜んでいるonagataniです。
今年もやってきましたYAPC::Asia今年もskyarcはスポンサーをしております。
skyarcでは製品開発・ソリューション共にperlで開発を行っていますが、いつも恩恵に預かるばかりで貢献できていないよね、
ということで昨年度から可能な範囲でJPAやYAPC::Asiaのスポンサーに積極的に取り組ませて頂いています。
今年からJPAではゴールドスポンサーになり、YAPC::Asiaでは広告など出しております。
また、変わった所では「遠方からの参加者支援制度」をJPAにお願いして開始して頂きました。
この制度はYAPC::Asiaで発表したいんだけど地方に住んでいるのがお金が、、、という学生さんや社会人の方にも発表して頂き地方からもPerlを盛り上げていきたいという願いが込められています。
発表者の方は「Skyarc System presents 招待 LT」 という枠にて5名の方に発表して頂きます。
(タイムテーブルに社名がでるとは思わなかったので、JPAさんサプライズに感謝です!)
ちなみに今年も弊社から「Perl Hobby Programming - Games::BeLike::EightBIT ターミナルで8ビット風ゲームを作ろう」というタイトルにて弊社社員である@keroyonn_さんが発表されます。
タイムテーブルには掲載されていないですが自分もスポンサー枠にて少しだけお話させて頂きます。
という事でYAPC::Asiaまであと2週間となりましたが皆様宜しくお願いいたします。
会場で@onagataniを発見したら声かけてください。友達少ないので。
やまかわ
2011年08月25日
こんにちはこんにちは山川です。
7/30に行われた札幌Python 3.1 で40分ほどPythonでの統計処理についてイントロを話してきました。
資料は以下です。
統計といえば R がおなじみ(SPSSとか使えるお金があるところは別ですが)ですが、
ロジックを作り込む場合や周辺処理が多い場合はPythonでやった方が便利な場面がけっこうあります。
データの前処理/後処理については R を利用する場合でもPerlなりRubyなりで加工することが多いですので、それだったら統計部分も同じスクリプトでかけた方が便利じゃないかろうか、Pythonだと割と統計用の道具がそろっているので便利だよーという話でした。
で、Python の使い道ですが、割と他に無いライブラリが結構そろっていることが多く、他の開発言語で難しいことが割合簡単に出来てしまうことがあります。今回の numpy/scipy だけでなく、やたらよくできた画像処理ライブラリ PIL なども良いですね。それからハイパー自然言語処理ライブラリ NLTK の存在や、OpenCV の公式 binding も Python ですし、使いたいライブラリがある場合は選択肢に入れると良いんじゃないかなあと思います。
あとWindowsでもだいたい動くのはほんとうに素晴らしいですねー。
onagatani
2011年08月20日
onagataniです。
本日開催させて頂いたMovable Type 勉強会の内容を早速ブログにメモべースですがUPさせて頂きます。
■藤本様のセッション
MTプラグインとは
MTの機能を拡張するプログラム
できること
テンプレートタグの追加
グローバルモディファイアの追加
独自の管理画面の追加
既存の管理画面のカスタマイズ
テーブルフィールドの追加
データベースに独自テーブルの追加
各種コールバック
テキストフィルタ
スパムフィルタ
etc。。。 なんでもできます
プラグインの基本的な配置
MTディレクトリ
pluginsディレクトリ
config.yaml
libディレクトリ
プラグイン毎のディレクトリ
*.pmファイル
tmplディレクトリ
*.tmpl
config.yamlファイル
プラグインの各種情報を記述
作者情報やプラグインの情報
管理画面に追加するメニューの追加
mt.cgiに追加する処理に記述
追加するテンプレートタグの情報
追加するフィールド情報
etc...
yamlで記述
yamlの概要
データ構造を簡潔に記述
データ構造を配列・ハッシュ・値だけで表す
ハッシュのキーと値はコロンで表す
配列の要素はマイナス
など。
YAMLの例
name: プラグイン名
id: プラグインID
description: プラグイン概要
author_name: 作者名
author_link: 作者のサイトアドレス
plugin_link: プラグインのページアドレス
version: バージョン番号
・・・他色々
テンプレートタグの追加
IloveSapporoと出力するMTLoveタグの作成
config.yaml
name:MTLove
id: MTlove
author_name: ExsampleName
author_link: http://exsample.com
description: I love Sapporo
plugin_link: http://exsample.com/plugin/
etc...
package MTLove::Plugin;
use strict;
sub love {
my ($ctx, $args) = @_;
return 'I love sapporo';
}
1;
■コールバック
MTのコアの処理の節目にプラグインの処理を追加する仕組み
MTの処理を部分的に置き換える際に使用
以下のようなタイミングで発動
オブジェクトを保存する直前
オブジェクトを削除する直前
etc...
作成するプラグイン
ブログ記事中の全角英数字と全角起動を半角記号に変換
タイトル・本文・続き・概要・キワードを変換
ソースコードは中略します。