Entries from 2009-03-01 to 1 month

Gripで作成したID3v2タグを含むmp3をiTunesで文字化けしないように変換するプログラム

Gripで作成したmp3をiTunesにインポートすると、ASCIIでない文字がことごとく化けるのでなんでだろうと思っていたら、Grip は文字列フィールドに UTF-8 を入れる際、そのフィールドのエンコーディングを UTF-8 ではなく ISO-8859-1 と指定するようなのだ、な…

Autorelease poolを見栄えよく使うマクロ

Objective-C + C99限定なんだけど #define pool for (NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; pool; [pool drain], pool = 0) とかって定義しておくと void foo() { pool { NSObject *obj = [[MyObject alloc] init]; [obj autoreleas…

現在表示中のページのはてなブックマークのコメント (ブコメ) を表示するブックマークレット

作っている途中でここの車輪の再発明をしていることに気づいたわけですが、こちらははてなスターも出るし、ブックマークレットを呼び出すためのブックマークをもう一度クリックすることで表示を消せるようになっているのでまあいいかとか思ってます。 javasc…

PHP5.3の名前空間の区切りを好きなUTF-8マルチバイト文字列にできるパッチ

id:sotarok が 本当ですか!!名前空間区切りがきれいなPHPくれますか!! http://wassr.jp/user/sotarok2/statuses/IYzUK778PO と言ったので、ぼちぼち作った。たとえば php.ini に namespace_separator=(´・ω・`)と書いたり、もしくは .htaccessに php_…

Perlの正規表現のバグ? (後編)

追記: ケース4についての記述がなかったので言及。前回の調査で、[[:print:]] と \p{IsPrint} は実は等価でないということが分かったわけだけど、これだけではまだ再現できなかった理由、つまり、 use encoding 'utf-8'; $_ = "\t"; # 1. マッチしない print…

ワンライナーでパラパラ漫画作成ツール in JS

漫喫であまりに暇だったのでついカッとなって作った。 javascript:(function(d,w,h,z,f,t,u,a,n,c,o,p,m,q,i,j,s){s="n=d.createElement('canvas');with(n.style)width=n.width=w,height=n.height=h;n.setAttribute('style','position:absolute;left:0;top:0…

filter_var()関数の真価を見極める

もともとPECLにあって、PHPのバージョン5.2.0から標準に組み込まれたfilter拡張モジュール。URLのクエリ文字列やPOSTされた入力文字列の妥当性検査と「サニタイズ」という2つの役割を果たすもので、また突っ込みどころがいろいろあるんだけど、まあ利用法に…

続報: HTML5 ではいくつか valid らしい

8.6 Named character references を見たら、サポートされている実体参照の種類がぐっと増えてました。知らなかったー。HTML 5 でサポートされていないものの一覧も作ってみました。 参照名 Unicode文字コード (10進) 文字 HTML5での参照名 epsis 8714 ∊ - an…

PHPのhtmlentities()で (HTML4.0的に) 余計に実体参照に変換されてしまう文字の一覧

Bug #46478でid:hnwさんに報告していただいたバグを修正しようと思って作成したものですが…そもそもこのバグを作ったのは私で、5年くらい前の話になりますが、HTML4.0でサポートされている実体参照のテーブルではなく、Unicode 1.1 以降は obsolete となって…

なぜPHPのfgetcsv()はロカール依存という糞仕様なのか

前から言われてる、これ。(id:hnw さんも、もしかしたらこれは私が実装したということを知っていて自粛してるのかもしれないけど、そういう気遣いは不要です!)まあつまりですね、もともとfgetcsv()は「\」(0x5c) で次の文字をエスケープできるという割と不…

Perlの正規表現のバグ? (前編)

「鬼車の[[:print:]]はPOSIX流じゃないらしい」でid:ockeghemさんやid:nihenさんと先週いろいろやりとりしてた中で、一つだけ解決していない問題があった。utf8フラグが立っているかどうかでPOSIX文字クラスのマッチの挙動が変わるという件。 大変詳しい調査…

美人ゴルフ用サーバ

もうすっかり時期を逃した感があるけど、とりあえず書いてしまったので貼っときます。美人ゴルフをするのに、実在するwww.bijint.comのサーバにアクセスするのは、とてもよくないことになるかもしれませんよね!! なので練習用のサーバを書きましたよ東條さん…

美人ゴルフ

typedef char c;typedef int i;i sprintf(c*,c*,...);i socket();i close(i);i connect(i,i*,i);i read(i,c*,i);i write(i,c*,i);i***gethostbyname(c*);c*strstr(c*,c*);c*malloc(i);i open(c*,...);i main(){c*h="www.bijint.com",*t,*z;i b[]={0x50000002…

鬼車+Unicodeの\[\[:print:\]\]はPOSIX流じゃないらしい

追記: どっちが正しいとかそういう話ではないので念のため...。 追記2: Technical ReportがAnnexとなっていたのを修正。 追記3: 微妙に誤解があった部分を修正。結論としては同じ。id:ockeghem さんの、 「POSIX正規表現の[:print:]は改行やタブがマッチする…