Movable Type 5.2.9

この開発日誌には書いていませんでしたが、一昨年頃?にMovable Typeを5に
アップデートしていました。単にプログラムを更新しただけでしたので、
記事は何も書いていませんでしたが。。。

さて、今月に入りやっとサイト運営にも手をかけられるようになりましたので、
そのMovable Type 5を最新版にアップデートしておきました。
合わせて、記事に付けてたランキング用バナーのところに、
新たにdtn開発日誌用のソーシャルリンクも貼り付けておきました。
まだどこも0件ですが、宜しければクリックして下さいませ。
social_link.gif


一年以上放置して死んでいたコンテンツを復旧させるのに、他にも色々と細かいところを
修正かけていたのですが、中でもAPIのレスポンスデータをパースするあたりを
大きく変更しておきました。

APIデータの連携部分は、PHP4だった頃に作ったものが多かったので、
xml_parser_create関数でXMLをパースし、foreach文でぐるぐる回して
↓のように要素を引っこ抜いたりしていたのですが、、、



$p = xml_parser_create();
$ERROR = xml_parse_into_struct($p,file_get_contents($q),$vals,$index);
xml_parser_free($p);
foreach ($val as $key1 => $val1){....}

とっくの昔にPHP5になっていたので、SimpleXMLが標準で使えるようになっていたので、
ニュースAPI、検索API等のXMLパースが必要だった部分を全て作り直しておきました。

SimpleXMLは使い方も楽で、何やら速度も速いような気がします。。。



$Result = simplexml_load_file($q);
//Yahoo検索APIのレスポンスから全レコード数を取得するときは↓でOK
$TOTAL = $Result -> SiteSearchResults -> attributes() -> TotalCount;

ただ、肝心のAPI提供がどんどん少なくなっているので、企業様方に
なんとか頑張っていただきたいなぁと思いますね。

被リンク数取得用php

dtnディレクトリでは、登録サイト様のSEOチェックツールを
オマケでご用意しておりました。
とは言いましても、単にMETAタグの情報を表示したり、
被リンク数と検索インデックス数を取得して表示させてただけですので、
ほとんど必要ない機能だとは思っていますが、、、

さて、久しぶりにこのページを見てみたところ、
どのサイトも被リンク数が0件となってしまっておりました。

数年前は各社の検索エンジンでは、検索APIを大盤振る舞いで
解放してくれていたので、被リンク数・インデックス数も
気楽にAPIで取得出来ていたのですが、Yahoo!、Googleも
検索用APIは次々サービス提供終了となってしまったようで、
どうやらレスポンスが何もない状態となっていたようです。。。

このままでは申し訳ないので、代わりの方法で数値を取ろうと思いましたが、
APIが無い以上、数値を取得するにはHTTP_Requestとかで
検索結果ページを丸っと取得して数値を引っ張るしかないかなぁ
とも思っておりました。
ただ、、、前にもやったことはありましたが、データ取得→数値引っこ抜きに
非常に時間がかかってしまうので、全くダメなんですよね。。。

という訳で、色々探してみたところ、公式にはサービス終了となった
Google Search APIがまだ使えるよということで、プログラム
公開している人がいたので、これで対応してしまいました。
これも近々使えなくなるとは思いますので、この先どうしましょうかねぇ。。。


function GoogleBL($domain){
	$url="http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=link:".$domain."&filter=0";
	$ch=curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);
	curl_setopt($ch, CURLOPT_REFERER,"YOUR_REFERER");	//リファラ入れないとエラーになりました
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
	curl_setopt($ch, CURLOPT_HEADER, 0);
	curl_setopt($ch, CURLOPT_NOBODY, 0);
	curl_setopt($ch, CURLOPT_TIMEOUT, 30);
	$json = curl_exec($ch);
	curl_close($ch);
	$data=json_decode($json,true);
	if($data['responseStatus']==200){
		return $data['responseData']['cursor']['resultCount'];
	}else{
		return false;
	}
}

詳細はこちらでご確認を。

サイトを復旧致しました

またまた業務に忙殺されてしまい、サイト管理にもあまり手をかけられない状況が
続いてしまいました。
前回この開発日誌に書き込みしたのは2012年11月11日、、、
丸一年以上の間、サイトとサーバーに手をかけていなかったようです。

その間もdtnディレクトリに登録申請は続き、未処理分は1万3千件を超えてしまい、
画像掲示板の泉はスパム投稿に耐えられず、多くのページが破壊されて真っ白になり、、、
訪問して下さった方々にも大変お恥ずかしい姿を見せてしまいました。

遂にはサーバー屋さんからも、お宅のドメインが原因で収容サーバー
全体に障害発生しているとメールが届く始末で、、、
2月のある日には、終日サーバもダウンしていたようです。
dtn_server_down.gif

そこで、サーバのゴミ掃除から始まり、各種プログラムの不具合修正や
スパム処理を一気に対応し、丸々一ヶ月近くかかってやっとサイトを正常に
稼働させることが出来るようになりました。

この放置していた間に、Yahoo!のAPI仕様も大きく変化していたようで、
dtnディレクトリの検索機能用に使っていた、Yahoo!検索APIも提供が
何時の間にやら終了してしまっていたようです。
当然ながら検索しても何のレスポンスも無く、こちらもお恥ずかしい姿を
長期間晒してしまっていたようです。。

急ぎ何か別のAPIを使ったものに修正をと考えましたが、
Yahoo!JAPAN WEB APIコンテスト応募作品ということで、
カテゴリに載せていただいたこともありますので、
Bing検索API、Google検索APIを使う訳にもいきませんので、
Yahoo! APIの中にディレクトリサーチAPIという、Yahooカテゴリに
登録されているサイトのみを検索する為のAPIがありましたので、
取り急ぎこちらのAPIを使って、dtnのカテゴリデータと
連携させる仕様に変更しておきました。
Yahoo!検索APIはもう復活しないのでしょうか。。。
なんとも残念な気がします。

一方、画像掲示板の方はHTML吐き出し周辺のプログラムに問題があり、
同時アクセス時に、ファイルロックとポインタ処理がまずくて、
真っ白HTMLが出力されてしまったりしていたようです。。。
他にも多々修正点あったので^^;プログラムは修正しておいたのですが、
放置していた一年以上の間に、海外のスパム投稿屋の書き込み先と
されてしまっていたようで、掲示板を復旧させた途端に
秒単位でスパム投稿が連発し、変な投稿だらけとなってしまい、
全うに動かすにはほど遠い状況となっておりました。。。

掲示板にCAPTCHAで画像認証を入れるのも嫌でしたので、
スパム投稿元を見たら殆どが海外IPでしたので、
これら全てを.htaccessで遮断してしまうことにしました。
一瞬、海外からのロボットも全て跳ね返してしまい、
ネットから消え去りそうにはなりましたけど、
無事にスパム投稿を一掃することは出来たようです。


dtn_12year.gif
色々障害山積みでしたが、とにもかくにも無事に復旧させる
ことは出来たようですので、溜まっているディレクトリ
登録申請チェックを急ぎ対応進めたいと思います。
登録待ち状態の方は、気長にお待ちいただけますよう、
宜しくお願い致します。

12年目となったdtn.jpですが、引き続き宜しくお願い致します。

YouTube、ニコニコ動画の動画ID

先日のトラブル以来、画像掲示板プログラムの修正を続けております。
imgbbs_dtn_2012.gif
色々見直していると、突貫で作って放置してしまっていただけに、
もはや正常に動かなくなっていたり、最初から機能していなかった部分も
多々見つかり。。。なんともお恥ずかしいばかりです。
 
特に目立ったのは、YouTubeとニコニコ動画の動画IDを引っこ抜くあたりが
先方の仕様変更もあって、全然うまく動いていなかった気がします。
そこで、取り急ぎですが、この部分の修正作業をしてみました。
 
ちなみに。動画IDをプログラムで正確に抜き取りさえ出来れば、
HTML中に小窓で表示させるのはIDはめ込むだけなので超簡単です。
こんな感じで縦横サイズも指定できてしまいます。



embed src="http://www.youtube.com/v/'.$動画ID.'" type="application/x-shockwave-flash" wmode="transparent" width="横サイズ" height="縦サイズ"


 
さて、少々手間なのが、この動画IDをURLから抜き取る作業です。
YouTube、ニコニコ動画共に、動画を見ている時のブラウザURLを見ると、
パラメータが山ほどくっついてたりして、そこから動画IDだけ抜き取らなければ
いけないので、これが少々厄介です。
かといって、投稿時に『sm00000000』や『v=XXXXXXX0XXX』みたいな部分だけを
コピペして下さいというのも手間だったり、ミスも多いと思うので、
正規表現使ってIDだけ引っこ抜く必要があります。
という訳で、あれこれやってこんな形になりました。


preg_match('@[&?]v=([^&]+)|be/(.+)$@',$URL, $match); //YouTube

preg_match('/[a-zA-Z0-9]{8,10}$/',$URL, $match);  //ニコニコ


ニコニコ動画の場合は、この前にパラメータ部分を消し去ったりもしてますが、
なんとか抜き取りできております。
また先方の仕様変更があったらダメになりそうですが、当面は大丈夫でしょう。
 
 
ところで。ここ最近のサーバートラブルの影響もあってか、
肝心の訪問者数が減りまくっておりまして、なんとも困った話です。
荒れるよりはマシかもしれないですが、寂しい話です。

掲示板に荒し対策をしました

先週になりますが、画像掲示板をふと見てみると、
全てのスレッド画像が異様な画像で埋め尽くされてしまっておりました。
imgbbs-arashi.gif
 
余所の画像掲示板でも、昔に似たような騒ぎがあったような記憶がありますが、
こんな過疎掲示板にも攻撃が来るとはさすがにちょっと驚きました。
と共に、プログラム制作の時間がなく、荒し対策処理をやっていなかったことを
心から後悔致しました。。。
 
さて、そうこうしてる間に、サーバーがますます不安定になってきたので、
仕事帰りで眠い目をこすりつつ、大急ぎでプログラムの見直し作業に着手しました。

どうやら連続投稿を制限していなかったこと、最大スレッド数(100スレッド)を
超えた際に最古データを削除していましたが、この削除処理機能に不具合があり、
投稿データが無限増殖していたことがサーバー障害の原因となっていたようです。
 
 
この対処を続ける間もDoS攻撃は続いており、まずは一旦httpdを落とし、
その間にプログラムを修正しつつ、異常な書き込みにより
削除されてしまった書き込みをバックアップから復旧するという、
激しいリカバリ作業をするはめになってしまいました。。。
 
朝方やっと落ち着いてきたようなので、httpd startさせてみましたが、
急いで作ったプログラムが不具合だらけだったのか、
昼間dfしてみた結果がまたまた悲惨なことになってました。。。


Filesystem    1K-blocks     Used   Avail Capacity  Mounted on
/dev/aacd0s1e  22020096 22****** 0    102%    /
/dev/aacd0s1e         1        1       0   100%    /skel
devfs                 1        1       0   100%    /dev
/dev/aacd0s1d         1        1       0   100%    /ports

再度、httpdを落とし、データをロールバックし直し、
プログラムに修正を施しまくりまして、やっと今日ぐらいに
サイトが落ち着きを取り戻してきた感じがします。

お陰様で、今回はcrontabファイルの中身が消えてしまったり、
他のファイル、サーバー全体への影響も予想以上に大きく、
過去いくつかの掲示板でも痛い思いはしてきましたが、
一番影響が大きかった気がします。
 
復旧までの数日間、一部の書き込みが消えてしまったりと、
ご利用者の皆様にも大変ご迷惑をお掛け致しました。
心からお詫び申し上げます。
 
仕事の関係で、サイト更新作業に時間をかけることが非常に困難であるので、
ユーザーさんのマナーに期待してサイト運営を続けてしまっておりますが、
中には悪意のある方がいることも十分肝に銘じ、
今後もサイト運営を継続していきたいと思います。
 
色々とご連絡下さった皆様、本当に有難うございました。
まずはこの場を借りまして、御礼申し上げます。

11年目突入

11years.png
dtn.jpドメイン取得して以来、丸10年がたち、11年目に突入しました。
思い返せばこの10年間、Yahooカテゴリ掲載に燃えてみたり、
アクセスアップに燃えてみたり、アフィリエイトで稼いでみたり、
訴えられかけたり....と色々なことがありましたが、
それもこれもこのドメインがあってこそ経験できたことなので、
10年前にドメイン取得しておいて本当に良かったと思っています。
 
一人でのんびり運営している個人サイトですので、
あまりの更新の遅さにビックリする方も多いと思いますが、
なんとか時間を見つけて続けておりますので、
これからも暖かい目で見守っていただければと思います。
 
 
それにしても、基本的に筆不精な私がここまで続けてこれたのも、
サイト全体が情報発信型のサイトでなく、プログラムで動き続ける
サイトだったからなんでしょうね...。
 
10年続けてる個人サイトはどんなものがあるかなぁと調べてみて、
個人サイトを穏やかに10年続ける方法」という面白い記事も見つけましたが、
私なんぞには、こんな上手に文章まとめる能力もありませんから、
ブログ型にしていたら1年でドメイン解約していたでしょうね。。。
 
あんまりいらっしゃらないとは思いますが、似たように情報発信苦手な方は、
是非プログラムで動くこんなサイト作りを目指してみてはいかがでしょう?
 
ではでは、今後とも宜しくお願い致します。

Facebookページ

今年もはや8月となり、11年目に突入が間近になってしまいました。
突然の生活環境の変化もあり、さっぱり運営できずに過ごしてしまい、
登録申請していただいた方々にも毎度ご迷惑おかけしております。

さて、11年目突入までに何か制作やりたかったのですが、
全く時間も取れないので、とりあえずFacebookページを作ってみました。
facebook.png
 
作り方はいたって簡単で、アカウント登録後に
『Facebookページを作成』から簡単に作れます。
facebook2.png
 
さらに、FacebookのオリジナルURLもすぐに取れますので、
なんとなく企業のFacebookページっぽい感じが即作れてしまいます。
ただ、申請処理すらまともに出来ていない状況なので、
こちらも放置したままになってしまいそうな気もしてますが...。
 
この開発日誌にもソーシャルプラグイン付けてみましたので、
宜しければこちらからFacebookページもご確認どうぞ。

301リダイレクトの期間

昨年末頃に画像掲示板をサブドメイン化しておりました。
その際、サイト名もこれまでの「画像掲示板dtn」から「画像掲示板の泉」へと変更し、
引っ越しだからと301リダイレクトもかけていたのですが、
数か月待っても「画像掲示板の泉」と検索しても、
Topページがきちんと検索に表示されない状況が続いてしまっておりました。
 
検索しても、Topページが出てこないで下層のページが表示されてる、
いわゆるTDP(トップページ・ダウン・ペナルティ)みたいな状況とですね。。。
 
逆に、古いサイト名の「画像掲示板dtn」で検索すると、
ディレクトリにコンテンツがないにも関わらず、きっちり検索に表示されてしまってて、
imgbbsdtn2012-4-1.gif
サイト名は古いままではありますが、URLはサブドメイン化され、
サイト説明文も新しいものに変更されており、
なんとも不思議な状況に陥ってしまってました。。。
 
という訳で、元のディレクトリに置いてた.htaccessファイルを消し、
ディレクトリも削除してしまいました。
すると、しばらく後に再度「画像掲示板の泉」と検索してみると、
きっちりトップページが検索結果に表示されておりました。
imgbbs2012-4-2.gif
 
あちこち見ると、301リダイレクトは可能な限り半永久的やった方が望ましいと
書いてあるのですが、、、
やり方間違えたんですかね???
 
とりあえず、無事検索に表示されるようになったので良かったです。

PHP Warning:file_get_contents

夕方頃にdtn.jpを見てみたところ、あちこちに仕込んだAPIのデータが
表示されてないことに気が付きました。
APIのデータが取れないので、人気検索語やニュース、
電力使用状況グラフもでないので、何やら素っ気ない感じです。
yahoo_api_down.png
 
dtnで使ってる、人気ランキングやニュース情報は、
Yahoo! JAPAN Webサービスを使って引っ張ってきているので、
Yahoo!のサービス自体が止まってるかとも思ったのですが、
公式ブログやtwitterを見ても特にそんな情報はなく。。
では、APIの使用回数制限に引っかかったかなぁとも思ったのですが、
この過疎サイトでそんなことある訳もなく。
 
という訳で、急ぎ色々と調べてみました。
 
すると、サーバのログにありました。PHP Warningが山ほど!
どうやらfile_get_contentsがエラーを吐いてるようです。


PHP Warning: file_get_contents(http://*****) [function.file-get-contents]: failed to open stream: no suitable wrapper could be found in /*****.php on line *****
 
 
今大風邪ひいてしまっててあまり正確には覚えていないのですが、
確か昨夜までは問題なく動いてた記憶もあるのですが....。
で、運営会社のメンテナンス情報を見てみると、サーバー緊急メンテはやったようですが、うちのと違うサーバー番号です。。でも、番号近かったから、
ついでに何か仕様変更でもしたのですかね。

さて、php.iniを確認すると、やはりallow_url_fopenがoffになってました。


allow_url_fopen Off

 
という訳で、これをOnに戻して無事解決となりました。
yahoo_api_on.png
 
Yahoo!様のAPIがないと、なんとも素っ気ないサイトってことですね。
末永くAPIを提供してくれることを祈るばかりです。

久しぶりの更新です

最後に日誌を更新したのが昨年末でしたので、4ヶ月近く書き込みしてませんでした。
仕事に、何かに、忙しい日々を過ごしてはいるようなのですが、
思い出しても何かやったかな?という感じで、
大した成果も残せていないのがツライところです。
 
2002年夏に取得したdtn.jpも、あと少しで丸十年経過してしまいますが、
それまでにはこのドメインも、もうちょっとは活躍してくれればと願うばかりです。
 
そんな一見放置しっぱなしのサイトではありますが、さすがに完全放置してはおらず、チョコチョコと小修正はしておりました。
 
まずは画像掲示板のデザイン変更。
目玉のvectorファイルを拾ったので、何かに使えないかなぁと思い色とか変えましたが、、
半日くらいで終わる作業ですね。。
siterighttop.png
 
次に、ツイッターやらFacebookやらのカウント整理。これも一瞬で終わる作業です。。
sitecenterunder.png 
 
最後に、新たなアフィサイトの制作。これは一日一時間を一週間程度でしょうか。。
siteleftunder.png
 
あまり意味のない作業ばかりやってましたが、仕事でやってる制作とかの
息抜きにやってるような作業ですので、これくらいが限界ですね。
 
新年度も始まりましたので、新たなコンテンツ制作もやってみようかな。