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

正規表現の遅延コンパイル

Ruby 1.9 だと irb の起動が速いとか、いやいや遅いよとかいう話の中で、正規表現のコンパイルがそれなりの時間を食っているという指摘が。それでは、実行時までコンパイルを遅延させればいいのでは?というのが以下のパッチ。もっとも、こうすると正規表現…

NaN - 無限を求めて -

世の中には浮動小数点数というものがあるのだけれど、こいつは便利なような不便なようなやつだ。まぁ、その辺は「まつもと直伝 プログラミングのオキテ 第15回 浮動小数点数の謎に満ちた世界」や「IEEE754 倍精度浮動小数点数のフォーマット」をはじめとして…

Hello, world! 12B

anarchy golf - hello world の Ruby の最高記録は昨日まで 12B であった。おそらくこれの発想は、rubyで14B と基本は同じではないかというのがはじまり。 #!../s/grb -eh つまり、これの本体である ../s/grb をもっと短くすればいいのだ。短くするにはどう…

Cookie 今昔物語

概要 Cookie の不幸な歴史と現状、そして将来についてまとめた。 仕様はどこにあるか Web 上の様々な規格は、誰かが定め、それに皆が合わせるという形で動いている。しかし、Cookie の仕様は誰が決め、どこで規定されているか知っている人は、意外と少ないの…

Validating Strings

文字エンコーディングバリデーション を受けて。この辺の話ははせがわさんがお詳しいので、ご存じでない方はまず「本当は怖い文字コードの話」をお読みください。 不正なバイト列を用いた攻撃について さて、大垣さんの記事は 不正なバイト列をWebブラウザに…

Web上の日本語EUCデータに指定すべきエンコーディングは何か

日本語EUCは当初、G0にUS-ASCII、G1にJIS X0208-1990、G2にHalf Width Katakana、G3にユーザ定義文字が定義されていました。その後、これを拡張しつつ多くの亜種が作られました。まずはこの亜種のうちの主要なものを挙げます。まず、日本語EUCの国家標準は結…

講習会「文字集合と文字エンコーディング」について

なかなか豪快な記事(講習会「文字集合と文字エンコーディング」を開催しました — ディノオープンラボラトリ)を見つけたので、ツッコミを書いてみることにしました。ツッコミどころはかなり多いんですが、まぁ世の中の文字コードがらみの記事なんて大半がこん…

Windowsのコンソール

okuokuさんとこへのツッコミです。 コンソールのcodepageをUTF-8(65001)に設定するのってなんでダメなんだっけ? そもそもコマンドプロンプトがchcp 65001してもまともに動かない。フォントはレジストリをいじらないと変えられないし(うまく変わらないこと…

正規表現

第6回 Ruby M17N 事始め:正規表現編という記事を書きました。わたしの記事は今回が最終回です。前回と違って、今回の記事はそれなりに需要があると思われるところを書いたつもりだったんですが、意外と反響がない・・・ぞ。受ける記事を書くのって難しいん…

なぜRuby M17NにはUCS-2BEだけがあるのか

ということで、「UCS-2は文字セット」と書いたのは間違いだったけど、ことさらRubyのEncodingに取り入れる必要性があったのかということは引き続き疑問です。 これはruby-devの議論で出た、tkの返すエンコーディング名をRubyで認識して欲しい、というニーズ…

UCS-2はどうバイト列に直すのか

ところが、UCS-2 UCS-4の所を見ると、encoding form としての意味しか書いてなくて、encoding schemeは無い。つまり、バイト列で表す方法が定められていないということか。ううむ、これではエンコーディングと言っても、ファイルに書いたり、通信に使ったり…

CCSとCEFとCESと

前回の続きの解説なのです。 ただ、UTFの所では、encoding form と encoding scheme が区別して書いてあり、実装というか byte sequence で表現する方法は encoding scheme という扱いだ。そして、バイト列にする前の scalar な値で表現する方法が encoding …

UCS-2とは何か

割り切った時点で、この記事ではUCS-2について書くつもりはなかったのですが、UTF-16を説明するにあたって必要と思われたので「今となっては古い方式です」という注釈をつけた上で記述を追加したものです。さて、このエントリはこのおたよりへの返信なんです…

Ruby M17N 事始め:文字コード編

「Ruby Freaks Lounge - 第4回 Ruby M17N 事始め:文字コード編」という記事を書きました。内容としては、種々の文字コード関連の規格をかたっぱしから歴史も含めて解説・・・しようとしたらISO 646シリーズだけで字数が大幅に超過したという。そのため、割…

なぜ long character から wchar_t に変わったか

同じです. そのコードを 日本語 UNIX 諮問委員会では long char と呼んでいました. そして, l は 1 と区別しにくいと言う事情で wchar_t になったと思います. (しかし, long int のほうが余程紛らわしいはずだと思いますが...) http://www.ie.u-ryukyu.ac.jp…

続 wchar_t はいつできたか

http://d.hatena.ne.jp/nurse/20090308 や http://d.hatena.ne.jp/nurse/20090309#1236538767 の続きです。 経緯を熊谷さんがコメントで書いてくださいました。ありがとうございます。というわけで詳細を詰めるわけです。nkf のメンテナの一人である河野さん…

Japanese Application Environment Release 2.0

「JAE 2.0(でたのかな、これそのまんなSVR4 MNLSだったり?)」ですが、リリースされていたようです。 AT&T UNIX PACIFIC RELEASES IMPROVED VERSION OF THE UNIX SYSTEM V Published:02-September-1987 AT&T Co's 100%-owned AT&T Unix Pacific has released …

石田晴久氏による EUC 前史

CiNii で色々探していたら見つけたので以下に引用 我が国で特に関心が高かったのは,UNIX の日本語機能である.表-3 に我が国での UNIX の普及経過を示すが,この流れの中で,1985 年には AT& 社の要請で,筆者を委員長とする日本語 UNIX システム諮問委員…

wchar_t はどこから来たのか

「wchar_tという名前がどの時点で使われるようになったか」ですけど、そりゃー、C++ じゃないの?というわけで C++ からの輸入説を唱えてみる。(これは誤りであった)1986 年に Bjarne Stroustrup の 「The C++ Programming Language」が出版されているので時…

石田晴久氏

ちょうど昨日の記事で書いた日本語UNIXシステム諮問委員会の委員長を勤められた石田晴久氏が亡くなられたらしい。合掌。

Ruby M17N 事始め:入門編公開

Ruby M17N 事始め:入門編 が公開されました。事前に読んでコメントをくださった方はどうもありがとうございました。下の EUC ネタは実は次回のネタのメモだったりする。っていうか、まだまとめられてないよ!まぁ、この記事で言いたいことは、Ruby 1.9 をい…

ケータイの絵文字がJTC1/SC2/WG2に提出されたそうですが

ケータイの絵文字がJTC1/SC2/WG2へ@安岡さんちまぁ、思ったことはtnozaki さんと同じなので略す。しかし、描いてくださった Apple の方には悪いが、この例示字体和風テイストに描き直して欲しいわ。

New I18N API?

New I18N API? 続 New I18N API? iconv_open("WCHAR_T")的なもので行きたい模様 とりあえず、iconv はバイト列同士での変換だと思うから、それを widechar にしちゃうのは気に入らないなぁとか。 あとエラーハンドリングは、そもそも文字コード変換に失敗し…

日本語EUCの歴史

EUC-JP の歴史ではないことに注意していただきたい、EUC-JP には (おそらく) JIS X 0212、つまり補助漢字を含んだもの (UI-OSF 日本語環境実装規約 Version 1.1 の AJEC。とは言ってもこれは追認規格だったらしい) のことだろうが、「日本語 EUC」といった場…

いつ誰がEUCを作ったか

のざきさんの 「AT&TがEUC(Extended UNIX Code)をUNIXの文字符号化手法として使うようになったのって正確にはいつからなんですかね」 について。FreeBSD 4.6.2 からのわたしが解説しますよ。結論からいえば 1985 年で、この年に System V Release 2*1 に対す…

Rubyist Magazine 0025 号

Rubyist Magazine 0025 号 がでました。今回は事実上 Ruby 1.9.1 リリース記念号と化しています。 わたしも久しぶりに Ruby M17N の設計と実装 という記事を書いています。「〜の設計と実装」というタイトルはよく BSD 方面で用いられているもので、「The De…

Ruby 1.9.1 リリース

Ruby 1.9.0 のリリースから 1 年と 1 月、ついに Ruby 1.9.1 がリリースされました。Ruby 1.9.1 では基本的に Ruby 1.9.0 で積み残していた点や、不具合の修正、違和感のあった仕様の修正などが行われています。 Ruby 1.9.0 は非常にプレビュー色の強いもの…