KUMA TYPE

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

別方式で無料動画GyaO!のアンテナサイト作った

下の記事で作った無料動画GyaO!のアンテナサイトですが、個人的にはわりと宝して使っているのですが、気になる部分もあったので別方式で再度アンテナサイト作ってみました。

無料動画GyaO!のアンテナサイト作ったよ – KUMA TYPE

「私的GyaO触角」はGyaOから購読しているRSSからの情報を利用してアンテナサイトを構築していますが、その為にいくつか問題点がありました。問題点を以下に列挙します。

  • タイトル文字列が長いと「○○○…」と省略形になってしまい番組名が正確にわからないことがある。
    20110834
  • GyaO!から配信されているRSSは30件分なので更新数が30件を超えるとRSSに収まりきらずすべての情報を取得することができない。
  • 題名に番組名が含まれていない動画はなんの動画が判断できなくなる。
    題名に番組名が含まれる例:20110836
    題名に番組名が含まれない例:
    20110835

そういうわけで、 「私的GyaO触角弐式」を作成しました。今回はRSSからではなく更新されたページをスクレイピングしてRSSより詳細な情報を取得して表示するようになっています。一応「私的GyaO触角」で挙げた問題点はすべてクリアしてあります。RSSから情報を取得するよりサーバーに優しくないですが一応キャッシュをしたりスリープをアクセス毎に入れたりアクセスするページは更新に関係あるページに限るなど負荷を掛けないようにかなり考慮しています。
20110837

私的GyaO触角弐式 – 新着

名前は厨二っぽく「弐式」とか付けてみました。苦笑いしてくださいw。

古いアンテナの方にも常に30件表示されるので過去の情報も表示されるので見通しが良い、表示がシンプルなどの利点はあるのでそのまま残してあります。好みに合わせて使い分けるといいと思います。通常はシンプルな旧アンテナをみて、更新が30件以上ある場合や番組目が見たい時などは新アンテナの方を見るといいかなと思っています。弐式の方は取得した情報をデータベースに格納するようになっているので、過去の情報も表示しようと思えば出来るのですが今後検討したいと思います。今日は土曜日ですが、土曜日はアニメの更新がなくて「更新なし」と現在は表示していますが、やっぱりちょと殺風景過ぎるなとは思っています。やっぱり前日分とかを表示したほうが見ていておもしろいかも知れないですね。

あと、DBに蓄積した過去の情報も検索できるようにしようかとは思っています。たまにGyaO!で特定の作品が配信されたことがあるか検索することもあるのでそこにリンクできるようにすれば便利かなと思ったりします。

[up][new][info]のアイコンについて
[up]はGyaO!(ギャオ)のその日更新があった作品の中で更新情報で[up]表示されているものを示します。

[new]は[up]の付いている作品の中でその日に更新されたものを表します。

[info]はマウスを乗せると作品の情報としてあらすじやキャストやスタッフの情報をチップで表示します。

タグ : ,

【perlメモ】CGI::Simple 1.113が出ています。【セキュリティ】

セキュリティ修正されたCGI::Simple 1.113がリリースされています。2010年12月07日にセキュリティホール memoさんで紹介されていたセキュリティホールに対応したものだと思われます。

セキュリティホール memoさんの記事を見てからリリースされるのを待っていたのですが、2010年12月27日にリリースされていたようです。私は早速アップデートしました。

サーバー管理している人や個人でCGI::Simpleモジュールを共用レンタルサーバなどにインストールしたりしている人はアップデートしておいた方がいいでしょう。


関連リンク

タグ : ,

【perlメモ】flockの使い方

flockはファイルの排他制御を行ってファイルが同時に書き込みアクセスされることによって破損するのを防ぐのに利用する関数です。割とよく使うのですが、一連の処理が割とうろ覚えになるのでメモっておきます。

flockを利用した一連の処理の流れとしては下のような感じ。

  1. ファイルのopen
  2. flockで排他制御
  3. seekでファイルのシーク位置をファイルの先頭に移動
  4. ファイルに書き込み
  5. truncateでファイルのサイズを変更。tellは現在のファイル位置(つまり現在のファイルサイズ)を返す。
  6. ファイルのclose

flock(FILE,8)でファイルのロックを解除しないのはcloseすると自動で解除されるからです。flock(FILE,8)で解除してからcloseすると、ファイルをcloseする前に排他制御が解除されて隙が生まれるため、flock(FILE,8)とclose(FILE)の間に他のアクセスがあった場合ファイルが破損する可能性が出てくるためclose(FILE)で自動で解除してもらうほうがファイルの破損の可能性が低くなります。
sample.pl

#!/usr/bin/perl
use strict;
use warnings;

open(FILE,"test.txt") || die $!;
flock(FILE,2);
seek(FILE,0,0);
print FILE "abcdefg\n";
truncate(FILE,tell(FILE));
close(FILE);

 

ちょっとデバッグログを出力したい時の為の簡単なサンプル。(最大1000行までデバッグログを保存するという仕様の場合。)
Windows上のperlで利用するのを前提に最後の行はcp932になっているが、他の文字コードで標準出力したい場合は他の文字コードを指定すればOK。デバッグログにはutf-8で出力。モジュールを使うまでもないちょっとしたデバッグ時に使っている。

sample2.pl(utf-8)

#!/usr/bin/perl
use strict;
use warnings;
use utf8;

my $dbglog = ‘deblog.txt’;

#デバッグログファイルが無いときは作る
unless( -e "$dbglog"){
    open(FILE,">$dbglog") || die $!;
    close(FLIE);
}

&debug_print("abcdefg\n");

#====================================================================
#   &debug_print( str );
#====================================================================
sub debug_print{
    open(FILE,"+<:utf8","$dbglog") || die $!;
    flock(FILE,2);

    my $str = decode_utf8($_[0]);

    my @dbglog = <FILE>;
    push(@dbglog,$str);

    while(scalar(@dbglog) > 1000){
        shift(@dbglog);
    }

    seek(FILE,0,0);
    foreach(@dbglog){
        print FILE $_;
    }

    truncate(FILE,tell(FILE));
    close(FILE);

    print encode(‘cp932’,$str);
}

タグ : , , ,

安いネットブックを探してみた。

ベッドに入って寝ながらGyaOとか見たいなーと思ってたのでちょっとネットブックがほしい。安いネットブックをAmazonで見ていたら価格だけで安いなーと思ったのは下の3機種、どれもアマゾンのネットブックの売れ筋ランキングでも5位以内に入っている。値段も3万円未満。性能的にもちょっと比較してみたが、基本的にはほぼ同じ。Leveno IdeaPad S10-3はCPUがIntel Atom N455で他の二つはIntel Atom N450違いはN455のほうがDDR3メモリーに対応しているのでパフォーマンスが上がるかも知れない程度。Windows XP搭載機がよければ「MSI Wind  U135-1429JPA」か「ASUS EPC1001PX-WHM」になる。


Lenovo IdeaPad S10-3シリーズ 10.1型TFT液晶 ネットブック 0647AQJ

Lenovo IdeaPad S10-3シリーズ 10.1型TFT液晶 ネットブック 0647AQJ
Lenovo IdeaPad S10-3シリーズ 10.1型TFT液晶 ネットブック 0647AQJ

amazonでLeveno IdeaPad S10-3のスペック表を見ると結構いい加減。嘘も多いのでちゃんと、下記のメーカーのページにいってスペック表を見たほうが良い。

(続きを読む)

タグ :

ワサビの香りが花粉症に効果があるらしい?

ワサビ関連製品メーカーの金印は、本ワサビの香り成分に花粉症の症状を緩和する作用があることを、花粉症患者への臨床実験で確認したと発表した。実際に香り成分をかぐことで、鼻詰まりなどの症状に改善効果がみられた。

ワサビの香りが花粉症に効果! | ライフ:最新ニュース | nikkei BPnet 〈日経BPネット〉

ということは下のワサビスプレーが付いたマスクなどは効果があるということだろうか?

下のブログの記事の様に、『若者のワサビ離れ(笑)』が進んでいるらしいし、ワサビメーカーも色々と新しい活路を見出そうと必死なのだろう。

痛ニュー速報!: 【社会】「寿司はサビ抜きで」 若者のワサビ離れが進んでいる 「辛み」「苦み」を敬遠、好みは「マイルド」、成熟せず成長か

まあ、もう何年も寿司などたべていないが、やっぱり寿司も刺身もわさびがあったほうがうまいと思う。

なんか納豆を食べると血がサラサラになるとかの時と同じように眉唾な気もしなくもないが、花粉症で困っている人は一度試してみるといいかもしれない。プラシーボでも効果があればラッキーだし。

わさび抽出精油を配合したスプレーが付いているマスクです。風邪・花粉の季節にご使用ください。わさびPOWERのカゼ・花粉用マスク わさび抽出精油を配合したスプレーが付いているマスクです。風邪…
ユーペットギャラリー
by rakutool

こういうマスクに貼り付けるタイプもあるらしい。

花粉症は今花粉症ではなくてもずっと身体に少しずつ蓄積されいていつか限界になりコップから水があふれるように突然花粉症を発症すると何かで聞いたことがあるので、その時に備えて一応知識として覚えておこうと思う。

タグ :

早く正月おわらないかな~

隣の神社の初詣客がならす鈴がうるさくてかなわない。マジで寝られないレベル。年明けはひどかった。耳栓買っとくんだった。

タグ :

高速軽量化されたFirefoxクローン『Pale Moon』をインストールしてみた。

GIGAZINEの記事をみてPale Moonを早速インストールしてみることにした。GIGAZINEの記事を見るとFirefoxをWindows専用にチューンしたものでレンダリングなどもオリジナルのFirefoxよりも高速らしい。消費メモリーも少ないらしい。最近はGoogle ChromeをメインブラウザにしているのでFirefoxはFirefox+Sage++でRSSリーダーと化しているがこれは使わない手は無いだろう。

Windowsのみに最適化することで高速化しているFirefoxクローン「Pale Moon」 – GIGAZINE

Firefoxと完全互換の高速起動が可能な軽量ブラウザ「Pale Moon」 | フリーソフト,Windows PC活用情報局


インストール方法

Windows 2000以降に対応しているようだ。

The Pale Moon Project homepage

上記ページでメニューからDownload>PaleMoonと進む。

20100773

ダウンロードページに進んだら適当なダウンロードサイトからインストーラーをダウンロードする。私はおすすめ(RECOMMENDED)になっているSity Hostingからダウンロードしてみた。

20100775 
2011年1月2日現在だとpalemoon-3.6.13-installer.exeというファイルがダウンロードされるのでこれを実行する。

20100774

XPの場合セキュリティー警告の画面が出るが[実行]をクリック。

20100779

解凍中の画面が表示されるのでしばらく待つ。

20100780

「Welcome to the Pale Moon Setup Wizard」の画面で[Next]をクリック。

20100781

Setup Typeの画面では無難に[Standard] を選択して[Next]をクリック。

20100782

Summaryの画面では通常はそのまま[Install]をクリック。

もしも、インストールパスを変更する場合は戻ってSetup Typeを[custom]にしてインストールをするとインストール先を指定できる。

デフォルトのブラウザーにしたくない場合は[Use Palemoon as my default web browser]のチェックを外す。

20100784

インストール中の画面になるのでしばらく待つ。

 20100785

インストール完了の画面[Finish] をクリックしてインストール完了。

20100786

初回起動時の画面

20100787


日本語化

日本語化するには日本語ランゲージパックを導入する。

The Pale Moon Project homepage

Pale MoonのサイトのトップページのメニューからDownload>Pale Moon language packsと選択してランゲージパックのダウンロードページに進む。

20100788

「ja.xpi: Japanese」をクリックしてダウンロード

20100789

Pale Moon自体でランゲージパックのページを表示してランゲージパックのダウンロードを行なうと簡単。下のように確認画面が出るので[Allow]をクリックする。

20100796 

補足:ランゲージパックを別ブラウザでダウンロードした場合は、ダウンロードしたja.xpiをPale Moonの画面上にドラッグドロップしてあげれば同じようにアドオンのインストール画面になる。

20100791

アドオンのインストール画面になるので[Install Now]をクリックする。

20100795

インストール中画面になるのでちょっとまつ

20100797

Palemoonの再起動確認が表示されるので[Restart Palemoon]をクリックする。

20100798

タブとか開いてるけどリスタートしていいか聞かれるので[Restart]をクリック。

20100799

インストール完了した旨が表示されるので[×]をクリックして閉じる。

20100800

日本語表示になるようにPale Moonの設定を変更する。

アドレス欄に[about:config]と入力。
Filter欄に[general.useragent.locale]と入力して絞り込む。
[general.useragent.locale]をダブルクリックする。

20100803

入力画面が表示される。初期値は「en-US」になっている。

20100804

「ja」と書き換えて[OK]をクリック。

20100805

Pale Moonを一旦終了する。終了時の確認メッセージが既に日本語になっている。

20100806

再度Pale Moonを起動してみるとメニューなどが日本語になっている。これで日本語化は完了。

20100807


Firefoxの設定を取り込む

Firefoxを既に導入している場合、今まで使っていたアドオンやお気に入りなどがあると思うが、それをPale Moonにコピーするには以下のページからツールをダウンロードして利用しFirefoxのprofileをPale Moonに取り込む。

Pale Moon –

ダウンロードしたpmmig.exeを実行する。

20100809

セキュリティー警告画面ではそのまま[実行]をクリック。

20100810

Pale Moonが起動中だと下の警告画面が出るので、Pale Moonを終了してから[OK]をクリックする。

20100811

「Pale Moon profile migration tool」の画面が表示されたら[Copy profile]をクリック。

20100812

Pale Moon Profile 上書きしちゃうけどほんとにいいですか?といった感じの確認画面が表示されるのでよければ[OK]をクリック。

20100813

Statusが「Copying.please wait…」になるのでしばらく待つ。

20100814

途中下の画面が表示された。「時間掛かるかも知れないんで、End押すと止まるしContinue押すと続けるよ」みたいな意味だと思うが、そのまま放置すれば勝手に進む。

20100815

Statusが「Completed.」になればOK。[Exit]をクリックして完了。

20100817

Pale Moonを起動してみるとFirefoxで利用していたアドオンやお気に入りなどprofileが全て取り込まれた。

20100820

注意点として、Firefoxのprofileを取り込むとPale Moonのprofileが上書きされるので先に日本語化を行なうとprofileの取り込みによって無効化されてしまうのでまたメニューなどが英語に戻ってしまう。その場合は再度日本語化の手順を行なう。

 

とりあえずよさそう(軽くなった様な気もする)なのでしばらく使って様子を見ようと思います。

#ちなみにFirefoxを火狐と書くのは厨二病っぽくて嫌いですw。だいたいどう考えても入力もFirefoxと英文字で打ったほうが早いしわざわざ火狐と書く意味がわからない。厨二としか思えない。

(続きを読む)

タグ : , ,

【SQLiteメモ】小数点以下を取得するには

Ajaxの勉強がてらに投票プログラムを作ってみた。 – KUMA TYPE

上記で配布している投票プログラムで作成されたデータベースで評価の平均点を求めようと思う場合。

    テーブル名:TBL_VOTE
1 entry_id   INTEGER UNIQUE 記事ID
2 vote_num   INTEGER        投票回数
3 totalpoint INTEGER        総合点数

テーブルも構造は上の様になっている。

select totalpoint/vote_num, vote_num,totalpoint FROM TBL_VOTE ORDER BY totalpoint/vote_num desc

そして評価平均を求めるために、総合点数÷投票回数という単純な計算で値を求めようとして上のようなSQLを書いて実行してみると

20100770 
上記の様になるが、赤枠で囲ったところなどを注目すると分かるように、17/4、9/2など明らかに割り切れない値でも小数点以下が取得出来ていない。これはデータの型がINTEGERで整数型として定義されているためなのでcastで型をREAL型に変更する必要がある。

select cast(totalpoint as REAL)/vote_num, vote_num,totalpoint FROM TBL_VOTE ORDER BY cast(totalpoint as REAL)/vote_num desc

castの使い方はcast(カラム名 as 型名)となる。

実際にcastを適用したSQL文が上。

20100771
castを使用した結果小数点以下も取得できるようになった。さらに、小数点以下を四捨五入して必要な桁数分取得するにはround関数を利用する。

round関数の使い方はround(カラム名[,小数点以下の桁数])

select round(cast(totalpoint as REAL)/vote_num,2), vote_num,totalpoint FROM TBL_VOTE ORDER BY cast(totalpoint as REAL)/vote_num desc

round関数を適用したSQL文が上。

20100772

結果は上のとおり小数点2桁まで求められるようになった。

タグ :

2011年 謹賀新年

061029_1122~0001

明けましておめでとうございます。今年も宜しくお願いいたします。

今年は人並みに働いて忙しい年にしたいと思っています。

タグ :

オールクーポンAPIを使ってグルメ関連のクーポン販売情報を取得するプログラムを作成してみた。

グルメ オールクーポン グルーポン 共同購入 クーポン販売情報 – グルメルク

20100767

オールクーポンAPIを使ってグルメ関連のクーポン情報を取得するプログラムを作成してみた。グルーポンAPIよりXMLの出来とAPIの性能が良いのでプログラムの作成は格段に楽だった。APIで飲食のみのクーポン情報を絞り込んで取得できるのでベイジアンフィルタを使って選別する必要も無い。ただ何故か取得したXML中にキャラクタコード0x02が紛れ込んでいてXML解析モジュールが落ちたりすることがあったのであらかじめ0x02を取り除いたりする必要があった。データの信頼度がいまいちの様だ。XMLが素直な作りをしているのでXML::Simpleモジュールで普通にパースできて楽だった。グルーポンAPIはXML::Simpleのオプションで「ForceArray => 1」を指定してやらないとデータを取得するのが難しい。


関連記事


参考リンク

タグ :

 
© KUMA TYPE