2007-11-01
Link 非包括的Nokia N800体験記
Nokia N800は海外のPDA(Tablet PC)だが、ベースがDebian Linuxなので有志作成のソフトウェアを追加することで日本語表示を含めた機能の追加が行なえる。大まかには、塩田紳二「Nokia Internet Tablet N800レポート【ソフトウェア編】」(以下S071023)を見るとよい。
また、N800について記している先人たちのブログやページとしては、次のものがある。
- oogattaの勉強日記(2007-07-01、以下O)
- みずさわーるどココログ版(2007-04-01、以下M)
- Kimitake's blog(Maemo関係、以下K)
- N800に関するあれこれ(jed、lv、w3mあり)
開梱後になすべきことは、M070401に書かれてあるとおり、(1)満充電し、(2)システムを更新(最新は現時点でIT-OS2007 Ver.4.2007.38-2)することだ。システム更新時にデータは初期化されるので、バックアップをとる手間を考えれば最初にやっておいたほうがよい。その後電源を入れて無線LANの設定をすれば、普通のPDAとして使える。
次に、日本語表示・入力機能を付加するためにMaemo CJK SupportにN800内蔵のOperaブラウザでアクセスして、Beta Releaseの欄から0.4bの日本語アイコンをクリックする。(0.3.8では標準IMEとの切り替えができないので、0.4bのほうがよいと思う。)この実体は「.install」ファイルで、中身は次のテキストファイルにすぎない。
[install] repo_name = Maemo CJK Support - Beta repo_deb_3 = deb http://maemocjk.garage.maemo.org bora test package = maemo-japanese-support-n800
このファイルをN800から開くと、自動的にApplication Managerのリポジトリに登録される。
ここで小一時間はまったことがある。S071023によれば
maemo CJKをインストールし、N800を再起動すると、ステータス表示領域に入力方式切り替えのアプレットが追加される。
というのだが、そのアイコンが表示されない。何度か再インストールを繰り返した。実は、Tools→Control panelを開いて、Personalization欄の「Navigation」という項目があり、ここでTask Navigator(画面左)とStatus bar(画面右上)との表示をカスタマイズできるのだ。maemocjkが灰色で無チェック状態になっているから、これを修正すればよい。
インストールされる和文書体は東風ゴシックで、/usr/share/fonts/に入っている。東風が気に入らなければ、任意の日本語TTFファイルを入れればよい。N800の標準欧文表示書体はNokia Sans Cnで、207dpi(800px×480px、対角4.5")の高精細な画面でも黒々と見え、悪くない。和文書体でこれに匹敵するのはMeiryoだろう。200dpi超の高精細な画面では、ビットマップをもたないフォントのほうがよい。
話を戻す。Mamemo CJKをインストールすると、他のMaemoリポジトリも勝手に登録してくれる。それを利用してxtermをApplication Managerからインストールする。このあたり、M070406も参照のこと。さらにOpenSSH client and serverをOperaブラウザからインストール。xtermを使って/sbin/ifconfigでN800のIPアドレスを調べ、sshでログインすればよい。デフォルトでは、root/rootmeでrootで入れてしまう。ついでに書いておくと、外部SDカードのパスは/media/mmc1、内部は/media/mmc2である。
あとは、おいおい環境を整備していこうと思う。内部SDカードは仮想メモリとしても使用できるらしいので、とりあえずClass 4のSDカード(1GB)を2枚発注。2枚買っても4000円もしないのだから、安くなったものだ。
2007-11-02
Link PDAの第2日
PDAを使うのはモバイルギアII以来なので久しぶりの感をもってNokia N800を使っていた。昨日は主にブックマークの整理で、国内のニュースサイトや路線検索を加えたりした。路線検索は、できればアプレットを作ってデスクトップからアクセスできるようにしたいが、そのためには開発環境を準備しなくてはならない。それができるのは、おそらく来年度以降だろう。
わずか2日だが、認識を新たにした点はある。たとえばビットマップフォントはPDAにとって重要だと思っていたのだが、初代iPod程度の解像度ならさておき200dpi超の高精細な画面では線が細くなりすぎて見づらい。完全にアンチエイリアスの勝ちだ。
また、PDAとAjax(を用いたWebアプリ群)との親和性があまり高くないのも予想していなかった。JavaScriptはクライアント側で動くスクリプトなのでPDAのCPUでは荷が重いこともありうるし、ブラウザの最適化が甘いのかもしれない。もっとも、これらはPDAの性能が向上すれば問題なくなる。
しかしそうした問題とは別に、タッチスクリーンを前提としたPDA独特の操作がWebアプリのそれと衝突することがある。PDAには右クリックがないから、N800のOperaブラウザで右クリックに相当するメニューはスタイラスの長押しで実現されている。そのせいで、たとえばGoogleマップで縮尺を変更しようとツマミを押そうとしたら、操作を誤ってメニューを出してしまう。WebアプリのGUI部品はPC用に作られているから、特に画像で実現されたものはN800には小さすぎて操作しにくい。
また、スクロールホイールもPDAにはないだろう。ブラウザで画面をスクロールさせるには指やスタイラスで画面をなぞればよいのだが、たまたま触れた箇所がWebアプリでドラッグ可能だったりすれば、そちらのイベントが優先されるはずだ。
幸いにも、Googleマップほどの機能になるとAPIが用意されているから、そちらを利用した専用アプリが使える。Maemo Mapperは、N800のボタンに機能が割り当てられていて、移動も拡大縮小も容易である。
2007-11-06
Link C# 2.0(VC#2005)を触る
なんとなくC#が気になってきたので、そろそろ触ってみることにした。とりあえず日向俊二『Visual Basic 6.0ユーザーのためのVisual C# 2005プログラミングガイド』(アスキー、2006年)を購入し、通読する。
C#を学習する場合、C#だけでなく.NETやVisual Studioにも目を配る必要がある。というか、C#の文法自体はわりとなじみやすい(with文がないのは意外だったが)ので、実質的には後者の学習のほうが大変かもしれない。
日向(2006)はずいぶん書き飛ばした感がある。VB6利用者を想定していながら関数の戻り値return 0;について何も触れていないし、アプリの実演でラジオボックスを作っておきながら肝心のコードを入れ忘れている。また、場所によって文字列型がstring(これはC#の型)だったりString(こちらは.NETの型)だったり一貫しない。
それでも、VB6に慣れた人間がC#/.NET/VS2005を一括して学ぶ1冊目の書籍としてはよいと思う。最大の長所は355ページと比較的薄い点で、これならサッと読み通して次の本に取りかかれる。少なくともC# 2.0と.NET 2.0については、もっとマトモな本を読まなくてはならない。何か推薦書籍があればご教示ください。
文字列型といえばサロゲートペアの処理が気になったのだが、Windows Vistaの登場前に発刊された本書に解説は求められない。.NETの文字コードは内部UTF-16なので、サロゲートペアの影響は不可避だ。この場合、System.GlobalizationにあるStringInfoクラスを使えば、4バイトで表現するような文字も正しく扱える。まあ、こんなふうにして文字列操作の一貫性は綻びていくのだろう。
データベースに目を向けると、ADO.NETとADOとはJavaとJavaScriptとの関係ほどに異なる。すなわち名前以外はほとんど無関係だ。個人的には、ADOのRecordSetでカーソルを操作していく感覚はRDBらしくなくて気持ち悪かったので、ADO.NETは気に入ってきた。こちらも学習する必要がある。
ついでに書いておく。VISAカードでAmazonのキャンペーンを春から開催しているのをご存じだろうか。VISAカードの会員ページの特定バナーからAmazon.co.jpに遷移すると、ワールドポイントが5倍になる。私は先月まで気がつかなかった。
2007-11-08
Link PDFファイルの論理・物理ページ
昨日はロンドン証券取引所(LSE)でシステム障害があり、FTSE 100の値が乱高下していた。日経記事によれば「株価情報などの配信システムに大規模なシステムトラブルが発生」という話だが、LSEがMicrosoft .NETを大規模に導入したことが思い出される。
さて、一定以上のページ数を誇るPDFファイルとなると、本文の前に表紙や目次が付いていることがある。どんなものか想像できなければ、たとえばPython 和訳ドキュメントにある各種PDF版マニュアルを見よ。
こうした規模のPDFファイルでは、ノンブル(紙に書かれているページ番号)とPDFファイルのページ番号とが一致しないことがある。なぜなら、表紙にノンブルは打たないし、目次や前書きにはローマ数字を振っていくからだ。したがって、ノンブルでの第1ページがPDFファイルでは14ページ目、などということが起こる。
厄介なのは印刷時だ。ノンブルと論理ページとが一致していないと、ページ指定を間違えやすい。第5章がp.125、第6章がp.216で開始するとすると、pp.125-215を印刷すればよい――と思いきや、ノンブルのp.125はPDFファイルとしてはp.142だった、という落とし穴である。白状すると、まさに昨日、上の和訳ドキュメントでハマってしまった。
対処法はないだろうか。手動でなら存在する。私の手元にあるAdobe Acrobat 7.0 Professionalでは、〈アドバンスト〉-〈ページ番号...〉でセクションごとにページ番号を設定でき、これでノンブルと合わせられる。しかし、試してはいないものの、おそらくAdobe Readerでは無理だろう。
dvipdfmxそのものを改変して、目次などのページにはi, iiなどとPDFページ番号が振られるようにするのも一案だが、現行のdvipdfmxはページ単位で処理しており、前もってページ数を把握しているわけではない。そのような機能をつけるとしたらPDF変換後の後処理という形になるから、その機能は分離して
$ pdfpreamble -s 1-9 hoge.pdf
みたいに、単独のコマンドとして用意したほうがよいかもしれない。
2007-11-11
Link PDAの第3日
SDメモリーカードが2枚届いたので、Nokia N800に取り付ける。風の便りでは、1枚を仮想記憶として使うと体感速度が向上するということだが、……あまり実感が湧かない。
Nokia-N800-39:~$ free total used free shared buffers Mem: 127244 91568 35676 0 908 Swap: 131064 0 131064 Total: 258308 91568 166740
を見てもわかるとおり、ちょっとアプリを起動したくらいでは仮想記憶領域は使われない。とはいえ遅くなった感触もないので、そのままにしておく。
次に電源まわり。N800は蓄電池にBP-5Lを採用している。これは、Nokia E61などの携帯電話と同じ製品で、日本でも正規品が容易に購入できる。実は、WiFi端末としてiPod touchではなくN800を選んだ理由として、蓄電池が脱着可能で安定的に供給されている点も大きかった。また、ノキアほどの規模になると、互換品も世界的に流通している。電池プロで見つけた某製品など、3.6V - 1300mAhと品質は劣る(正規品は3.7V - 1500mAh)が価格は1/5である。予備としてなら悪くない。
蓄電池よりも急ぐのはACアダプター(AC-4U)である。こちらは無問題を通じて香港から取り寄せた。送料込みで1,300円。香港は近くだけあって到着が早く、単なる郵送でも3〜4日で届く。
液晶保護シートでは失敗した。画面寸法が同じ4.5型のVAIO typeU用のものが使えるだろうと思って購入してみたものの、いざ張ろうとすると高さが合わなかった。保護シートはあまり好きではないし、傷も気にならない質なので、もうそのまま使い倒すことにする。
ソフトウェア方面では、特に進展なし。付属のメーラーはSylpheedだが、題名は日本語表示可能なのに本文が不可能なので、おとなしくGmailを使うことにする。
あとは自分の日記を変更。ただのにっき(2007-10-10)では、tDiaryをiPod touch/iPhoneから読みやすくすべく、両機からアクセスした場合にはサイドバーを表示しないような「iphone-detector.rb」プラグインが紹介されている。N800のUser Agentには「Tablet」という文字が入っているので、これをキーワードに追加した。
2007-11-14
Link 地味なLenovo 3000
両親が使用しているノートPC(富士通FMVNB10AR)が完全に起動しなくなった。購入して5年になるから、天寿を全うしたと言えなくもない。使用時間としては、(1)Webとメール、(2)年賀状ソフト、(3)ソリティアの3種で99%を占めていたように思う。
後継機として選定した機種は、Lenovo 3000 C200 89225ZJである。ごく普通のビジネス向けノートPCだが、無線LANのほか各種メディアスロットを搭載している。前者は存在を前提にして購入したのだが、後者は買ってから気がついた。なお、OSがWindows VistaでなくWindows XP Professional SP2であることは言を待たない。価格は64,800円。
要注意な点が1点。メモリーはPC5300のDDR2だが、ノートPCの汎用品は使用できない。ThinkPad X60と同じ専用メモリーを必要がある。トランセンドのオンラインストアでTS512MIB7733が2,750円なので、それを買う。
同じLenovoでもThinkPadなら熱心な個人利用者がいる(私もそうだった)のだが、Lenovo 3000となると個人利用者をあまり目にしない。この点、せうの日記の通りだ。Lenovo 3000はロレックスに対するチュードルのように、汎用品を用いて部品費用を削減しつつもThinkPadらしい強度を維持しており、価格性能比は高い――といったら褒めすぎかもしれないが、米国企業のビジネスノートPCよりも作りは上質である。
Windows Vista販売後にWindows XP搭載機を買うのは初めてだ。同じXPでも構成に変化があって、たとえばInternet ExplorerはVersion 7になっている。.NET 2.0も組込済だ。例によってタスクトレイにはアイコンがたくさん並び、起動直後はダイアログがどんどん出てくる。初期のデスクトップの醜悪さは、たしかにWindows PCの欠点だ。壁紙も、見ていると気分が悪くなりそうな出来である。せっかくなので紹介しよう。
2007-11-15
Link 連想配列にCollectionを使わない理由
Joel Spolskyは「はじめてのBillGレビューのこと」(青木靖訳)の中で、Excelのためのマクロ言語(現在のExcel VBA)を設計するためにVisual Basicに導入した機能4つを述べている。
私は自分のお気に入りの機能を4つBasicにどうにか付け加えた。ひとつはVariant型だ。……(中略)……それからレイトバインディングを追加してもらった。……(中略)……それからお気に入りの言語構文を2つ、cshからもらってきたFor Eachと、PascalからもらってきたWithだ。
この部分を読んで、Excel VBAで便利な部分のかなりをJoelに負っているのだなあと驚いたことがある。またWith文はともかく、残りの3つは密接に関連している。For Each構文ではVariant型しか使えないし、実行時結合のおかげでobjectをVariant型に代入すると色々なことが行なえる。
さて、Visual Basicの配列周辺の実装が現代的な言語にくらべて貧相なことは知られたことだ。対処法もいくつかあって、自分でクラスを定義する方法もあれば、本来はオブジェクトの配列であるCollectionクラスを動的配列に使用する向きもあるし、ADOのRecordsetを流用する手もあれば、.NET FrameworkのArrayListクラスを引っ張り出してくることもできる。私自身は、Excel VBAに最初から備わっているCollectionクラスを使うことが多い。
.NET Frameworkの利用について付け加えたい。こちらについては、検索エンジン以外の方法で辿り着けたことがないMicrosoft TechNet 2007年1月号の「Hey, Scripting Guy!」に詳細が掲載されている。簡単にまとめると、.NETのクラスの一部はCOM相互運用機能が実装されているけれども、その一覧はないから自分で調べてくれ、という話だ。こんなふうにVB[AS]?から.NETへアクセスして機能拡張を図る試みとしては、たとえばWSHのSendKeysで日本語を入力するを参照。
しかし、COMではメソッドの上書きはサポートされていない。たとえばStringBuilderクラスのAppendメソッドなどはリンク先のようにオーバーロードされているのだが、これらを型によって使い分けなくてはならない。Of Kings and Cabbageの「Marvels of COM .NET interop」を参考に総当たりで調べてみると、String型に対応するメソッドは「Append_18」のようである。だからWSHで
Option Explicit Dim sb: set sb = CreateObject("System.Text.StringBuilder") Dim i For i = 0 To 10000 sb.Append_18 CStr(i) Next WScript.Echo sb.Length
のように使用できるわけだ。なお、dotNet Fireの「Late-bound COM calls to overloaded .NET method need decorated names?」によれば、VS 2005のOleView.exeを使えばメソッドのオーバーロード順がわかるというのだが、使い方がわからない。
話を配列に戻す。このまえCollectionを見ていたら、AddメソッドにItemだけでなくKeyがあるのに気がついた。Keyもあるなら連想配列としても使えるわけで、それならMicrosoft Scripting RuntimeのScripting.Dictionaryを使う必要もないではないか。
ところが現実は甘くはない。Collectionには、そのキーが配列に存在するかどうかを確認するためのメソッド(DictionaryならExists)が存在しないのだ。だからOn Error GoToで対処しなくてはならず、これはさすがに面倒極まりない。.NETにしたいならSystem.Collections.Hashtableが使えるが、そんな酔狂な人はいないだろう。素直にDictionaryを使うのが一番のようだ。
2007-11-18
Link 間違いの系譜
数研出版の有名な学習参考書に『チャート式』がある。かつて『赤チャート』ではロピタルの定理が取り上げられていたが、その内容は不正確であった。ロピタルの定理については記述が不正確な参考書が少なくないが、『赤チャート』を無検討に引き写したためであるのかもしれない。(なお教育課程改訂により、旧来の『青チャート』が現在の『赤チャート』になった。旧『青チャート』ではロピタルの定理の記述に誤りはなかったので、偶然にも現行の『赤チャート』では誤りが改善されたことになる。)
ところで最近、もっと大々的に世間に誤って流布されている記述内容を見つけた。それは中学校理科の火山についてで、現行の学習参考書の多くが三原山を盾状火山(楯状火山)に分類している。しかし、それは事実ではない。たとえば『世界大百科事典』から引用すると、
東京都,伊豆諸島の大島中央部にある火山。標高754m。大島全体が玄武岩質の二重式成層火山で,三原山はそのカルデラ内に生じた後カルデラ丘にあたる複成スコリア丘である。
にあるとおり、三原山は成層火山である。『理科年表』にもそう書かれているし、Wikipediaの同項目も正しく書かれている。
溶岩ドーム・成層火山・盾状火山と、右に行くにしたがってマグマの粘性が小さくなるのは正しい。また、流紋岩・デイサイト・安山岩・玄武岩と、右に行くほど粘性が小さいのも正しい。そこで不注意な誰かが、「盾状火山=玄武岩」のように火山と岩石とを短絡的に結びつけたのだろう。ここが誤りで、先の三原山は成層火山だし、富士山も玄武岩が主成分である。
高校で地学を学習する者は物理・化学にくらべるとずっと少ない。誤りが訂正されぬまま大人になることもあるだろう。三原山の件は全国的に広まっている誤解のようで、富山県総合教育センターのように公的教育機関でも誤っている。文章では盾状火山について「日本には典型的な例は少なく」と述べているのに、担当者が付け加えたであろう表では三原山を盾状火山に分類している。
2007-11-24
Link 新規導入したソフトウェア群
エキサイトとスカイプが提携して「エキサイトSkype」がダウンロードできるようになった。新たに「excite」というタブができて、それが一種のRSSリーダーのように機能する。ニュース内容が選別できないのが難点だが、その試みには感心した。注意としては、エキサイトSkypeでは〈ヘルプ〉−〈Skypeについて〉でバージョンが表示されない。そういう仕様なのだろうか。
ついでに自宅のPCのInternet Explorerを7.0に更新する。悪くない。たとえばIE単独でClearTypeが有効にできるのは美点だ。ClearTypeは描画性能を3割落とすのでシステム全体ではオフにしておきたいが、海外のブログやニュースサイトは本文が9ptや10ptのため、ClearTypeを有効にしたほうが文字が太って読みやすい。この日記のCSSも少し変更して、本文のフォント指定を削除した。ただし月別表示にはVerdanaを指定している。
IE 7の描画エンジン自体はIE 6とさして変わらないが、野口悠紀雄Onlineのトップページはメニューの文字が異常に小さくなっていた。調べてみたら、バージョン判定のJavaScriptでIEのメジャーバージョンが6を超えるのを想定していない。簡単な対策をしておく。IE 7で閲覧されている方には不便をおかけしていた。反省する。
アドオンであるIE7Proは本当に便利だ。私は「動く」広告を嫌悪していて、そのためFlash and Pics Controlを使ってオフにしていた。このコントロールは、オンオフの切り替えにIEの再起動を要するのが難点だった。IE7ProのFlashブロックなら、Flashファイルごとにワンクリックでブロックを解除できる。IE7Proについては「8倍速対応:IE7の強力アドオン-IE7Pro」が詳しい。
エディタ方面では、少し前の話になるがVx Editorの開発再開のニュースが嬉しかった。このエディタは、Wz Editor以外で「肌が合う」数少ないエディタだ。また、Python用のエディタは、この夏からPyScripterを使っている。「Python開発統合環境の決定版!」という評価は嘘ではない。
それからもうひとつ。Novell版OpenOffice.org 2.1の更新版が配信されているので、ダウンロードする。こちらは“OOo-2.1.0-16-5.msp”という名前のファイルなのだが、説明書の指示に従ってダブルクリックしても適切なアプリケーションで開けなかった。これはWindows Installerのアップデートパッケージらしく、コマンドプロンプトで
msiexec /update OOo-2.1.0-16-5.msp
とするとインストール画面が起動する。
2007-11-29
Link 直訳は擬似コード
ときどき英語の勉強で読ませていただいている自由塾の日記で、シェークスピアに関する短文が取り上げられていた。大学入試問題らしい。シェークスピアが西欧で最も偉大な詩人と言われる理由として、「誰よりも詩をうまく書いたからだ」という解答は悪くないが……として次の段落に続く。
But when I think of those times in my life when I have been most happy and unhappy, and recall how at such moments the words of Shakespeare have always come to my lips, because no others could express when I felt and nothing else could ease me of my burden, then I am not satisfied with the answer that I have given.
Because I am dealing here with Shakespeare as a spiritual force in our lives, one who had explored the darkest and the brightest recesses of life and had come back with the greatest of secrets: the healing of suffering by the creation of beauty out of the very things from which we turn in terror.
この文章が高校生にとって難しいのかどうか、私にはよくわからない。ただし、大学受験生と思しきブログでは、上の2つの段落は次のように訳されていた。
しかし、もっとも幸福だったり、最も不幸だったときをを思い出すとき、そのような瞬間、シェークスピアの言葉が常に私の唇にどのように訪れたかたずねてみる、なぜなら私が何を感じているか他のもので表現することができなかったし、他のものは何も私から負担を取り除くことができなかったからだ、そしてその負担とは、私が答えた、答えに満足ではないことだ。
私がここではシェークスピアを人生における精神力として扱っているので、人生の最も暗く、最も明るい深淵を調査した人は、最も素晴らしい秘密とともに戻ってきた:我々が恐怖を追い払うまさにそのものからの美の生成によって苦しむ治療。
この日本語らしき文章を読んだときに、標題のように「直訳とは擬似コードである」と感じた。擬似コードとは、アルゴリズムの構造を浮き彫りにするために、プログラミング言語に似せて書かれたコードのことだ。プログラムではないので、そのままでは使えない。
下手な翻訳書を読んでいると明らかな誤訳が見つかり、原文を推測して解釈しなおすことがある。それが可能なのは、たとえ訳が下手でも解釈は正しい場合だろう。残念ながら今回のような訳文だと、ちょっと原文が推測できない。特に2段落目で、文の構造を完全に取り違えているからだ。これは英語力の問題。
もっとも、たとえ「文」の構造を把握する際にも、統語論が単位とする文よりも大きな単位で文章を読まなくては正確な理解にはつながらない。英語力というよりは読解力がものをいう部分だが、どうすれば力がつくか私は知らない。気がついたら備わっていた、としか言いようがない。
ただし、英文を読む際には意識しておくと得なことはある。そのひとつが「言い換え」だ。たとえば上の文章で言い換えを探すと、次の2種類が見つかる。
most happy and unhappy = such moments = the darkest and the brightest recesses of life = the very things from which we turn in terror
a spiritual force in our lives = the greatest of secrets = the healing
最初の言い換えで、第1項と第3項は形が似ているから容易に判断がつく。幸不幸を明暗に言い換えている。そして、強度な明暗は「恐怖で目を背けてしまう(turn from)もの」である。
第二の言い換えでの第2項と第3項とはコロンでつながっているので簡単だ。第1項は、第一の言い換えと関連づけて推測する。結局のところ最終段落では、コンマの前後で実質的に同じことを述べているのだ。だからsecretsは「秘密」ではなく、「神秘」とか「奥義」とか、そういった類のほうである。
解釈自体は簡単だ。幸福の絶頂や不幸のどん底にいるとき、その裏に潜む人生の真理を常人は見抜くことができない。しかしシェークスピアは透徹した観察眼で人生を深く理解し、詩に結実した。だから偉大だ――というようなことだ。
しかし、これを擬似コードではない通常の日本語にするのは容易ではない。最終段落は、次のように訳せば合格点がもらえるだろうか。
なぜなら、私はここでシェークスピアを人生の心の糧として扱っているからです。シェークスピアは人生の光も闇もその奥底まで見通し、深遠な真理を持ち帰ってきました。常人なら怯えて目を背けてしまうような厳しい人生の現実に立たされたとき、まさにその瞬間に詩という美が生まれ、我々の苦痛を癒してくれるのです。
Link 通りすがり [> Collectionには、そのキーが配列に存在するかどうかを確認するためのメソッド(DictionaryならEx..]