2005年10月05日
自分で作る blog ツール 石川 直人 by G-Tools |
目次
第1章 開発環境の準備
第2章 基本的な機能の実装
第3章 blog的機能の実装
第4章 サイト間連携機能の実装
ブログがどのような機能を持ち、それらの機能をどのように実装したらよいかを解説した本。
別にワタクシはブログを作るつもりはありませんが、現在のWebプログラムの主流とも言える、いわゆるWebサービスを自分で作っているサイトに実装するために非常に役に立ちます。
第1章から第3章までは、ある程度(掲示板ぐらい)PHPが書けるプログラマであれば、特に必要ではありません。逆に言えば、PHPやサーバーに関する知識がなければ、これだけを読んでもブログが作れるようには絶対になりません。先にそれらの専門書で学習するべき。
で、この本の最も有用な点が、第4章の「サイト間連携機能の実装」です。例えば更新通知Pingやトラックバックといったブログとして最も特徴的である機能の実装方法が記載されています。
XML-RPCを使った更新通知Pingの実装方法が解説されているのですが、XML-RPCのPHPでの利用に関しては大抵PEARを使って簡単に説明しているサイトが多いのに対し、この本ではモジュールを使わずに自分でXMLを書いてPOSTするという方法で解説しているために、更新通知Pingで実際にどのようなデータがやりとりされているのかが非常に理解しやすくなっています。
このような切り口の解説書は他にないので、なかなか良書だとは思いますが、欲を言えば、前述のように第1章から第3章は要らないので、その代わり、第4章をもっと深く掘り下げて欲しかったと思います。
投稿者 Utayume : 20:18 | コメント (2) | トラックバック (0) | 04 Blog /05 Work(Perl, PHP, etc)
2005年07月21日
今日トラックバックスパムが5件続けて届き、削除するのもいいかげんめんどくさくなってきたので、naoyaさんのプラグインで本文中にこちらのサイトへのリンクがない場合はトラックバックを拒否するようにしました。
ワタクシもModernSyntaxのnagasawaさんと同じようにいわゆる「アイコンタクト・トラックバック」は否定しないのですが、一読して同じテーマと理解できる善意のエントリーならまだしも、トラックバックを送ってきたことが理解不能なものや、明らかにアフィリエイト狙いのトラックバックも増えてきたために、多少の犠牲はあってもやむを得ないと判断しました。
このプラグインは現状ではトラックバックスパムを排除するにはもっとも有効であるとも思います。
せっかくの自由で可能性のあるトラックバックというシステムが、このようなつまらない理由で縮小してしまうのは残念ではありますが、トラックバック、更にはブログをより良いものにするためにも、このような過渡期の対応も必要かもしれません。
このプラグインについては以下を参照。
naoyaのはてなダイアリー - Movable Type で言及リンクのない TrackBack ping を弾くプラグイン
ということで、今後、ワタクシのサイトへトラックバックを送る際は、お手数ですがリンクを貼ってください。
投稿者 Utayume : 13:30 | コメント (2) | トラックバック (1) | 00 about /04 Blog
2005年06月16日
新しもの好きのワタクシですから、いつもは、アップグレード版が出ればすぐに実行、なのですが、今回は時間がなかったこともあり、6/9リリース後今頃になってアップグレードしました。
自鯖だったらバックアップはMySQLのデータファイルやHTMLのディレクトリを直接コピーしておけばいいので楽なんですが、ホスティングだとそうもいかず、めんどくさかったっていうのもあったりして。
まぁ、そんなわけで遅くなりながらもとりあえずアップグレード完了、のはず。
新機能のnofollowも有効にしておきました。
動作確認も兼ねたエントリーでした。
Movable Type Publishing Platform: Movable Type 3.17の提供を開始
投稿者 Utayume : 13:32 | コメント (3) | トラックバック (1) | 04 Blog
2005年04月02日
旧ブログのエントリーを最近2つを残して全て削除しました。
それに伴い、個別エントリーとカテゴリー別へのリンクはondes-martenot.infoへリダイレクトするようにしました。
例えば、
http://ondes.ii2.cc/diary/archives/2005/03/27_2310.php
http://ondes.ii2.cc/diary/archives/cat_4.php
にアクセスされた場合、自動的にondes-martenot.infoの該当箇所に転送されます。
これで人為的に貼られたリンク(トラックバックを含む)はほぼフォローできると思うのですが、検索エンジンには月別アーカイブ等へもリンクされているので、それらへの対策として、404エラーと403エラーに、移転した旨を表示するhtmlを作成しました。
以下が404エラー(ファイルが存在しない)。
http://ondes.ii2.cc/diary/archives/2005/01/index.php
以下が403エラー(アクセスが許可されていない)。
http://ondes.ii2.cc/diary/archives/
以上のような動作を実現するには、httpd.confにDirectoryで指定するか、.htaccessファイルに記述して該当ディレクトリにアップロードします。ondes.ii2.ccは自鯖なのでhttpd.confに記述しました(この方が効率的)が、通常のレンタルサーバーで.htaccessが使用可能な場合は、後述のような記述をしてhttp://ondes.ii2.cc/diary/のディレクトリに「.htaccess」というファイル名でアップロードします。
404と403のエラーページに関してもこのようなファイル(敢えてhtmlのrefreshは記述していません)を作成し、.htaccessの記述と同じディレクトリにアップロードします。
というように一応悉くリダイレクトしてみましたが、いずれondes.ii2.ccを無くすのなら、URLが変わったことが気づきにくいApacheのリダイレクトではなく、URLが変わったことをユーザーに認識してもらうために、全部404を表示させてしまうというのも一つの考え方だとは思います。
投稿者 Utayume : 23:20 | トラックバック (0) | 04 Blog
2005年04月01日
これからはこのサーバーでやっていきます。
数少ないご常連の方々へは今後ともよろしくお願いします。
引っ越したと言っても、デザインもそのままなので新鮮味がありませんね。^^;
このサーバーは予告通りさくらちゃんサーバーです。(いずれ自鯖に戻す可能性もあります)
SAKURA Internetでブログをやる場合、月額125円の「ライトプラン」でも可能ですが、このプランではMySQLとphpが使えないので、月額500円の「スタンダードプラン」にするのがよいと思います。現在のワタクシの契約も「スタンダードプラン」です。
しかし、今までの自鯖の環境をそのままこの「スタンダードプラン」のサーバーへ移行しても正常動作しませんでした。というのも、「スタンダードプラン」ではphpにパーミッションで実行権を与えなくてはいけなくて、通常アップロードやMTのデフォルト設定で自動生成しただけのphpファイルはサーバーエラーになります。
そこで、MTのmt.cfgを以下のように書き換えることでMTでのphp動作が可能になります。
# DBUmask 0022
# HTMLUmask 0022
# UploadUmask 0022
# DirUmask 0022
上記のコメント(#)を削除。
# HTMLPerms 0777
# UploadPerms 0777
上記のコメント(#)を削除の上、以下のように編集。
HTMLPerms 0755
UploadPerms 0755
(フォルダのパーミッションがが777ではphpが動作しないので、755に変更。またphpファイルをアップロードすることもあるので「UploadPerms」にも実行権を与えています。)
投稿者 Utayume : 03:54 | トラックバック (0) | 04 Blog
2005年03月28日
先日サーバー移転(というかブログのURLを変更)することを検討中と書きましたが、とりあえず、独自ドメインを取得しておきました。どんなドメイン名かはまだ内緒。
で、物理的なサーバーについても、自鯖からホスティングに移転しようと思っています。
ドメインを取得したことで、後にホスティングから自鯖に戻したくなっても作業は楽ですし、ondes.ii2.ccから新ドメインへURLを移転後も、ある程度はondes.ii2.ccとしてサーバーを残しておかなければいけないために、一旦ホスティングにすることが一番効率が良いと判断しました。
ホスティング会社はさくらインターネットにほぼ決定。さくらは5年以上前から友人の多くが借りていて、高速で安定しているという実績があるからです。
念のため書いておくと、木之本桜とは関係ありません。(ヲイ
投稿者 Utayume : 20:16 | トラックバック (0) | 04 Blog
2005年03月26日
ブログを通して仲よくさせてもらっているtonetalkのHaruさんが東京にいらっしゃるというので、Apple Store Ginzaで待ち合わせてお会いすることに。
ワタクシが遅れたためにちょっと待ち合わせに失敗してしまいましたが、実際にお会いしたHaruさんは、ブログそのまま優しそうな大阪人(←ここ重要w)でした。
あいにく日帰りということでしたので、1時間ほどみゆき通りのスタバでお話しして、お別れしました。
ワタクシが大阪に行くときには今度はゆっくりお話ししましょう^^
無事に帰宅されたようで、お疲れ様でした。
あ、Apple Store Ginzaの前でツーショット写真を撮ろうと思ってデジカメ持って行ったのに、撮るのを忘れてしまいました^^;
tonetalkの「Apple Store Ginza」へトラックバックしておきますー。
投稿者 Utayume : 23:45 | コメント (2) | トラックバック (0) | 04 Blog
2005年03月21日
いや、せざるを得なくなるかも。
このサーバーで利用しているダイナミックDNSを提供しているJSpeedが突然業務を停止しました。
大変申し訳ございませんが、ジェイスピードは2005年3月1日をもって営業を停止いたしました。 皆様には大変長い間ご愛顧いただき誠にありがとうございました。今後はダイナミック DNS以外のサービスを順次停止し、2005年末をもって全てのサービス を停止させていただきます。 現在ご利用のお客様には大変申し訳ございませんが、ご契約 満了時までにご移転をお願いいたします。 (ダイナミックDNSは2006年以降も継続いたします)
ダイナミックDNSのログインページはここに残っていました。
ダイナミックDNSは今後も提供するとは書いてありますが、それもいつまでやってくれるか信用できないので、早めに切り替えた方がよさそう。
元々このサーバーは固定IPアドレスなのでダイナミックDNSである必要はなく、ただドメイン維持にかかる費用を節約するために使っていただけなんです。
この際新たにドメインを取得するにしても、違うダイナミックDNSにするにしても、ブログ用にホスティングを借りるにしても、URLが変更になるので、最低でもエントリー内で使っていたパーマネントリンクの書き換えは必須ですね。あ〜、めんどくさい。
で、ドメイン取得しようかなとドメイン検索してみたら、com、net、org、jpの内、
「martenot」でも「ondes-martenot」でも「jp」しか空いてない。
「jp」はかっこいいけど維持費が高いのです。
むぅ〜。
ちなみに、「martenot.com」と「martenot.fr」は本家マルトノ家が所有。「ondes-martenot.com」はオンディストの市橋若菜さんが所有、「ondes-martenot.net」はオンド・マルトノ友の会が所有しています。
投稿者 Utayume : 05:35 | トラックバック (0) | 04 Blog
2005年03月19日
BlogPeopleで今BlogPeopleのRSS検索機能が利用できる検索窓の配布をしています。
ここです。
http://bst.blogpeople.net/bst_box.htmlモダシンの右サイドバーでも利用しています。
で、この検索窓をあなたのブログにも貼り付けてもらえないでしょうか?また配布していることをブログで書いてもらえないでしょうか?
ということで、お願いされちゃったのでサイドメニューに付けてみました。
そう言えば、BlogPeopleには大変お世話になっているのに、ブログ検索はBulkfeedsかFirefoxプラグインのgoo ブログ検索(BPでもFirefoxプラグインをリリースしてるのに)を主に使っていて、BlogPeopleのは使ったことがなかったなぁと。^^;
これからはBlogPeopleをまず使うようにします。
ついでに、サイドメニューに先日導入したMagpie RSSを使い、オンド・マルトノ友の会のRSSを表示させました。ソースは以下のような感じで。
どちらもutf-8なのでmb_convert_encodingは入れていません。
//------------------------------------------------------
<?php
require_once 'magpierssのrss_fetch.incへのパス';
$url = 'http://www.ondes-martenot.net/pblog/rss/recent.php';
$rss = fetch_rss($url);
$title = $rss->channel['title'];
print "<h2>${title}</h2>\n<div class=\"side\">\n<ul>\n";
foreach ($rss->items as $item ) {
$title = $item['title'];
$url = $item['link'];
$itemday = date('Y/n/j',strtotime(substr($item['dc']['date'],0,10)));
$itemtime = date('G:i',strtotime(substr($item['dc']['date'],11,8)));
print "<li><a href=\"$url\" title=\"${itemday} ${itemtime}\">$title</a></li>\n";
}
print "</ul>\n</div>\n";
?>
//------------------------------------------------------
投稿者 Utayume : 11:25 | コメント (2) | トラックバック (0) | 04 Blog
2005年03月15日
このエントリーのポイントはMTPaginateのエラーの原因と、Vine Linuxでのphp.iniの設定です。
php化が一通りできたところで、カテゴリーページの分割をしたくなりました。
そもそもこのカテゴリーページってデフォルトだと例え1000エントリーあっても1ページで表示してしまうのはおかしな仕様であり、ページ分割は本来MT自体に備わっているべきもっとも基本的な機能のひとつだと思います。
で、そのページ分割するには現状ではMTPaginateというプラグインを使うのが一番手っ取り早いらしく(詳しいやり方などは他のページを見てください)、わたしもやってみたところ、簡単なはずなのに以下のエラーが出てしまいます。
Smarty error: [in mt:35 line 125]: syntax error: unrecognized tag 'MTPaginate' (Smarty_Compiler.class.php, line 556)
いろいろ調べてみると、MTPaginateはMTをダイナミックページ生成設定にしていると使えないことがわかりました。まんまとこのMTの設定を「アーカイブのみダイナミック」にしていました。
ここで問題になるのが、先日発覚したスタティックなページの文字化け。ひとまずそのまま「すべてスタティック」に戻して再構築してみたら、phpの拡張子のページは全て文字化けしました。予想通りですが。^^;
ふと思いたって、ワタクシが普段使っている他の二つのホスティングサーバーとうちのVineのphp.iniを比べてみると、Vineのphp.iniはmbstringを中心に他のふたつとかなり異なっていることに気付きました。
Vineは意図があってそうしているのだとは思いますが、互換性のため、他のホスティングサーバーと同じような設定にしてみたところ、スタティックなページでも文字化けが解消されました。
php.iniの変更した部分は以下。丸括弧内はVineのphp5でのデフォルト設定です。
//---------------------------------------------------
default_charset: no value ("Shift_JIS")
output_handler: no value (mb_output_handler)
mbstring.detect_order: no value (auto)
mbstring.encoding_translation: Off (On)
mbstring.http_input: Pass (auto)
mbstring.http_output: Pass (SJIS)
mbstring.internal_encoding: Off (On)
//---------------------------------------------------
念のため書いておくと、「no value」というのは明示的に設定がされていないということであり、該当行を削除するかコメントアウトすれば大丈夫です。
以上で、phpも正常表示され、ページの分割も可能になりました。めでたしめでたし。
投稿者 Utayume : 17:47 | トラックバック (1) | 04 Blog /Linux