May 2008 Archives

「perl-mongers.org」ブログの購読者数の伸びがヤバい!

| 0 Comments | 0 TrackBacks

こんにちは!こんにちは!こんにちは!


perl-mongers.org ブログのライブドアリーダでの購読者数が、ものすごい伸びでビックリしています。

一日で 170 人近くもの皆さんに登録していただいて、とてもうれしく思います。


http://media.tumblr.com/2uIDsGkn29gtctjy5lIUkdAI_500.png


ランキング1位とかすごすぎます!

関心を持っていただいて本当にありがとうございます。


http://media.tumblr.com/2uIDsGkn29gtnhagv9T263I8_500.png


perl-mongers.org では皆さんのエントリをお待ちしています。

MTOS 4.15b5-en で、Page が Publish できなくなる問題をどうにかする

| 0 Comments | 0 TrackBacks

Page が Publish できなくなってしまいました。

勝手に Template の Page が Disabled になってました。Static とかに直しても出力されなくて困ったのでデータベースを眺めました。

mt_template テーブルの template_build_type カラムが 0 になってので、1 に直すと回復しました。

数時間前に Entry が Publish できなくなる現象に遭遇したときは、データベースを数時間前にロールバックしてなんとかしのいだのだけど、同じ方法で直せたのかもしれない。

perl-mongers.org を立ち上げました。

| 0 Comments | 0 TrackBacks

こんにちは!こんにちは!こんにちは!

vkgtaro さんによる

というエントリで書かれているとおり、プラコア CTO の vkgtaro さんたちと perl-mongers.org というサイトをはじめました!

vkgtaro さんが perl-mongers.org を取得するまでのぼくらに何があったかはさておき、perl-mongers.org では何が新しいかをご説明します。


perl-mongers.org では、OpenID でログインするだけで、スグに記事を書けます。従来のあったような、面倒なアカウント申請は必要ありません。perl-mongers.org のトップページに行って、何らかの OpenID を入力するだけで、すぐにエントリする用意がととのいます。

詳しくは、

をごらんください。


OpenID を MTOS に組み込んだ件については、

でご説明しましたのでごらんください。MTOS のコアに手を入れているので、もっとまともな方法とかご存じの方いらっしゃれば、アドバイスなどいただけると非常にありがたく思います。よろしくお願いします。


以上、かんたんに perl-mongers.org についてご紹介してきました。

perl-mongers.org をよろしくおねがいします!

MTOS のシステム情報を見れる人を制限する

| 0 Comments | 0 TrackBacks

どのモジュールのどのバージョンがインストールされてるかとか、あんま知られたくないので、パーミッションを指定してみた。

Index: lib/MT/App/CMS.pm
===================================================================
--- lib/MT/App/CMS.pm   (revision 11)
+++ lib/MT/App/CMS.pm   (working copy)
@@ -38,7 +38,10 @@
     my $app = shift;
     my $pkg = '$Core::MT::CMS::';
     return {
-        'tools'     => "${pkg}Tools::system_check",
+        'tools'     => {
+            handler => "${pkg}Tools::system_check",
+            permission => 'administer_blog'
+        },
         'dashboard' => "${pkg}Dashboard::dashboard",
         'menu'      => '${pkg}Dashboard::dashboard',
         'admin'     => '${pkg}Dashboard::dashboard',

Nowa 関連のモジュールを CPAN へアップロード

| 0 Comments | 0 TrackBacks

うpりました。

WebService::Nowa は、mattn さん、hideden さんにメソッドを追加していただきました!

どうぞご利用ください。

Asano サンの Muxtape は、第 2 弾もキテる!

| 0 Comments | 0 TrackBacks

Asano サンの Muxtape が age age チューンまくりでヤバい件 - blog.woremacx.com で Asano サンの Muxtape がぼく的に大ヒットだったことを書きました。

なんとその Asano サンが、第 2 弾をリリース!!

Asano/Mushline do3ob から聞けます!

今回のチューンも心地よい Electronica でおいしゅうございました!

みんなもノリノリな気分で何か作業するといいよ!

Unicode::RecursiveDowngrade を初めて使った

| 0 Comments | 0 TrackBacks

とりあえずメモ書きするお。

my $rd = Unicode::RecursiveDowngrade->new;
$rd->filter(sub {
  my $val = shift;
  unless (Encode::is_utf8($val)) {
    $val = Encode::decode('utf-8', $val);
  }
});
$data = $rd->downgrade($data);

後日談

23:20 (woremacx) 記事にした!

23:20 (woremacx) これ超便利だったんだけど

23:21 (woremacx) 逆の用途に使っちゃった><

23:21 (tomyhero) lol

23:21 (tomyhero) http://search.cpan.org/~dmaki/Data-Visitor-Encode-0.09000/lib/Data/Visitor/Encode.pm

23:21 (mobitaro) Data::Visitor::Encode - Encode/Decode Values In A Structure ... [text/html; charset=iso-8859-1]

23:22 (woremacx) 先に言ってくださいよ!!

23:22 (tomyhero) 今思い出した

23:22 (tomyhero) これさ

23:22 (tomyhero) nipotanサンに前

23:22 (tomyhero) こっちがいいかもと

23:22 (tomyhero) 教えてもらったのを

23:22 (tomyhero) ><

ということで、Data::Visitor::Encode を今度使ってみたいと思います!

はて☆スタつけた

| 0 Comments | 0 TrackBacks

MTHatenaStar作った - Kickstart my heart を使わせていただきました。

どうせなら Hatena.Star.EntryLoader.headerTagAndClassName のパラメータも管理画面からさわれたらいいなぁと思ったので、ちょっくら変更してみました。

MTOS4.15 のテンプレートには、h1.asset-name に a が含まれてないのに気がつかず何がおかしいのだろうと延々リロードしてた><

Index: MTHatenaStar/MTHatenaStar.pl
===================================================================
--- MTHatenaStar/MTHatenaStar.pl        (revision 4)
+++ MTHatenaStar/MTHatenaStar.pl        (revision 7)
@@ -18,12 +18,15 @@
 <dl>
 <dt>Your Hatena Star token<dt>
 <dd><input name="hatenastar_token" size="40" value="<mt:var name="hatenastar_token">" /></dd>
+<dt>EntryLoader.headerTagAndClassName<dt>
+<dd><input name="hatenastar_loader" size="40" value="<mt:var name="hatenastar_loader">" /></dd>
 </dl>
 TMPL
     settings => new MT::PluginSettings([
         ['hatenastar_token'],
+        ['hatenastar_loader'],
     ]),
-    version => '0.1',
+    version => '0.1.1',
 });

 MT->add_plugin($plugin);
@@ -57,13 +60,15 @@
     return q() unless $config;
     my $token = $config->{hatenastar_token};
     return q() unless $token;
+    my $loader = $config->{hatenastar_loader};
+    $loader ||= "['span', 'hatenastar']";

     $ctx->stash('hatena_star_script', 1);
     return <<EOT;
 <script type="text/javascript" src="http://s.hatena.ne.jp/js/HatenaStar.js"></script>
 <script type="text/javascript">
 Hatena.Star.Token = '$token';
-Hatena.Star.EntryLoader.headerTagAndClassName = ['span', 'hatenastar'];
+Hatena.Star.EntryLoader.headerTagAndClassName = $loader;
 </script>
 EOT
 }

MTOS4 で permalink にアンダーバーとハイフンを混在できるようにするお手軽 hack

| 0 Comments | 0 TrackBacks

今の時代、permalink に意味を持たせることはごくあたりまえです。当然のように /2008/05/i-love-vagina.html であったり /2008/05/i_love_vagina.html というような意味のある permalink を作りますね。

ぼくのブログでは、アンダーバーもしくはアンダースコアの旧世代と、ハイフンの世代の記事が混じっています。

MovableType のオープンソース版である MTOS4 では、BASENAME にアンダーバーもしくはアンダースコアを含んでると、勝手にハイフンにされて困ってる人が多いと思います。もしくはアンダースコアに統一のようですね。ほんと困りますね。わかります。

せっかくリンクしていただいてるにもかかわらず、CMS の事情でリンクが切れるのは非常に残念なことです。

ということで対策するわけですが、テンプレートをいじるのはめんどくさいし、どこに設定があるのか探すだけで骨が折れるので、"/-/" で grep まくって見つけた以下の 3 つのメソッドを書き換えて対処してみました。痴漢される前に return するのです。

  • _hdlr_entry_basename
  • _hdlr_archive_file
  • _hdlr_category_basename

以下がパッチです。今のところうまく動いている気がします。

Index: lib/MT/Template/ContextHandlers.pm
===================================================================
--- lib/MT/Template/ContextHandlers.pm  (revision 1)
+++ lib/MT/Template/ContextHandlers.pm  (working copy)
@@ -8755,6 +8755,7 @@
     my $e = $ctx->stash('entry')
         or return $ctx->_no_entry_error();
     my $basename = $e->basename() || '';
+    return $basename;
     if (my $sep = $args->{separator}) {
         if ($sep eq '-') {
             $basename =~ s/_/-/g;
@@ -11615,6 +11616,7 @@
             $f .= '.' . $ext;
         }
     }
+    return $f;
     if ($args->{separator}) {
         if ($args->{separator} eq '-') {
             $f =~ s/_/-/g;
@@ -12092,6 +12094,7 @@
                            "You used an [_1] tag outside of the proper context.",
                            '<$MT'.$ctx->stash('tag').'$>')));
     my $basename = $cat->basename || '';
+    return $basename;
     if (my $sep = $args->{separator}) {
         if ($sep eq '-') {
             $basename =~ s/_/-/g;

CMS を MTOS4 にした

| 0 Comments | 0 TrackBacks

これまで、このブログは自家製の Catalyst アプリでホストしていました。Catalyst 勉強し始めに頃に、顔を真っ赤にして書いたカオスなアプリです。使い続けるには 100% 書き直しが必要なほどだめな子なので、MTOS4 を入れることにしました。

MTOS4 にするにあたり、CMS 部分全体を svn リポジトリに突っ込みました。バージョンアップや巻き戻しが容易にでき、変更点が追跡できるという利点があります。

また、以前作った TextHatena プラグインも組み込んだので、コピペも楽ちんになりました。やたー。

Asano サンの Muxtape が age age チューンまくりでヤバい件

| 0 Comments | 0 TrackBacks

こんにちは!woremacx【会社注意】です!

Asano さんの twitter で、

コーディング時になぜか聴きたくなる age age チューンにしてみた http://asano.muxtape.com/
Twitter / Asano

というメッセージを見て、Asano サンの Muxtape を早速聞いてみたら、ぼく的に大ヒットです!

初めてこのプレイリストを聞いた日はあんまり元気がない日だったのですが、何曲か聞いているうちに元気もりもりになってしまった神チューンズでした。age age な気持ちをキープしつつ作業できるのはマジでいいですね!

見ての通りの DJ トラックモノ + D'n'B + Jazz 系 Electronica なんでそこら辺が好きだったり気になるひとは今のうちに Muxtape (2008-05-06 現在) で聴いといてください!
Muxtape 1st Playlist - コーディング時に聴きたくなる age age チューン < Mushline

ということで、気になる人は急いで聞くべし!

それ Plagger で

| 0 Comments | 0 TrackBacks

irc.woremacx.com#vagina に参加してる皆さんのブログの更新を 5 分置きにチェックするようにしてみた。

監視対象ブログの追加・削除などあれば、vaginarepos の wiki をいじるといいよ!

対象の追加があった場合には、Deduped データベースの更新のみやるようにしたい。そのうちやる。→やった。

動かしてるスクリプトを commit した。
/plagger/vaginabros - VaginaRepos::Share - Trac