Home / Diary / 2008年5月のログ

目次

  1. スクリプト色々更新
  2. ねんがんの PV4をてにいれたぞ!
  3. OperaのFile I/Oを試す
  4. base64をもっと手軽にエンコード/デコードしたい
  5. OperaでもStylish
  6. Pragger用プラグインを追加・更新
  7. 時間切れ

スクリプト色々更新

No More Scripts

大幅に修正。セカンドレベルドメインにも対応したので、ブロック指定が楽になった。

基本的に外部参照ファイルをブロックしているわけだが、NoScript同様、メニューを開くだけでそのサイトがどれだけ外部参照コンテンツ、というか広告の類を貼りまくっているかが一目瞭然なので・・・

おびただしい がいぶドメインのかずかず

こーいったサイトが多いからこそ、このようなスクリプトが必要になる。

Pragger

自作したPragger用プラグイン

elem_cacheは無かったことに。ラジオ新着関係を全部修正。ニコニコ動画検索も修正。クラブニンテンドーの未回答アンケートもファミコン探偵倶楽部を遊んだのでようやく対応。

そういや、Praggerをレンタルサーバー上で動かしているんだが、一部のプラグインの動作が、ssh上で実行した時とcron経由で実行した時とローカルで実行した時の動作が違ってしまって非常に困る。というかcron。明らかに入っているはずのプラグインがnot foundだったりわけわからん。

そもそも、ローカルのコマンドライン上で実行しているのがイレギュラーだから、サーバー上で動かしてみるべきなのか?

js-markdown-extra

リンクの参照スタイル使用時にtitleを省略か空白にしていると正しく変換されなかったのを指摘して頂いたので修正。ありがとうございます。

Info

2008
0531

Tagsjavascriptoperarubyuserjs

ねんがんの PV4をてにいれたぞ!

ようやくコンポジやS端子ともお別れです。今までありがとう。

購入の動機

キングスフィールドのタイムアタックを始め、色々ゲームの動画をキャプチャしてきたが、その大半がコンポジかS端子で画質的にはズコー。

自分の記録はできるだけ高画質で残したい。という思いもあったが、購入資金やら何やらで手を出せなかったところ、どこぞで安売りしていたのをきっかけに購入に踏み切ることにした。

PV4以外に必要なもの

映像

D端子ケーブルをPV4に繋げば映像は出る。が、基本的にキャプチャボードを経由すると遅延が発生する。さらにWindowsの画面=液晶でプレビューするとなると遅延が倍に。

こうなると実際にプレイしている画面をキャプチャするのはかなり難しくなる。内容がアドベンチャーなどのアクション要素皆無なゲームなら別だが、そうでないなら40~100ms(液晶にもよる)の遅延はかなり致命的。

そこで分配器の出番となる。入力したD端子の映像を2つ同時に出力してもらって、片方をPV4、もう片方をプレイ用のモニタに繋げることで遅延は解消される。

分配器はSonyのSB-RX300Dにすることにした。4入力3出力をリモコンで操作できるので複数ゲーム機を繋ぐ場合に必要となるセレクタが不要になる。

同時に、分配器からPV4とモニタへ繋ぐためのD端子ケーブルも忘れないようにする。

SONY SB-RX300D AVセレクター D端子対応

PLANEX D端子オーディオプラグ付き ビデオオーディオケーブル 1m PL-DTAP01

音声

PV4の音声入力は光デジタルなので、赤白のアナログ音声をデジタル音声に変換(A/D変換)する必要がある。高級サウンドカード(1万円クラス)になるとA/D変換が備わっていることが多い。

実際に接続するには

  1. サウンドカードのLine-inに赤白をアダプタ(後述)経由で刺す
  2. サウンドカードの光出力に光デジタル用ケーブルを刺す
  3. そのケーブルをPV4の光入力端子に刺す

あとは専用のソフトウェアから「Line-inを光出力する」といった類のオプションを入れればよい。

とにかく安く変換したかったので、玄人志向から出ているENVY24HTS-PCIを購入した。2500円前後と非常に安価ながらもA/D変換機能を有している。同時に、赤白をサウンドカードのLine-inに刺すためのアダプタも購入。こっちも安い。

玄人志向 ENVY24HTS-PCI サウンドカード

バッファローコクヨサプライArvel MAD212MP2 変換アダプタ ステレオミニプラグ ピンジャッ MAD212MP2

周辺機器合計

機器 購入価格
SB-RX300D 13000
D端子ケーブルx2 4000
ENVY24HTS-PCI 2500
変換アダプタ 800
合計 20200

なんと、PV4より高くついてしまった。これで済んだからいいものの、人によってはHDD増設、スペックが足りないためにマザーボードから買い替え、エンコード高速化のためにクアッドコアを・・・となると一体いくらかかるのやら。

実際にキャプチャする

機器及びケーブルを全て繋いでゲーム機を起動、PV4に画面が写ったのを確認したらおもむろに録画。とりあえず3時間ぐらい録画して、音ズレが発生していないか、ノイズがひどくないかを確認する。

D1(16:9)で3時間録画したところファイル容量は40GB程度になった。ソフトウェアエンコード時に悩まされた、音声が徐々に遅延するといったこともなく無事にキャプチャ完了。

XBOX360でD3の1920×1080にも挑戦したが、マザーボードがそこまで古くなかったおかげか、こちらも問題なくキャプチャすることができた。

さらに、オーバーレイを切った状態で録画してもCPU負荷が小さいので他で色々できるのも嬉しい。

その他調整

音量

デフォルトではENVY24HTS-PCIに入力した音量が割れるほどでかかったので、下の画像ぐらいにまで録音音量を落としたら丁度いい音量になった。

ENVY24HTS-PCIの録音音量調節目安

というか、最初壊れてるのかと思った。物が物だけに。。

セレクタによる画質変化

微妙に変わるらしい。直接接続と比較してみたが、ほとんど変わらなかった。対策されたロットなのか?

問題

ゲーム機からの映像を分配して、録画とモニターを行うわけだが、分配された映像の規格はゲーム機の出力とおなじになる。片方をD1、もう片方をD2などといった出力は不可能だ。

これが何を意味するかというと、我が家にはモニター用として25インチブラウン管しかない上に、このブラウン管がD1までしか対応していないので、必然的にゲームをキャプチャする場合はモニタに合わせなければならなくなる。

4万円前後で24インチフルHDの液晶が手に入るようにはなったが、自分がキャプチャするのはカドゥケウスを始めアクションゲームが多いので、液晶は遅延がひどすぎてキャプチャ時のモニターとしては使えない。

ならばワイドで大きいブラウン管を買えば良いと思うが、プログレッシブ対応のブラウン管にした日には消費電力が急増して停電一歩手前になってしまうというジレンマも抱えている。ってか、そもそもブラウン管自体が既に店頭から姿を消していて、残っているのはオークション上に流れる使用年数が全く分からない地雷ばかり。

唯一の希望が応答速度と発色がブラウン管並みの有機ELだが、普及するのが2012年あたりと言われている。それまでにブラウン管が壊れたら・・・

Info

2008
0530

Tagsgamepc

OperaのFile I/Oを試す

File I/Oとは?

JavaScriptからローカルファイルにアクセスするためのインターフェース。そのFile I/Oが実装されたテストバージョンが遂にリリースされてプチ祭り状態。

んが、変態さん達が熱心なユーザーがこぞって試すとおもっていたのに、そーいった話が全然出てこなかったので、せっかくだからOperaUserJavaScriptManagerを移植できるかどうかを仕様書を斜め読みしながら試みた。

ローカルファイルへのアクセス

セキュリティがガチガチ・・・というか非常に安全に作られている。

まず、任意のディレクトリやファイルにパス決め打ちでアクセスすることができない。アクセスするには、必ずフォルダ選択ダイアログかファイル選択ダイアログを用いた場合のみアクセスできるようになる。

また、そのダイアログ表示も100個ぐらい並べられると立派なブラクラなので、mouseup、mousedown、click等のイベント内でしか動作しない。

つまり、ユーザーの意思の上でしかアクセスすることができないようになっている。

特殊な領域

それでは不便なので、applicationとstorageという領域が確保されている。

applicationはいわゆるWidgetの中身、config.xmlやらindex.htmlやらが置いてあるフォルダのこと。ここにはRead-onlyでアクセスできる。

storageはWidget専用の領域で、ここでは自由にファイルの読み書きが可能になっている。

両方に共通していることとして、ファイルやフォルダの検索を行えないことが挙げられる。つまり、storageに好きなだけファイルを放り込んでもいいけど、ファイル一覧は自分で管理しなければならない。

まあ、妙なスクリプトを実行させられてstorage内のファイルを荒らされないように・・・ということなのだろう。

User JavaScript Manager on Opera

んで、軽く移植して感じたところ、Win版との違いは以下のとおり。

んー・・・微妙。唯一のメリットが「Operaと一緒に起動してくれる」というのがにんともかんとも。

ただ、作る側としてはWindowsより圧倒的にGUIを弄りやすいという点が嬉しい。

実際に作成したWidget

Opera announces specification for File I/O access in widgetsにあるインストーラーを使用したOperaでのみ使用可能。

userjsmanager.wgt

実際に動くとこなかじ。Widgetを起動したら、左下の「load scripts」から現在UserJavaScriptを入れているフォルダを選択する。

これでstorageに全てコピーされるので、後はブラウザの設定でUserJavaScriptのフォルダをstorageに変えるだけ。storageのフォルダは以下に存在する。

C:\Documents and Settings\[Windows ユーザー名]\Application Data\Opera\Opera 9.5\profile\widgets\[数字の羅列]\storage

Widgetからは、meta情報の表示、有効/無効の切り替え、アップデートのチェックのみが可能。機能が中途半端なのは、「これ、実際に使えるようになるのは数ヶ月先なんだよな・・・」という現実に気づいたから。

仕様も確定したわけじゃないので変更が入るだろうし、とりあえず触りだけ、ということで。

なお、上記リンクにもあるとおり、「実験的なバージョンだから何が起きても知らねーからな!」ということなので、そこらへんの覚悟ができている方のみインストールしていただきたい。

Info

SBM Comments

edvakf
別profileのOperaを特定WebApp専用クライアントに、決定版。最後の高速化など、細部まで詰められてる。AutoHotKeyはMacに無いのが残念。独自プロトコル感動した。はてなスター2008個。これをOpera@USBにして配布できないかな?
asiamoth2008
0520

Tagsoperauserjs

base64をもっと手軽にエンコード/デコードしたい

以前AutoHotKeyで作ったのはバイナリファイルをbase64エンコードするだけでデコードはブラウザにまかせていたが、CSSの背景画像等に積極的にbase64を利用するようになってきたので、エンコードだけじゃ不便になった。

そこで、エンコードとデコードを手軽に行えるものをRubyで作ってみようじゃあないか、と思ってできたのがこれ。

標準のpackメソッド一発で変換できるので、あっという間に完成した。

実行ファイルに適当なファイルをD&Dするとbase64でエンコードしたテキストをクリップボードに格納する。

実行ファイルに何も渡さずに実行すると、クリップボードの中身をbase64テキストだと判断してデコード。バイナリファイルとして保存する。ファイル名はMD5ハッシュで決定。

Info

2008
0514

Tagsruby

OperaでもStylish

・・・のCSSを使えたらいいなぁ。

という思いがあってAutoHotKeyにてproxomitron用のフィルタに出力するスクリプトを作っていたのが去年のこと(だったと思う)。

しかし、最近はNo More ScriptsのおかげでJavaScriptが常に有効になっているので、UserJavaScriptで出力してしまってもいいな。と考えるようになったので、Rubyに移植してみた。

設定ファイルにstylish.rdfのフルパスとOperaのUserJavaScriptを保存しているフォルダを指定すれば準備完了。exeを実行すればたちまち大量のスタイルを組み込んだUserJavaScriptが作成される。

その他詳細は同梱のマニュアル参照。

注意

他人が書いたCSSはあまり取り込んでいないので、妙なCSSを書いていると出力されないかも。

メモ

Ruby1.8xでは正規表現で戻り読みがサポートされていないが、1.9以降は標準で鬼車搭載により戻り読みがサポートされているようだ。

Info

2008
0513

Tagscssoperauserjs

Pragger用プラグインを追加・更新

自作したPragger用プラグイン

elem_cache

指定した要素でのみ比較してキャッシュを行う。

日付情報等が存在しない、ただのリスト等を監視したい場合に使う。custom_feedは特に指定しないと最新の日付が入ってしまうので、適当な日付を入れてリーダーに任せるといったことが難しかった。そこでこのプラグインを作成。単純に取得した要素が「ある」か「ない」かだけで判断するシンプルなキャッシュ。

本当は複数の要素で比較してキャッシュさせたかったけど、匿名メソッドを追加したオブジェクトをYAMLに保存してから復元すると匿名メソッドにアクセスできないというバグかどうか分からない仕様があったので、仕方なくこのような形になった。

empty

dataの中身を空の配列にする。一つのyamlにずらずらと大量に色々したい時に欲しかったので。

Webラジオ ダウンロード

わざわざrssにしてリーダーで知らせるよりも新着発見即ダウンロードのほうが効率よくね? とは思っていたものの、実際にRubyでダウンロードしようとすると本体にアクセスした際に500エラー等が発生してダウンロードすることができずに諦めていた。

で、つい最近になって「Plaggerを参考にしてみてはどうだろうか?」という天啓が降りてきたので実際にPlaggerで利用されているプラグイン「Mplayer.pm」のソースを見てみたところ、MPlayerに渡していてズコー。

で、このプラグインを参考にMplayerを使ってみたが、ダウンロードはできるがPCMに変換してしまう。Mplayerのヘルプを見ても、どうもPCMでしか保存できないようにしか見えなかった(ヘルプの見方が悪くて見落としている可能性あり)。

つーわけでこっちではNetTransportに渡すことでダウンロードするようにした。今のところ下記4サイトのみ確認。

NetTransportのコマンドラインオプションが分からんのでファイル名はそのまま。保存する場所もデフォルトとなってしまっている。

さすがに保存名を変えられないのは不便なので、とりあえずリネーム用のバッチファイルも同時に作成。ダウンロード完了後に実行すればリネームしてくれる。なんというアナログ。

もっとスマートな方法は無いものか。Rubyでダウンロードできれば全て解決するんだが、たぶんストリーミングとして受信しつつ、受け取ったデータを積んでいけばいいと思うけど、方法がさっぱりわからん。

Webラジオ 新番組

番組一覧のページから、番組のタイトルを取得し、一度取得したタイトルを次回以降表示させないことで、新番組だけを取得するようにした。

以上5サイトに対応・・・したつもりだが、テスト環境では成功してても、実際に番組が増えた場合を目にしていないので、動作がちょっと怪しいかも。自分で使っててあまりの沈黙っぷりに怖くなる。

音泉から欲しい番組を取得

HTMLの構造が変わったのか、正常に取得できていなかったので対応。

ニコニコ動画 検索

smしか見ていなかったので、nmmとかzhとかに対応。

クラブニンテンドーの予約ボーナス対象タイトルを取得

いつの間にかサイトがリニューアルされていたので。

クラブニンテンドーの未回答のアンケートを取得

同じくリニューアルしたので直そうとしたけど、アンケート回答欄が空なので、何かで埋まるまで更新できず。

date_sort

日付でソートするプラグインだが、アホなミスをしていたので修正。

クラスで比較する場合は、

date.class == "Time"

ではなく、

date.class == Time

とするのが正しい。

Info

SBM Comments

kashmir108
面白かった。

2008
0505

Tagsruby

時間切れ

このサイトの日記部分はWordpressで運用している。しかしバージョンは1.x。相当古いのでアップデートしようと思った。どうせなら文字コードもUTF-8にして運用したいと思ったが、現在のサーバーではデータベースにEUC-JPしか使えない。

サーバーのレンタル期日を確認すると4月29日。そういえば静的ファイルしか運用していないのになんとなくサーバー重かったなぁ。じゃあ、これを機にWordpressの最新版へバージョンアップしつつサーバーの移転をしてしまおうか、と思い立ったのが去年の12月。

んで、2月までには完了するだろうと思ったら、1月中旬から多忙に見舞われて少しずつ作業が遅れ、気が付いたらこんな日になってしまっていた。(XBOX360買って予想以上にハマってしまったりとか。この時期にデッドラ買うんじゃなかった・・・)。

というわけで、不完全ながらもサイトリニューアルを強制的に実行したので、色々なところに不具合が発生しています。地味に直してはいますが、しばらくは404とか多発すると思います。申し訳ない。

Info

2008
0501

Tagssite

暴満館

最新のエントリ
注目のエントリ(はてな)
ゲーム攻略

暴満館 ~The House of Full Violence~
Powered by WordPress.
About | Contact | 新着のエントリ情報 RSS

ページ内の見出し一覧
スクリプト色々更新
ねんがんの PV4をてにいれたぞ!
OperaのFile I/Oを試す
base64をもっと手軽にエンコード/デコードしたい
OperaでもStylish
Pragger用プラグインを追加・更新
時間切れ