WordPressからgooブログへのトラックバック

WordPressを使って、gooブログへトラックバックをすると上手くいかないので調べてみました。
調べ方

  • 自分のPCにWebサーバを用意して(AnHTTPD使用)
  • 自分のWebサーバへトラックバックPingを送信する
  • gooブログからのトラックバックと、Wordpressからのトラックバックを比較する

この方法で、比較しながら調べて原因がわかりました。
gooブログからのトラックバックには、HTTPリクエストに、User-Agentヘッダが付いていません。
Telnetで試してみるとUser-Agentの有無で、結果が変わるのが確認できました。正確には付いていても問題ないUser-Agentもあるのかも。とにかく除去したらOKになりました。

WordPress2.0.2では、wp-includes/functions.phpの900行目付近を以下のように修正しました。
修正前
$http_request .= 'Content-Length: '.strlen($query_string)."\r\n";
$http_request .= "User-Agent: WordPress/" . $wp_version;
$http_request .= "\r\n\r\n";
$http_request .= $query_string;

修正後
$http_request .= 'Content-Length: '.strlen($query_string)."\r\n";
//$http_request .= "User-Agent: WordPress/" . $wp_version;
//$http_request .= "\r\n\r\n";
$http_request .= "\r\n";
$http_request .= $query_string;

これで、gooブログにトラックバックしてみると、正常にトラックバックができました。


設計だけの担当者なんて無理?

ソフトウェアの仕様書は料理のレシピに似ている
とても共感しました。

やはり「よい設計」をするには、プログラミング経験があることが必要だと思います。
そこそこの設計であれば、プログラミング経験が少ない人でも可能とは思いますが、やはり近道はプログラミング経験を積んでいることだと思います。

加えて、SEとして設計するようになっても、継続してプログラミング(実装)に触れていることが必要だと思います。
私の周りにいる人。
本当は開発好き。なれどPG→SE→PMと王道を歩んで、プログラミング技術は一昔前の知識になってしまった人。
実装寄りの考え方を持っている点は、すばらしいのですが、俺流の古臭いアイデア技術をうれしそうに設計するのがちょっと困りもの。
いや、古いのは悪くないんですが、すでに新技術として定着しているものを俺式に再発明しちゃうのが困る。
「俺が考えたこの方式ならば完璧っ!」って感じに、古い実装案をわざわざ考えてくれる。

記事の内容には非常に同感するのですが、悲しいことに、ウチの会社はそれに完全に逆行しています。

  • プログラミングなどの実装は外注、海外に委託しようぜ!
  • 自社では、上流の設計外注管理が出来る人を育てますから!
  • プログラミングの勉強?そんなの今後は外注の仕事だから、そんなの学ぶのはやめとけ!

大体こんな感じ。設計する人は実装を知らずに設計するし、「コミュニケーションの取れないオフショア外注」に丸投げするのを理想的に考えているから、恐ろしい。。。
設計できる人が、どんどん先行して設計していき、追っかけで大量の実装部隊がモノを作り上げていく。それを目指しているんでしょうが、実際のところ、そんな感じにはなっていないです。
恐ろしいなんて言っている場合じゃなく、正しい方向に自分が向かわせるべきなんですが、担当が開発から少し離れてしまっているので、ちょっとそんな元気も今はないです。

以下は、記事からの引用

プログラムの仕様書は料理のレシピに似ている。ソフトウェアのアーキテクトが自らプログラムを書いたり、下っ端のエンジニアの書いたコードをレビューするのは、レストランのシェフが自ら料理をしたり、下っ端の料理人の作ったスープの味見をするとの同じである。もちろん、レストランに行く側の立場になってみれば、そんなレストランで食事をしたいのは当然である。シェフがレシピだけ書いてキッチンにも立たないレストランには行きたくないし、ましてや自分で料理したこともないシェフが書いたレシピを元に作った料理がおいしいわけがない。

レシピという言葉を借りれば、
レシピだけでは料理の詳細を、調理担当者に正確に伝達することはできないわけで、レシピを正確に実現できるのは、レシピをつくったシェフですね。
SEの作った詳細設計書だけでは、プログラマに正確に伝達することはできないわけで。


頭の中の消しゴム

昨日、仕事をしてすごい現象に遭遇してしまいました。
いつもはJavaばかりやっているのですが、ツールの作成で久々にVBAなんか使っていたんです。

VBAだと不慣れなことばかりで、分からないことをちょくちょくWeb上で検索して調べながら作業していました。
とある問題の解決方法が分からずに、いつものようにGoogleで検索してみたところ、私の知りたい問題にピッタリとマッチする検索結果がありました。

「おおっ!まさにこれこれ」

と思って、そのページを見ると、開発者向けの掲示板的なサイトで古くからあるサイトのようでした。問題点についての質問者と、それに回答してくれている人達がいて、複雑ながらも問題を解決しているようでした。

質問者の名前を見ると、私と同じ名前でした。「えっ?」と思うと、メールアドレスも記載されてあって、紛れもなく私のメールアドレスではないですか!
今遭遇している問題と、全く同じ質問を過去にしていたのです。書き込みは2000年の時の書き込みでした。確かにこのサイトは昔にVBAの仕事をしていた時に見ていた記憶はあるのですが、質問したという記憶はちっともありません。おそろしい。記憶喪失状態

今となっては考えられないですが、当時は、あまり個人情報とか気にしておらず、平気で実名やメールアドレスを記載していました。こういうところにメールアドレスが載りっぱなしになっているから、SPAMメールが絶えないんだなぁと痛感しました。