KUMA TYPE

猫、パソコン、プログラム、映画、ドラマ、アニメ、perl、etc.

【アニメ】神無月の巫女の感想【GyaO!】

神無月の巫女DVD-BOX

前にGyaO!で全話視聴。神話の時代から繰り返し生まれ変わりながら、ロボット的な何かに乗ってオロチと世界の命運を掛けて戦う二人の巫女のお話。原作は知らない。

僕好みの話ではなかったけど好きな人は好きなのかも。ラストだけはちょっと必見かなと思う。かなり予想の斜め上の展開だった。正直僕には斜め上過ぎの展開でマジで笑った。同人誌の事はよくわからないけど、同人誌的なノリなのかなーと思った。ちょっとだけ感動もした。ラストは映画『バタフライ・エフェクト』のラストを思い出した。『バタフライ・エフェクト』みたく鬱エンドではないけどさ。

 

神無月の巫女 話数限定[B-ch]|無料動画 GyaO![ギャオ]|アニメ

神無月の巫女 – Wikipedia

バタフライ・エフェクト プレミアム・エディション [DVD]

タグ : ,

【アニメ】蒼天の拳の感想【GyaO】

蒼天の拳 七 [DVD]
蒼天の拳 七 [DVD]

GyaOで『蒼天の拳』が現在視聴可能です。今までにも何度か配信されているので定期的に繰り返し配信しているのかな?

第二次世界大戦直前の上海を舞台にした北斗の拳の番外編的お話第62代目北斗神拳伝承者霞拳志郎が主人公。香港マフィアの抗争という形で北斗の拳士達が死力を尽くして闘います。北斗の拳のユリアよろしくな感じで例によって女を取り合ったりします。

面白いんだけどね。うん、声優さんとかも頑張ってるし声優さんはミスキャストもなくていいと思うんだけどさ・・・。作画崩壊しすぎでしょw。マクロス(ファースト)思い出したよ。作画崩壊しすぎてて話に入り込めないんですよね。絵柄がコロコロ変わるし。最初の方はいいんだけど、あとの方に行くほど作画崩壊がひどくなります。さすがに最終話くらいは多少ましになりますがかなりひどいです。残念です。もったいないです。特にひどいのが戦闘シーンとシリアスなセリフのシーンです。作画が崩壊しすぎてて戦闘に緊張感が全くないです。シリアスなシーンは逆に麦茶吹きそうになる。作り直し希望ですw。DVDのパッケージの絵はいいのにねw。パッケージ詐欺だろこれw。パッケージの絵に近いクオリティーで作画されていたらかなり面白かったと思う。作画も戦闘シーンの動きもかなりひどかったというのが感想。作画オタとかじゃないけどちょっと許容できないレベルw。

この、アニメで描かれている部分のストーリーについては原作がコミックバンチで連載されていた頃にリアルタイムで読んでいたので大体知っていました。途中で漫画雑誌を一切買わなくなったのでラストの方は知りませんでしたが原作厨じゃなくてもこの作品に限ってはアニメ見るより原作を読んだほうがいいと思う。
 

蒼天の拳のレビュー・感想・口コミ|無料動画 GyaO![ギャオ]|アニメ

蒼天の拳 – Wikipedia

タグ : ,

【MT】Movable Typeを4.261から4.34にアップデート

20100239

仮移転したサーバで調子もいいので調子にのって、Movable Type(以降MT)をアップデートしました。オープンソースのMTOS-4.34にしました。とりあえずMT5にする予定はないです。MTOS4.261から久々のアップデートになります。しかし日本語版のパッケージの在処分かりにくすぎる。

Index of /downloads/stable

上のサイトから、MTOS-4.34-ja.tar.gzをダウンロードして、アップデートしました。

僕の場合は下の様な感じでやりました。

Six Apart – Movable Type News: [重要] セキュリティアップデート Movable Type 4.24 の提供を開始 – KUMA TYPE

特に問題なくアップデートできた模様。

タグ : ,

サーバ仮移転投稿テスト

XREAの契約期限が17日までなので、CORE-MINIに仮移転テスト書き込みです。

本当は、saasesのosukini serverのLTプランという月額450円のVPSを借りてみたかったのだけれど初期設定費3000円と450円の6ヶ月前払いの5700円が捻出できなかったので断念w。貧乏すぎる(´;ω;`)ブワッ

専用サーバー・VPSならSaaSes|HOME
http://www.saases.jp/

さて、スムーズに書き込めるかな?XREAでは最近投稿エラーが出まくっていたのでブログを投稿する気も起きなくなるんですよね。

 

もうちょっと長い文章描かないとテストにならないかもちょっと画像も貼りつけたりしてみよう。

 

CA350257

 

 

 CA350184

CA350216

 

CA350223

 

CA350233

 

CA350234

 

CA350250

 

CA350262

CA350210

 

CA350214

追記

とりあえず、書き込みはエラーなくスムーズに出来ました。なぜか写真がブログのサイズに自動調整されなくなってたので調整。

タグ : , ,

楽天商品ランキングAPIを使ってランキングを表示するCGIをつくってみたよ

春頃に作ったものを、色々直してみたので公開しておきます。サンプルにするなり使ってみるなり煮るなり焼くなり好きにしてください。

テンプレート方式なのでhtmlやcssが分ればデザインは割と自由に弄れます。デフォルトのテンプレートだと下のように表示されます。ブログのサイドバーやホームページ等にIFRAMEなどで組み込んで使うことを想定しています。

◇PC用ページ

◇携帯電話用ページ

 

 

ファイル構成

/rakurank/ ┐
           ├ config.cgi  … 設定ファイル
           ├ mb_tmpl.txt … 携帯電話用テンプレートファイル
           ├ noimg.gif   … 画像なし用画像ファイル
           ├ pc_tmpl.txt … PC用テンプレートファイル
           ├ r1.gif      … 第1位画像ファイル
           ├ r2.gif      … 第2位画像ファイル
           ├ r3.gif      … 第3位画像ファイル
           ├ r4.gif      … 第4位画像ファイル
           ├ r5.gif      … 第5位画像ファイル
           ├ rakurank.cgi… CGI本体
           ├ style.css   … スタイルシート
           └ 説明書.txt  … 説明書

 

説明書.txt

【楽天ウェブサービス】RAKUTEN WEBSERVICE
http://webservice.rakuten.co.jp/

楽天商品ランキングAPI (version:2010-08-05)
http://webservice.rakuten.co.jp/api/itemranking/
を利用したランキング表示CGIです。
Version 0.9.2

IFRAMEなどを利用してブログパーツの様に表示する事を前提に作成されています。

●機能
・楽天商品ランキングAPIを利用したランキング表示ページを生成します。
・ページはhtml形式のテンプレートになっているので、自由にカスタマイズできます。
・PC用のページと(utf8)携帯電話用のページ(utf8)を生成します。
・キャッシュ機能追記一度生成したページは24時間キャッシュします。
・テンプレートの編集で最大10位までのランキングを表示可能です。初期のテンプレートは3位までの表示なっています。
・CGIへのパラメータによって表示するランキングのジャンルを変更可能、一つのCGIで別々のページに別のジャンルのランキングを表示するような使用が可能。

●動作環境

このCGIは
・さくらインターネットの共用レンタルサーバ スタンダードプラン
・XREA
で動作することを確認しています。

●設置説明書

0.ダウンロードした圧縮ファイルを展開して出てきたrakurankというフォルダを
FTPソフトでそのまま自分が利用しているサーバにアップロードすることになります。
アップロードを行う前に以下の準備を行ってください。

1.config.cgiを文字コード[UTF8]に対応したテキストエディタで以下の部分について編集を行ってください。

以下ではさくらインターネットの共用レンタルサーバに設置する場合を例に上げて説明します。

●さくらインターネットの共用レンタルサーバではディレクトリ構成が
/home/自分のアカウントID/www
となっているので、wwwディレクトリ配下にrakurankをアップロードした場合$dirには以下のように設定します。
※ここでは便宜的にIDを「example」とします。

■CGIをアップロードしたディレクトリをフルパスで指定 (/から指定)
$dir            = ‘/home/example/www/rakurank’;

●さくらインターネットの場合
/home/example/www/rakurank
は実際にInternet Explorer等のブラウザでアクセスする場合のURLは
http://example.sakura.ne.jp/
となるので以下の様になります。
独自ドメインやサブドメインを利用してる場合はそれにあわせてください。

#■画像のある場所のURL (上のCGIをアップロードしたディレクトリに対応するURL)(http://から指定)
$img_url        = ‘http://example.sakura.ne.jp/rakurank’;

●以下には【楽天ウェブサービス】RAKUTEN WEBSERVICE
http://webservice.rakuten.co.jp/
で取得したアフィリエイトIDを設定します。

#■あなたの楽天アフィリエイトID
$affiliateId    = ‘xxxxxxxxnnnnnnnnaaaaaaaabbbbbbbb’;

●以下には【楽天ウェブサービス】RAKUTEN WEBSERVICE
http://webservice.rakuten.co.jp/
で取得したデベロッパーIDを設定します。

#■あなたのデベロッパーID
$developerId    = ‘aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa’;

●楽天の場合、商品名に長い文章が設定されていることが多い為、
適度な位置で省略する為に商品名の何文字まで表示するかを指定することができます。
初期値は『20』(文字)になっています。

#■商品名を頭から何文字まで表示するかを指定
$namelen        = 20;

●ジャンルIDが何も指定されていない時に自動的に使われるジャンルIDの初期値を
設定することができます。

ジャンルIDを簡単に調べるには
楽露店 – 楽天商品詳細検索
http://rakuroten.kumacchi.com/

≪ジャンルから探す≫
から各ジャンルのリンクを押してページを移動するとブラウザのアドレス欄に表示されている
URLの末尾から知ることができます。
http://rakuroten.kumacchi.com/genrecode/101240

#■デフォルトのジャンルID(ジャンルIDを指定しなかった時、自動的に使用されます。)
$defGenreId        = 401151;

2.設定を行って保存したらrakurank.cgiが入っているフォルダ(rakurank)ごとサーバーにFTPでアップロードしてください。

1位~5位の画像がr1.gif~r5.gifというファイルで添付されています。

画像がない商品の時はnoimg.gifが表示されるようになっています。noimg.gifも配布ファイルに含まれています。
現在は真っ白な画像です。
画像なしやno image等の文字を入れた画像に置き換えるなど好みにあわせてカスタマイズしてください。

3.Movable Type(MT)のサイドバーなどにランキング表示する設定
ランキングを表示したい箇所のテンプレートを開いて下記のタグを埋め込んでください。

<iframe src="http://example.sakura.ne.jp/rakurank/rakurank.cgi" width="400" height="500"  frameborder="0" scrolling="no"></iframe>

※URLは実際のパスにあわせてください。

ジャンルIDを指定する場合は、下のように?genreId=<ジャンルコード>としてください。上の様にgenreIDを指定していない場合は
設定で定義したデフォルトのジャンルID($defGenreIdの値)が使用されます。
<iframe src="http://example.sakura.ne.jp/rakurank/rakurank.cgi?genreId=101240" width="400" height="500"  frameborder="0" scrolling="no"></iframe>

4.Movable Typeで携帯電話用ページを生成している場合で携帯用のページにも広告を表示する場合

携帯用のページを生成しているテンプレートを開いて、ランキングを表示したい場所に下記のMTタグを埋め込んでください。
絶対パスは実際の環境にあわせてください。

<$mt:Include file="/home/example/www/rakurank/mb_401151.html"$>

携帯電話用のランキングページは
mb_<ジャンルID>.html
の形式で作成される文字コードutf8のhtmlファイルになります。
このページが作成されるタイミングはPC用ページが閲覧されたタイミングになるので
携帯用のページを見る前にPC用のページを見ている必要が有ります。

MovableType以外のブログやホームページの場合はそれらの環境に合わせた方法で工夫してください。

これで設定は完了です。実際に表示を確認してください。

●ライセンス
特にありません。自由にしてください。
自由に改造・改変・ソースの再利用・商用利用など特に連絡の必要は有りません。

●免責のお願い
ご利用は自己責任でお願いします。このプログラムを利用したことによる損害の発生についての保証はいたしかねます。

●その他
・プログラム中のKUMA TYPEのライセンス表示やリンクは消しても構いませんが、消さないでご利用いただけると嬉しいです。
・楽天のライセンス表示は規約上必要なものなので消してしまうと規約違反になります。

・プログラムの不具合はできるだけ修正したいと思いますが、環境の違いなどでこちらで再現できない問題は対応出来ないかと思います。

●FAQ
・Q1.キャッシュを削除したい
・A1.rakurankディレクトリの中にできた
pc_xxxx.html
mb_xxxx.html
というファイルを全て削除してください。

・Q2.ジャンルIDを指定しても表示されないランキングがある。
・A2.ランキングデータが存在しないジャンルIDは指定しても表示されません。

・Q3.出力文字コードを自由に変えたい。
・A3.ソース弄れば簡単に出来るので対応してないけど今後必要に応じて設定を追加するかも。

KUMA TYPE https://blog.kumacchi.com/
2010.09.09

config.cgi(設定ファイル)

#■設定ファイル

#■CGIをアップロードしたディレクトリをフルパスで指定 (/から指定)
$dir            = ‘/home/example/www/rakurank’;

#■画像のある場所のURL (上のCGIをアップロードしたディレクトリに対応するURL)(http://から指定)
$img_url        = ‘http://example.com/rakurank’;

#■あなたの楽天アフィリエイトID
$affiliateId    = ”;

#■あなたのデベロッパーID
$developerId    = ”;

#■商品名を頭から何文字まで表示するかを指定
$namelen        = 20;

#■デフォルトのジャンルID(ジャンルIDを指定しなかった時、自動的に使用されます。)
$defGenreId        = 401151;

###この下は消さないこと
1;

rakurank.cgi(プログラム本体)

#!/usr/local/bin/perl
#
#    楽天商品ランキング
#    2010.04.09
#        新規作成
#        楽天商品ランキングAPI (version:2009-04-15)
#    2010.04.11
#        ・このCGIだけで複数のジャンルIDをカバーできる様に仕様変更。
#        ・モバイル用にはモバイル用の情報を表示する用に修正。
#        ・商品名を切り出す設定が反映されていないのを修正。
#    2010.04.12
#        ・携帯用のページを生成するとき文字コードをSHIFT_JISで出力しないようにした。
#
#    2010.09.08
#        ・use utf8;するように修正
#        ・細々とした修正
#        ・軽くするためにCGI.pmを使用しないように修正
#        ・楽天ランキング APIをversion:2010-08-05に
#        ・restを3.0に
#    2010.09.09
#        ・設定を別ファイルに切り離した
#———————————————————————————-
use strict;
use warnings;
use utf8;
use LWP::Simple;
use XML::Simple;
use Encode;
use Encode qw/from_to/;
use Encode::Guess qw/ascii euc-jp shiftjis/;

my $VERSION        = ‘v.0.9.2’;

#グローバル変数の定義
our $dir;
our $img_url;
our $developerId;
our $affiliateId;
our $namelen;
our $defGenreId;

#設定ファイルの読み込み
require ‘config.cgi’;

my $errlog        = "$dir/errlog.cgi";
my $pctxt        = "$dir/pc_";
my $mbtxt        = "$dir/mb_";

# 楽天ウェブサービス
my $base_url    = ‘http://api.rakuten.co.jp/rws/3.0/rest’;

my $operation   = ‘ItemRanking’;
my $version     = ‘2010-08-05’;

my $shoplink    = "http://hb.afl.rakuten.co.jp/hgc/$affiliateId/?pc=";

my $req_url     = "$base_url?developerId=$developerId&operation=$operation&affiliateId=$affiliateId&version=$version";

#webサービスコピーライト
my $webservice=<<"EOF";
<!– Rakuten Web Services Attribution Snippet FROM HERE –>
<a href="http://webservice.rakuten.co.jp/" target="_blank">Supported by 楽天ウェブサービス</a>
<!– Rakuten Web Services Attribution Snippet TO HERE –>
EOF

my %in=();
my %cfg=();
&idecode();
#&loadconfig();

my $genreId = $in{‘genreId’} || $defGenreId;

#24時間キャッシュ
if((-e "$pctxt$genreId.html") && ((-M "$pctxt$genreId.html")*86400) < 86400){
    &pcdisp($genreId);
    exit(0);
}

#PC用ページ生成
#    ‘genreId’=>’401151’,    #ジャンルIDの指定
&makehtml({
    ‘genreId’=>"$genreId",
    ‘sex’=>”,                #0:男性 1;女性
    ‘age’=>”,                #年齢 10 20 30 40 50
    ‘carrier’=>”,            #PC用の情報かモバイル向けの情報か 0:PC 1:mobile
});

sleep(1);

#モバイル用ページ生成
#    ‘genreId’=>’401151’,    #ジャンルIDの指定
&makehtml_mb({
    ‘genreId’=>"$genreId",
    ‘sex’=>”,                #0:男性 1;女性
    ‘age’=>”,                #年齢 10 20 30 40 50
    ‘carrier’=>’1’,            #PC用の情報かモバイル向けの情報か 0:PC 1:mobile
});

&pcdisp($genreId);
exit(0);

#———————————————————-
#    PC用html 出力
#———————————————————-
sub makehtml{
    my $ref = shift;
    foreach my $key (keys %{$ref}){
        next if($ref->{$key} eq ”);
        $req_url .= "&$key=$ref->{$key}";
    }

    my $data = get($req_url);
    my $xmlsimple = XML::Simple->new();
    my $xml = $xmlsimple->XMLin($data,ForceArray=>[‘Item’]);

    #エラーチェック
    if($xml->{‘header:Header’}->{‘Status’} =~ /(ServerError|ClientError|Maintenance)/i){
        open(FILE,’>:encoding(utf8)’,"$errlog");
        print FILE $req_url,"\n";
        print FILE $data,"\n";
        close(FILE);
        exit(-1);
    }

    my $ary             = \$xml->{Body}{‘itemRanking:ItemRanking’}{‘Item’};
    my $title           = $xml->{Body}{‘itemRanking:ItemRanking’}{‘title’};
    my $lastBuildDate   = $xml->{Body}{‘itemRanking:ItemRanking’}{‘lastBuildDate’};

    #ループ
    foreach my $r (@{$$ary}) {
        $r->{‘itemName’}         = &textcut($r->{‘itemName’},$namelen);
        $r->{‘affiliateUrl’}   ||=”;
        $r->{‘smallImageUrl’}  ||= "$img_url/noimg.gif";
        $r->{‘mediumImageUrl’} ||= "$img_url/noimg.gif";
    }

    $/ = undef;
    open(FILE,'<:utf8′,"$dir/pc_tmpl.txt");
    my $pc_tmpl = <FILE>;
    close(FILE);
    $/ = "\n";

    for(my $i=1;$i<=10;$i++){
        $pc_tmpl =~ s/%itemName:$i%/${$$ary}[$i-1]->{itemName}/g;
        $pc_tmpl =~ s/%affiliateUrl:$i%/${$$ary}[$i-1]->{affiliateUrl}/g;
        $pc_tmpl =~ s/%smallImageUrl:$i%/${$$ary}[$i-1]->{smallImageUrl}/g;
        $pc_tmpl =~ s/%mediumImageUrl:$i%/${$$ary}[$i-1]->{mediumImageUrl}/g;
    }

    open(FILE,’>:encoding(utf8)’,"$pctxt$ref->{‘genreId’}.html");
    print FILE $pc_tmpl,’by <a href="https://blog.kumacchi.com/" target="_blank">KUMA TYPE</a><br>’,$webservice;
    close(FILE);
}

#———————————————————-
#    モバイル用html 出力
#———————————————————-
sub makehtml_mb{
    my $ref = shift;
    foreach my $key (keys %{$ref}){
        next if($ref->{$key} eq ”);
        $req_url .= "&$key=$ref->{$key}";
    }

    my $data = get($req_url);
    my $xmlsimple = XML::Simple->new();
    my $xml = $xmlsimple->XMLin($data,ForceArray=>[‘Item’]);

    #エラーチェック
    if($xml->{‘header:Header’}->{‘Status’} =~ /(ServerError|ClientError|Maintenance)/i){
        open(FILE,’>:encoding(utf8)’,"$errlog");
        print FILE $req_url,"\n";
        print FILE $data,"\n";
        close(FILE);
        exit(-1);
    }

    my $ary             = \$xml->{Body}{‘itemRanking:ItemRanking’}{‘Item’};
    my $title           = $xml->{Body}{‘itemRanking:ItemRanking’}{‘title’};
    my $lastBuildDate   = $xml->{Body}{‘itemRanking:ItemRanking’}{‘lastBuildDate’};

    #ループ
    foreach my $r (@{$$ary}) {
        $r->{‘itemName’}         = &textcut($r->{‘itemName’},$namelen);
        $r->{‘affiliateUrl’}   ||=”;
        $r->{‘smallImageUrl’}  ||= "$img_url/noimg.gif";
        $r->{‘mediumImageUrl’} ||= "$img_url/noimg.gif";
    }

    $/ = undef;
    open(FILE,'<:utf8′,"$dir/mb_tmpl.txt");
    my $mb_tmpl = <FILE>;
    close(FILE);
    $/ = "\n";

    for(my $i=1;$i<=10;$i++){
        $mb_tmpl =~ s/%itemName:$i%/${$$ary}[$i-1]->{itemName}/g;
        $mb_tmpl =~ s/%affiliateUrl:$i%/${$$ary}[$i-1]->{affiliateUrl}/g;
        $mb_tmpl =~ s/%smallImageUrl:$i%/${$$ary}[$i-1]->{smallImageUrl}/g;
        $mb_tmpl =~ s/%mediumImageUrl:$i%/${$$ary}[$i-1]->{mediumImageUrl}/g;
    }

#    open(FILE,’>:encoding(shiftjis)’,"$mbtxt$ref->{‘genreId’}.html");
    open(FILE,’>:encoding(utf8)’,"$mbtxt$ref->{‘genreId’}.html");
    print FILE $mb_tmpl,’by <a href="https://blog.kumacchi.com/mt4i2/mt4i.cgi">KUMA TYPE</a><br>’,$webservice;
    close(FILE);
}

#———————————————————-
#    文字省略
#    textcut (文字列,取り出す文字数)
#———————————————————-
sub textcut{
    my $str = shift || ”;
    my $num = shift || 20;

    my $utf8 = decode_utf8 $str;
    my $str_unit;
    if(length($utf8) > $num){
        $str_unit = substr($utf8,0,$num) . ‘…’;
    }else{
        $str_unit = $utf8;
    }

    $str_unit;
}

#———————————————————-
#    pc用表示
#———————————————————-
sub pcdisp{
    my $genreId = shift;
    $/ = undef;
    open(FILE,"$pctxt$genreId.html");
    my $HTML = <FILE>;
    close(FILE);

    print "Content-type: text/html\n\n";
    print << "EOF";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="content-style-type" content="text/css">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
$HTML
</body>
</html>
EOF
    exit(0);
}

#———————————————————-
# 引数取得
#———————————————————-
sub idecode{
    my $QUERY_DATA=”;
    if($ENV{‘REQUEST_METHOD’} eq "POST"){
        read(STDIN,$QUERY_DATA,$ENV{‘CONTENT_LENGTH’});
    }else{
        $QUERY_DATA = $ENV{‘QUERY_STRING’};
    }
    my @argv = split(/&/,$QUERY_DATA);
    foreach(@argv){
        my ($arg,$val) = split(/=/);
        $val =~ tr/+/ /;
        $val =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("H2",$1)/eg;

        $val =~ s/&/&amp;/g;

        $val =~ s/</&lt;/g;
        $val =~ s/>/&gt;/g;

        $val =~ s/"/&quot;/g;
        $val =~ s/’/&apos;/g;

        $val =~ s/(?:\x0d|\x0a)//g;

        $val =~ s/\t//g;
        $val =~ s/\0//g;

        $in{"$arg"} = $val;
    }
}

pc_tmpl.txt(PC表示用テンプレートファイル)

<table width="362">
    <tr>
        <td><a href="%affiliateUrl:1%"><img src="%mediumImageUrl:1%"></a></td><td><div><img src="r1.gif"></div><div><a href="%affiliateUrl:1%">%itemName:1%</a></div></td>
    </tr>
    <tr>
        <td><a href="%affiliateUrl:2%"><img src="%mediumImageUrl:2%"></a></td><td><div><img src="r2.gif"></div><div><a href="%affiliateUrl:2%">%itemName:2%</a></div></td>
    </tr>
    <tr>
        <td><a href="%affiliateUrl:3%"><img src="%mediumImageUrl:3%"></a></td><td><div><img src="r3.gif"></div><div><a href="%affiliateUrl:3%">%itemName:3%</a></div></td>
    </tr>
</table>

mb_tmpl.txt(携帯電話表示用テンプレートファイル)

<table width="362">
    <tr>
        <td><a href="%affiliateUrl:1%"><img src="%smallImageUrl:1%"></a></td><td><div>1位</div><div><a href="%affiliateUrl:1%">%itemName:1%</a></div></td>
    </tr>
    <tr>
        <td><a href="%affiliateUrl:2%"><img src="%smallImageUrl:2%"></a></td><td><div>2位</div><div><a href="%affiliateUrl:2%">%itemName:2%</a></div></td>
    </tr>
    <tr>
        <td><a href="%affiliateUrl:3%"><img src="%smallImageUrl:3%"></a></td><td><div>3位</div><div><a href="%affiliateUrl:3%">%itemName:3%</a></div></td>
    </tr>
</table>

 

◆ダウンロード – rakurank_0_9_2.zip 20KB

●追記 2010.09.11

動かない場合の確認点

◆パーミッション(属性)の設定
特にパーミッションの設定は解説していませんが、
rakurankディレクトリは(700 又は 705など)
rakurank.cgiは(700 又は 705など)
と設定してください。その他のファイルはアップロードした時のデフォルトのままで多分問題ないと思います。

◆perlのバージョンの確認
5.8.x系より古いperlでは多分動かないです。

◆利用しているモジュールがサーバーにインストールされているか
どこでも動くようにモジュールは必要最小限の物に絞っていますが、下のモジュールがインストールされていないと動きません。

LWP::Simple 
XML::Simple

下のcgiをダウンロードしてアップロード後アクセスすることで、モジュールがインストールされているか自動でチェックできます。サンプル

◆ダウンロード – mchk.zip

動かない場合や不具合がある場合はコメントで質問してください。出来る範囲で対応します。質問時はできるだけ情報を出してください。

 

◆関連記事:【楽天ウェブサービス】楽天商品ランキングAPI – KUMA TYPE

◆関連記事:楽天商品ランキングAPIを使った売れ筋ランキング表示プログラムと作ってみた。 – KUMA TYPE

◆関連記事:楽天商品ランキングAPIを使ったperlサンプルソース – KUMA TYPE

タグ : , , ,

【2ちゃんねる用ブラウザ】ギコナビでスレッド中の単語を選択してGoogleで検索するには

メニュー項目をカスタマイズできますか?

できません。
バタ61からブラウザタブの右クリックで表示されるポップアップメニューのカスタマイズが可能となりました。
(ツール→ポップアップメニュー設定)

バタ60以前の場合、また現状でカスタマイズできないメニューについては、ツールバーのボタン、ショートカットキーやマウスジェスチャーなどがカスタマイズできるので、よく使う機能をこれらに割り当てるなどしてもいいでしょう。
例えばブラウザタブの右クリックメニューで「アクティブタブ以外を閉じる」を間違って選んでしまうことが多いなら、「アクティブなタブより左(右)を閉じる」のほうをブラウザツールバーに追加するとか。また「アクティブタブを閉じる」動作はタブのホイールクリックに割り当てられています。万一、間違って複数のタブを閉じてしまっても、キャビネットを履歴に切り替えれば容易に復元できるでしょう。

なおギコナビのブラウザペイン(スレッド表示部)はIEコンポーネントを利用しているため、IEの右クリックメニューを拡張するようなアドオンなどを導入すると、ギコナビの右クリックメニューにも反映されますが、ギコナビからその機能を利用できるかどうかはアドオン側の作りに依存します。

◇引用元:AQ2 – ギコナビ Wiki – SourceForge.JP

最近のブラウザなら下の画像のようにIEでもChromeでもFirefoxでもブラウザ上で文字列を選択してマウスの右クリックでメニューから「Google で検索」として検索することができます。この機能は大変便利です。
20100225
(IEで文字列をを選択してマウスを右クリックしたところ)

しかし、IEコンポーネントを使っているブラウザペイン部分にもかかわらず文字列を選択してクリックしても「Google で検索」の部分は表示されない。「印刷プレビュー」のところまでは表示されている。

20100226
(ギコナビ全体像)

↓↓↓↓↓

zzz
(ギコナビブラウザペインの抜粋)

 

MenuExt(Internet Explorerの右クリックメニュー拡張)なら表示されそうなので、MenuExtを弄れるフリーソフトを使って追加することにした。

MenuExtとは – はてなキーワード

利用させて頂いたソフトウェアはUryusoft様のIE MenuExtです。このソフトを使うと右クリックメニュー拡張部分にメニューを追加したり削除したりが簡単にできます。

20100227

右クリックメニュー拡張を拡張する前にあらかじめ下の適当なテキストエディタを使ってhtmlファイルを作成しておきます。google.htmlとでもしておきます。マイドキュメントにでも置いておいて下さい。

google.html

<html>
<body>
<script type="text/javascript">
var q = external.menuArguments.document.selection.createRange().text;
q = ‘http://www.google.co.jp/search?hl=ja&q=’ + q;
window.open(q,’gikonavi’);
</script>
</body>
</html>

 

上のhtmlを作成するにあたり参考にさせて頂いたサイト

◇IE 拡張コンテキストメニューに「範囲選択されたURLを開く」を追加してみた – Assemblr

◇open Method (window, Window Constructor)

上のhtmlファイルを作成したら、『IE MenuExt』を使って右クリックメニュー拡張を拡張します。

※レジストリを弄るソフトなのであらかじめレジストリのバックアップを取ったほうが無難です。ここではレジストリのバックアップ方法については割愛します。方法は検索するか一応下の記事が参考になるかと思います。
◆関連記事:ERUNTでレジストリバックアップしてて助かった件 – KUMA TYPE

1.[追加]をクリック

20100228

2.右クリックメニュー拡張に追加する名前を入力します。IE上で文字を選択して右クリックした時、メニューに表示される文字列です。ここでは「ググる」としていますが、素直に「Googleで検索」と入れてももちろん問題有りません。

20100229

3.先程作成したgoogle.htmlファイルを選択する為に、下の箇所にあるファイルの参照ボタンを押します。

20100230

4.[ファイルを開く]のダイアログが表示されたら、先程作成してマイドキュメントに置いておいたgoogle.htmlを選択して[開く]をクリックするとファイルが選択されます。

20100231

20100232

5.表示方法で[テキスト選択時]にチェックを入れます。

20100233

6.[OK]をクリック

20100234

7.一覧に下のように追加されればOKです。[OK]ボタンをクリックします。

20100235

8.レジストリ書き換えの確認画面が出るので[はい]をクリックします。

20100236

9.ギコナビを再起動する。

 

で、実際にやってみると下の画像のようにちゃんとメニューが表示されるようになりました。

20100237

実際に検索してみるとIEが起動してちゃんとGoogleで検索されました。

20100238

 

あとで気づいたのですがMenuExt LibraryにIE MenuExtに追加して使うためのhtml集があって「選択している文字列をGoogleに渡して検索します。」というライブラリもちゃんと用意してありました。そっちの方がよさそうなので入れ替えてみたのですがなぜか動かなかったのでとりあえずは自分で作成した方を使っています。

というわけでちょっとギコナビが便利になりました。

タグ : , , ,

ファクシミリ複合機(見楽るプリント)UX-MF25CWの録音データをPCで再生するには?

うちには、ファクシミリ複合機(見楽るプリント)UX-MF25CWというのが有ります。下の画像がそれです。

SHARP 見楽るプリント ファクシミリ複合機 ホワイト UX-MF25CW (1台7役 子機2台) SHARP 見楽るプリント ファクシミリ複合機 ホワイト UX-MF25CW (1台7役 子機2台)

色々多機能なのですが、受信したFAXや留守録の音声データを本体メモリーの他にSDメモリーカードに記録するように設定できたりします。

それで、付属のドライバやユーティリティソフトウェアをPCにインストールすると、下のようにパソコンからLAN経由でそのSDメモリーカードの中を参照することができます。

20100217
(クリックで大きな画像)

起動すると標準のブラウザに設定しているブラウザが起動するようです。プロトコルはFTPなのですが、ディレクトリが日本語の為かGoogle ChromeやFirefoxだとうまくアクセス出来ませんでした。IEならアクセスできます。 他にはFFFTPにアドレスを入力すればアクセスできました。

下はFFFTPの画面ですが、ディレクトリを潜っていくと下のようにFAXの受信データや留守録や録音を行った音声データにアクセスすることができます。

20100219
(クリックで大きな画像)

20100220
(クリックで大きな画像)

FAXの受信データはFAXの仕様通りのTIFF形式で保存されているので普通にPCで画像ソフトを使えば見ることができます。が、音声データの方は特殊な形式のファイルのため普通にはPC側で聞くことができません。

.VOIという拡張子のついたファイルなのですが、ファイルの中身を見てもヘッダ部分は見たことのない形式でちょっとWindows Media Playerとかで再生は無理な様です。.VOIで検索してみると下のような人力検索はてなが引っかかりましたが解決していない模様。

◇参考記事:拡張子が「.VOI」となっている、VOIファイルの再生の仕方を教えてください。 音声ファイルのはずですが、パソコン上で再生できずに困っています。.. – 人力検索はてな

一応SHARP殿のホームページを調べてみると以下のとおりでした。

Q.外部メモリに保存された録音データはパソコンで再生できますか?    
A.できません。本機のみで再生が可能です。

◇カラー液晶ファクシミリ複合機|よくあるご質問(UX-MF50CL/CW・UX-MF60CL/CW・UX-MF25CL/CW):シャープ http://www.sharp.co.jp/support/mirakuru/qa_mf06/mf06q4006.html

が、しかし諦めきれないのでもうちょっと調べてみると下のサイト様の記事を発見

◇参考記事:HARP 見楽るUX-MF60ネタ
◇関連:【SHARP】シャープのプリンタ総合スレ【見楽る】

どうやら、UX-MF70/80に付属の「録音データ変換ツール」を使えば変換できそうな事がわかる。しかしソフトはUX-MF70/80に付属のソフトのようなので入手出来るのだろうか?UX-MF25CWのデータを変換出来るのだろうか?という疑問はあるもののシャープ殿のホームページを見てみると置いてあった。

◇ファクシミリ複合機(見楽るプリント)|ダウンロードサービス:シャープ

一応ソフトウェア使用許諾契約書を読んでみましたが、特に他機種で使っちゃだめだよという記述はないようなので(もちろん動作する保証も有りませんけど)、とりあえずインストールして試してみることにしました。

20100218
(クリックで大きな画像)

FFFTPで.VOIと.TXTの拡張子のファイルをセットでダウンロードして録音データ変換ツールでデータのあるフォルダを指定して、再生したいデータにチェックを入れて[再生]ボタンを押すとWindows Media Playerが起動してちゃんと再生されました。

なぜかうちの環境だと[変換]はうまくいかなくてソフトが落ちてしまいます。

しかし、Windows Media Player(以降WMP)が起動して再生したということは、どこかに変換したファイルが有ってそれを読み込んで再生しているのだろうと思ったので、WMPのファイルの履歴を見てみると

C:\Program Files\Sharp\MIRAKURU V24 Tool\temp

に変換後のデータが下のような感じで格納されていることがわかりました。

20100221

そういうわけで[変換]使えない場合でも[再生]が出来ればwav形式に変換されたデータが取得出来ました。

 

◆関連記事:ファクシミリ複合機(見楽るプリント)UX-MF25CWをLAN接続してみる。その1 – KUMA TYPE

◆関連記事:ファクシミリ複合機(見楽るプリント)UX-MF25CWをLAN接続してみる。その2 – KUMA TYPE

タグ :

【映画】PERFECT BLUE|無料動画 GyaO! | アニメ[ギャオ]の感想

パーフェクトブルー』(PERFECT BLUE)は、1998年の日本のアニメ映画。国内でのレイティングはR-15指定(その他のほとんどの国では18禁)。

◇引用元:パーフェクトブルー – Wikipedia

◇PERFECT BLUE|無料動画 GyaO![ギャオ]|アニメ

YouTube – PERFECT BLUE 予告編

故 今敏(こん さとし)監督の『パーフェクトブルー』をGyaOで視聴。ジャンルはホラーサスペンス。歌を唄いたくて上京しアイドルになったハズのヒロイン未麻は事務所方針でアイドルグループから卒業して女優に転身することになる。本心はアイドルのままでいたいが事務所方針のため周りに迷惑を掛けられないと考えアイドル時代では考えられなかったセリフの少ないチョイ役・汚れ役やヌード撮影など屈辱的な思いに耐えながら頑張るが、元居たアイドルグループが人気が出だしたり自分の置かれている状況を考えてたり自分の周りで起こる不可解な事象で徐々に精神的に追い込まれていく。そして事件は起こる。

この映画を観るのは何度目になるだろうか。最初に見たのは2000年前後に菅馬場にあるゲオでレンタルしたビデオだったと思う。当時はよくレンタルビデオを利用していて、適当にパッケージをみて借りたりしていた。『パーフェクトブルー』は誰かに勧められたのか適当に借りたのかは忘れたが、適当に借りているとハズレの映画も多かったのでこの作品を観て面白かった(アタリ)という感想を持っていたのは覚えている。かなり衝撃的だった。当然過去に観て面白かったからまた改めて観たわけであるが残念なのは結末を知っていること、結末を知っていて細かい部分は忘れているという状況で見てもラストはかなり衝撃的で見ていてハラハラするし息を飲む。初見ならかなり面白いはずだ。観た記憶が消せるなら記憶を消してから観たい。

私は所謂にわかなので最近まで今敏監督の事を意識して氏の作品を見たことは無かった。しかし『妄想代理人』を観た時にすぐに『パーフェクトブルー』の事を思い浮かべた。「雰囲気が似てる」と思った。『パプリカ』の予告編を見た時も同じことを思った。それだけユニークな世界観を作り上げているのだと思う。今敏監督の作品は現実と妄想と夢の区別が分からなくなるような演出がよく使われる。作品の中に出てくる主人公もそして作品を観ている視聴者もそれに惑わされる。

観たことない方は少ないかもしれないけど観てない方は是非視聴することをお勧めする。

映画の最後に「この映画を故 尾形治敏氏に捧ぐ」とあるのが感慨深い。

『妄想代理人』を観てあまり面白いと思わなかったという記憶があるのだが、もう一度観て何故そう思ったのかいま観ても同じ評価なのか自分の中での評価を再確認してみたい。最初は面白かったけれど後の方になると面白くなくなってきたような感じだったと思うのだけれどもどうだったかな。OPは結構好きだった。

YouTube – 妄想代理人 映像特典 ノンクレジットオープニング 2

『老人Z』にもどこか同じ臭いがするなーと思っていたが、wikipediaを見ると原画や美術設定で参加されている様だ。それが関係しているのかはわからないが。

#実は『パプリカ』等の他の代表作は(懐が寒いので)未だに観ていなかったりする。

◇今敏 – Wikipedia
◇PERFECT BLUE -A SATOSHI KON FILM-

◇妄想想代理人 – Wikipedia
◇今 敏 オフィシャル・サイト – KON’S TONE

◆関連記事:アニメ「パプリカ」米アカデミー賞候補に – KUMA TYPE

タグ : ,

【VPS】月額980円で高速快適! 「さくらのVPS」を試用してみた -INTERNET Watch

INTERNET Watchでも『さくらのVPS』が記事になっていました。面白かったので興味のある方これからさくらのVPSを借りようと思っている方は読んでみるといいかと思います。あわせて2ちゃんねるのスレッドも読んで置くとちょうどスレッドで疑問に思われていることに対して質問して答えてる感じになってたりして面白いです。

月額980円で高速快適! 「さくらのVPS」を試用してみた -INTERNET Watch

さくらインターネットがVPSに参入、月額980円の「さくらのVPS」開始 -INTERNET Watch

さくらインターネット VPSスレ Part1

【サポートは】国内VPSスレ 3【日本語】

さくらのVPS|VPS(仮想専用サーバ)はさくらインターネット

タグ : ,

iptablesは必要か?

2ちゃんねるでVPS関連のスレッドを眺めていると『iptablesって設定する必要あるのか?』という書き込みを割と見かけます。

iptablesというのはLinux系のOSで使われているパケットフィルタリングソフトウェアのことでFreeBSDだとipfwがこれにあたります。パケットフィルタリングソフトウェアの事をもっと一般的にわかり易い言葉で言えばファイアウォールソフトのことになると思います。

僕も専門家ではないので、絶対の自信を持っていう訳ではありませんが、ルーターを介さないでインターネットの直繋ぎをしているパソコンでファイアウォールソフトを導入しないというのがいかに危険かということを考えると、Linuxサーバも同様と考えられiptablesを設定しないことがいかに危険かというのが想像に難しくないかと思います。

また、クラッキングを行うクラッカー側にしてみるとiptablesを設定していないサーバはセキュリティのゆるいサーバとみなされ攻撃対象に可能性が有ります。最近のそういう業界の攻撃方法がどうなっているのかはわかりませんが、人が手動でクラッキングを行う場合、まずポートスキャンで攻撃対象となるサーバで開きっぱなしのポートをスキャンするわけです。でiptablesの設定されていないおっぴろげなサーバだとセキュリティがゆるいサーバだと思われて、詳しく調べられるということになる可能性があるわけです。逆にiptablesがしっかり設定してあるとセキュリティ意識が強いサーバと思われクラッカーにしてみれば面倒くさいということになりそこで諦める可能性があるわけです。

実際、自分がクラッキングを行うと考えたときに効率よくセキュリティのゆるいサーバを探すにはやっぱり、自動で沢山のサーバをポートスキャンしまくって切り分けると思うのです。

下の記事で紹介している掛川警察署の防犯の歌にあるように、泥棒は家の周りに砂利がひいてあったり、人が近寄ると光ランプが付けてある家とかセキュリティ意識の強い家は狙われにくいのと同じ原理です。

【音量注意】掛川警察署:アルファルファモザイク – KUMA TYPE

それに、自分がインストールしたソフトが勝手に外向けにサーバとして動作してセキュリティホールになる場合も有ります。脆弱性は別としてsnmpなんかも、MRTG使うためにインストールしたけど程度の認識でインストールする人も割といるのではないかと思います。MySQLやPostgreSQL等のデータベースもそうです。自分で全てのインストールされているソフトウェアとその利用ポートが把握できないのであればiptablesは設定したほうがいいということになります。

最初の設定は面倒ですが、一度設定してしまえばあとは必要なポートさえ開ければいいので、全てのソフトの挙動を把握するより管理は楽になると思います。

とはいっても、乗っ取られるときは乗っ取られてしまうのがサーバです。『XML-RPC for PHP』及び『PEAR』の脆弱性の時にはそれが原因でサーバを乗っ取られた人も結構いるのではないかと思います。自分だけで管理利用しているだけのサーバならまだしも多人数で利用している場合XML-RPCの脆弱性はサーバ管理者に関係なくインストールされているわけで深刻です。このころはXML-RPCをコールしているプログラムを探す為のアクセスが結構ログに残っていました。RedHat 8の頃にbindの脆弱性があったともいます。あの時もこれが原因で乗っ取られたサーバがあったのではないかと思います。webminにも過去にサーバを乗っ取られる脆弱性があったと思います。ちゃんと管理していても運が悪いと対策する前に乗っ取られる時は乗っ取られます。クラッカーの攻撃は実際ハンパないです。iptablesでDROPしないと過去にセキュリティホールとなった様々なポートへの膨大なアクセスがログを圧迫します。

最近の低価格なVPSを借りようという方は主に個人で借りて個人利用の方が多いと思うので、出来れば固定IPにして外部に公開する必要のあるポート以外は自分のIPアドレスからしかアクセスできないようにするのが効果的だと思います。(固定IPじゃなくても自分のプロバイダのアドレス範囲に絞るなど)

乗っ取られた時用に侵入を検知する為にIDSやrkhunterやchkrootkit等のインストールもしたほうがいいと思います。

まあ、乗っ取られていても簡単にOSの再インストールが出来るのがVPSのいいところでもあるとは思います。

VPSでこじんまりやるサーバだと基本的に海外からのアクセスは関係ない人も結構いると思います。攻撃してくる海外からのアクセスをアドレス範囲ごとブロックしたり、アタックを受けたときにiptablesのレベルでパケットフィルタリングして防ぐと色々楽でサーバにも優しいなど色々便利な点があると思います。

タグ : , ,

 
© KUMA TYPE