正直日記



2009/10/29

_ Webのスクリーンショットを取りまくってたよ
MozEmbed の存在を知って以来、もうメロメロぞっこんになって色々遊んでいま
したが、まぁ色々といってもスクリーンショットを撮ってただけなので全然色々
ではありませんが。


・Xvfb を入れる

デーモン化しようと思ったら、なんか ubuntu server 用の設定がどこにも見つ
からなかったので見よう見まねでこしらえました。丸一日かかりました。linux
難しすぎる。

xvfb.txt を /etc/init.d/ にコピー $ sudo chmod +x /etc/init.d/xvfb $ sudo update-rc.d xvfb defaults $ sudo /etc/init.d/xvfb start ※ X11::Xvfb を使うなら一連の操作は要りません。
Xvfb を起動するとなんかフォント系の警告がでまくるので、apt-get でフォント が沢山入るパッケージを入れます。申し訳ありませんがパッケージ名は忘れまし た。一日で忘れました。linux 覚えづらすぎる。(追記: xfonts-base でした) ・xulrunner とかを入れる これだけ指定すればたぶん必要なものは芋づる式に色々入ります。
$ sudo apt-get install pkg-config xulrunner-dev \ libgtk2-perl libgtk2.0-bin libgtk2.0-common libgtk2.0-dev
足りない場合は $ apt-cache search xulrunner で出てくるものを全部入れれ ばいいです。linux 楽チンすぎる。 ・Mozilla::DOM を入れてから Gtk2::MozEmbed を入れる Mozilla::DOM が無くても Gtk2::MozEmbed が入ってしまうのは罠でしょ……。 Mozilla::DOM を入れる際に libxul.so が見つからない旨のエラーが出るので、 事前に以下の操作を行っておきます。
$ sudo su # cat >> /etc/ld.so.conf.d/libxulcrap.conf /usr/lib/xulrunner-devel-1.9.0.14/lib ctrl-d # ldconfig (追記:ubuntu 9.10 で xulrunner-1.9.1.*/lib になったようです)
つーか README に載ってるんですよこれ。README 読まなすぎる。 ※ デスクトップ版 ubuntu でこれを行うと firefox-3.5 が起動できなくなり   ます。共有ライブラリを使い分ける方法があると思うんですが Linux が難し   すぎて分かりませんでした。Linux が難しすぎる。 あとは CPAN で入れるだけです。
sudo cpan -i Mozilla::DOM Gtk2::MozEmbed
・スクロールバーを消す MDC を見ると、スクロールバーをトグルで非表示にする window.scrollbars が あるので、Mozilla::DOM::Window にも GetScrollBars がありそうな気がしま すが……無いので他の方法をとりました。
my @elems = $embed-> get_nsIWebBrowser()-> GetContentDOMWindow()-> GetDocument()-> GetElementsByTagName('body'); for my $elem (@elems) { my $attr; if ($elem->HasAttribute('style')) { $attr = $elem->GetAttribute('style'); } $attr .= '; overflow: hidden;'; $elem->SetAttribute('style', $attr); }
・ディレクトリを別ける 調子に乗ってあれこれ撮りまくっていたら、ファイルが多すぎてディレクトリを 閲覧するのが困難になってきました。パスを切って分散します。 先人であるところの「はてなブックマーク」の切り方を調べてみると、
/a/b/c/d/e/[0-9a-z]{35}.jpg
というパスになっており、どう見ても SHA-1 でした。 パスの生成に一方向ハッシュを用いると元の名前が連想できず、手動アクセスし たいときに不便です。手動アクセスをする機会なんかそんなに無い気もしますが、 今回はドメインネームを逆さに連結することにしました。この方法はいずれ破綻 しますが一時の延命には使えます。
sub make_directory_path_from_url { my $url = shift; my ($domain) = $url =~ m{^.*?://(.+?)/}; my $path = join '/', reverse split(/\./, $domain); return $path; }
そんなこんなでページショットが撮れるようになりました。 ページショットを撮る時は ScrollTo を使って少しずつ pixbuf に流し込みまし た。 Flash でフェードインやら skip >> やらをしているサイトは、スクリーンショッ トを撮ると真っ白とか真っ黒になるのでアホかと思いました。3〜5秒以内に絵 が出てこないサイト(を作るようなデザイナー)は○○○ればいいのにと思いま した。 終わりです。
_ 発音中にMULを書き換えて位相ずれを起こす
こんなマニアックなテクがあるなんて、今まで気づかなかったよ……。

とは言えウェイトが必要な実機だと、タイミングは完全にシーケンス依存なので
実用は難しそうだ。レジスタ書き換えとシーケンス実行が(音源から見て)ゼロ
時間で済んでしまうエミュプレイヤー向けのネタかな。……ネタと言っても、こ
んなテクをどう活用すればいいのか全く思いつかない。単チャネルでフェーザー
効果が得られるかなぁ。


なんの話だか分からない人の方が多いと思いますが、FM音源の話です。

最新
2010 | 01 04
2009 | 01 02 03 04 05 06 07 09 10 11 12
2008 | 01 02 03 04 05 06 07 08 09 10 11 12
2007 | 02 03 04 05 06 07 08 10 11 12
2006 | 01 02 03 04 05 06 07 08 09 10 11 12
2005 | 01 02 03 04 05 06 07 08 09 10 11 12