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

メタプログラミングRuby 第3章 水曜日:ブロック その3

今日も時間に余裕がなくて電車のなかで Proc と lambda の違いと、Method/UnbondMethod オブジェクトのところだけ読みました。lambda, Proc, Method などの微妙な差異についてはこんなまとめもあるのでここで書かなくてもよいでしょう。http://d.hatena.ne.j…

メタプログラミングRuby 第3章 水曜日:ブロック その1

メタプログラミングRuby作者: Paolo Perrotta,角征典出版社/メーカー: KADOKAWA/アスキー・メディアワークス発売日: 2010/08/28メディア: 大型本購入: 18人 クリック: 533回この商品を含むブログ (125件) を見る第3章に突入です。この既知の内容が多いので飛…

メタプログラミングRuby 第2章 火曜日:メソッド その3

今日は method_missing を使った動的プロキシの実例とクイズのところです。 動的プロキシ - こういう名前がついてるのは始めて知りましたが内容はいつもの感じです respond_to? の再定義 ここはちょっと古いです。少なくとも 1.9.2 では Object#respond_to_m…

メタプログラミングRuby 第2章 火曜日:メソッド その2

今日は method_missing を使ったメタプログラミングです。 method_missing は BasicObject のインスタンスメソッド……確かにそうですね。ドキュメントは Object のインスタンスメソッドのままのようですが実装は BasicObject のインスタンスメソッドです 「自…

メタプログラミングRuby 第2章 火曜日:メソッド その1

メタプログラミングRuby作者: Paolo Perrotta,角征典出版社/メーカー: KADOKAWA/アスキー・メディアワークス発売日: 2010/08/28メディア: 大型本購入: 18人 クリック: 533回この商品を含むブログ (125件) を見る第2章に突入です。 小話部分だけど経費の上限 …

メタプログラミングRuby 第1章 月曜日:オブジェクトモデル その3

第1章を読み終えました メソッドの探索「一歩右へ、それから上へ」 継承ツリー Module を include した時の継承ツリーへの影響についての解説で「インクルードクラス(またはプロキシクラス)」としてモジュールをラッパしたクラスが挿入されると解説されてい…

メタプログラミングRuby 第1章 月曜日:オブジェクトモデル その2.5

今朝は時間がなくて 1.4 のミニクイズのところだけ Object のクラスは? Class Module のスーパークラスは? Object Class のクラスは? Class

メタプログラミングRuby 第1章 月曜日:オブジェクトモデル その2

急遽朝の読書時間にやることができてしまってしばらくお休みしていました。無事終わったので朝の一人読書会を再開します。 しかし再開そうそう電車の遅れで短縮です。第1章の定数のところからでした 定数とネームスペース Module(Class)がネームスペースとし…

メタプログラミングRuby 第1章 月曜日:オブジェクトモデル その1

今日は実際には金曜日ですが、第1章のタイトルは月曜日です。第1部はボブとビルとの一週間の開発のようすをみるというスタイルになってます。 オープンクラス class はスコープを導入する構文で、ついでに(最初なら)クラスを生成して定数に代入する モンキー…

メタプログラミングRuby イントロダクション その2

イントロダクションの続きからです。 言語毎のコンパイル時と実行時の区切りの明確さの違い サンプルコードにユニットテストが出てこないことについての注釈! 1.9 系(執筆時点では 1.9.1)を対象にしている 「Ruby の次のバージョンは 2.0 になる予定だ」えっ…

メタプログラミングRuby イントロダクション

メタプログラミングRuby作者: Paolo Perrotta,角征典出版社/メーカー: KADOKAWA/アスキー・メディアワークス発売日: 2010/08/28メディア: 大型本購入: 18人 クリック: 533回この商品を含むブログ (125件) を見る今日から「メタプログラミングRuby」を読みま…

プログラマのための文字コード技術入門 Appendix A.4 - A.6

今日で Appendix も終わって文字コード本ともお別れです。 A.4 Unicode の諸問題 合成文字と正規化の問題 ファイルシステム(OS)で正規化方式が違うという罠 漢字の包摂の問題 日本と台湾で字体の違いを表現する符号位置が異なるとか……もうちょっとみんな仲良…

プログラマのための文字コード技術入門 Appendix A.1 - A.3

今日から Appendix です。 A.1 ISO/IEC 2022 のもう少しだけ詳しい説明 GL/GR に符号化文字集合を呼び出すという説明だったけど実際には G0, G1, G2, G3 と仮想的なバッファに「指示」されているものを「呼び出す」という概念になっている。 EUC-JP は G0-G3…

プログラマのための文字コード技術入門 第8章「はまりやすい落とし穴とその対処」その2

今日は第8章の後半です。 古くから Unix 使ってる人間にはおなじみの改行コード問題 nkf -L オプションで改行コードの変換もできる 全角半角問題 文字コードとしては全角半角という区別に意味はない。同じ文字を示してるし表示上の問題は文字コードが担うべ…

プログラマのための文字コード技術入門 第8章「はまりやすい落とし穴とその対処」その1

プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)作者: 矢野啓介出版社/メーカー: 技術評論社発売日: 2010/02/18メディア: 単行本(ソフトカバー)購入: 34人 クリック: 578回この商品を含むブログ (129件) を見る今…

プログラマのための文字コード技術入門 第7章「プログラミング言語と文字コード」その5

第7章の続き、Ruby 1.9 での文字列扱いについてです。 マジックコメントについて 「Shift_JIS は(略)完全な ASCII 互換ではありませんが、ruby 1.9 では ASCII互換とみなしており」ASCII 互換じゃなかったのか。 String は自分のエンコーディングを知ってい…

プログラマのための文字コード技術入門 第7章「プログラミング言語と文字コード」その4

第7章の続き、Ruby 1.8 での文字列扱いについてのところから再開です。 Ruby 1.8 では String はただの 8ビットのバイト列。length などのメソッドもマルチバイト文字を考慮しない(バイト数を返す) 文字クラスはない require "jcode" すると String が拡張さ…

プログラマのための文字コード技術入門 第7章「プログラミング言語と文字コード」その3

今日から第7章の続き、Java での文字列のソートと文字分割についてです 何も考えなければ Unicode 基準でのソートになる。英数字ひらがなカタカナくらいはともかく漢字は読み基準というわけではない微妙な結果になる Collator というのを使って言語毎に自然…

プログラマのための文字コード技術入門 第7章「プログラミング言語と文字コード」その2

今日から第7章の続き、Java での文字コードの扱い、サロゲートペアのあたりからです。 サロゲートペアに対応するため char 型で文字を扱うメソッドに対応する int 型で扱うメソッドを追加(JDK 1.5から) ex) charAt() -> codePointAt() 直接文字列の文字を操…

プログラマのための文字コード技術入門 第7章「プログラミング言語と文字コード」その1

プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)作者: 矢野啓介出版社/メーカー: 技術評論社発売日: 2010/02/18メディア: 単行本(ソフトカバー)購入: 34人 クリック: 578回この商品を含むブログ (129件) を見る今…

プログラマのための文字コード技術入門 第6章「インターネットと文字コード」その2

今日は第6章後半です。実は本書を読むまでメールのヘッダの B符号化、Q符号化のような符号化ことをいわゆるJIS文字コード(ISO-2022-JP)だと思ってました。全然違いましたね。また '&' を含む URL の HTML や XML に書く時には、厳密には '&' は '&' に置…

プログラマのための文字コード技術入門 第6章「インターネットと文字コード」その1

プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)作者: 矢野啓介出版社/メーカー: 技術評論社発売日: 2010/02/18メディア: 単行本(ソフトカバー)購入: 34人 クリック: 578回この商品を含むブログ (129件) を見る今…

プログラマのための文字コード技術入門 第5章「文字コードの変換と判別」その3

引き続き第5章のコードの自動判別です。 BOM、エスケープシーケンスでの判別 - これは比較的確度の高い方法 バイト列の特徴をみる そもそも EUC-JP としても Shift_JIS としても正しく文字列を示すバイト列というのはありえるので、完全な判定というのはあり…

プログラマのための文字コード技術入門 第5章「文字コードの変換と判別」その2

引き続き第5章の文字コード変換です。 そもそも文字集合が違う文字コード間の変換は問題になる。対応する文字がない、似た文字が複数ある(包摂)など 変換で情報が失なわれたり、往復変換で文字が変化してしまったり 文字を変換してしまう(文字変換)こともし…

プログラマのための文字コード技術入門 第5章「文字コードの変換と判別」その1

プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)作者: 矢野啓介出版社/メーカー: 技術評論社発売日: 2010/02/18メディア: 単行本(ソフトカバー)購入: 34人 クリック: 578回この商品を含むブログ (129件) を見る今…

プログラマのための文字コード技術入門 第4章「代表的な文字符号化方式」その2

今日は第4章の Unicode の文字符号化方式です。 Unicode の符号化方式 元はシンプルに区点番号を並べた UCS-2, UCS-4 UTF-16 1つの符号位置は基本2バイト。BMP面以外は 4バイト BMP はシンプルに16ビットで符号化できる。他の面はサロゲートペアを用いる サ…

プログラマのための文字コード技術入門 第4章「代表的な文字符号化方式」その1

プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)作者: 矢野啓介出版社/メーカー: 技術評論社発売日: 2010/02/18メディア: 単行本(ソフトカバー)購入: 34人 クリック: 578回この商品を含むブログ (129件) を見る長…

プログラマのための文字コード技術入門 第3章「代表的な符号化文字集合」その6

昨日はちょっとトラブルでお休みしました。またまた Unicode の続きからです。 Unicode ISO/IEC 10646(UCS) 全角半角のコードが分けられてる 往復変換で元の文字コードの情報が失われないように余分な符号位置も存在する 統合漢字 互換漢字 なんとかかけあし…

プログラマのための文字コード技術入門 第3章「代表的な符号化文字集合」その5

昨日はちょっとトラブルでお休みしました。またまた Unicode の続きからです。 Unicode ISO/IEC 10646(UCS) BMP(基本多言語面) だけでほぼ普段使う文字は入ってそう 面01(SMP Supplementary Multilingual Plane) 麻雀牌の絵柄とか音符とか古代の文字が入って…

プログラマのための文字コード技術入門 第3章「代表的な符号化文字集合」その4

Unicode の続きからです Unicode ISO/IEC 10646(UCS) UCS-4 群(group), 面(plane), 区(row), 点(cell) の4バイトで指定 UCS-2 UCS-4 の群00、面00。基本多言語面(BMP)のみの符号 実質的に 群00以外の群は利用されない 記法。U+4E00 は BMP の 区4E 点00 の符…