September 10, 2010

Movable Type 5: 時間差再構築計画、再び

以前、cronとスクリプトを使って、公開キューでのMT5の再構築をしようとチャレンジしましたが、なぜか再構築してくれなくて断念。その後、ほったらかしだったのですが、今日MT5.03がリリースされているのを知ってリリースノートを見ていたら、これってバグだったという事を知りました。なんと!?

5.03へのアップグレードは、またバックアップとかが大げさなので、5.02 パッチ(公開キューの修正)で再チャレンジですよ。設定は完了済み。このエントリで実験ですよ。

続きを読む "Movable Type 5: 時間差再構築計画、再び"

September 1, 2010

Movable Type 5: 関連エントリーの表示

ブログの個別アーカイブのページ下に関連エントリーのリンクをつけようと思いつき、色々調べてみたのですが、どうもMT5向けの記事が少なくて苦戦したのでメモ代わりに。

関連エントリーの表示で考えないといけないのは、どのエントリーを選んでくるかと、どうやってリストにするかです。エントリーを選ぶには、エントリー毎に付けてあるタグを参照するか、タグを付けてなければカテゴリーから選んでくると言う2つから選ぶ事になります。ここのブログの場合、タグなんて付けてなかったので、必然的にエントリーから選ぶしかないというのが最初のハードル。

次にどうやってリストにするかですが、プラグインを使うか、MT4以降に実装されたタグを駆使するかです。プラグインを使おうとするとどうしてもタグでエントリーを選ぶ物がほとんどです。エントリーから選んでくるモノも無くはないのですが、MT5での使用例があんまり見つからなくて、不安が残ります。

色々調べた結果、TagSupplementalsというプラグインを使って、表示に関してはタグのあるエントリーはタグで、タグの無いエントリーはカテゴリーでリストを作るというテンプレートモジュールを作成する方法を見つけました。そのエントリー自身を表示させないようにしたり、スタイルシートを適応させたりするところで試行錯誤を繰り返しましたが、なんとか上手くいきましたよ。

まずはプラグインをインストールして、「関連記事」というテンプレートモジュールを作成し、以下のタグを貼り付けて保存します (スタイルシート関連のタグは外しています)。

<MTEntryIfTagged>
<!-- 関連記事 TagSupplementals -->
<div class="relatedentries">
<h3>関連記事</h3>
<ul>
<MTRelatedEntries lastn="5" weight="idf">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTRelatedEntries>
</ul>
</div>
<!--/ 関連記事 TagSupplementals -->
<MTElse>
<div class="relatedentries">
<MTSetVarBlock name="ecat"><MTEntryCategories glue=" OR "><
$MTCategoryLabel$></MTEntryCategories></MTSetVarBlock>
<h3>関連記事</h3>
<ul>
<MTEntries lastn="5" category="$ecat" unique="1">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTEntries>
</ul>
</div>
</MTEntryIfTagged>​

後は、表示させたいアーカイブテンプレートの適当な場所に、

<mt:include module="関連記事" />

を書き込めばOKです。

これまで、エントリー毎にタグを付けるのって、面倒なのでやってなかったのですが、今後は付けていこうと思いますよ。過去のエントリーはかなりの数になるので、時間のある時にぼちぼちとやっていこうかと思ってます。


今回参考にさせてもらったページ。
TagSupplementals - ogawa - 「タグ」機能を追加・拡張するプラグイン。 - Project Hosting on Google Code
「TagSupplementals Plugin」プラグインで関連記事を表示:Nakamura's Weblog
MT5 関連記事へのリンクを自動表示したい:+Chip(プラスチップ)

August 27, 2010

Retweetボタン by TOPSY

今朝さとなおさんのブログを読んで思い立ち、このブログでもRetweetボタンを付けてみる事にしました。以前、公式のRetweetボタンが出た時に一度設置してみたのですが、その時はどうも上手くレイアウトが出来ずに、なんかバランスの悪い感じになったので断念したのでした。

今回はTopsy - A search engine powered by tweetsのサービスを使ってみましたよ。設置の手軽さも、この手のツールでは結構大事だと思うのですが、TOPSYはヘッダーとアーカイブテンプレートを変更するだけなので簡単です。特に今使わせてもらっている検索する小粋空間のテンプレートでは、アーカイブテンプレートをそれぞれ触らなくても、モジュールの「ブログ記事のメタデータ」を変更すれば大丈夫ですよ。

と、ここまでの設置はすぐ出来たのですが、実際にRetweetさせようとすると、エントリのタイトルが文字化けします。これは結構よく知られた問題のようで検索すると対応策が出てきたりするのですが、どうも上手くいかない。普通の設置方法ではJSONデータ形式というのを使うのですが、文字化け回避でJavascriptに変えてみたりしましたが、やっぱりダメです。

さらに検索した結果、JSONで記述するtitleをMTの変数ではなく、title自体を記述しないという方法を発見。そうするとHTMLのタイトルをそのまま引用してくれるらしい。これが正解で、無事問題解決。ほんとは、ボタンを右側に配置して、メタデータに並べたくて大分苦戦したのですが、まだ上手くいってません。これはまあ、とりあえずはよしとします。

エントリを投稿すると、Twitterにポストするようにしているので、常にretweetは1になっている、いわば自作自演ではあるのですが、読んでもらって面白いと思ったらretweetしてもらえると、うれしいです。なんか昔のカウンタが増えるのが楽しいって感じに似てますね、このretweetボタンって。

今回参考にしたサイト:
小粋空間: TopsyでTwitterのRT数とretweetボタンを表示する
topsyのRTボタンのエラーを修正[to-R]

August 14, 2010

Movable Type 5: 時間差再構築計画、スタック中

昨夜設定して上手くいくだろうと、高をくくっていた公開キューとcronを使ったMT5の再構築高速化計画ですが、上手く再構築が出来ていないので、失敗中という状況です。

cronでタスクが実行される度にメールが来るように設定しているので、ちゃんとcronが回ってる事は間違いないのですが、となるとスクリプトが悪いのか、どこか設定が間違ってるのか。

ダッシュボートから「全ての再構築」を掛けてもアーカイブが再構築されていないので、どうもテンプレートの設定あたりが変になってるのではないかと当たりはつけているものの、スクリプト内の記述で疑わしいところがあるので、これからこのエントリで実験してみようと思ってます。毎時20分にスクリプトが走るので、後で結果を確認してみます。上手くいくといいんだけど。

続きを読む "Movable Type 5: 時間差再構築計画、スタック中"

Movable Type 5: 再構築高速化

このサイトのシステムをMovable Type 5.0.2にアップグレードして、紆余曲折はあったものの上手く動くようになって機嫌の良い日々を過ごしていたのですが、ここ最近、エントリを投稿して再構築が掛かると、"502 Server dropped connection"のエラーが出て失敗する事がしょっちゅうだったのです。最初の頃は再構築もめっちゃ早くなって喜んでいたんですが、わずかな期間で何が起こったのでしょう。

さておき、そのまま放っておくのもよろしくないので、テンプレート毎の公開設定を変更する事にしました。メインページや個別エントリはすぐに更新して欲しいのでスタティック、ちょっと遅れても大丈夫な月別アーカイブやカテゴリアーカイブは公開キュー、スタイルシートやJava Scriptは手動に変更。これで幾つかの過去のエントリで確かめてみたところ、うまくいっている感じに見えます。新規作成の時の再構築はすごく早くなりましたよ。

公開キューは、サーバでcronを動かさないといけないのでいささか面倒なのですが、使っているホスティングサーバではコントロールパネルという管理画面からcronの設定も出来るので簡単。このエントリでもテストしてみようと思ってますよ。

動的なphpでの出力はしたくなかったので、今回もなんとか静的なページで運用出来る方法を取りました。ちょっとした設定で、使いにくくなったり、上手く使えたり、面白いものですね。

今回参考にさせてもらったページ。
公開設定を見直してMovableTypeの再構築を高速化する - Open MagicVox.net
指定日投稿や公開キュー等のスケジュール処理の設定

July 31, 2010

Movable Type 5: アーカイブページの分割方法

わたし、ver.2か3の頃に作ったMovable Typeのテンプレートを引きずったまま使っていたので知らなかったのですが、ver.4の頃からカテゴリーや月別のアーカイブファイルはhtmlファイルで書き出す設定にしていると、初期設定で設定しているエントリー数以上は表示されなくなっているのですよ。つまり、数百件のエントリーがあるカテゴリーでも、5件と設定していたら残りは見えない。見るためには検索するか月別アーカイブからたどるしかない。

それをページ分割して次のページへと見れるようにしてやるにはphpで吐き出すようにしないといけないのですが、古いタイプの人間なのか、どうも動的にページ作成するというのはビビる。サーバーの容量もまだ余裕があるので、静的なhtmlで運用したいので、それなら何か方法を考えなくてはなりません。で、検索すると発見したのが、PageButeというプラグインです。これなら静的ページを分割してくれます。

早速導入したところ、月別ページの分割は全くトラブルなしでページ分割されたのですが、カテゴリーアーカイブの分割がうまくいかない。最初はエントリーが空のページが生成される有り様でした。原因は分岐処理を掛ける"MTelse"というタグで、サブカテゴリーを持てるカテゴリーというアーカイブが上手く動かなかった様子。色々調べて、最終的にたどり着いたテンプレートの書き方がこれです。デザイン > テンプレート > アーカイブテンプレート一覧 > ブログ記事リストの35行目辺り。

<mt:if name="datebased_archive">
<MTPageContents count="10">
<mt:entries>
<mt:entryTrackbackData />
<mt:include module="ブログ記事の概要" />
<$MTPageSeparator$>
</mt:entries>
</MTPageContents>
<mt:else>
<MTPageContents count="10">
<mt:entries lastn="0">
<mt:entryTrackbackData />
<mt:include module="ブログ記事の概要" />
<$MTPageSeparator$>
</mt:entries>
</MTPageContents>
</mt:if>

赤字が追加したタグ、青字が今回のキモになるポイントでした。
まず、mt:else後にもう一回MTPageContentsタグを入れてやる事で、カテゴリーアーカイブが空で出力されるのが回避出来ます。ただ、これだけだとエントリーの数が規定数(ここでは10)に達していないカテゴリーがやっぱり空になってしまうので、それを青字のところのlastnを0に指定してやることで回避しています。

今回、久しぶりにSQLやらMovable Typeやらテンプレートやらタグやら、色々触りました。最近は検索が強力なのですぐにある程度の問題解決は出来るのですが、完全に自分の症状と一致するケースはまれなので、トライ&エラーの繰り返しでしたよ。なかなか楽しかったですが、熱中しちゃって寝不足になるのが困ったところですね。

今回参考にさせてもらったページ。
静的ページ用ページ分割プラグイン:PageBute | スカイアークシステム
静的ページのままでもページ分割できる! - それだよ。
小粋空間: Movable Type 4 のカテゴリーアーカイブで全てのブログ記事を表示する

July 25, 2010

Movable Type 5にアップグレード

Ver.4になって以降、Movable Typeのアップグレードでは文字化け問題に悩まされ続けて来たので、「問題ない時には何もしない」の法則に則ってバージョンアップのお知らせも見て見ぬふりをしてきたのです。が、先週の水曜に管理画面にログインしようとしたら自動アップデートを掛けないと先に進めない状態になっていました。

イヤな予感はしつつも、何かあったらバックアップを書き戻せばいいやとトライしてみたら案の定、化けてる。ブログごっそり文字化けしてます。下手な事すると、データが全部飛ぶので、しばらく思案の結果、MT5にバージョンアップする事にしました。検索する限り、4よりも5の方が文字化けのトラブルが少なそうだったので。

MT5の場合、これまでのデータベースを残したままアップデートする方法ってのがマニュアルに書いてあるので、SQLのデータをバックアップした上で新しくDBを作ってアップグレード。案の定しっかり文字化けしてます。過去の負の遺産を引きずらない様に、mt-config.cgiも新しく作り直したんですけどね。ただ、今回はBDの中身を確認すると、データ自体は文字化けしておらず、単に見え方の問題だけらしいと当たりをつけて調べていたら、こちらのブログを見つけました。ここに書かれている「mt-config.cgiでの文字コードの設定」、

DefaultLanguage ja
PublishCharset UTF-8
SQLSetNames 1

がビンゴ。このおかげで文字化け問題は全て解決できました。

MT5はもはや個人用のブログのエンジンには過ぎたる道具の様にも思いますが、慣れてるのでこれからもこのシステムで続けていくつもり。それでも、4に比べるとだいぶ軽快に動きます。4は重かったなあ。アップグレードの時にこれまでのテンプレートも飛んじゃったので、小粋空間さんのテーマを使わせてもらう事にしました。まだすっぴんの状態ですが、これから少しずつ手直ししていく予定。もうあんまりごちゃごちゃさせるつもりもないので、シンプルなサイトを目指しますよ。

そういえば、MTって画像のサムネイル作成などにPerlの"Image::Magick"ってモジュールが必要なんですが、ウチのレンタルサーバーにはインストールされてませんでした。で、サポートに将来インストールするプランがあるかを聞いてみたら、15分後にはエンジニアからインストールしておいたと連絡が来ました。久しぶりにサービスというものに感激しましたよ。すげえな、ICDSoft

August 21, 2008

Movable Type 4.2 文字化け問題

昨日weblog更新した時に、カテゴリを増やそうと思ったらエラーが出たんですよ。なんか調子が悪いんだろうなと思いつつ、MTの4.2が出ている事を知ったので、軽い気持ちでアップグレードするかと思ったんですよ。

これまでも何度もこなしている作業なので脊髄反射的にダウンロードしてきたMT4.2をサーバにアップロードしました。バックアップを取らずに。結構アップロードにも時間がかかったので、FTPが終わったらそのまま寝て、今朝奥さんから「文字化けしてるよ」と指摘されるまでトラブルに気づかなかったのです。

MTの管理画面からブログ、mySQL(5.0.45)のレコードまで全部文字化けです。ググって、perlのバージョンが5.8以降でないと管理画面が化けるとか、mt-config.cgiに"SQLSetNames 1"を追記すればなおるとか、色々調べた事を試してみたけれど、直ったのはperlを5.8.8に切り替えた結果の管理画面の文字化けだけ。肝心のweblogは化けたままなのです。これが昨日のお昼前あたり。再構築を繰り返してはアンテナに空更新が拾われてた時間帯。

仕事の片手間に作業していたので、また家に帰ってからMTのバージョンダウンとか試してみましたが、ついには管理画面にさえ入れなくなって、にっちもさっちもいかなくなってしまいましたよ。これが深夜の1時30分過ぎあたり。

もうあきらめて、ホスティングサービスでバックアップを取った5月のデータを書き戻すかと腹を決めたところで、サーバーが自動的に毎日取ってくれているバックアップの存在に気づきました。移動1週間のバックアップを取っていて、それからリストアできるというサービスですが、3年半使ってて初めて知りました。しかし、これがビンゴ。htmlファイルから、SQLまでバックアップされてました。ホスティングサービス、最高。こんなに感謝した事はないよ。

おかげで、一昨日のエントリまでは復旧できました。昨日のテニスラケットの話は消えてしまったけど、また書きますよ。バックアップの重要さを思い知った出来事でした。ほんとに、元に戻せてよかったあ。

April 11, 2008

Moblogできない

こないだこのサイトのシステムをMovable Type4.1にアップグレードしました。ダッシュボードという管理メニューは、見た目すごくかっこ良くて高機能な雰囲気を漂わせてますが、わたしが必要とする機能は、ver.3で十分間に合ってますね。とは言っても、セキュリティとか考えると最新のソフトの方が安心ですね。

しかし!MT4.1だとmoblog.uva.ne.jp経由で携帯メールからの投稿ができないんですよ!!エントリーがタイトルだけになってしまって、本文や画像が空になっちゃう。これって、めっちゃ不便。

相性の問題で4.1では使えないらしいです。別のmoblogシステムを使えばOKだという話もあるんですが、やっぱりこれまで使ってきたmoblog.uva.ne.jpがいいんですよね。MTがアップグレードしたら対応してくれるかな。

April 1, 2008

8年目

4月1日といえば、このサイトの誕生日なのですよ。2001年の4月1日に、当時はブログなんてないのでコード手書きの日記サイトとして、LIFE@dailyという名でスタートしたのです。

更新に熱が入ったり、今ひとつ滞ったりしながらの7年間。我ながらよく続いているなと思いますが、なんやかんや言っても楽しいんですね。

これからもそれなりに、書いたり休んだり書いたりしますよ。これからもよろしくお願いします。

1  2  3