‘C#’ のタグが付いてる分
英辞郎 for kindle(mobipocket creator)
kindleにUnicodeハックを入れさせてもらい、さらにprimary dictionary を英辞郎から作成した英和辞書に変更してから、kindleの使い勝手が、もう劇的と言ってしまってもいいんじゃないの?ってくらい『快適』になった。
そうなると、なんかまた読んでみたくなるわけで…、実はkindle購入とともに購入していた「Programming C# 3.0」も、まだ80%ほどで止まっている状態なんだけど、あの手の本と言うのはいつもだいたいこのくらいのところで飽きてきちゃうんだよね。
ってことで、またぞろ新しい本をポチってしまった。もちろん、いきなりポチったわけではなくて、sampleをダウンロードして、最後まで読んじゃってから、やっぱ続きが読みたいよ~となって、勢いで「Buy Now」しちゃったということなんだけど。で、またまた、C#のプログラミング本で「more Effective C#」というもの、主には genericはこんなふうに使うと凄いんだぞーみたいなことが書いてあるようだ。moreなしの旧巻もあるんだが、そちらは .NET 1.1のときのもので、要するに初期のC#に基づいてEffectiveなプログラミング技法について書かれているものなのだが、.NET2.xになって、画期的な新機能(主にはgeneric)が加わって、新たに書き直されたという感じか?旧巻も読むべきか、微妙な感じなのが、ちょっと気になるが、とりえあず、新しい方を読み始めた。
それは、いいや。で、問題の英辞郎辞書で気になる点を、Eijiro117-csv2htmlのバグも含めて、いくつか修正した。
どうも、Eijiro117-csv2html.plには、意味カラムの内容から、語形変化部分(【変化】で始まる、それっぽい領域)を抽出する部分にバグがあったようで、もしかすると、Eijiro117~を使用した場合は語形変化追従しない辞書ができていたかもしれない。自分は、英辞郎の117バージョンを購入していないために使用していないために発見が遅れしまった、ごめんなさい。今回のバージョンはおそらく語形変化追従できるはず。
前回の Eijiro117-cvs2html.pl でとりあえずkindleのオンタイム辞書検索にて、語形変化にも追従していく辞書の作成はできた(と思っていたのだが、実はバグっていたかもしれない)。しかし、大部分の単語は正しく変化形の場合も、元の単語の意味が正しく表示されるのだが、ときどき、この語形変化の追従が上手くいかない場合がある。辞書のエントリーが例えば、以下のような場合だ。
- 「dog」というエントリーがある。
- 「dog」には、「dogs」という複数形がある。
- 「dogs」という1単語だけの独立した、別のエントリーはない。
- 「dogs and gods」というエントリーがある。
というふうに辞書が構成されている場合、dogs という単語にカーソルが合ったときに、当然、dogの意味を表示して欲しいわけだが、これが出てこない。(これはあくまでも例であって、実際のkindleでdogsに当てたときにdogが出てこないと言うわけではない)
kindleの辞書検索では、まずdogsのまま、検索し、そのエントリーがない場合に語形変化を検索するという手順を踏むようだ。ところが、上記のような構成では、「dogs」で検索した場合に、「dogs and gods」がヒットしてしまうらしい(「dogs*」と検索しているのだろう)。
ヒットしたので、語形変化形を探さないのだが、その先で、ヒットしたエントリー「dogs and gods」と「dogs」は一致しないため、ヒットしたエントリーはなしということになっているらしいのだ。
実は、対応は簡単で、要するにindexのエントリーが2語以上である場合は indexに入れなければいい。ただし、当たり前だが、2語以上のエントリーの検索はできなくなってしまう。痛し痒しというところ。
で、解決策ではないのだが、今のところ、この「2語以上」のエントリーはindex化しないというのではなくて、<idx:entry>タグのname属性を「”idiom”」として、別のインデックス扱いにしている。1語のエントリーはname属性なしとしていて、mobipocket creatorのbook settingsでも、default lookup index を空欄ししたままなので、1語のindexのみが使用されて検索されるようだ。
と、以上のことを、ごにょごにょしている、その過程で語形変化のタグ作成の処理のバグも見つかったというわけ。
ただし、残念なことに、この「idiom」という名前を付けたindexは使いようがない。無理やり使うとすると、mobipocket creatorのbook settingのdefault lookup indexにidiomと書くくらいだが、これだと、wordでの検索が行えないことになるので、使えない辞書って感じになってしまう。
そもそもは、mobipocketの <a onclick=”index_search(“idiom”, “*dog*”, ホニャララ) ” />みたいな感じに、辞書本文表示のエントリータイトルのリンクで、idiom検索の集合が出てくれたら素敵だと思って、こういう事にしたのだが、kindleのmobipocketリーダーは、<a>タグの onclick属性をサポートしていないのだ、というか、そもそも index_search()などのjavascript関係の実装がどこまでされているのかも、ちょっと怪しい感じだし。
まぁ、とりあえず、いつか、kindleのリーダーが、こうしたフィーチャーをサポートした暁には、対応がスムーズに出来るようにしておこう~ってくらいの意味しかないっていうのが現状。
Eijiro117.csv2html-v2:例によって、何が起こっても責任は持てないのであしからず。使い方は、下のscreen-shotをクリックすると出てくる感じ。(あと、細かいことは、前のアーティクルも見てね)
【追記/2009-01-25】なんか、kindleブームのようでアクセスが(超マイナーブログだったのに)異常に多い(日に200もアクセスがあるなんて…200万じゃないです、正味200です、はい)ので、念のために、このスクリプトのバグ修正版をここで追加しているので、こちらを使用願いたい。ってことで、やっぱり、上のリンクは外しておこうと思う。
- 実行の様子。「EIjiro118-WIK:6-ITAI」というのが動きを制御している。
WIK:nn がエントリーの語数を表す。6を指定すると、180万語ほどになるが、一 応mobipocket creatorでprcを作成可能。ITAIという文字列があると、『1語』の みをデフォルトindexとして、2語以上は「idiom」indexとする。kindleで2語以 上の辞書検索はできなくなるが、語形変化追従ケースは増える。
kindle近況とC#
先週から、おとなしくなっていたが、別に飽きて使っていなかったわけじゃない。せっせと、「Programming C#3.0」を、通勤の行き帰りの電車の中でも、バスの中でも読んでいる、それ以外では読んでいないけど、なんだかんだで日に1時間ほどは読んでいると思う。まぁ、それが長いか?と言われると「あはは」と笑ってごまかすしかないが、それでも割りと着実で何とか20%ほどは読み終えた。
が、正直なところ、まだ初心者向けの内容でちょっとおもしろくない。ま、C#について知らなかったことも、ぽつぽつと出てくるので、たとえば、
- internal アクセス修飾
- メソッド引数の参照渡しでは、仮引数宣言にも、実際のメソッドコールの方の引数にも ref修飾がいる
- 同じくメソッド引数の参照渡しのout修飾(これもコール側にも必要)
なんてのは、知らなかったし、そうそう、あと、あるクラスのstaticメソッドに、同じクラスのインスタンスを引数で渡すと、そのインスタンスのprivateメンバにアクセスできるなんていうのも、実は知らなかった…。
おっと、それはいいとして、そういうわけで、実はkindleの日本語化とか、日本語のhtmlをpdfやmobipocket形式にして読むなんてことを、いろいろ試していたのだが、結局本来の使い方、すなわち AmazonのKindle Storeで購入した本を英文で読むというのが、使っている時間の大部分というか、この1週間ほどは、ほぼ100%となってしまっていて、そういうわけで、ファームもオリジナルに戻してしまった。やはり、オリジナルの英字フォントが読みやすいなってことで。
Programming C# 3.0(kindle edition)を購入
昨夜は、今までの職場が最後だったので、送別会を兼ねて自分のいたグループ4人+1で、帰りに飲みに行ったために帰りが遅くなってしまい、さらに頭もくらくら、いやグラグラ?だったので、さっさと寝てしまった。
で、今朝から、またぞろいろいろ触っているのだが、いろいろ迷った結果「Programming C#3.0」を購入してみることにした。priceは$27.19ってことで、大体95円くらいのレートだとして、2,583円くらいってことになる、リアルタイムでは90円/$くらいだから、2,500円ほどにはなるかもしれない。
これの訳本Paperbackを国内で買うと、5,000円ちょっとするみたいだから、ほぼ半額となるのはうれしいところ。
で、問題の中身だが、さすがに小説とかじゃないからなのか、非常に読みやすい。さらに、知らない単語に出会っても、kindleの英英辞書のおかげで、それほど困らない。明確な意味の単語というか、具体的な単語が多いので、英英辞書でも十分に役に立ってくれる。これが小説なんかだと、あいまいな、というか、含蓄ある言葉とかが使ってあって、そんなもん英英辞書で引いても、またまた知らない単語にぶつかるだけで、前も書いたように堂々巡りの末に、無限再帰に陥ってしまうのが落ちだったりする。
ところで、この「Programming C#3.0」は最新の版(5th edition)で、この値段なのだが、これが第4版の「Programming C#」となると、$19.04なのだ、1,800円強というところになるだろうか、これはかなり魅力的だけど、残念ながら、その名のとおり C#2.0までの解説しかなく、今回自分的にはもっとも興味のあるLINQについては触れられていないもの。ってことで、少々高めでも3.0が必要だったのだが。
紛らわしいのは、4th Ed.のAuthorが”Jesse Liberty”となっているのに対して、この5th Ed.では”Donald Xie”となっているのだ。実は、そんなこと気にしないで、kindle上で5th Ed.を購入した直後に、なんか「Buy with 1-click」の設定が気に入らなくて、kindle上の「お買い上げありがとうございます」画面(あ、もちろん日本語では出ませんので、念のため)から、キャンセルのリンクをクリックした。で、kindle自体からは、すぐにコンテンツが削除されたのだが、その直後に、もう一回購入しようとすると「あなたはこのコンテンツをすでに購入済みなので買えないよ」って言われてしまう。
ちょっと心配になってPCからAmazon.comの自分のアカウントページでデジタルコンテンツの購入リストを見ると、しっかり購入したことになっていて、クレジットカードに課金されている。な、な、なにぃ~って感じなので、ちょっと、kindleのreturn&refundとかのページを読んでみると、どうもメールで知らせないといけないみたいだ(phoneでもいいそうだが、もちろん、それは論外)。面倒くさい~って感じだ。買うのはこんなにイージーなのに、や~めたとなると、ちょっと面倒なわけだ、まぁ、しかし、これが日本の普通の本屋だと、一旦ダウンロードしたコンテンツのやっぱりいらないは、そもそも対応してくれない気がするので、それと比較するとまぁ許せるレベルか。
とか、まぁ、そんなこんなで、調べていたりしたときに「Programming C#」に3.0付となしの2つの版があるのを知って、return&refund処理が終わるのを待ちたくないので、4th Ed.を買っちゃおうかと調べてみたりして、さっきの話になったわけ。
でも、結局、return&refund処理が終わる前に、kindle内の5th Ed.のサンプルを消して、新たに5th Ed.のサンプルをダウンロードして、そこから再購入したらあっさり買えてしまった。購入履歴に一時、同じ本を2冊買っちゃって、両方カードにchargeされてることになったので、心配だったが、refundの処理が思ったより早くて、さっき処理完了のメールがもう届いたりしている。
- ProgrammingC#3.0の表紙
- 窓際で朝の光を浴びながら読書ができちゃう
OLYMPUS DIGITAL CAMERA
- コントラストが紙よりかなり低いのでそれなり明るくないと読みにくい
OLYMPUS DIGITAL CAMERA
- 液晶ではないので直射でも平気というか、逆に読みやすい
OLYMPUS DIGITAL CAMERA
- このとおり、当HPも絵だけなら見ることができる
OLYMPUS DIGITAL CAMERA








