2006-01-01から1年間の記事一覧

replace or fallback

iconv(3)レベルで考慮すべき問題 前回の続き「iconv(3)レベルでも考慮すべき問題があるのかな」とのことですが、あるのではないかなぁ。置換文字に置き換えて続行するか、エラーを出して止めるかは用途によって変わるでしょう。例えば変換してみてエラーが出…

nkf & iconv

nkf

Citrus の Takehiko NOZAKI さんのたまわく「iconv(3)を呼ぶnkfってのはダメなのかな」。 nkf に何を求めているかによるのかな。nkf のユーザは nkf を使う理由は、 iconv より使いやすい iconv が入ってないので代替 nkf しか知らない あたりだと思うけれど…

携帯電話の絵文字

nkf

そういえば、NTT DoCoMo の絵文字は Shift_JIS のユーザ定義文字だったなぁと思って見ると、ユーザー定義文字対応で自動的に Shift_JIS to Unicode の変換に対応していた。というわけで、対応したことにしよう。 ついでに J-PHONE 絵文字にもごそごそと対応…

ユーザー定義文字

nkf

ruby-dev で森山さんに指摘されてしまったので、ユーザ定義文字周りを直すことに。前に JIS コードベースで実装しようとした時は NEC 選定 IBM 拡張漢字の領域と被っている事からコードが複雑になって断念したので、今度はUnicode に割り当ててしまうことに…

Unicode Normalization

nkf に Unicode 正規化を実装して欲しいという要望がどれだけあるのかはわからないし、実際に実装するとなると nkf のバイナリサイズがだいぶ増えるがネックとなる。けれども、一応勉強しておくのはいいだろうということで、とりあえず Ruby で Unicode 正規…

skf.so

MinGW でも動くようになったので安心し、ふと NetBSD でコンパイルしようとする・・・と、失敗する。えーーー。とりあえず NetBSD の make が skf の Mac OS X 対策に当たってエラーをはいていることが判明。 しかし、まだエラーは止まらない。なんで RSTRIN…

Beyond the BMP

[ruby-list:42792] で nkf が BMP 外を捨てる件について指摘されてしまった。一応 JIS X 0213 対応の準備のために手はつけていたので (もっとも、この手の大規模な改修は手をつけてみるものの失敗して投げ捨てるのを繰り返すのはお約束)、1 日でおおむね動作…

type 属性について

ルーツは Atom。詳しくは RFC4287 や XHTMLマーク付けを含むコンテンツ を。まとめると、 type="xhtml" ならば内容はエスケープされていない。 type="html" ならば内容は escaped HTML。 ということ。なお、Cast では text, html, xhtml 以外の値は許されな…

delete 要素

WD4 に書き忘れていたようなので、delete 要素。 <delete /> 削除済み。削除されている記事を何らかの理由で表示する場合につけておく。 <delete href="uri"> 削除可能な記事。uri は削除に用いる uri。アクセスするとその記事は削除される。</delete></delete>

色付け

Peggy に Ruby の色付けの更なる強化を頼んだはいいものの、インタプリタの「正しい」解析がわからなければしょうがない。というわけで、Ripper を使った Ruby の色付けプログラムはないかと探してみる・・・。が、ないのか・・・? Hiki には attach_rb と…

Peggy

ついでに Peggy にも。先日のアップデートで大幅に Ruby の環境はよくなったけど、ちょっと気になったところを。。

ctags

Exuberant Ctags (日本語版)で Ruby のコードを解析してると、特異クラスを認識しない。しょうがないのでパッチを投げる 。そういえば sf.net にはアカウント持ってなかったか。。

Encode::EUCJPMS 0.07 Released

eucJP-ms エンコーディングが使えなくなっていたので修正。ついでにテストを追加してみる。

skf

skf ってご存知ですか? http://sourceforge.jp/projects/skf/ なのですが、nkf よりオススメですよ(ぉぃ 次のバージョンアップで ruby extension も追加されるので、 Ruby/NKF の代わりにもなります。 require 'skf' SKF.guess("", "\x82\xA0") #=> "sjis"…

Encode::EUCJPMS 0.06 Released

Encode-EUCJPMS-0.06 をリリースしました。新たに CP50220 と CP50221 をサポートしています。CP50222 はあえて未サポート。 作り掛けで放置していたところに、弾さん経由で英語の助けてメールが来たから、さくっと作ってしまった(ぉ

Vista の MS UI Gothic

Windows Vista では MS ゴシック や MS 明朝 のフォントがある条件で全面的に変わるのですが、それを見てみました。Vista版の MS UI Gothic だと WAVE DASH が変わっていたり、各種漢字が収録されたりといった変更が行われています。が、それ以外にも、…

正規表現で素数探索

def sieve_regex(max) table = ' ' + (2..max).map{|i|i.to_s}.join(' ') (2..Math.sqrt(max)).each do |i| 1 while table.gsub!(/^((?:\d* ){#{i-1}}(?:(?:\d* ){#{i}})+)\d+/){$1} end table endperl -le '$,=" "; print grep { (1 x $_) !~ /^(11+)\1+$/ …

エラトステネスの篩の改良

上のソースでは探索範囲1つにつき true/false を作るので、1億まで探索しようと思うとかなりのメモリが必要となる。どうせ真偽値なのだから、BitArray を用いれば候補一つにつき 1bit で済む。また、偶数はどうせ素数ではないので、奇数のみを探索対象にする…

エラトステネスの篩

なんか、エラトステネスの篩を用いていると言いつつ試行割算法を混同していたり、エラトステネスの篩を用いつつもハッシュを使ったりして速度を落としている例が多いような。エラトステネスの篩では加算しか使わない。だから速い、圧倒的に。 追記: もっとも…

エラトステネスの篩 高速版

def _sieve(primes, min=3, size=1_0000_0000) table = "\xFF" * (size / 8 + 1) max = min + size * 2 - 1 tmax = size mid = Math.sqrt(max).floor primes.each do |i| next if i > mid ti = (i - min) / 2 ti += i while ti < 0 ti.step(tmax, i) do |tj|…

Microsoft IME 2007 の JIS X 0213 と Unicode の対応

Microsoft IME 付属の IME Pad はカナ漢字変換では入力しづらい文字を入力するための手段ですが、これには手書き文字認識や部首画数などに加えて、文字一覧という選択方法があります。参考: IMEパッドの文字一覧を利用して入力する 従来では Unicode と シフ…

素数探索@Ruby

キミならどう書く 2.0 - ROUND 1 -にて、「100までの整数から素数を列挙せよ」とのお題。 (2..100).select{|i|(2...i).all?{|j|i%j!=0}}とりあえず効率無視で短さ重視。 (2..100).select{|i|/^(11+)\1+$/!~'1'*i}と思ったら、perl - 100までの素数 にある正…

Pure-FTPd の IE 対策

ftpd.c の doopts() を以下のように変更するだけ。とりあえずこれで何とかなる。 (ugly hack と言われたが) - if (strncasecmp("utf8 ", args, 5) == 0) { + if (strncmp("UTF8 ", args, 5) == 0) {

Internet Explorer の FTP と UTF-8

概要 IE の FTP には CP932 しか渡してはいけない IEの動作 FTP サーバーにログインする FEAT コマンド送信 (RFC2389) 返ってきた feature list に UTF8 が含まれていたら、opts utf8 on を送信 (RFC2640, ftpext-utf-8) opts utf8 on に 200 OK が返ってき…

「JIS X 0213:2004 対応」の多義性

Windows VistaはJIS X 0213:2004に対応しないらしいを見たり、okuokuさんと話したりして思ったこと。 そもそも、JIS X 0213:2004 ではいくつかのレイヤーを定義している。具体的には以下の通り。 字体 Abstract Character Repertoire Coded Character Set (C…

定義

レパートリ 「符号化文字集合の一つ以上のビット組み合わせによって表現される,規定された文字の集合」(JIS X 0213 4.ac)。 文字 「データの構成,制御又は表現に用いる構成単位の集合の要素」(JIS X 0213 4.z)。 漢字集合 JIS X 0213 「で規定する図形文字…

REST

ところで、REST。趣旨はたぶん同意、派生範囲をまだつかみきれてない。巷の言説は微妙。GETとPOSTの区別だけできりゃよくねって気はする。現段階では、実装に関連した未完成の概念という印象。その意味では巷のAtomAPIコールと似てるやも知れぬ。 とりあえず…

The Atom Publishing Protocol

Cast の仕様検討をすすめようと、AtomPP を勉強してみる。具体的には、draft-ietf-atompub-protocol-08 をざっと眺める。 ・・・あれ?聞き及んでいる AtomAPI とだいぶ仕様が違うんですが・・・w ごそごそと、The Atom Pulishing Protocol(AtomAPI)の利…

WAVE DASH

メイリオではU+301CとU+FF5Eのグリフが同一になったようだけれど、この辺を正規化するツールは欲しい気もするなぁ。しかし、正規化する文字のリストアップが面倒な罠。メモ代わりにXML日本語プロファイル 解説の訳

いわゆる半角カナ

Legacy-Encodingのオフラインミーティングに行ってきたわけです。色々話は出ていて、直接関係のある話はMLでしているわけですが、脇道で、いわゆる半角カナの話。 芝野氏曰く「縦書きの時、半角文字は横に寝かせる、全角文字は一文字ずつ縦に並ぶ。だから両…