2010-01-01から1年間の記事一覧
今日も時間に余裕がなくて電車のなかで Proc と lambda の違いと、Method/UnbondMethod オブジェクトのところだけ読みました。lambda, Proc, Method などの微妙な差異についてはこんなまとめもあるのでここで書かなくてもよいでしょう。http://d.hatena.ne.j…
メタプログラミングRuby作者: Paolo Perrotta,角征典出版社/メーカー: KADOKAWA/アスキー・メディアワークス発売日: 2010/08/28メディア: 大型本購入: 18人 クリック: 533回この商品を含むブログ (125件) を見る第3章に突入です。この既知の内容が多いので飛…
今日は method_missing を使った動的プロキシの実例とクイズのところです。 動的プロキシ - こういう名前がついてるのは始めて知りましたが内容はいつもの感じです respond_to? の再定義 ここはちょっと古いです。少なくとも 1.9.2 では Object#respond_to_m…
今日は method_missing を使ったメタプログラミングです。 method_missing は BasicObject のインスタンスメソッド……確かにそうですね。ドキュメントは Object のインスタンスメソッドのままのようですが実装は BasicObject のインスタンスメソッドです 「自…
メタプログラミングRuby作者: Paolo Perrotta,角征典出版社/メーカー: KADOKAWA/アスキー・メディアワークス発売日: 2010/08/28メディア: 大型本購入: 18人 クリック: 533回この商品を含むブログ (125件) を見る第2章に突入です。 小話部分だけど経費の上限 …
第1章を読み終えました メソッドの探索「一歩右へ、それから上へ」 継承ツリー Module を include した時の継承ツリーへの影響についての解説で「インクルードクラス(またはプロキシクラス)」としてモジュールをラッパしたクラスが挿入されると解説されてい…
今朝は時間がなくて 1.4 のミニクイズのところだけ Object のクラスは? Class Module のスーパークラスは? Object Class のクラスは? Class
急遽朝の読書時間にやることができてしまってしばらくお休みしていました。無事終わったので朝の一人読書会を再開します。 しかし再開そうそう電車の遅れで短縮です。第1章の定数のところからでした 定数とネームスペース Module(Class)がネームスペースとし…
今日は実際には金曜日ですが、第1章のタイトルは月曜日です。第1部はボブとビルとの一週間の開発のようすをみるというスタイルになってます。 オープンクラス class はスコープを導入する構文で、ついでに(最初なら)クラスを生成して定数に代入する モンキー…
イントロダクションの続きからです。 言語毎のコンパイル時と実行時の区切りの明確さの違い サンプルコードにユニットテストが出てこないことについての注釈! 1.9 系(執筆時点では 1.9.1)を対象にしている 「Ruby の次のバージョンは 2.0 になる予定だ」えっ…
メタプログラミングRuby作者: Paolo Perrotta,角征典出版社/メーカー: KADOKAWA/アスキー・メディアワークス発売日: 2010/08/28メディア: 大型本購入: 18人 クリック: 533回この商品を含むブログ (125件) を見る今日から「メタプログラミングRuby」を読みま…
今日で Appendix も終わって文字コード本ともお別れです。 A.4 Unicode の諸問題 合成文字と正規化の問題 ファイルシステム(OS)で正規化方式が違うという罠 漢字の包摂の問題 日本と台湾で字体の違いを表現する符号位置が異なるとか……もうちょっとみんな仲良…
今日から Appendix です。 A.1 ISO/IEC 2022 のもう少しだけ詳しい説明 GL/GR に符号化文字集合を呼び出すという説明だったけど実際には G0, G1, G2, G3 と仮想的なバッファに「指示」されているものを「呼び出す」という概念になっている。 EUC-JP は G0-G3…
今日は第8章の後半です。 古くから Unix 使ってる人間にはおなじみの改行コード問題 nkf -L オプションで改行コードの変換もできる 全角半角問題 文字コードとしては全角半角という区別に意味はない。同じ文字を示してるし表示上の問題は文字コードが担うべ…
プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)作者: 矢野啓介出版社/メーカー: 技術評論社発売日: 2010/02/18メディア: 単行本(ソフトカバー)購入: 34人 クリック: 578回この商品を含むブログ (129件) を見る今…
第7章の続き、Ruby 1.9 での文字列扱いについてです。 マジックコメントについて 「Shift_JIS は(略)完全な ASCII 互換ではありませんが、ruby 1.9 では ASCII互換とみなしており」ASCII 互換じゃなかったのか。 String は自分のエンコーディングを知ってい…
第7章の続き、Ruby 1.8 での文字列扱いについてのところから再開です。 Ruby 1.8 では String はただの 8ビットのバイト列。length などのメソッドもマルチバイト文字を考慮しない(バイト数を返す) 文字クラスはない require "jcode" すると String が拡張さ…
今日から第7章の続き、Java での文字列のソートと文字分割についてです 何も考えなければ Unicode 基準でのソートになる。英数字ひらがなカタカナくらいはともかく漢字は読み基準というわけではない微妙な結果になる Collator というのを使って言語毎に自然…
今日から第7章の続き、Java での文字コードの扱い、サロゲートペアのあたりからです。 サロゲートペアに対応するため char 型で文字を扱うメソッドに対応する int 型で扱うメソッドを追加(JDK 1.5から) ex) charAt() -> codePointAt() 直接文字列の文字を操…
プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)作者: 矢野啓介出版社/メーカー: 技術評論社発売日: 2010/02/18メディア: 単行本(ソフトカバー)購入: 34人 クリック: 578回この商品を含むブログ (129件) を見る今…
今日は第6章後半です。実は本書を読むまでメールのヘッダの B符号化、Q符号化のような符号化ことをいわゆるJIS文字コード(ISO-2022-JP)だと思ってました。全然違いましたね。また '&' を含む URL の HTML や XML に書く時には、厳密には '&' は '&' に置…
プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)作者: 矢野啓介出版社/メーカー: 技術評論社発売日: 2010/02/18メディア: 単行本(ソフトカバー)購入: 34人 クリック: 578回この商品を含むブログ (129件) を見る今…
引き続き第5章のコードの自動判別です。 BOM、エスケープシーケンスでの判別 - これは比較的確度の高い方法 バイト列の特徴をみる そもそも EUC-JP としても Shift_JIS としても正しく文字列を示すバイト列というのはありえるので、完全な判定というのはあり…
引き続き第5章の文字コード変換です。 そもそも文字集合が違う文字コード間の変換は問題になる。対応する文字がない、似た文字が複数ある(包摂)など 変換で情報が失なわれたり、往復変換で文字が変化してしまったり 文字を変換してしまう(文字変換)こともし…
プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)作者: 矢野啓介出版社/メーカー: 技術評論社発売日: 2010/02/18メディア: 単行本(ソフトカバー)購入: 34人 クリック: 578回この商品を含むブログ (129件) を見る今…
今日は第4章の Unicode の文字符号化方式です。 Unicode の符号化方式 元はシンプルに区点番号を並べた UCS-2, UCS-4 UTF-16 1つの符号位置は基本2バイト。BMP面以外は 4バイト BMP はシンプルに16ビットで符号化できる。他の面はサロゲートペアを用いる サ…
プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)作者: 矢野啓介出版社/メーカー: 技術評論社発売日: 2010/02/18メディア: 単行本(ソフトカバー)購入: 34人 クリック: 578回この商品を含むブログ (129件) を見る長…
昨日はちょっとトラブルでお休みしました。またまた Unicode の続きからです。 Unicode ISO/IEC 10646(UCS) 全角半角のコードが分けられてる 往復変換で元の文字コードの情報が失われないように余分な符号位置も存在する 統合漢字 互換漢字 なんとかかけあし…
昨日はちょっとトラブルでお休みしました。またまた Unicode の続きからです。 Unicode ISO/IEC 10646(UCS) BMP(基本多言語面) だけでほぼ普段使う文字は入ってそう 面01(SMP Supplementary Multilingual Plane) 麻雀牌の絵柄とか音符とか古代の文字が入って…
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 の符…