かたつむりくんのWWW

Redmine で期日が間近のチケットをメールで通知する

最近、bit part では Redmine を使って色々なことを管理しています。そこで「期日が間近のチケットをメールで通知する(リマインダ機能) -- Redmine.JP」というのが出来たら便利かな、ということで導入してみることにしました。

しかし、直接コマンドを打てばちゃんとメールが飛ぶのに、cron で実行しようとするとなかなかうまくいきません。

Twitter でアドバイスもらったり、色々調べた結果、単に cron だと rake コマンドのパスが通ってないだけでした。cron のログとかにコマンドが見つかりません的なログが残ってくれていれば直ぐに解決できたのに...

which rake

これで rake コマンドのフルパスを得られるので、それで cron に設定します。午前3時にメールを飛ばす場合は、

00 3 * * * root cd /path/to/redmine ; /usr/local/bin/rake redmine:send_reminders RAILS_ENV=production

これで OK でした。

こんな初歩的なことで躓いてスミマセン!

MTCafe Tokyo 2013 Spring 楽しかったです!(コケたけど)

4月20日に開催された「MTCafe Tokyo 2013 Spring」に行ってきました。僕も「Movable Typeの実践的な管理画面カスタマイズ、検索カスタマイズ」というタイトルでお話しさせていただきました。

が、しかし、当日はデモを中心にやろうと思っていたのに、直前に MacBook のレインボーが消えなくなるわ VMware Fusion 5 が落ちるわで、結局デモはほとんどうまくいきませんでした(ToT) 当日の不手際、申し訳ございませんでした!(>_<)

デモをやる前にはお参りする必要があるそうです...(KING談)

しかし、その他の内容は充実していたようで、僕も柳下さんのセッションを後から聞きましたが、すごく勉強になりました。

また、北は北海道、南は九州から、全国の MTLover が集まり、懇親会も楽しくお話しできてとても楽しい時間を過ごすことができました。にっくさんをはじめ、関係者のみなさまお疲れ様でした!

次は MTCafe Saitama 2013 が開催されます。「WPer&PHPerのためのMovable Type」というテーマで、Movable TypeをWordPressやPHPと連携させるという、これまた非常に楽しみなイベントになりそうです。

最後に、当日の僕のスライドを貼っておきます。デモについては、後日動画に撮って公開しようと思います!

MTAppjQuery 0.28 リリース - ストラクチャーダッシュボードウィジェットのバグフィックス

Movable Type 5 の管理画面をjQueryでカスタマイズしやすくするプラグイン「MTAppjQuery」の ver.0.28 をリリースしました。

ユーザーダッシュボードの構造タブで、ブログ記事一覧、ウェブページ一覧、コメント一覧へのリンクが正常に機能していなかったのを修正しました。

    以下のページの「Release-v0.28」の zip か tar.gz をダウンロードしてください。

    mt-static/plugins/MTAppjQuery 内のファイルに変更はありませんので、plugins/MTAppjQuery だけ差し替えればOKです。

    なお、近日中に、MTAppjQuery 1.0.0 をリリースする予定です。このバージョンからは、インデックステンプレートで user.js などを管理できたり、その他色々なメソッドを追加したりと、少しパワーアップしています。

    MTCafe Tokyo 2013 でお話しさせていただきます!

    4月20日に「MTCafe Tokyo 2013 Spring」が開催されます。

    MTCafe というのは、MTユーザーのゆるいオフ会です。これまでもリラックスした雰囲気で何度か開催されてきましたが、今回は少し違って勉強会形式で2つのお部屋に分かれて開催されます。

    内容は次の通りで、恐れ多くも僕も1セッションお話させていただくことになりました。

    続きを読む

    Custom Field GUI Utility 3.3.0 リリース

    WordPress のカスタムフィールドを使いやすくするプラグイン「Custom Field GUI Utility 3.3.0」をリリースしました。

    今回のアップデートは「カスタムフィールドを扱いやすくするWordPressプラグイン「Custom Field GUI Utility」をアップデートしました!WordPress3.5に対応&管理画面での編集が可能に! | WebCake」にあるように、全部 Tsuyoshi さんがやってくださいました。Tsuyoshiくん、ありがとうー!!

    Custom Field GUI Utility 3.3.0 で新しくなった部分は上記 Tsuyoshi さんの記事をご覧ください。丸投げですみません(>_<)

    最新版は以下のページから zip ファイルをダウンロードしてください。

    ダウンロードして解凍したら、フォルダ名を「custom-field-gui-utility」に変更した後、サーバーにアップロードしてお使いください。

    なお、当プラグインのドキュメントも少し古くなってきました。ドキュメントも GitHub の README に移そうと思います。

      MTML Completions(MTタグを補完する Sublime Text 2 用パッケージ)でタグの書式が変更可能になりました

      先日公開したMTML Completions」と「PowerMTML Completions」で、テンプレートタグの入力フォーマットを変更できるようになりました。

      <mt:EntryTItle /> や <$mt:EntryTitle$>、<MTEntryTitle />、<$MTEntryTitle$>、<MT:EntryTitle> などお好きなフォーマットで補完することができます。

      続きを読む

      Movable Type と PowerCMS のテンプレートタグを補完する Sublime Text 2 のパッケージを公開しました

      Movable Type と PowerCMS のテンプレートタグの入力補完を提供する Sublime Text 2 用のパッケージ、「MTML Completions」と「PowerMTML Completions」公開しました。

      今年1月から linker の mersy くんと始めた bit part の成果物第一弾といったところです(2013年からbit partという取り組みを始めることにしました|linker journal)。

      続きを読む

      続:さくらのクラウドの2台構成とさくらのVPSのSSD1台でMTの再構築時間を比べてみた(PSGI編)

      前回「さくらのクラウドの2台構成とさくらのVPSのSSD1台でMTの再構築時間を比べてみた」の続編です。前回の構成は、MT5.13、CGI でしたが、今回は MT5.2.2、PSGI(PSGI + Starman + Apache)にして比較してみました。

      前回同様、比較したのは次の二つの環境です。

      1. さくらのクラウドのプラン1(仮装1コア、メモリ2GB)を2台(WebサーバーとDBサーバー)で動かした MT
      2. さくらのVPS の SSD2G のプラン(仮想3コア、メモリ2GB、SSD)1台で動かした MT

      続きを読む

      さくらのクラウドの2台構成とさくらのVPSのSSD1台でMTの再構築時間を比べてみた

      さくらの VPS に SSD プランが登場したので、どれだけ速いのかと期待に胸を膨らませて Movable Type の再構築時間を比較してみました。

      比較したのは次の二つの環境です。

      1. さくらのクラウドのプラン1(仮装1コア、メモリ2GB)を2台(WebサーバーとDBサーバーとして)で動かした MT
      2. さくらの VPS の SSD2G のプラン(仮想3コア、メモリ2GB、SSD)1台で動かした MT

      これらのサーバーに、このブログのデータを入れて、すべてのブログ記事を再構築してみました。なお、どちらも普通に CGI で動いています。

      続きを読む

      あけましておめでとうございます!今年はもっとアウトプットも。

      あけましておめでとうございます。

      あっという間に 2012 年が過ぎ去っていた感じがします。去年も相変わらず Movable Type、特に PowerCMS にお世話になりまくりました。そして、今年も引き続き PowerCMS にはお世話になりたいと思っています。

      さて、去年は1年間に100本のブログ記事を書くという目標を立てましたが、結果は 53 本に終わりました・・・。今年こそは年間 100 本という目標を達成できるようにがんばりたいと思います。

      去年は、このブログで公開している Movable Type のプラグインの「MTAppjQuery」や、jQuery のプラグインの「flexibleSearch」は、わりと多くの方に使っていただいて頂いているのですが「ドキュメントが少ないぞ!」とのお叱りをよく受けます。申し訳ないです・・・。

      特に、MTAppjQuery については、公開されているドキュメントよりも機能が増えていたり、もう少し使いやすくなっていたり、誰も知らない機能があったり、という有様です。

      今年は、そういった情報ももっとアウトプットしていきたいと思っています。

      また、DynamicMTML を活かしたプラグインの開発や、去年はほとんど取り組まなかったスマホ系の何かについて、今年は少し力を入れていきたいと思います。

      そして、今年もやはり、PowerCMS を使っての作業がメインになればいいなと思います。そこは維持できるように、もっと自分の中型免許スキルを上げていきたいと思います。

      その他、WPプラグインの Custom Field GUI Utility も相変わらずお使いいただいていて感謝しております。こちらも半ばやっつけの更新ですが、もうちょっとこうしたら便利だよなーというのはあるので、時間があればカスタマイズしていきたいと思います。

      去年1年間でいろいろないろいろな事を経験しましたが、自分に足りないモノが色々と見えてきました。技術面でも、効率の面でも、人間的な面でも父親としても。今年はそれを課題とし、克服していきたいと思います。

      ということで、本年もよろしくお願い申し上げます!

      Update Me, Everyday!!

      データベースも静的ファイルも丸ごとバックアップする Perl スクリプト all-backup.pl

      この記事は、「Movable Type Advent Calendar 2012」の6日目の記事です。

      みなさま、今日で僕は 36 歳になりました。たくさんのお祝いの言葉をいただき、ありがとうございます。36 歳の 1 年も「Update me, everyday!!」をモットーに日々精進していきたいと思います。

      いやー、思い返せば 36 年間色々なことがありました。色々な、本当に色々な、、、あれ?思い出せない。。。思い出せないぞ、過去の記憶が〜〜〜!

      ええ、過去の記憶はとても大事です。なくさないようにバックアップしておきましょう。

      ということで、データベースも静的ファイルも丸ごとバックアップして、FTP で別のサーバーに転送までしてくれる「 all-backup.pl 」という Perl スクリプトを書きました。

      続きを読む

      Sublime Text 2 用 Movable Type テンプレートタグのスニペット集

      今夜の Coda2 + Sublime Text 2 特集の「CPI x CSS Nite「After Dark」(5)」に参加するということもあるので、自分で使っている Sublime Text 2 用の MT タグの補完ファイル(スニペット)を公開します。多分、MT5.2 までの全部の MT タグが入っていると思います。

      ファイルを展開して、Sublime Text 2 の Packages のディレクトリに突っ込めば良いかと思います。

      インストールしたら「mt」と打って「ctrl + space」で補完リストが表示されます。素敵!(SublimeCodeIntel 使っても自動では表示されませんでした。なんでだろう?)。

      もう少し自分好みにカスタマイズしたら、まじめに公開しようと思いますw

      さくらのクラウドのサーバーを変えてみた

      このブログは、さくらのクラウドを利用しているのですが、先ほど、色々トラブルのあった旧ストレージから新ストレージに変更してみました。この記事は、新サーバーのIPアドレスを打って書いているので、この記事が見えるということは新サーバーということになります。

      旧ストレージから新ストレージに変更する際に、Webサーバーの方はメモリを3Gから2Gに落としたので、少しだけスペックダウンです。それ以外はほぼ同じ構成とし、その状態で全ブログ記事を再構築(Movable Type)したところ、旧ストレージのときよりも再構築時間が 5 分短くなっていました。

      11月から、新規受付も再開したさくらのクラウド。これから巻き返しに期待したいですね。

      Movable Type でカスタムフィールド foo の値が bar なブログ記事のカテゴリを hoge に一括で変更したい

      なんかクイズのようなタイトルですね…

      例えば、basename が「birthday_year」(誕生日の年)のカスタムフィールドの値が、1810年代に該当するブログ記事が属するカテゴリのうち、カテゴリIDが120のカテゴリを、一括でカテゴリIDが121のカテゴリに変更したいとき、以下の SQL を実行すれば OK です(妙に具体的w)。

      UPDATE `mt_placement`
      INNER JOIN `mt_entry_meta`
      ON `mt_placement`.`placement_entry_id` = `mt_entry_meta`.`entry_meta_entry_id`
      SET `mt_placement`.`placement_category_id` = 121
      WHERE `mt_placement`.`placement_category_id` = 120
      AND `mt_entry_meta`.`entry_meta_type` LIKE 'field.birthday_year'
      AND `mt_entry_meta`.`entry_meta_vchar_idx` REGEXP '^181.*';

      直接データベースをいじるので、バックアップは忘れずに!ご利用は自己責任で。

      Movable Type で出力するテンプレートから空行を削除したい

      Movable Type で出力されるページって、どうしても空行がいっぱいになっちゃいますよね。でも、空行を少なくするようにテンプレートを組むっていうのは、テンプレートも読みにくくなるし、無駄な労力になってしまいます。

      そんなときは、以下のようなタグで、空行を削除したい場所を挟んであげればOKです。

      <mt:Unless name="compress" regex_replace="/^\s*\n/gm","">

      </mt:Unless>

      ここでは compress という変数名にしていますが、これは存在しない変数名であれば何でもOKです。僕は分かりやすく(かっこつけて)compress ってすることが多いです。

      Movable Type のカテゴリ一覧で、カテゴリをまとめて削除したい

      Movable Type のカテゴリ一覧で、カテゴリをまとめて削除したいときってありません?

      僕はありました、今。で、いちいちクリックするのは面倒なので、JavaScript コンソールで以下の jQuery を実行すれば OK。確認のダイアログが表示されるので安心です。

      jQuery('#root span.delete').each(function(){
      jQuery(this).click();
      });

      確認が不要な場合は、以下で OK です。

      jQuery('#root div.sortable-item:visible').remove();
      jQuery('#actions-bar-top button.save').click();

      ご利用は自己責任で。

      Mac OS X Mountain Lion + VMware Fusion 5 + CentOS 6.3 + Apache + mod_proxy + PSGI + Movable Type 5.2 のローカル環境を構築した

      タイトルのままですが、次のような組み合わせのローカル環境を構築しました。

      • Mac OS X Mountain Lion
      • VMware Fusion 5
      • CentOS 6.3
      • Apache
      • mod_proxy
      • PSGI
      • Movable Type 5.2

      この環境を構築したときの作業手順を、備忘録として残しておこうと思います。

      ※スクリーンショットは乗せるとページの表示が重くなりそうですし、無くても十分分かると思いますのでテキストリンクにしました。

      続きを読む

      Custom Field GUI Utility 3.2.7 リリース

      WordPress のカスタムフィールドを使いやすくするプラグイン「Custom Field GUI Utility 3.2.7」をリリースしました。

      get_attachment_object() を the_content() よりも前に書くと、the_content() で何も表示されなくなるバグを修正しました。

      なお、the_content() 意外でも同様の状態になる可能性がありますので、当プラグインをご使用中の方は、以下のページからダウンロードして、cfg-utility.php を差し替えて下さい。

      EC CUBE で作ったサイトの copyright の年数を自動で更新する

      Smarty を知っていれば簡単な話なんですが、自分はまったく分からないのでメモメモ・・・。

      EC CUBE で作ったページのフッターのコピーライト(著作権表示)の年数が更新されてなかったので、自動で更新されるようにしました。

      • data/Smarty/templates/default/footer.tpl

      このファイルの年数のところを、

      <!--{$smarty.now|date_format:"%Y"}-->

      とすればいいっぽい。

      カテゴリの階層の深さを出力する Movable Type プラグイン - CategoryDepth

      まーしーさんに言われたんで CategoryDepth というプラグインを作ってみました。

      カテゴリコンテキストでは <$mt:CategoryDepth$> タグを、ブログ記事コンテキストでは <$mt:EntryCategoryDepth$> を使います。

      ブログ記事がカテゴリに属していないときは空文字を返します。

      ごめんなさい、今はスタティックの方しか対応してないです。あとでダイナミックにも対応させます。

      【2012年9月6日午後2時33分追記】

      藤本さんがダイナミックにも対応させてくれたので取り込みました!

      【2012年9月6日午前12時05分追記】

      CategoryDepth という名前のプラグインはすでに2008年に「エムロジック放課後プロジェクト」で公開されていました。名前がかぶってしまってすいません!(>_<)

      以上です。