ニコニコ静画RSS運用終了

どうも3日ほど前からニコニコ静画にアクセスできなくなってたらしく、更新情報が作成できなくなっていたので、ニコニコ静画RSSのrss.phpをリネーム&削除しニコニコ静画RSSにアクセス出来ないようにしました。

(コミットログを見る限り)2011年12月5日に開発が始まり、丸3年運用してたことになるようです。

サーバーでw3mでアクセスしてもダメだったので、IPアドレスかドメインレベルで封じられてる模様です。ここで封じられたらもうどうしようもないので、再開はできないと思います。

正直、アカウント停止は覚悟してたけどアクセスごと封じられるとは思わなかった。
もっとも、先月頃からろくにログインもできなくなっていましたけど。(アカバンではなく、Cookieの仕様が変わったため。)

「俺んところで運用してやる」という方がいらっしゃいましたら、ソースを渡しますので、ご連絡ください。(居るかなぁ…)

javascriptのプラグイン機構のメモ書き

サーバーの負荷監視にプラグイン的な機構を付けたいと思ったんで、Javascript側の実装のメモ書き。
index.html

<script type="text/javascript">
<!--
	/**
	 * プラグインインターフェース
	 */
	plugin = function(){}
// -->
</script>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="loadAverage.js"></script>
<script type="text/javascript">
<!--
	$(function(){
		//プラグインの実行
		for (element in plugin){
			if(eval('plugin.' + element + '.init !== undefined')){
				eval('plugin.' + element + '.init();');
			}
		}
	});
// -->
</script>

loadAverage.js

/**
 * loadAverage取得
 * @date 2014/01/11
 * @author まっちゃん
 */
(function(plugin){

	plugin.loadaverage = function (){}
	plugin.loadaverage.tabName = 'LoadAverage';
	plugin.loadaverage.tabTitle = 'LoadAverage';
	plugin.loadaverage.init = function (){
		alert('ok');
	}
})(plugin);

jqueryは$()の実行に要るだけなので、別の手段があるのなら別に無くてもいい。

pluginというクラス(オブジェクト)を定義して、プラグインのJSを読み込み。
プラグインのjsはplguinオブジェクトにどんどんメンバを追加していく。
ひと通り定義が終わったら、for inでメンバを列挙して取り出せたメンバの中にinitメンバがあったら実行。
for inでelementにはメンバ名が入ってるようなので、eval使って

eval('plugin.' + element + '.init();');

としないとダメっぽい。

レンタルレイアウトに行ってきた

正月休み最終日。
とし君と、レンタルレイアウトに行く約束してたので、行ってきた。

朝カトケンと電車の中で落ち合って横浜経由で品川へ。
途中腹下したもんで中山で降りてトイレ行ってたら、昨日行先表示器を盗まれたH16編成が来てたらしい。(その後速攻で車庫に帰って修理したとか。)

品川でとし君と合流し、そのちょっと前に出発していったG1編成の折り返しを撮ったあと、池袋へ。
池袋で埼京線205系とN’EXなど撮ったあと一旦大崎に行って山手線トウ503編成撮ったあと、昼飯を食べて大宮から川越線経由で箱根ケ崎に行ってn-finecraftさんへ。
ダイヤの都合で予約より30分ほど早着したので、店内で待ってから運転会開始。

だいたい18時に終わって東福生で降りてとし君の泊まるホテルのチェックインを待ってから福生発の電車で拝島->八王子と行って夕飯。
8時半頃に横浜線に乗って帰宅。

明日から仕事だ。面倒くせぇ…

libexif使ってみた

カメラを縦にして撮ると、PCでみた時大抵のビュワーだと写真が横になるので、フォルダごとドラッグアンドドロップしたら中にあるjpgファイル手当たり次第に調べて回転してる写真は正しい向きになるように修正するツールがあると便利だなと思ってちょっと調べてみた。

回転情報はExifに記録されてるようなので、Exifで回転情報を調べて必要ならImageMagickで回せばいいやとなり、Exif操作ライブラリのlibexifを導入。

/**
 * main.cpp
 * exifのorientation情報取得
 * @date 2014/01/02
 * @author まっちゃん
 */

#include <libexif/exif-data.h>
#include <iostream>

int main(int argc, char *argv[]){
	if(argc < 2){
		return 0;
	}
	//Exif読み込み
	ExifData *exifData = exif_data_new_from_file(argv[1]);
	if(exifData == nullptr){
		return 0;
	}
	//オリエンテーション情報取得
	ExifEntry *entry = exif_content_get_entry(exifData->ifd[EXIF_IFD_0], EXIF_TAG_ORIENTATION);
	int orientation = 0;
	if(entry != nullptr){
		std::cout << exif_get_short(entry->data, exif_data_get_byte_order (entry->parent->parent)) << std::endl;
	}
	exif_data_unref(exifData);
	return 0;
}

exif_data_new_from_fileに読み込むjpegファイルのパスを渡してExifData構造体のポインタを取得。
exif_content_get_entryでIFD0に入ってるORIENTATIONデータを取得。これが回転情報。

サンプルを見るとexif_entry_get_valueで取得するように見えるけど、これで取ってくると「左上」とか扱いに困るものが帰ってくるので、exif_get_short(entry->data, exif_data_get_byte_order (entry->parent->parent))で回転情報を取得。

最後にexif_data_unrefでexifデータを解放して終了。

で、ここまで調べて書いたところで、ImageMagickでその辺処理できることが判明してちょっと凹む。
libexifはなんか違うときに使おう。