Month: April 2011

クローラ&ロダが起動しない方へ

 - by Don

クローラ&ロダ」が起動しない場合の対処法

.NET Framework 2.0が入っていない場合

microsoftからもらってきてインストールしてください。

.NET Framework 2.0が入っている場合

D.N.Proxyのバージョンが2.0になる前にそのサンプルゴーストをインストールされた方はSSPのルートディレクトリにUkagaka.NET.Interfaces.dllが存在する可能性があります。それを削除してください。

user.dllが見つかりませんと言われた場合

手元で再現できないのでまだ解決法はわかりません。

とりあえず私の環境で作られたuser.dllを指定の場所に置くためのサプリメントZIPファイルを以下のサイトから入手して追加でインストールしてください。

https://github.com/nikolat/supplement_crawler

過剰包装のNARをどうするか

 - by Don

SoSiReMiでNARが弾かれていた

ZIPを作成するときに、予めフォルダにまとめてからそのフォルダを右クリックしてZIP圧縮すると展開したときにそのフォルダも出てきて二重包装になってしまうので、フォルダにまとめずに複数選択してZIP圧縮するのがわりと一般的なのかなと思っております。GHOSTのNARでもそれをやってしまうとルートにinstall.txtが無いのでNARをDnDしてもインストールできません。昨日SoSiReMiにアップしようとされていたNARがそれで弾かれていたのでした。それ自体は正しい挙動で問題はないです。

でもSSPは中まで探索してインストールしてくれるようです。親切ですね。

SoSiReMiもSSP並に親切設計にできたらしたいとも思いますが、そうなるとアップされたNARは有効なディレクトリまで探索して中身を全部コピーしてからあらためてZIPを作ってそれに詰め直して…とかしてから保存し直す、っていう気が遠くなる処理が必要だなー、と思って諦めました。特定のベースウェアでサポートされているからと言って通常の伺か互換ベースウェアでインストールできないイレギュラーなファイルの投稿を許してしまうのもホスティングサービスのとるべき態度として正しくない気もしているので。

NAR-Station更新

上記とは別に1MBを超えるNARがダウンロードできないバグが見つかったので、修正してNAR-Stationの方も更新しました。こちらはあまり告知はしていませんがバグが見つかるたびに細々と更新しています。

SHIORIの種類と特徴

 - by Don

今までに色々なSHIORIを実際に使ってみて感じたことなどをなんとなくまとめてみます。

使ったことはないけど知っているSHIORIも紹介程度に。

里々

配布元
satoriya-shiori – Yet Another SATORI – Google Project Hosting
特徴
プログラミング経験やSakuraScriptの知識が無くとも日本語による記述で簡単にゴーストが作れる。ゴーストでは最大のシェアを誇る。利用者同士でのサポートやドキュメントも充実している。現在は整備班でメンテナンスが続けられ、バグフィックスや機能追加などを通してかなり使いやすくなっており、個人的にはもはや機能的な不満はない。トークを記述することに主眼が置かれたSHIORIであり、凝った機能を実装するにはやや辛い。

華和梨

配布元
プログラマブル準AI 華和梨
特徴
歴史のある由緒正しきSHIORI。キャリアの長いゴーストマスタに愛用者が多い印象。Windows以外の互換ベースウェアでもまず間違いなくサポートされているため、マルチプラットフォームでの動作が期待できる。ゴースト作成のための機能がひと通りそろっており、多種多様なミドルウェアが有志により提供されている(むしろ乱立しすぎな気がする)。文法に慣れるまで大変だが、個人的にはプログラミング言語のひとつとして楽しめた。

YAYA

配布元
yaya-shiori – Yet Another AYA – Google Project Hosting
特徴
C言語ライクな記法で、ロード時に事前コンパイルによるエラーチェックを行う、厳格なSHIORI。里々、華和梨と合わせて勝手に三大栞と呼んでいる(利用率のシェア的な意味で)。正規表現や数学関数のサポート、多言語文字コード対応
など、汎用プログラミング言語顔負けの多機能さが特徴。…と紹介されることが多いが、自分が一番推したいのは伺かプロトコルのレイヤから好きに弄れる拡張性の高さだったりする。SHIORIにも、SAORIにも、PLUGINにも、HEADLINEにもなる(全部作ったことがある)。Windows以外の互換ベースウェアでは前身のAYAはサポートされてもYAYAがサポートされているものは見かけない。

上記3栞が伺かで使われるDSLとしてメジャーなSHIORI。他にも美坂とか結奈SEとかあるけど使ったことないので割愛します。

以下は個人的に興味を持った汎用プログラミング言語へのプロキシ栞。

里珠

配布元
サイトが死んでるので入手不可
特徴
Perl栞。使ったことはないけどわりと有名なのでご紹介。本家からはテンプレートゴーストが手に入らないけどいるむが里珠を使っているので中身を見たことはある。

紅蓮

配布元
narをアップするところ
特徴
Ruby栞。ファイルをアップロードするSAORIを探してみたけど無いので、Rubyで書いてHTTPリクエスト投げようと思ったらブリッジexeが落ちてSSPごと止まってえらいことになった。目的が達成できなかったのでこれを使った何かをリリースすることはなかったけど、凝ったことする必要がなければRubyの学習教材として面白いと思う。

大蛇

配布元
narをアップするところ
特徴
Python栞。実際動かしてみたところ、ロード時にWarningが出た。Logの出力で何か問題があるらしいけどCわからないので直せない。

D.N.Proxy

配布元
narをアップするところ
特徴
.NET Frameworkで開発できる、たぶん伺か界で史上最強のSHIORI。これが出た当時は.NETって何なのかもわからなかったけど最近ようやく理解し始めて、昨日これを使ったゴーストをリリースしてみたけどちゃんと動いてる、よかった。文字通りなんでもできるSHIORIだけど、何をしたらよいかわからない。猫に小判。

上記以外にもLisp栞とか見たことがある。「井桁」っていうC#栞もあるけどD.N.Proxyが出たのでこっちの方がいいでしょう。

追記

ここまで紹介して気付いたけど、汎用プログラミング言語プロキシ栞はSHIORIとして紹介するのは誤解を与えそうだなと思った。正確にはSHIORIにも、SAORIにも、PLUGINにも、その他伺かプロトコル全て対応できる何か、ですね。

WP Colorful Tag Cloudを入れてみた

 - by Don

WP Colorful Tag Cloudを入れてみました。その名の通りタグクラウドをカラフルにしてくれるプラグイン。色も好きなように変更できて楽しいです。
もっと色んなタグを増やして彩りを良くしたいですね。そのためにも色んなジャンルでブログを書かねば。

あとBroken Link Checkerっていうのも入れてみました。ブログ内のデッドリンクを見つけて教えてくれるプラグイン。ここは開設して間もないのでまだお世話になる機会はないですが、Webにおいてデッドリンクほど残念なものは無いので、気を付けたいところです。

Google Code Prettify for wordpressを入れてみた

 - by Don

google-code-prettifyをWordPressに適用するGoogle Code Prettify for wordpressを入れてみました2011-04-22現在配布元が404になってますねSyntaxHighlighterはやり過ぎ感があって好きではないので、他にもっと軽いハイライトモジュールを探していてこれに決めました。

preタグやcodeタグのclass属性に"prettyprint"を加えるだけで言語は自動判定してくれます。

<pre><code class="prettyprint">
適当なコード
</code></pre>

他にSimilar Postsもインストール。関連記事を表示してくれるプラグインです。Post-Plugin Libraryに依存しているのでこれもインストール。

BazaarでcloudControlにpushできないのでGitに乗り換えた

 - by Don

BazaarでcloudControlにpushする時にErrorFromSmartServerとかいうエラーを吐くようになってしまいました。
同じ症状の方がいたみたいです。-> Switching from Bazaar to Git on cloudControl
Gitに乗り換えたら動くようになったとのこと。

というわけでこちらもGitに乗り換えます。以下のような手順でやってみました。

  • MySQLエクスポート
  • SFTPで静的ファイルのダウンロード
  • アプリの全削除・Gitで登録し直し
$ cctrlapp APP_NAME/default undeploy
$ cctrlapp APP_NAME delete
$ cctrlapp APP_NAME create php --repo git
$ cctrlapp APP_NAME push
$ cctrlapp APP_NAME deploy

MySQLを忘れてた。

$ cctrlapp APP_NAME/default addon.add mysql.free
$ cctrlapp APP_NAME/default addon mysql.free
  • MySQLのusernameとpasswordを再設定して再度deploy
  • MySQLインポート
  • SFTPで静的ファイルのアップロード

無事に今まで通りWordPressが表示されました。めでたしめでたし。

トラックバックの表示

 - by Don

今日はトラックバックに関連する設定をしていました。

まずGet Recent Commentsをインストール。これはサイドバーにcommentとtrackbackを分離してウィジェットで表示してくれるプラグインです(標準ではcommentとtrackbackが一緒くたに表示されてしまいます)。

ただ、このままだとtrackbackのウィジェットのidがcommentのidと被ってしまいますのでget-recent-comments.phpの該当部分を以下のように修正。

function kjgrc_create_recent_trackbacks( $caller = '')
{
	global $kjgrc_we_are_a_widget,$kjgrc_widget_args;

	// $entries = kjgrc_get_entries($max_comments,$chars_per_comment,$chars_per_word,$format,$query,0,$caller);
	$entries = kjgrc_get_comments2('grt',$caller);
	// If we are a widget: Also care for the title
	if ($kjgrc_we_are_a_widget == TRUE) {
		extract($kjgrc_widget_args);
		$entries = $before_widget . $before_title . kjgrc_get_option("grt","sidebar_title") . $after_title .
		'<div id="get_recent_trackbacks_wrap"><ul>' .
		$entries .
		'</ul></div>' .
		$after_widget;
		$entries = str_replace('id="get-recent-comments"', 'id="get-recent-trackbacks"', $entries);
		return $entries;
	}
	return $entries;
}

次に単一記事に対するtrackback数の表示。comment数は"n comments"とかって表示されてますけどtrackback数も表示したいので。

まず、Trackping Separatorをインストール。

functions.phpあたりに以下の関数を追加。

function trackbacks_popup_link() {
	$c = trackpings('count');
	if ($c === 0) {
		$mes = 'No trackbacks';
	} else if ($c === 1) {
		$mes = '1 trackback';
	} else {
		$mes = $c.' trackbacks';
	}
	echo '<a href="';
	the_permalink();
	echo '#trackback" title="Trackback">'.$mes.' »</a>';
}

index.php, archive.php, single.phpのcomment数を表示している部分の後でこの関数を呼び出します。

しかし、このままでは肝心のtrackbackリストそのものが表示されていません。

comments.phpの最後にテーマのcommentsの部分を参考にしながら追加します。

<?php $trackbacks = trackpings(); ?>
<?php if ($trackbacks) : ?>
<aside id="trackback">
<h2>trackbacks</h2>
	<ol class="trackbacklist">
	<?php foreach ($trackbacks as $comment) : ?>
	<li class="<?php echo $oddcomment; ?>" id="comment-<?php comment_ID() ?>">
		<div class="quote"><br /><?php comment_text() ?></div>
	<?php comment_author_link() ?> on <a href="#comment-<?php comment_ID() ?>" title=""><?php comment_date('F jS, Y') ?> at <?php comment_time() ?> <?php edit_comment_link('edit','  ',''); ?></a>
	</li>
	<?php endforeach; ?>
	</ol>
</aside>
<?php endif; ?>

これでようやくトラックバックが表示されます。疲れた。

Head Cleanerを入れてみた

 - by Don

Head Cleaner

HTMLのhead内をきれいにしてくれる。これは良いですね。
<!--[if lt IE 9]><![endif]-->がコメント扱いされて消されてしまうのが惜しい。<!--[if IE]><![endif]-->は残るみたい。version 1.4.2.1にアップデートしたら大丈夫でした。素晴らしい。

ついでにテーマをいじってRSS2.0およびAtom1.0を追加。

Google Analyticsをhead内に移動。