WWWWARDの最近のブログ記事

概要: WWWWARDは移転を完了しました。

WWWWARDは、移転を完了しました。今後はhttp://w4ard.eplusx.net/でアクセスして下さるようお願いします。

......って一行書く為に何ヶ月かかってんだろこれ。まあ去年の十二月くらいからはしょうがないとして。それはともかく、移すべきものもすべて移したし、リダイレクトも設定したし、これでほとんど問題無いはずです。長かった。

WWWWARDのほとんどのコンテンツは、移転先に向けてpermanentなリダイレクト(301)をさせていますが、このウェブログと更新履歴とトップページだけはそのままにしてあります。更新履歴は(自分を含めて)混乱を避ける為、.NET Claimwork 3.0は移すのが面倒だった為、トップページはそれらの目次用に。

ちなみに、移転先のサーバは自前で、WWWWARD以外にも幾つかバーチャルホストがあります。SounDecoder関係はSounDecodeRepositoryに移しました。前々から言っていた水面下プロジェクトは、CardWirthPhoenixでとりあえずプレースホルダを公開。また、これらのサイトのポータルであるeplusx.netも用意しました。その内他にも増えるかも知れません。

それでは、移転後もWWWWARD及びeplusx.netをよろしくお願いします。

※以後、このウェブログを更新する予定はありません。移転先のウェブログでごにょごにょやってまいります。

概要: Movable Type 5の出荷日が11月26日に決まったそうです。同時期に移転したい所です。

おお、ようやく!

案の定下旬(11月26日)ですが、まあ11月中には違いない。

さあ、こっちの方も暇を見つけて頑張らなきゃなあ。本業(?)の方と並行して、相補的に進めばいいんですけど。

概要: Movable Type 5の出荷が11月後半に延期になったそうです。

だそうです。ちょっと残念。まあそれまでの間にちょっと雰囲気変えてみたりSounDecoderのドキュメント整備してみたりしていますか。

概要: 近々、このサイト(WWWWARD)を移転する予定です。それでも、今あるコンテンツについてはできる限りリンク切れが起こらないようにする......つもり。

今、このサイトはXREAの無料ウェブホスティングサービス(?)を利用しています。無料という事で当然広告は出さなければいけないのですが、とても住み心地が良い所で、もうかれこれ3年以上利用させて頂いています。しかし、このサイトのディスク占有量が無料サービスの上限である50MBに迫ってきている(ほとんどMovable Typeのせいなのですが)事と、最近一台お下がりをもらって自宅にサーバ専用機を作ったので、近々そちらに移転する予定です。

DNS登録は、最初はDynDNS.comでやろうかと思ったのですが、どうもDynDNS.comでは無料でバーチャルサーバの為の設定を行う事ができなくなったらしい(Wildcard StatusがDisabledになっていて、Want wildcard support?というリンクを辿るとDynamic DNS Proという$15/yearの有料サービスを案内される)事と、どうせなら.netとか.infoなどのドメインがいいなあと思い、VALUE DOMAINで何かしら取るつもりです。

これによって勿論URIは変わりますが、今までのhttp://w4ard.s26.xrea.com/以下へのアクセスは、新しいURIにリダイレクトする事で、できる限りリンク切れは避けようと思います。但し、このウェブログ(.NET Claimwork 3.0)は当初予定していたよりも大分内容がまぜこぜになってしまったので、新サイトでは新しくウェブログをジャンルごとに幾つかに分けて作成し、このウェブログの内容は引き継がずにこのウェブログ自体をそのまま残そうと思っています。気が向いたら移行するかも知れませんが、多分そうはならないでしょう。

Movable Type 5の個人ライセンス提供開始に合わせて最終調整、移転をしようかと思っているのですが、通常ライセンスと同時に出るのでしょうか、Movable Type 5の正式出荷は10月何日なのでしょうか。そもそも何でまたこんな時間まで起きているのでしょうか......。

概要: また使えなくなっていたウェブログ内検索をそれとなく復旧してみました。

何だか今日はこればっかりやっている気がしますが、ウェブログ内検索が使えなくなっていたので復旧しておきました。以前も似たような問題に遭遇しましたが、今回はText::Balancedとかいうモジュールが無かったようで。MovableTypeのブログ内検索でのエラーというページなどを参考にして何とかなりました。

それで検索はできるようになったんですが、試しにやってみたらスタイルがMinimalist Blue(これ書いてる時点でのこのウェブログのスタイル)じゃない! 背景はすべて白で、文字の大きさにもメリハリが無い。読めない事は無いけど、少し判りにくい。なんというか、スタイルシートのダウンロードに失敗した感じ......。少し調べてみると、他のページとは若干構造が異なる事が判りました。body要素のクラスがlayout-wttではなかったり、他のページでheader系列のクラスが付いているdiv要素にはbanner系列のクラスが付いていました。content系列のクラスはpagebody系列のクラスになっていたり......といった感じで、クラス名が異なる為にスタイルシートがほとんど適用されていなかったのです。

理由は(調べてないので)よく判りませんが、Search Templateが古かったのか、Minimalist BlueがSearch Templateにまともに対応していなかったのでしょう。Minimalist Blueはそれなりに気に入っていたので、Search Templateとユーザ定義スタイルシートに適当に手を加えて、何となく直しました。

検索結果画面は見た感じそれっぽいのですが、これってきちんと直ってるんですかねえ? 一応、使い物にならない事は無いので様子見です。

概要: Movable Typeの「改行を変換する」を改良するプラグインを発見。いい感じなので、沢山のサイトでレビューされてるようですが私的メモ。

以前から、「改行を変換」フォーマットで記事を書くと、変な風にp要素やbr要素が入りまくって嫌で、最近まではそれを使わずに書いていましたが、最近は妥協していました。しかしながらpre要素を使った時の崩れ方が半端でなかったのでどうしようかと思っていた所、「改行を変換する」を改良するプラグイン(MT4.1/4.2対応)なるものを見つけました。

使ってみると、いい感じです。pre要素を使っても、その中にp要素やbr要素を大量にぶち込んだりしません。今度からこれをデフォルトで使うと良さそうです。

以前のバージョンでは、フォーマット名が凄い事になっていた(数値文字参照が展開されなかった)のですが、MT 4.1/4.2対応版では直っているようです。

これでソースコード書いたりするのが楽になりました。あとは、IEがwhite-space : pre-wrap;に対応してくれるといいんですけどねえ......。

概要: Movable Typeの何でも固定レイアウトを少し改善して、横幅とフォントサイズ(文字の大きさ)は可変になるようにしてみました。

ほんと、困りますよね。Movable Typeのなんでも固定主義。気にならない人もいるんでしょうけど、昨今の十分横幅のあるディスプレイを使ってウェブログ見ていると、左右の隙間が非常に目立つ。若干改行されすぎの列もある。そして、解像度大きいと相対的に文字が小さく見え、文字によっては小さすぎる。解像度小さくするか、ディスプレイのdpi設定(文字のスケール?)を120dpiとか大きめにするか、あるいはブラウザのズーム機能を使えばまあいいんでしょうけど、それで改善されるのは自分の所だけというか、そこ変えると他のページやソフトで困るというか......。やっぱりMovable Typeのスタイルシートをいじって直したいものです。

しかし、Movable Typeが吐くHTMLソースは、プログラムが出力しているんだからある程度は仕方無いのですが、わりかし解析するのを敬遠したい見た目です。そんなこんなで今まで横幅もフォントサイズも固定のままでやってきました。

しかし今日は何となく気分が乗ったので(他の事から逃げているとも言う)、気分転換にと思って試行錯誤しながら改善してみました。Movable Typeが吐くソースをすべて把握して変えた訳ではないので抜けがあるとは思いますが(特にカレンダーなどのウィジェットについては使ってないので何も手を加えてません)、同じ問題で困っている方がいらっしゃったら役に立つかも知れないので、参考までにこのウェブログで使っているスタイルシートを載せておきます。

@charset "UTF-8";

body {
	font-size : 100%;
	line-height : 1.5em;
}

pre {
	width : auto;
	white-space : pre-wrap;	/* IE8ではまだ無理? */
	line-height : 1.2em;
	background-color : #EEE;
	border-style : solid;
	border-width : 1px;
	border-color : #999;
	margin : 1em 2%;
	padding : 1em;
}

h3 {
	font-weight : bold;
	font-size : 140%;
}
h4 {
	font-weight : bold;
	font-size : 120%;
	padding-top : 0.2em;
	color : #039;
}

dt {
	font-weight : bold;
	margin-left : 0;
}
dd {
	margin-left : 5%;
}

table {
	width : 95%;
	border-collapse : collapse;
	empty-cells : show;
	border-style : solid;
	border-width : 1px;
	border-color : #999;
	margin : 1em 2.5%;
}
th, td {
	border-style : solid;
	border-width : 1px;
	border-color : #999;
	padding : 0.05em 0.5em;
}

q {
	color : #090;
}

/* ここからMovable Type固有 */

/* 横幅 */

#container-inner {
	width : 100%;
}
#header-inner, #content-inner, #footer-inner {
	width : 90%;
	margin : 0;
	padding : 0 5%;
}

#header-content {
	width : 100%;
	margin : 0;
	padding : 1em 2em 2em;
}

#footer-inner .widget-content {
	width : auto;
	margin : 0 2em;
	padding : 0 2em;
}

.layout-wtt #alpha {
	width : 60%;
}
.layout-wtt #beta {
	left : 0;
	width : 20%;
}
.layout-wtt #gamma {
	left : 0;
	width : 20%;
}

.layout-wt #alpha {
	width : 80%;
}

.layout-wtt #beta {
	left : 0;
	width : 20%;
}

/* フォントサイズ */

#header-name {
	font-size : 250%;
}
#header-description {
	font-size : 100%;
}


.asset-name {	/* assetは、ここではエントリを指しているようだ。従ってこれはエントリ名 */
	font-size : 150%;
	line-height : 1.5em;
}
.asset-meta {	/* エントリのメタ情報 */
	font-size : 100%;
}
.asset-excerpt {
	width : auto;
	background-color : #FFE;
	border-style : solid;
	border-width : 1px;
	border-color : #999;
	margin : 1em 2%;
	padding : 1em;
}
.asset-excerpt p {
	margin : 0;
}

.archive-title {
	font-size : 180%;
}

.search-results-header {
	font-size : 150%;
}

.widget-header {
	font-size : 110%;
}
.widget-content {
	font-size : 90%;
}

/* ここからWWWWARD固有 */

div.stratum {
	border-style : solid none;
	border-width : 1px;
	border-color : #666;
	margin : 1em 0;
	padding : 0.25em 0.5em;
}
div.advertisement {
	text-align : center;
	margin : 0 0 1em;
	padding : 0;
}

中には横幅&フォントサイズ可変に関係無いものも含まれているので、使う時は取捨選択しながらお使い下さい。ちなみに、ユーザ定義のスタイルシートは「スタイルシート」テンプレート(styles-site.css)で最後に@importすると良いようです。こんな感じで。

/* This is the StyleCatcher theme addition. Do not remove this block. */
@import url(http://w4ard.s26.xrea.com/program/mt/mt-static/themes-base/blog.css);
@import url(http://w4ard.s26.xrea.com/program/mt/mt-static/support/themes/minimalist-blue/minimalist-blue.css);
/* end StyleCatcher imports */

@import url(http://w4ard.s26.xrea.com/stylesheet/weblog.css);

ちなみにSounDecoder Sounds MDXはさっきまでやってましたが、あと少しかかりそうです。できれば今日中に何とかしたい所。

概要: 今更ですが、時間は自分で作るものですね......身にしみます。 というわけで、SounDecoderのHelper MPEG Audioをようやく整えました。これはmpg123 1.6.4版なのです...

今更ですが、時間は自分で作るものですね......身にしみます。

というわけで、SounDecoderのHelper MPEG Audioをようやく整えました。これはmpg123 1.6.4版なのですが、ちんたらしてる内に1.7.2が出ちゃってるじゃん。しかも1.7.0はかなり大幅なアップデートっぽい......その内新しくしないとなあ、と思いつつ先にSound MDXの方を何とかせねばとも思う今日この頃。

そもそもモチベーション低すぎです。趣味じゃなかったのか。それとも周縁部ばっかやってるからいけないのか。水面下企画のあれ、さっさと自分で宣伝しまくって自分を追い込んだ方がいいのか。というか来週までにまとめなきゃいけないそれの方はどうした?

前途多難ですが、とにかく毎日一時間だけでもいいから、無理矢理計画を進める事にしました。全く、我ながら制御が難しい。

概要: Extensible Markup Language (XML) 1.0 (Fifth Edition)を翻訳して、Extensible Markup Language (第五版)で公開しました。今回...

Extensible Markup Language (XML) 1.0 (Fifth Edition)を翻訳して、Extensible Markup Language (第五版)で公開しました。今回はFourth EditionのErrataを見て修正箇所を探す事ができたので楽でした。尤も、たまにErrataに載っていない細かい修正があったりして気は抜けませんでしたが。

......何か色々書こうと思ったのですが、ぐだぐだになりそうだったので没にしました。ただ、Fifth Editionをサポートする実装が増えるといいですね。今回はXML 1.1の時と違ってIntelやMicrosoftが既にテストスイートをパスする実装を作ったようなので、時間が経てばXML 1.1の夢も果たされるかも知れません。

......Intel、Microsoftと言った所で思い出しましたが、IBMのメインフレームで使われているらしいNEL(#x85)は改行文字に追加されてないですね。Unicodeの#x2028も。何故だろう......

概要: 少し前から気になっていました。Movable Type 4.22で再構築がうまくできない事が。 と言っても、再構築がすべて失敗する訳ではなく、一つ一つ調べてみると、再構築できないのは月別アーカイブだけ...

少し前から気になっていました。Movable Type 4.22で再構築がうまくできない事が。

と言っても、再構築がすべて失敗する訳ではなく、一つ一つ調べてみると、再構築できないのは月別アーカイブだけです。しかも質が悪い事に、何かのエラーを出力してくれる訳でもなく、記事40件分の再構築に成功した(らしい)後、残りの3件がどうしても再構築できないのか、数秒間隔で延々と再読込を続けます。

Googleで探してみましたが、どうもこの現象に遭遇している人は他にはいないのか、ヒットしません。しかし近い所で「再構築に失敗する場合、一度に再構築する記事の数を減らすと直る(事がある)」という情報があったので(どこが出所なのか判らないので特定のリンクはしませんが、Movable Type 再構築 失敗 で検索してみるとこんな感じ)、Movable Typeのアプリケーションディレクトリを%MTAppDir%とした場合の%MTAppDir%/lib/MT/Core.pmの321行目、EntriesPerRebuildの初期値を10に減らしてみました。

# %MTAppDir%/lib/MT/Core.pm line 321
# 変更前
'EntriesPerRebuild' => { default => 40, },
# 変更後
'EntriesPerRebuild' => { default => 10, },

10件の記事しか再構築できなくなってしまいました

まあでも影響している事は間違いあるまい。そんな訳で今度はEntriesPerRebuildを使ってgrepしていると、%MTAppDir%/lib/MT/CMS/Blog.pmの676行目や728行目に気になる単語が。

# %MTAppDir%/lib/MT/CMS/Blog.pm line 676, 728
Limit => $app->config->EntriesPerRebuild,

Limit? Blog.pmを覗いてみると、これはサブルーチンrebuildを呼び出す際の引数の一つのようです。

# %MTAppDir%/lib/MT/CMS/Blog.pm line 671-678
# 変更前
$app->rebuild(
  BlogID => $blog_id,
  ArchiveType => $type,
  NoIndexes => 1,
  Offset => $offset,
  Limit => $app->config->EntriesPerRebuild,
  FilterCallback => $cb,
) or return $app->publish_error();

一回分の再構築で処理される記事の数が制限されているのでしょうか。どう扱われているのか追跡してみましたが、%MTAppDir/lib/MT/WeblogPublisher.pmのサブルーチンrebuildの中、MT::Entry->load_iterという呼び出しの所で吸収されてしまいました(これがどこに書いてあるのかよく判らない)。

色々試してみてただ一つ判ったのは、再構築が一回だけで終われば、(月別アーカイブ以外も含めて)すべての再構築がうまくいく事です。つまり、全記事数以上の値をLimitに与えてやれば、一応、成功します。

# %MTAppDir%/lib/MT/CMS/Blog.pm line 671-678
# 変更後
$app->rebuild(
  BlogID => $blog_id,
  ArchiveType => $type,
  NoIndexes => 1,
  Offset => $offset,
  Limit => $total,
  FilterCallback => $cb,
) or return $app->publish_error();

但し、いくらEntriesPerRebuildを小さくしても進捗状況は見られません。でもまあ大した害じゃないので許せる範囲内でしょう。

これはバグなんでしょうか、それとも個人ライセンス(無償)使うならこれくらいの制限は自分で外せって事なんでしょうか。バグである事を祈ります。

このアーカイブについて

このページには、過去に書かれたブログ記事のうちWWWWARDカテゴリに属しているものが含まれています。

次のカテゴリはXMLです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。