<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
   <channel>
      <title>Junnama Online</title>
      <link>http://junnama.alfasado.net/online/</link>
      <description>アルファサード有限会社 代表 野田純生のプライベートなBlog。</description>
      <language>ja</language>
      <copyright>Copyright 2010</copyright>
      <lastBuildDate>Mon, 09 Aug 2010 23:08:48 +0900</lastBuildDate>
      <generator>http://www.sixapart.com/movabletype/</generator>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs> 
      
      <item>
         <title>第8回Creatorz × 第2回広島MT学会に参加しました。</title>
         <description><![CDATA[<p><a href="http://creatorz.org/news/2010/07/8creatorz.html">「第8回Creatorz × 第2回広島MT学会」</a>に参加しました。先のエントリで予告したこちらの題目で<a href="http://junnama.alfasado.net/online/2010/08/movable_type_on_buisinessweb.html">「Movable Type on Business」〜地方の小規模組織が勝ち抜くWeb構築ビジネスの戦略と施策〜</a>先週の土曜日に福山でお話してきました。</p>

<p>実際「Tweet禁止」「これは言わないでね」前提で好き勝手話しましたので外の方からはわかんなかったですよねきっと。でもまぁ、これは参加いただいた人の特典ということで。雰囲気は <a href="http://twitter.com/#search?q=mtgk" rel="nofollow" >#mtgk</a>で。</p>

<p>ここでは最終的なアジェンダだけ貼っておきます。</p>

<ul>
    <li>自己紹介・会社のこと
    <ul>
    <li>自己紹介</li>
    <li>Movable Typeとの付き合い</li>
    <li>アルファサード有限会社について</li>
    <li>会社沿革(エピソードを交えて)</li>
    </ul>
    </li>
    <li>Movable Typeのビジネス
    <ul>
    <li>Power CMS for MT誕生秘話</li>
    <li>Movable Typeとは何か?</li>
    <li>Movable Typeのビジネス</li>
    <li>MTビジネスの特質</li>
    <li>MT関連ビジネスのポイントと注意点</li>
    </ul>
    </li>
    <li>シックス・アパートさんとの付き合い方(私見)
    <ul>
    <li>MTチームのみなさん</li>
    <li>相手の立場に立ってみる</li>
    <li>ProNet/ProNet SOHO(パートナー制度の活用)</li>
    <li>パートナー制度の本質</li>
    </ul>
    </li>
    <li>地方の小規模組織が勝ち抜くWeb構築ビジネスの戦略
    <ul>
    <li>地方マーケットの現実と誤解</li>
    <li>東京へ行くべきか?</li>
    <li>製品・サービスを作り、展開する</li>
    <li>ニッチの原則</li>
    <li>アライアンス戦略の考え方</li>
    <li>価格設定と利益の出し方</li>
    </ul>
    </li>
    <li>会社の成長と自分の成長のために
    <ul>
    <li>自社ブランディングと自社サイト</li>
    <li>社内/社外のコミュニケーションにMTを使う</li>
    <li>クリエーターのワークスタイル</li>
    <li>アイデアを実現する思考と行動</li>
    </ul>
    </li>
    <li>御礼と質疑応答
    <ul>
    <li>御礼と質疑応答</li>
    <li>ご提案</li>
    </ul>
    </li>
</ul>

<h3>参考リンク</h3>

<ul>
	<li><a href="http://www.h-fj.com/blog/archives/2010/08/08-124729.php">「第8回Creatorz × 第2回広島MT学会」終了 - The blog of H.Fujimoto</a></li>
	<li><a href="http://arachne.exblog.jp/13738271/">May the hope be with you ! : 考え抜く姿勢</a></li>
	<li><a href="http://www.dakiny.com/archives/event/the_story_that_i_want_to_really_hear/">本当に聞きたい話ってここだけの話だと思うよ: 世界中の１％の人々へ</a></li>
</ul>]]></description>
         <link>http://junnama.alfasado.net/online/2010/08/8creatorz_2mt.html</link>
         <guid>http://junnama.alfasado.net/online/2010/08/8creatorz_2mt.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">Web制作・ビジネス</category>
        
        
         <pubDate>Mon, 09 Aug 2010 23:08:48 +0900</pubDate>
      </item>
      
      <item>
         <title>「Movable Type on Business」〜地方の小規模組織が勝ち抜くWeb構築ビジネスの戦略と施策〜</title>
         <description><![CDATA[<p>先日のMTDDCは部下の結婚式で行けなかったのですが、今週末に広島で行われるMT関連のイベントにスピーカーとして参加します。</p>

<p>いよいよ今週末(8月7日)となりましたが、広島県内Pronetパートナーのメンバー他、藤本壱さん、私(野田純生)が登壇してMTに関するトークディスカッション、講演等で構成されるイベント<a href="http://creatorz.org/news/2010/07/8creatorz.html">「第2回広島MT学会inFUKUYAMA」</a>が開催されます。スポンサー企業からのプレゼント等もあります。</p>

<p>西日本ではこのような大規模なイベントは中々開催されませんので、MTユーザーの方、仕事でMTを扱われている方は是非ご参加ください。</p>

<p><a href="http://creatorz.org/news/2010/07/8creatorz.html">「第2回広島MT学会inFUKUYAMA」</a></p>

<ul>
	<li>日時 :	 2010年8月7日(土曜日)13:00～17:30</li>
	<li>会場 :	 まなびの館ローズコム 4階 大会議室1</li>
	<li>場所 :	 広島県福山市霞町1丁目10番1号</li>
	<li>参加申込 : <a href="http://atnd.org/events/5113/">ATNDから申し込みをお願いします。</a></li>
</ul>

<h3>(野田のセッションの)テーマは、地方、東京、小規模Web制作事業、MT等</h3>

<p>このエントリのタイトルの通りなのですが、せっかく東京でなく地方でやるわけですから、「地方」を切り口にした話をしたいと思いました。最初は「プラグイン」というリクエストで依頼があったのですが、そこは敢えて私から提案させていただきました。</p>

<p>実際、東京でのカンファレンスやCSS NiteのLPの時なんかは北海道とか九州から飛行機で参加したりされてるわけですし、地方でも面白い切り口で話せば参加したいと思ってくださる人もいるんじゃないかと思ってのことです。</p>

<p>このブログでも何度か書いていますが、ウチの会社は1人で大阪で7年前に作った会社ですし(現在は大阪-東京で12名)、つい数年前までは本当にSOHOに毛が生えたような事業を行っていました。Movable Typeを利用して(もちろんMTでなくてもいいと思うのですが)どのようなビジネススキームを企画してどう実行するか、どんな可能性があるのか、また「シックス・アパート」さんとの付き合い方やコミュニティのパワーをうまく仕事に活かすような取り組みの話とか、東京では話せない(話せないことはないですが)、「地方の、東京の、MTの本当のところ」を話したいと思います。今回は中継はないんですよね? ギリギリトークで行きたいと思います。</p>

<p>テーマは今日決定したのでアジェンダはこれからですが、今日のところは思うところを羅列しておきます。MTの技術的な面も絡めながらですが、Web受託、地方、小規模事業者が勝ち抜くためのヒントになれば、あるいは考えるきっかけになれば幸いです。</p>

<ul>
	<li>地方のウェブ制作の原状(大阪にて思うこと)</li>
	<li>東京との違い</li>
	<li>東京の仕事をどうするか</li>
	<li>MTで出来ること</li>
	<li>MTのビジネス</li>
	<li>受託＋＋</li>
	<li>シックス・アパートとの付き合い方(あくまでも自分的に思うところ)</li>
	<li>Web制作会社の自社サイト戦略</li>
	<li>アルファサードのビジネススキーム</li>
	<li>イントラMTで自社を変える</li>
</ul>

<p>来て良かった、と思っていただけるよう頑張ります。それでは、福山でお会いしましょう!</p>]]></description>
         <link>http://junnama.alfasado.net/online/2010/08/movable_type_on_buisinessweb.html</link>
         <guid>http://junnama.alfasado.net/online/2010/08/movable_type_on_buisinessweb.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">MovableType</category>
        
          <category domain="http://www.sixapart.com/ns/types#category">Web制作・ビジネス</category>
        
        
         <pubDate>Tue, 03 Aug 2010 20:55:37 +0900</pubDate>
      </item>
      
      <item>
         <title>あなたのブログをAndroid対応させる。</title>
         <description><![CDATA[<p>Perl/PHP両対応です。管理画面や検索結果などにも適用できますが、基本的にはダイナミックパブリッシングか<a href="http://powercms.alfasado.net/blog/2010/03/htmlmtdynamicmtml.html">DynamicMTML</a>で同一URLでスタイル分岐させて動かすのが正攻法でしょう。*CSS/JavaScriptだけでも出来てしまうんでしょうが。</p>

<pre><code class="mtml">
&lt;MTIfAndroid&gt;
Android向け
&lt;mt:else&gt;
そうじゃない向け
&lt;/mt:else&gt;
&lt;/MTIfAndroid&gt;
</code></pre>
<ul>
	<li><a href="http://junnama.alfasado.net/online/2010/07/02/MTIfAndroid.zip">MTIfAndroid.zip</a></li>
</ul>

<p>一応、こっちもあります。基本同じですね。やり方。</p>

<ul>
	<li><a href="http://junnama.alfasado.net/online/2010/06/ipad.html">あなたのブログをiPad対応させる。</a></li>
</ul>

<p>参考:</p>

<ul>
	<li><a href="http://smartphone.nttdocomo.co.jp/fordeveloper/android/faq.html#faq06">FAQ｜Android｜開発者様用技術情報｜ドコモスマートフォンサイト | NTTドコモ</a></li>
</ul>

<p>*蛇足ですが、ダイナミック対応プラグインが少ないってのは(昔書かれたものは別にして)現在では書かない人が多いってことだけかと思います。軽い重いってことじゃなくて、ハイブリッドなパブリッシングが出来るってことですからもっと可能性が色々あると思いますよ。</p>]]></description>
         <link>http://junnama.alfasado.net/online/2010/07/android.html</link>
         <guid>http://junnama.alfasado.net/online/2010/07/android.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">MovableTypeプラグイン</category>
        
        
         <pubDate>Fri, 02 Jul 2010 19:46:27 +0900</pubDate>
      </item>
      
      <item>
         <title>6/19 Hack-A-Thon。</title>
         <description><![CDATA[<p>各paramをmt:varに突っ込んでテンプレートを動的にbuildするcgi。</p>

<p>plugins/Viewer/tmpl/example.tmpl の場合、</p>

<p>mt-viewer.cgi?blog_id=1&amp;template=example</p>

<p>mt-viewer.cgi?blog_id=1&amp;template=example&amp;id=1</p>

<p>とすることでid=1のページ(エントリ)アーカイブ的なものを作ったり。</p>

<p>テンプレートの中身を</p>

<p>&lt;$mt:include module=&quot;$template&quot; blog_id=&quot;$blog_id&quot;$&gt;</p>

<p>とかすることで各ブログ/ウェブサイトのモジュールをテンプレートとして使えるようになります。</p>

<ul>
	<li><a href="http://junnama.alfasado.net/online/2010/06/19/mt.zip">mt.zip</a></li>
</ul>

<p>詳細はまたいずれ。お疲れさまでしたー(今頃ビール飲んでるんやろな...)。</p>]]></description>
         <link>http://junnama.alfasado.net/online/2010/06/619_hack-a-thon.html</link>
         <guid>http://junnama.alfasado.net/online/2010/06/619_hack-a-thon.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">MovableTypeプラグイン</category>
        
        
         <pubDate>Sat, 19 Jun 2010 18:19:57 +0900</pubDate>
      </item>
      
      <item>
         <title>MTIncludeは遅いのか?</title>
         <description><![CDATA[<p>結論を先に書きます。<strong style="font-size:120%">遅くない。遅い場合についてもMTIncludeタグ自身の影響は些少。</strong></p>

<p>MTのスタティック・パブリッシングにおける再構築とはつまりこういうことかと思います。</p>

<ol>
	<li>テンプレートをロードしてコンテクストをセットする。</li>
	<li>各タグ内で必要に応じてデータを取得したりコンテクストをセットし、</li>
	<li>ブロック(テンプレート)をコンパイルしてビルドしていく。</li>
	<li>この時<strong>インクルードされているテンプレート(モジュールやウィジェット)があればロード</strong>して展開する。</li>
</ol>

<p>詳しくはlib/MT/Template/WeblogPublisher.pm (lib/MT/Template/Builder.pm とか、あと各テンプレートタグについては lib/MT/Template/ContextHandlers.pmなんか)を見れば理解できると思います。</p>

<p>さて、上記の4番目のロードとは、SQLを発行してデータベースからテンプレートを読み込むことを指します。SELECT * FROM `mt_template` WHERE template_blog_id=2 AND template_name='サイドバー' AND template_type='custom' みたいなやつです。</p>

<p>ですので、当然ながらフラット化されたテンプレートと比較すると遅くなる、重くなると思われがちで、一見この指摘は正しいように思えます。それがMTIncludeが重いといわれる原因でしょうか?</p>

<p>実際にやってみました。</p>

<ul>
	<li>新規にMTをインストール。標準以外のプラグインはなし。</li>
	<li>クラッシックウェブサイト以下にクラシックブログを作成。</li>
	<li>このブログをエクスポートしたデータをインポート(エントリー数は588)。</li>
	<li>ブログ記事の再構築を行う(5回計測。平均3分46.0秒)</li>
</ul>

<p style="text-align:center">3分43秒 / 3分44秒 / 3分48秒 / 3分49秒 / 3分46秒</p>

<p>さて、ブログ記事テンプレートの「サイドバー」モジュールをブログ記事テンプレートの該当箇所にそのまま貼付けて再構築を行いました。MTIncludeを使わないパターンです。結果...</p>

<p style="text-align:center">3分55秒 / 3分53秒 / 3分49秒 / 3分47秒 / 3分51秒</p>

<p>変わんなかった(5回計測。平均3分49.2秒)。むしろ遅い?変わらないのはともかく遅くなった原因はわかんないです。が、まぁ誤差の範囲でしょう。</p>

<p>但し、以下の事実は知られていないかもしれないので書いておきます。</p>

<p><strong style="font-size:120%">インクルードしているテンプレートモジュール(ウィジェット)のロードは1リクエストにつき1回だけ</strong></p>

<p>具体的にはlib/MT/Template/ContextHandlers.pm の3598行目。MT::Requestにキャッシュされていない時だけロードされます。</p>
<p>ちなみに1リクエストというのは、mt.cgiへのリクエストです。MTのブログ記事の再構築は1度のリクエストで環境変数 <a href="http://www.movabletype.jp/documentation/appendices/config-directives/entriesperrebuild.html">EntriesPerRebuild</a> の設定値(初期値は40)ずつ実行されます。40ファイル再構築後はリダイレクトして再び40ファイルの再構築を(これをエントリ数を40で割った回数分)繰り返すわけです。
588ファイルの再構築であれば、リクエストは15回です。EntriesPerRebuildの値を100にすればリクエストはわずか6回。つまり、テンプレートをロードするためのSQLのリクエストは100ファイルの再構築時にわずか(インクルードしているモジュールが1つあたり) <del>1</del> &nbsp; <ins>6</ins> 回です。</p>

<p>つまり、インクルードしていることの影響は些少といえます。</p>

<p>さて次。コンパイルです。ビルドする前にコンパイルします。MTIgnore云々の話はこのコンパイル時の話になります。計測のため(というか本当に速くなるんだったらいいなと思って)MTCompileCacheBlockというタグを作ってテストします。</p>

<pre><code class="mtml">
sub _hdlr_compile_cache {
    my ( $ctx, $args, $cond ) = @_;
    require MT::Request;
    my $key = $args-&gt;{ key };
    my $id = &quot;compile_cache_$key&quot;;
    my $r = MT::Request-&gt;instance;
    my $cache = $r-&gt;cache( $id );
    my $builder = $ctx-&gt;stash( 'builder' );
    my $tokens;
    if ( $cache ) {
        $tokens = $cache;
    } else {
        my $tmpl = $ctx-&gt;stash( 'uncompiled' ) || '';
        $tokens = $builder-&gt;compile( $ctx, $tmpl );
        $r-&gt;cache( $id, $tokens );
    }
    my $res = $builder-&gt;build( $ctx, $tokens );
    return $res;
}
</code></pre>

<p>テンプレートは以下のようにモジュールを囲む形で書きます。</p>

<pre><code class="mtml">
&lt;MTCompileCacheBlock key=&quot;sidebar&quot;&gt;
    &lt;$mt:Include module=&quot;サイドバー&quot;$&gt;
&lt;/MTCompileCacheBlock&gt;
</code></pre>

<p style="text-align:center">3分51秒 / 3分51秒 / 3分46秒 / 3分46秒 / 3分47秒</p>

<p>3分48.2秒。これも...誤差の範囲じゃないですか?<p>

<p>高速化云々の話をする時には「どこがツボ」かを考えないと無駄な努力に終わる可能性が高い。<p>

<p>ツボは何? そう、ツボは「ビルド」です。テンプレートキャッシュが有効なのはキャッシュした部分のテンプレートをビルドする処理を2回目以降スキップできるから劇的な効果が見込めるわけです。</p>

<p><strong style="font-size:120%">では何故MTIncludeが重い(遅い)と(しばしば)指摘されるのか?</strong></p>

<p>本当のところはわかりません。推測ですがおそらく「最近のブログ記事」とか「最近のコメント」等の相応に負荷のかかるブロックタグを利用したブロックがモジュール化されているからじゃないかという気がしますが。確かにそういった場合にキャッシュしていない場合に全体的に重くなることは事実で、でもそれはMTIncludeのせいではなくて各ページで共通の結果を出力する部分をキャッシュせずに処理していることが問題なわけです。MT3の頃だったか、モジュールをインデックス・テンプレートにして吐き出しておいてファイルとしてインクルードするようなTipsがあったかと思いますが、確かに劇的に効果的にはたらくケースもあります。</p>

<p>MT4(.xだったか記憶曖昧ですが)から実装されたテンプレートモジュールのキャッシュを使えば一定時間はビルドされずキャッシュが使われますからこれは効果があります。但し、再構築中に間違いに気づいてブログ記事を削除したりしたときに「最新のブログ記事」リストに削除したものが残ってしまうといった問題がないわけではないので、リクエスト毎にキャッシュを生成するようなプラグインなどはお手軽で、データベースでなくメモリへのキャッシュですので(最初の1回しか)クエリも発行されないといったメリットがあり劇的に軽量化できます。</p>

<ul>
	<li><a href="http://junnama.alfasado.net/online/2009/01/mtrequestcache.html">MTRequestCacheプラグイン(超シンプルなテンプレートキャッシュ)。</a></li>
</ul>

<p>ということで、フロントエンジニアの人はMTIgnoreもMTIncludeも積極的に使って可読性が高くメンテナビリティに優れたテンプレートを書くことに集中すれば良いと思うのです。思うのでした。</p>

<p><ins><strong>追記</strong></ins></p>

<p>モジュールをフラット化した状態でCompile結果をキャッシュして実測。</p>

<p style="text-align:center">4分1秒 /  3 分52秒 / 以下省略</p>]]></description>
         <link>http://junnama.alfasado.net/online/2010/06/mtinclude.html</link>
         <guid>http://junnama.alfasado.net/online/2010/06/mtinclude.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">MovableType</category>
        
        
         <pubDate>Fri, 11 Jun 2010 14:36:27 +0900</pubDate>
      </item>
      
      <item>
         <title>(駄文)テンプレートのメンテナンス性を損なわないためにデザイナーが出来ること</title>
         <description><![CDATA[<ul>
	<li><a href="http://www.skyarc.co.jp/engineerblog/entry/post_24.html">再構築高速化のためにデザイナーが出来ること | Movable Type技術情報 | MTエンジニアブログ | スカイアークシステム</a></li>
</ul>

<blockquote cite="http://www.skyarc.co.jp/engineerblog/entry/post_24.html">
<p>あとMTIgnoreタグで囲めば処理しないという幻想がまことしやかにささやかれていた時期がありましたが、<br />
あいつ一旦タグの内容なめてからコメントアウトしてますから、処理時間はその分もかかりますよ。<br />
不要な記述はMTIgnoreするのではなく、テンプレート上から削除しましょう。</p>
</blockquote>

<p>おっと、知らなかった。確認。</p>

<p>lib/MT/Template/Tags/Blog.pm の 166行目にちょっと追記。</p>
<pre><code>
    MT->log($name);

</code></pre>

<p>インデックス・テンプレートを作成</p>

<pre><code>
&lt;MTBlogName&gt;

</code></pre>

<p>プレビューまたは再構築してログ確認すると、ブログ名がログに残る。</p>

<p>テンプレートを下記のように修正。</p>

<pre><code>
&lt;MTIgnore&gt;&lt;MTBlogName&gt;&lt;/MTIgnore&gt;

</code></pre>

<p>プレビューまたは再構築してログ確認すると、ブログ名がログに......残りませんね(そりゃそうだろ)。</p>

<p>一応念のため確認。</p>

<p>lib/MT/Template/ContextHandlers.pm の23行目</p>

<pre><code>
            Ignore         => sub { '' },

</code></pre>

<p>はぁ...</p>

<p>モジュール使わないとか直書きするとかコメント削除とか考えてないで可視性が良くメンテナンスしやすいテンプレートにすることだけ考えてたら良いと思うよ。あとはバックエンドの実装の人とか偉い人とか(ハードにお金出してくれる人とか)が考えたらいい。</p>]]></description>
         <link>http://junnama.alfasado.net/online/2010/06/post_223.html</link>
         <guid>http://junnama.alfasado.net/online/2010/06/post_223.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">MovableType</category>
        
        
         <pubDate>Wed, 09 Jun 2010 13:52:36 +0900</pubDate>
      </item>
      
      <item>
         <title>MTQでMTへの要望とかを。</title>
         <description><![CDATA[<p><a href="http://junnama.alfasado.net/online/2010/06/08/Safari002.jpg"><img alt="MTQダッシュボードウィジェット" src="http://junnama.alfasado.net/online/assets_c/2010/06/Safari002-thumb-180x328-109.jpg" width="180" height="328" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" /></a>
Dakiny さんの呼びかけがトリガーなのか<a href="http://communities.movabletype.jp/">MTQ</a>にMTへの要望が色々上がってくるようになりましたね。日本発、日本語でこういうのが投げられてそれが反映されるってのが英語が<del>得意</del>な僕としても楽ちんだし、いずれにしてもダイレクトに製品担当者とコミュニティがやり取り出来るのがいいんじゃないでしょうか。
</p>

<p>で、<strong>コメントフィードはないの?</strong> と呟いたら

<p><a href="http://twitter.com/sixapartkk/status/15690747036">Twitter / シックス・アパート株式会社: 追加しました! http://bit.ly/9WU0 ...</a></p>

<blockquote cite="http://twitter.com/sixapartkk/status/15690747036"><p>追加しました! http://bit.ly/9WU0t8 RT @junnama: MTQってコメントフィードはないんですかね?</p></blockquote>

<p>とのことなので、MTQダッシュボードプラグインをタブ切り替えでコメントも表示できるようにしました。</p>

<p>*MTFeed関係のファンクションタグが貧弱で投稿者の名前とかとれないんですよね。これ、要望あげましょうか。</p>

<ul>
	<li><a href="http://junnama.alfasado.net/online/2010/06/07/MTQ.zip">MTQ.zip</a></li>
</ul>]]></description>
         <link>http://junnama.alfasado.net/online/2010/06/mtq51.html</link>
         <guid>http://junnama.alfasado.net/online/2010/06/mtq51.html</guid>
        
        
         <pubDate>Tue, 08 Jun 2010 21:41:31 +0900</pubDate>
      </item>
      
      <item>
         <title>ユーザーダッシュボードを楽しく(そしてちょっとだけ便利に)してくれるプラグイン6種。 </title>
         <description><![CDATA[<p>こういうのは<a href="http://www.mtcontest.jp/">Movable Typeコンテスト</a>に「ダッシュボードの部」ってのを設けたらいいんじゃないかなー</p>

<p><a href="http://communities.movabletype.jp/2010/06/post-81.html">ユーザーダッシュボードの充実を希望 - MTQ | Movable Type 5 ユーザーコミュニティ</a></p>
<blockquote cite="http://communities.movabletype.jp/2010/06/post-81.html"><p>WordPress を引き合いに出すのは気分悪くする人もいるかもしれないのでしたくないのですが、しかし、あまりにも違うので議論にお付き合い下さい。</p>
<p>(中略)</p>
<p>Movable Type のユーザーダッシュボードの場合は、今後開発されるのでしょう！というような感じで、ほとんど有用な情報が表示されません。あるいは、あえてシンプルにして初心者に優しくしているのかもしれません。だとしたら、ブログのダッシュボードの方は、充実してもらいたいものです。</p></blockquote>

<hr />
<p>ということで、<strong>ユーザーダッシュボードを楽しく(そしてちょっとだけ便利に)してくれるプラグイン6種。</strong> 既にこれまでに公開済みのものも含みますが新規に2つほど追加して公開済みのものも若干手直しを入れてまとめて公開します(変更のないものもあります)。</p>

<p style="text-align:center"><a href="http://junnama.alfasado.net/online/2010/06/07/Safari001.jpg"><img alt="ユーザーダッシュボードのキャプチャ" src="http://junnama.alfasado.net/online/assets_c/2010/06/Safari001-thumb-400x270-107.jpg" width="400" height="270" class="mt-image-none" style="" /></a></p>

<h2>MT_Tags</h2>
<p>MTタグを定期的にTweetしてくれるTwitterアカウント「<a href="http://twitter.com/MT_Tags">MT_Tags</a>」が紹介するタグをランダムにユーザーダッシュボードのタイトル(こんにちは、Junnamaさん)の代わりに表示します。気が散る方にはお勧めしません。</p>

<ul>
<li><a href="http://junnama.alfasado.net/online/2010/06/07/MT_Tags.zip">MT_Tags.zip</a></li>
</ul>

<h2>MTQ</h2>

<p>MTQのフィードから新着10件を表示するウィジェットです。</p>
<ul>
<a href="http://junnama.alfasado.net/online/2010/06/07/MTQ.zip">MTQ.zip</a>
</ul>

<h2>QuickEntry</h2>
<p>ダッシュボードからブログ記事を投稿出来るウィジェット(MT5.02でjQueryの扱い方が変更になっている点に対応、<ins>右カラム/メインカラムどちらに表示させることも可能にしました(出来てなかったので差し替え済み)</ins>)。</p>

<ul>
<li><a href="http://junnama.alfasado.net/online/2010/06/07/QuickEntry.zip">QuickEntry.zip</a></li>
</ul>

<h2>UserDashboard</h2>
<p>ユーザーダッシュボードに左メニューを表示させ、This is Youウィジェットを右カラムへ移動して着脱可能にします(不具合指摘いただいていたのですが5.02で動作確認済みです)。</p>

<ul>
<li><a href="http://junnama.alfasado.net/online/2010/06/07/UserDashboard.zip">UserDashboard.zip</a></li>
</ul>

<h2>ViewSite</h2>
<p>ユーザーダッシュボード/システムメニューにViewSiteリンク(サイトを別ウィンドウで表示するリンク)を追加します(既に公開しているものと変更はなし)。
<ul>
<li><a href="http://junnama.alfasado.net/online/2010/06/07/ViewSite.zip">ViewSite.zip</a></li>
</ul>

<h2>LoveRebuild</h2>
<p>ユーザーダッシュボード/システムメニューにも再構築リンクを表示するウィジェットです(見栄えの修正 - * ふざけた画像は取り敢えず外したw)。</p>
<ul>
<li><a href="http://junnama.alfasado.net/online/2010/06/07/LoveRebuild.zip">LoveRebuild.zip</a></li>
</ul>

<p>ちなみにこのエントリはQuickEntryダッシュボードからの投稿です。</p> ]]></description>
         <link>http://junnama.alfasado.net/online/2010/06/6_2_mt_tags_mttweettwittermt_tagsjunnama_mt_tagszip_mtq_mtq10_mtqzip_quickentry.html</link>
         <guid>http://junnama.alfasado.net/online/2010/06/6_2_mt_tags_mttweettwittermt_tagsjunnama_mt_tagszip_mtq_mtq10_mtqzip_quickentry.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">MovableType</category>
        
          <category domain="http://www.sixapart.com/ns/types#category">MovableTypeプラグイン</category>
        
        
         <pubDate>Mon, 07 Jun 2010 21:36:43 +0900</pubDate>
      </item>
      
      <item>
         <title>RebildAt1stViewを書き直した。PHPで動き、Perlでビルドする。</title>
         <description><![CDATA[<p>Dakiny さんの呼びかけに壱さんが反応する形で何だかスレッドまで立ってますね。以下、引用は主に壱さんのエントリから。</p>

<ul>
	<li><a href="http://communities.movabletype.jp/2010/06/post-79.html">MT5 要望 再構築の改善</a></li>
</ul>
<blockquote><p><strong>今後のMTへの要望（その1・再構築編）</strong></p>

<p><strong>1.「再構築の重さ」で多くのユーザーを失った</strong></p>
</blockquote>

<p>まぁ、これが直接の原因かどうかは僕にはわかんないんですけどね。静的パブリッシングだから採用されるっていうケースも多いのは事実です。個人ブログとしてではなく、そこそこの規模のCMSが前提ですが。</p>

<blockquote><p><strong>2.MT標準のダイナミックパブリッシングは不十分</strong></p>

<p>多くのプラグインはダイナミックパブリッシングには対応していません。<br />
また、テンプレート内にPHPを記述することもよくありますが、そのテンプレートをダイナミックパブリッシング化する際には、PHPの部分をSmartyの記法に書き換える必要があります。<br />
これらのことから、既存のブログをダイナミックパブリッシングに変えるのは困難です。<br />
実質的に、ダイナミックパブリッシングは使えないと言って良いでしょう。</p>
</blockquote>

<p>不十分なのは単にプラグインの書き手の手抜きではあるわけですよね。<a href="http://powercms.alfasado.net/">Power CMS for MT</a>は基本ダイナミック全対応が前提です。確かに2つの言語で書くことの負担はあるわけですが。SAKKさんに落ち度があるとしたら、ドキュメントとかサンプルの少なさですね。ことダイナミックに関しては。</p>

<p>まぁ、前置きはいいです。黙ってコードを書けよってことだよ。</p>

<h2>RebildAt1stViewを書き直した</h2>

<ul>
	<li><a href="http://junnama.alfasado.net/online/2010/06/05/RebuildAt1stView.zip">RebuildAt1stView.zip</a></li>
</ul>

<ul>
	<li>MTディレクトリの直下のtools以下に「rebuild-from-fi」を設置して実行可能なパーミッション(755とか)を与える</li>
	<li>plugins/以下にRebuildAt1stViewディレクトリをコピー(DBのアップグレードあり)</li>
	<li>mtmlディレクトリのmtview_php.mtmlを出力ファイル名mtview.php、_htaccess.mtmlを出力ファイル名.htaccessとしてテンプレートに登録、再構築</li>
	<li>適用したいインデックス/アーカイブテンプレート編集画面で「このテンプレートの再構築を最初のリクエスト時に行う」にチェックを入れます</li>
	<li>再構築(チェックを入れてたら一瞬で終わる筈＞再構築は単なるファイル削除だから)</li>
	<li>最初にリクエストがあった時点でファイルがなければ再構築されファイルが出力されます(で、ビルドされたファイルの内容がブラウザに返されます)</li>
</ul>

<p>処理はPHPで行います。PHPがPerlスクリプトを介してビルドするから、Perlプラグインがそのまま使えます。吐き出されたファイルがPHPだったら、それもちゃんと処理されます。</p>

<p>何かうまく説明出来ないけどね、Perl版ダイナミックだけどPHPで動いててPHPが使えるソリューション、ってことだね。</p>

<ul>
	<li><a href="http://junnama.alfasado.net/online/2010/06/05/RebuildAt1stView.zip">RebuildAt1stView.zip</a></li>
</ul>]]></description>
         <link>http://junnama.alfasado.net/online/2010/06/mt1_1_cms_2mt_phpphpsmarty_power_cms.html</link>
         <guid>http://junnama.alfasado.net/online/2010/06/mt1_1_cms_2mt_phpphpsmarty_power_cms.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">MovableType</category>
        
          <category domain="http://www.sixapart.com/ns/types#category">MovableTypeプラグイン</category>
        
        
         <pubDate>Sat, 05 Jun 2010 22:09:09 +0900</pubDate>
      </item>
      
      <item>
         <title>あなたのブログをiPad対応させる。</title>
         <description><![CDATA[<p>話題ですよね。iPad。で、いち早くiPad対応サイトを作るべく、ね。(忙しくて話題について行けないと思われるのが癪なので)</p>

<p>Perl/PHP両方あるので管理画面や検索結果などにも適用できますが、やっぱりダイナミックパブリッシングか<a href="http://powercms.alfasado.net/blog/2010/03/htmlmtdynamicmtml.html">DynamicMTML</a>で同一URLでスタイル分岐させる等で動かすのが正攻法かと思います。実際はCSSとかJavaScriptだけでも出来てしまうんでしょうが。</p>

<pre><code class="mtml">
&lt;mt:IfiPad&gt;
iPad向け
&lt;mt:else&gt;
そうじゃない向け
&lt;/mt:else&gt;
&lt;/mt:IfiPad&gt;
</code></pre>

<ul>
	<li><a href="http://junnama.alfasado.net/online/2010/06/01/MTIfiPad.zip">MTIfiPad.zip</a></li>
</ul>

<p>テストはしていません(一応UA情報変えて確認はしたけど...ってか、動くと思いますよ普通に)。ってまだ買ってないんだもの。</p>]]></description>
         <link>http://junnama.alfasado.net/online/2010/06/ipad.html</link>
         <guid>http://junnama.alfasado.net/online/2010/06/ipad.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">MovableTypeプラグイン</category>
        
        
         <pubDate>Tue, 01 Jun 2010 14:20:46 +0900</pubDate>
      </item>
      
      <item>
         <title>QuickEntryプラグイン。</title>
         <description><![CDATA[ユーザーダッシュボード他各ダッシュボードからブログに投稿できるダッシュボンードウィジェットです。ブログ以外のダッシュボードでは権限を有するブログをSelectメニューから選択してください。

<a href="http://junnama.alfasado.net/online/2010/05/14/Safari003.png"><img alt="クイックエントリダッシュボードウィジェット" src="http://junnama.alfasado.net/online/assets_c/2010/05/Safari003-thumb-500x244-95.png" width="500" height="244" class="mt-image-none" style="" /></a>

<a href="http://junnama.alfasado.net/online/2010/05/14/QuickEntry.zip">QuickEntry.zip</a>]]></description>
         <link>http://junnama.alfasado.net/online/2010/05/quickentry.html</link>
         <guid>http://junnama.alfasado.net/online/2010/05/quickentry.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">MovableType</category>
        
          <category domain="http://www.sixapart.com/ns/types#category">MovableTypeプラグイン</category>
        
        
          <category domain="http://www.sixapart.com/ns/types#tag">Plugin</category>
        
         <pubDate>Fri, 14 May 2010 20:31:08 +0900</pubDate>
      </item>
      
      <item>
         <title>Wordpress3.0βをさわってみた。</title>
         <description><![CDATA[クイック投稿ってのが目に付いたのでMTプラグイン作ってみた。

<a href="http://junnama.alfasado.net/online/2010/05/14/Safari002.png"><img alt="クイックエントリダッシュボードウィジェット" src="http://junnama.alfasado.net/online/assets_c/2010/05/Safari002-thumb-500x191-93.png" width="500" height="191" class="mt-image-none" style="" /></a>


<a href="http://junnama.alfasado.net/online/2010/05/14/QuickEntry.zip">QuickEntry.zip</a>

で、これを使って投稿テストしてみます。とはいえ、これってむしろユーザーダッシュボードにあったほうがいいですよね。後で時間があったらそうしてみよう。]]></description>
         <link>http://junnama.alfasado.net/online/2010/05/wordpress30.html</link>
         <guid>http://junnama.alfasado.net/online/2010/05/wordpress30.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">MovableType</category>
        
          <category domain="http://www.sixapart.com/ns/types#category">MovableTypeプラグイン</category>
        
        
          <category domain="http://www.sixapart.com/ns/types#tag">Plugin</category>
        
         <pubDate>Fri, 14 May 2010 16:41:40 +0900</pubDate>
      </item>
      
      <item>
         <title>Movable Typeでエントリの表示オプションを全ユーザーで同一にする。</title>
         <description><![CDATA[<p><ins>5月10日さらに追記:新規に作成したユーザーにも(正確には権限を割り当てた際に)適用するようにしました。</ins></p>

<p><ins>5月10日追記:管理者以外のユーザーのところで表示オプションがおかしなところに出てしまっていたので修正しました。</ins></p>

 <blockquote cite="http://twitter.com/Nick_smallworld/status/13115605777"><p><em><a href="http://twitter.com/Nick_smallworld/status/13115605777"> Twitter / にっく:【緩募】MovableTypeで、Aさん（もしくはシステム管理者）がカスタムフィールドの並び替えをしたときに、他ユーザー（Bさん、Cさん）も強制的にAさんの並び順にさせる方法をご存じの方、いらっしゃいますでしょうか。</a></em></p></blockquote>

 <blockquote cite="http://twitter.com/webbingstudio/status/13141119226"><p><em><a href="http://twitter.com/webbingstudio/status/13141119226"> Twitter / Seiko Kuchida:@Nick_smallworld カスタムフィールドの並び順に関して私の方でわかってるのはこのくらいですが、少しでも参考になれば。てゆか誰かプラグイン作ってくれないかなあ。 #movabletype</a></em></p></blockquote>

<p>【緩募】って書いてあったので見逃してました...とか。要するにそういうこと(エントリの表示オプションを管理者が変更した時に全対象ユーザーに設定を適用)をするプラグインです。</p>

<p>ただ、単にそうすると管理者以外のユーザーが表示オプションを変更した時に違和感があるので、プラグインを設置すると管理者以外では「表示オプション(Display Options)」のリンクが非表示になるようにしました。</p>

<ul>
	<li><a href="http://junnama.alfasado.net/online/2010/05/09/EntryPrefsFixer.zip">EntryPrefsFixer.zip</a></li>
</ul>

<p>This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.</p>]]></description>
         <link>http://junnama.alfasado.net/online/2010/05/movable_type_9.html</link>
         <guid>http://junnama.alfasado.net/online/2010/05/movable_type_9.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">MovableType</category>
        
          <category domain="http://www.sixapart.com/ns/types#category">MovableTypeプラグイン</category>
        
        
         <pubDate>Sat, 08 May 2010 13:08:40 +0900</pubDate>
      </item>
      
      <item>
         <title>オリジナリティとか模倣とかものづくりとか。</title>
         <description><![CDATA[<p>新しい製品のリリースから一週間、おかげさまでこの一週間毎日のように導入いただき感謝するとともにより一層良いものを作って行かないといけないという気持になっている今日この頃です。</p>

<p>まぁ、それは置いておいて今日は裏話的なものを少し。</p>

<p>サイトでマニュアルやドキュメント、価格等を仔細に公表しているわけですが(現バージョンについては調整中)「公表しすぎじゃねーの?」って時々言われるわけです。「明らかに真似されてるよ」ってのがその理由らしく。</p>

<p>特定の何がどうという話ではないのですが、確かに明らかに模倣したようなものや意識したものが出てきてるわけなんですが、情報を仔細に公表するのは顧客のためだから仕方がない。一瞬迷いましたが今後も続けて行こうと思います(このレンジの製品で実際マニュアルまで公開してるのってレアケースみたいだし、価格も出してないところさえある)。</p>

<h3>何故情報を仔細に公表するのが顧客のためになるか? </h3>

<ul>
	<li>顧客は事前に機能を十分に知ることができる</li>
	<li>弊社は問い合わせ等の対応を最小限に出来る(弊社には営業がいません)</li>
	<li>事前の打ち合わせや問い合わせ対応を最小限にすることで結果的にコストを下げられる</li>
</ul>

<p>だから、真似されるから隠すってのは顧客目線じゃないんですよね結局。情報を隠してインバウンド増やしてすぐに営業が駆けつけてってのは僕の目指す方向じゃない。</p>

<p>それでも類似品が出てくると当然「どう違うの」みたいな話になるので、どうせ作るなら仔細に情報を公開して優位性をちゃんと明確にすればいいのにそうもしないもんだから結局それって顧客を混乱させるだけじゃね? と思うわけです。</p>

<p>とはいえ2年間で170サイト超、お客さまと一緒に作り上げてきた製品だから、簡単に真似できると思ってもらっても困る(困りはしないんだけど、表面だけ真似して満足するなってことだ)。</p>

<h3>ポリシーなき模倣は楽しくもなんともない</h3>

<p>例えばPower CMS for MTにはツリー(階層)形式でサイトの構造を表示してサイト全体の構造を俯瞰できるBlogTreeダッシュボードってのがあります。これ、ツリー表示を組み立てるだけならプラグインでタグ作ってMTML書いてやれば数日あれば出来るわけですね。ただこれ本当に規模が大きなサイトで使おうと思ったらそれだけじゃだめです。重たくて使い物にならない。そこで、</p>

<ul>
	<li>ツリーに表示するブログ/ウェブサイトを選択できる(ブログ・グループ機能)</li>
	<li>表示する階層の数を設定できる。但し非表示の階層もクリック時にAjaxでリクエスト送って動的に展開表示できる</li>
	<li>階層毎にキャッシュを生成して、毎回ツリーをビルドしない(ここが最も手間で重要な部分)</li>
</ul>

<p>キャッシュの部分については非常に手の込んだ仕組みになっていて、例えば表示される内容ってユーザー毎に違うわけです(権限が違うから)。でもキャッシュは全ユーザー共通です。関連するオブジェクトに変更が加えられたらブロック単位でキャッシュをクリアし表示する際に再度キャッシュする。ではユーザー毎の表示の変更はどうしているか? (まぁそのあたりは隠しておいてやろう)。最初にこれを作ったときからCMSが重くなるのがとにかく嫌だったのでその部分については非常に手の込んだ仕組みではあるもののそんな実装をしています。MT5版になり、その部分についてもとにかく徹底した作り込みとテストを繰り返してる。</p>

<p>まぁ何が言いたいって分けじゃないですけど、表面を真似ることは簡単。でも作る背景というか、理念とかポリシーなき類似品作りってのは楽しくないし、何よりマーケットを混乱させるだけで顧客目線じゃないよ、ってことが言いたかっただけです。本当の模倣は理念とかポリシー、コンセプトからするもんだよ。</p>

<p>では月曜日にお披露目のセミナーの準備します。また来週。</p>]]></description>
         <link>http://junnama.alfasado.net/online/2010/04/power_cms_for_mt_ver2.html</link>
         <guid>http://junnama.alfasado.net/online/2010/04/power_cms_for_mt_ver2.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">駄文・雑文</category>
        
        
         <pubDate>Sat, 17 Apr 2010 11:58:11 +0900</pubDate>
      </item>
      
      <item>
         <title>Love Internet Explorer。</title>
         <description><![CDATA[<p>ほら、MTの管理画面いじっててCSSとかJavaScript(Ajax)とか駆使してごにょごにょやってるときにね。ついカッとなって。</p>

<pre><code>
&lt;MTIfIE&gt;
&lt;mt:if name=&quot;ie_version&quot; eq=&quot;6&quot;&gt;

We love&nbsp;Internet Explorer 6!!

&lt;/mt:if&gt;
&lt;/MTIfIE&gt;
</code></pre>

<p>mt:var name=&quot;ie_version_id&quot; とすると6.0が帰ります。</p>

<h3>ダウンロード</h3>

<ul>
<li><a href="http://junnama.alfasado.net/online/2010/04/16/LoveIE.pl.zip">LoveIE.pl.zip</a></li>
</ul>]]></description>
         <link>http://junnama.alfasado.net/online/2010/04/love_internet_explorer.html</link>
         <guid>http://junnama.alfasado.net/online/2010/04/love_internet_explorer.html</guid>
        
          <category domain="http://www.sixapart.com/ns/types#category">MovableTypeプラグイン</category>
        
        
         <pubDate>Fri, 16 Apr 2010 10:29:06 +0900</pubDate>
      </item>
      
   </channel>
</rss>
