正直日記



2009/05/18

_ メイドイン俺を極めたい人用 色合成シート
欲しい色が無いという意見をちらほら見かけるので、サクッと作ってみました。

合成色版


市松模様ディザパターン版


--

おまけ



補色の関係を応用すると、こんなことも出来ます。
ドッターの必須技能だと勝手に思ってるけど、今時こんなテクは使わないかな?

2009/05/16

_ ルビ用6x6フォント ver.1.1 を作る
某掲示板で 6x6 にチャレンジしてみた人がいて、またもや感銘を受けてしまっ
た。特に、右上を空けることで濁点がそこそこ綺麗に収まるのは盲点だった。
(こちらのフォントは右下を空けていた)

参考にさせてもらいつつ描き直し。ついでにアスキー文字も統一感重視で修正。


6x6v1_1.png

というわけで ver. 1.1 になりました。例によって OCPL00000 で。

追記:「ミ」の字にバグがあったので修正しました。
_ 無題
耳につけているリンデロンが切れたので、身体用のデルモベートを薄めに塗って
みたところ軽い偏頭痛と猛烈な眠気でダウンしてしまった。

通っている皮膚科医院は予約の類を全く受け付けず、毎度数時間待たされるので
なかなかタイミングが合わずにいるのだけど、これはこれで公平なのかなぁと思
わなくも無いけど、お年寄りに有利なシステムのような気がしてきたけど、まあ
控えている年寄り方も別に診療所を溜まり場にしている様子は無く自分の順番が
来るのをただ淡々と待っているので、仕方ないな付き合ってやるかという感じだ。

ごくたまに若い子がいる。俺のように患部が顔付近の目立つところにありしかも
ガーゼまで貼っているならともかく、そうでない彼ら・彼女らは一体どこに炎症
を起こしているのだろうかと一人で想像する。暇なのだ。

若すぎる子もいる。椅子に立って上から覗いてくるので、パソコンを暇つぶしに
するのは諦めた。試してはいないが、ゲーム機やケータイも同様だろう。となる
と残るは本となるが、俺は脇できゃっきゃっ騒がれると内容が頭に入らないタチ
なのでどうにもならない。仕方ないのできゃっきゃっ騒いでいる様子を観察する
が、親の目が光っており見すぎには注意しなければならない。俺にそういう趣味
は全く無く、やましいところは何もない、が、被害妄想ばかりがふくらみどうし
ようもなくなってしまう。俺は、暗い夜道で女子高生の後ろを帰路に就いている
と、その女子高生が突然無言で走り出すような、そんな男なのだ。

2009/05/15

_ スクレイピングは便利ライブラリを使おうぜ
ウェブの一部分をスクリプトで切り出したいとき、まぁ正規表現をゴリゴリ書い
て抽出するんだろうけど、今は便利なライブラリがあるのでそれを使えばいいと
思う。

まずは、インターネットのヤホーから正規表現で「トピックス」を抽出してみる。

use strict; use LWP::UserAgent; my $ua = LWP::UserAgent->new; # ヤホーは UA を見て表示するページを切り替えるので…… $ua->agent('Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)'); my $content = $ua->request(HTTP::Request->new('GET','http://www.yahoo.co.jp'))->content; $content =~ m{<div class="topicsindex">(.*)</div>}; my $topics_index = $1; my @topics = $topics_index =~ m{<li>(.*?)</li>}g; print join "\n", @topics;
まぁこれぐらいだったら正規表現でいいかもしれないけど、例題としてならとも かく、ヤホーのトピックスなんて普通スクレイプしないと思うよ。するとしたら もっと複雑なページだよね〜。んで表題に戻る。 ruby だったら scrapi もしくは hpricot(こちらの方が後発っぽい)が、 perl だったら Web::Scraper(scrapi の perl fork らしい)があって、 どちらも XPath もしくは CSS セレクタで、抽出部分を指定できる。 インターネットのヤホーから、今度は Web::Scraper で抽出してみる。
use strict; use WWW::Mechanize; use Web::Scraper; my $mech = WWW::Mechanize->new(cookie_jar => {}); $mech->agent_alias('Windows IE 6'); $mech->get('http://www.yahoo.co.jp'); my $feed = scraper { process '.topicsindex li', 'entry[]' => scraper { process 'a', 'link' => '@href'; process 'a', 'title' => 'TEXT'; } }->scrape($mech->content, $mech->uri); for my $entry (@{$feed->{'entry'}}) { print $entry->{'title'} . "\n"; print $entry->{'link'} . "\n"; }
複雑な階層でも呼び出し一発で、まとめて配列や連想配列に入れてくれるので、 ちょ→楽チンです。ただまぁ手動で切り出すよりは負荷が高いんで、用途により けりなのかもしれず。 XPath / CSS は yunogenerator.bookmarklet を使えば、ソースを参照する必要 すらなく得られるし、Firefox なら Web Developer から Ctrl + Shift + Y (CSS > View Style Information)で CSS の階層が簡単に得られます。(けど 仕様上、コピペ出来ないのは悩ましい) Firebug も使えるかもしれない。 数年前の時点で既に手垢が付きまくったトピックだろうけど、最近思うところが あったので、手垢も気にせず書いてみました。 -- Mechanize の agent_alias (user_agent_alias)は、ruby 版だと "Windows IE 7" があるみたいだけど、perl 版には現時点で "Windows IE 6" しかないのね。 なんか悔しい気がしないでも無いなー。

2009/05/14

_ ルビ用6x6フォントを作る
DQIX は何が凄いって、DS の解像度でルビを振っているのが凄いと思う。
http://blog.square-enix.com/dqix/2009/05/post_23.html

感銘を受けてしまったので、余白込みの6x6フォントを自作してみた。


6x6.png

"る"がどうしようもなく難しい。改変歓迎です。ライセンスは OCPL00000 で。
一応アスキー文字も用意したけど、出来はあまり良くないと思う。
ちなみに 4x4 フォントはこちらで公開中です。

追記:v.1.1 にバージョンアップしました。

2009/05/06

_ すいませんでした
LLVMがこんな素晴らしいものだったなんて、今まで知らなくてすいませんでした。
まぁコンパイラの作り方が分かり始めたマイレボリューションなので、素晴らし
いと今は思うわけですが、そのうちクソだと言い出すのかもしれない。何故オタ
の思考回路は 1 と -1 しかありませんか?

--

LLVM 2.5 を MinGW + MSYS + ActivePerl な環境でビルドしたときの作業内容を
適当に書き残しておく。ビルドに必要なその他のソフトウェアは
 docs/GettingStarted.html#software
に記載されてるよ。

まず、groff が必要なので、groff for windows なのだった。

$(SRC_ROOT)/utils/unittest/googletest/Makefile
インクルードパス末尾の / を削除。
CPP.Flags += -I$(LLVM_SRC_ROOT)/utils/unittest/googletest/include
$(SRC_ROOT)/docs/CommandGuide/Makefile MSYS 由来の perl は pod2html が提供されてないので、ActivePerl のものを使う。 ActivePerl の pod2html / pod2man はバッチファイル経由なので、直接呼ぶように修正。
/perl/perl -x -S pod2html --css=manpage.css --htmlroot=. \ --podpath=. --noindex --infile=$< --outfile=$@ --title=$*
/perl/perl -x -S pod2man --release=CVS --center="LLVM Command Guide" $< $@
僕の環境だと ActivePerl をインストールしたディレクトリは /etc/fstab の設 定で /perl へとマウントしているので、環境に合わせて置き換えてください。 まぁそんなこんなで LLVM の make; make install が完了するわけです。 -- 追記:MSYS の perl.exe をリネームしないやり方に変更しました。(09/05/14)

2009/05/04

_ 最適化
定数の畳み込み。ARMv4 は「符号無し 8bit イミディエイトを 4bit ローテート」
の形で即値を表すので、最終的に定数は
(a × 2l) ± (b × 2m) ± (c × 2n) ± ...
の形に分解しないといけない。まぁせいぜい 256 * 16 * N 回のループで見つか るんだけど、なんか、もっといいやり方無いかしら。 追記:2 のべき乗で除算して商を求めていけばいいんじゃない。除算するという 選択肢が完全に抜け落ちていた俺は、どう考えても阿呆なんですよ。 条件コード。これアレだなー。覗き穴でやるとして、命令を一つ飛ばすジャンプ の削減くらいしか思いつかない。再帰的に {cond} の伝播をを辿っていけばいい のかな。うーん。
_ wine で国産インディーゲームを遊ぶ
Windows 版の超連射68kが最後まで完全動作したので、もう Windows は要ら
ないんじゃないかという気分になってきたよ。USB パッドも挿すだけで認識した
ので軽く感動した。

勢いに乗って、他のソフトを適当にコピーして遊んでみる。

exception と exception conflict は、アップデート機能もバッチリ動作。ゲー
ムも(重いが)普通に遊べる。exception はソースからコンパイルすれば Linux
ネイティブで動かせるようなので、無理に Wine で遊ぶことは無いのかもしれな
いけど、まぁカジュアルに試すなら。

洞窟物語も完全動作。コンフィグでフォントを設定しないと漢字が化けた。

ABA GAMES のソフトは基本的に動くが、唯一 Val & Rick だけ、弾がテクスチャ
の UV ズレしたような壊れた表示になった。wine のせいなのか ATI のオンボー
ドグラフィックのせいなのかは不明。

その他、動かなかった系。
あけぶれは全く起動せず。
CAGESTG は起動して遊べるものの、ゲーム中背景にタイトル画面が残りっぱなし。
東方シリーズはウインドウモードで窓が出るものの、動作せず。
Hellsinker. はダイアログの後ロード画面までは出たが、そこから応答停止。
nomltest は fw_vga でダイアログ選択後、ウインドウが出ずに終了。

超連射だけ動けば良し、とするなら完全に Windows から移行できる気がする。
けど、結構動かないソフトあるなぁ。
_ 日記のスパム対策
バイアグラとか要らんから……。

これから導入しうる対策としては、DNSBL の導入か、日本語を含まないコメント
の一括排除が思いつくけど、どちらを取り入れるにしても、コメントフォームの
そばに注意書きを入れておかねばならないのが鬱陶しい。

一時凌ぎの対策として、スパムは全て /yyyymm.html のフォームから投稿されて
いるようなので、URL が /yyyymmdd.html のときだけコメントフォームを出すよ
うに変更してみる。

(追記:フォームを探してクロールし始めたみたいなので、やっぱりコメント欄
そのものを消しました。いいよね、どうでも)

他所様の自作 CGI 系日記はどんな対策をしてるんだろ。

最新
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