2022年が終わりそうなので

今年はほとんど記事を書くことができませんでした。せめて今年の目標がどうなったのかを記録しておこうと思います。

結果振り返り

業務理解の幅を広げる

「システムを理解すること≒業務を理解することだと思って、幅を広げていきたいです。」と書いていました。これは結構できた気がします。直接業務遂行するわけではないので限界はありますが、ユーザ部門の考え方に対して真摯に向き合えたと思います。

メンバを信頼して任せるべきは任せる

「不安だからでは結局メンバの経験も伸びないですし、チーム全体が向上することを優先します。」と書いていました。これも結構できたと思います。チーム全体に余裕ができたことが大きいと感じました。余裕って大事ですね。ただ、現在は意欲高いメンバが多いので実現できたというのが実情でもあり、組織としての人材育成に取り組む必要性を感じています。

インフラ/ネットワークのインプットを増やす

「これは昨年できなかったので。あと、自分のメインの武器を忘れないようにしたいので。」と書いていました。これはほぼできなかったな、と思います。過去の知識や経験を活用する機会は多かったので、もっとスキルアップしていかないといけないなと感じています。一方でアプリよりのスキルや知識を必要とする機会も増えて、インフラ/ネットワークに時間を割けないのも実情です。

英語をがんばる

「これも昨年できなかったので。英語できたほうが幅が広がると思いますし。」と書いていました。これもほぼできなかったなと思います。英語の記事(特にOSSのドキュメント)を読む機会は増えましたが、日常的に英語を必要とする環境を作っていく必要性を感じます。

まとめ

50点くらいでしたね。振り返りをやると、来年はどうしようかなと考え始めるようになりました。もう少し気持ちを整理して、次の記事で来年の目標を立てようと思います。

そういえば、今年、クロールである程度(25m以上)を泳げるようになったのでした。これは自分にとって、とても大きなイベントでした。70点にグレードアップしようと思います。

2021年の振り返りと2022年の目標

はじめに

2021年は仕事が忙しくて、あまりブログも更新できませんでした。その振り返りと2022年の目標を記録しておこうと思います。

振り返りから

2021年は4月に担当替えがあって、ずっと担当していて愛着もあったインフラ・ネットワークから、業務系アプリの運用保守が主要業務になりました。大きな図書館の利用者用パソコンの入れ替えもあり、4月からはそのリプレースの対応にも追われました。結構しんどかったです。

得られたこと

担当が変わって、いろんな学びがありました。特に印象に残ったものとして2点ありました。

  1. 業務理解が不足している
  2. マネジメントはとても大事

業務理解が不足している

業務系アプリの運用保守が中心なのですが、これまでのキャリアパスの中で担当したことがない業務が多く、業務理解が不足していることを痛感しました。ある程度プログラミングはできるので、設計書やソースコードを読んで何をしているのかはわかります。しかし、なんのためにやっているのがわからないと、変更して良いのかどうかの判断もできません。そのあたり、とても悩みを感じました。システムは、目的が先にあって、実装は後なんだということを改めて理解しました。

マネジメントはとても大事

利用者用パソコンのリプレースの中で感じました。これまではそうした業務を自分が中心で取り組むことが多かったですが、今回は別の担当者が主となり、自分は後方支援でした。プロジェクトリーダが動きすぎると全体のリソース配分や進捗管理が十分でないケースがでてきます。今回、自律的に動けるメンバが多かったので、最終的にはなんとかなったのですが、リーダに負担が集中するところも多く、もうちょっとリーダがマネジメントに集中できるように配慮すべきだったかなと思いました。(自分のほうがPLより役職が上だったので、遠慮せずに介入するべきタイミングが何度かあったと反省しています。)

リーダには負担をかけてしまいましたが、今までと違う立場で一歩引いて見ることができたのは、収穫だったと思います。

2022年の目標

今年の目標は以下の4つです。

  • 業務理解の幅を広げる
    システムを理解すること≒業務を理解することだと思って、幅を広げていきたいです。
  • メンバを信頼して任せるべきは任せる
    不安だからでは結局メンバの経験も伸びないですし、チーム全体が向上することを優先します。
  • インフラ/ネットワークのインプットを増やす
    これは昨年できなかったので。あと、自分のメインの武器を忘れないようにしたいので。
  • 英語をがんばる
    これも昨年できなかったので。英語できたほうが幅が広がると思いますし。

自律的に決められないことも多いので、思ったようにできないことも多いと思いますが、慌てず楽しむ2022年にしたいと思います。

夏キャンプ①

はじめに

子どもたちが夏休みに突入しました。パパにとっても忙しい季節ですね。今年はすでに日帰りを含めてキャンプの予定が3つ入っています。最初のキャンプの記録です。

最初のキャンプは家族だけの二泊三日のキャンプでした。

1日目

目的地は、山梨県北杜市です。すんなり行けば2時間半程度の距離ですが、中央道が混むかもと思って、余裕を持って朝9時前に出発。この時点でGoogleマップでは多少の渋滞の情報がでていました。

あきる野ICを過ぎるあたりから、明らかに渋滞に入ってしまった感じがありました。しかし、迂回路もよくわからないので、我慢して進むと八王子JCTに近づくに連れ、どんどん動かなくなります。これはやばい。ほとんど動いているのかいないのかわからないような感じになりました。もう歩くのと変わらないんじゃ?という状況でした。高速に乗る前にトイレは済ましていたものの、3時間近く乗り続けていたため、さすがに限界が近づきつつある状況に。なんとか八王子JCTを過ぎた後、次のPAに入れる気がしなかったので、相模湖東ICでいったん高速を降りることに。

高速を降りてすぐの道(国道20号)も山梨方面はすごく混んでいたので、いちど逆方向に進み、とりあえず最初に見つけたお店に駆け込みました。

トイレの後に、おまんじゅうと野沢菜を買いました。お腹が空いていたこともあり、おまんじゅうを美味しくいただきました。その後、顔はめしていたら、道行く車のドライバーたちに微笑ましく見られて照れました。

ついでにお昼を近くのお蕎麦屋さんでいただいて、気を取り直し出発。相模湖ICから中央道に戻りました。渋滞ではあるものの、八王子付近のような状況ではなく、それなりに進み上野原ICを抜けた後くらいからは割とスムーズに進めるようになりました。良かった。結局予定よりも大幅に遅い16時ころ、宿泊予定のキャンプ場に到着しました。無事に着いて良かったです。

キャンプ場はこちらです。

山の斜面にあるキャンプ場で、とてもすばらしい見晴らしを楽しめました。以前は、ヤギもいたみたいなのですが、今はいなくなってしまったようです。残念。スタッフの方(特におじいさんとおばあさん)がとても親切で、素敵なところでしたよ。夜、炊事場の水がでなくなったのですが、おじいさんがポンプを何かしてくれたらしく、割とすぐに出るようになりました。ありがとうございました。後で伺った話では、サントリーの南アルプスの天然水と同じ井戸水を汲み上げているとのことでした。

オートキャンプ牧場チロルの看板

下の写真は、キャンプ場からの眺めです。残念ながら、雲に隠れていますが、甲斐駒ヶ岳の姿を見ることができます。もう15年ほど前に旅行で行った、スイスのアイガー、メンヒ、ユングフラウを観たときと同じような印象でした。南アルプスと呼ばれる理由が少し分かった気がします。雄大さを感じました。昔の人が山に何か神聖なものを感じたのも分かる気がします。(気がするだけかもですが。。)

キャンプ場からの眺望

この日は、夜ごはんをいただいて、ゆっくり眠りました。

2日目

2日目は川遊びです!キャンプ場のおじいさんに、「精進ヶ滝」に向かう遊歩道にある「一の滝」を紹介してもらいました。道を聞いていても若干心細くなるような道を進むこと15分、駐車場に到着です。そこから、遊歩道を10分ほど歩くと「一の滝」に到着です。途中、フォッサマグナの案内などもあったのですが、子どもたちは興味ないようで、残念ながらスルーしました。

一の滝

写真では小さく見えますが、滝つぼに近づくと結構な圧がありました。滝行って見た目よりツライかもと感じました。水がたいへん透き通るようにきれいで、あまり魚は見つけられませんでした。せっかく来たので、石をいくつか拾ってみたのですが、種類はあまり多くなくて、似たような石ばかりでした。事前に下調べして来るべきでしたが、仕事が忙しかったため、あまり下調べできず残念でした。小さい石を少しいただいて帰ったので、後で調べてみようと思います。

お昼を食べに町に下りて、道の駅でランチにしました。遅い時間だったにもかかわらず結構混んでいました。「おざら」という地域の麺料理をいただこうと思ったのですが、品切れらしく、甲斐駒ヶ岳天丼をいただきました。野菜がとても美味しかったです。

夕飯の食材を買ったり、温泉に入ったりして、キャンプ場に戻りました。2日目の夕飯はパエリアとミネストローネでした。焼き肉よりも落ち着いて食べることができました。

3日目

最終日は、朝起きてテントの撤去などをしました。9時過ぎにキャンプ場を後にしました。とても素敵なところだったので、ちょっと名残惜しい気持ちもありました。

うちでは「アルプスの少女ハイジ」ブームが来ていることもあり、ハイジの村に向かいました。

駐車場が結構混んでいたのですが、敷地が広いこともあり、中はゆったりとしていました。ロッテンマイヤーズカフェで、カップを持って帰ることができるヤギのミルクのアイスクリームを食べてから、ハイジの村の中を散策しました。ヤギにえさをあげたり、おんじの山小屋を観たり。遊具のコーナーで少し遊んで、お昼を食べにペーター館へ向かいました。2日目に食べそこねた「おざら」をいただくことができたので、満足でした。おざらは武蔵野うどんとよく似ていて、地理的にも遠くないのだな、と感じることができました。

帰りは高速もそれほどの渋滞はなく、割とスムーズに進み、予定どおりくらいで帰宅できました。夕飯はハイジの村で買った「白パン」でした。美味しかったです。

まとめ

山梨県は感染対策もしっかりしていて、うちもしっかり気をつけて過ごしました。安心と安全の中でのキャンプを過ごすことができ、楽しい思い出をありがとうございました。山梨県北杜市のみなさんと家族に感謝です。

ちなみに、買って帰ったソーセージが美味しかったので、ふるさと納税しました!

Linuxのメモリ使用状況を把握したい

はじめに

仕事で、担当しているシステムがハングアップしたような事象が起こりました。その際、sarコマンドの結果を見て、「メモリが枯渇している」という説明を受けたのに対して違和感を感じました。

freeでの使用状況は枯渇していないことを示していますし、スワップ使用量が増えるようなこともありませんでした。一方で、自分の説明に説得力をもたせることができなかったので、ソースコードを調べて観ました。

誤り等見つけたらご指摘いただけるとありがたいです。

対象サーバ

Redhat Enterprise Linux 7.7

freeコマンド

freeはRHEL6系とRHEL7系で出力結果が変わって、7系では使用量にキャッシュ等は含まない、その時点で利用可能なメモリ量をavailable で示してくれるようになったと理解しています。

今回確認したソースコードは以下のURLからとってきました。後から気づいたのですが、サーバのfreeのバージョンを調べて該当のソースを読むべきでした。
https://gitlab.com/procps-ng/procps

ざっくりとした構造

freeはコマンドなので、main関数が起点ですね。なので、そこから読みました。

今回、freeをオプション等なしで実行したパターンを想定したので、オプション解析などはすべてスキップします。そのため、重要なのは326行目からのdo while ループです。
見ると分かりますが、353行目以降は、出力のためのコードで、メモリの値を取り出しているのは349行目の meminfo() だけと推測しました。

meminfo関数

定義は、同じディレクトリのsysinfo.c に書かれていました。細かいことは省くと、おそらく754行目からのforループが/proc/meminfo の情報をmemtableの各変数にセットしているように思いました。

  for(;;){
    tail = strchr(head, ':');
    if(!tail) break;
    *tail = '\0';
    if(strlen(head) >= sizeof(namebuf)){
      head = tail+1;
      goto nextline;
    }
    strcpy(namebuf,head);
    found = bsearch(&findme, mem_table, mem_table_count,
        sizeof(mem_table_struct), compare_mem_table_structs
    );
    head = tail+1;
    if(!found) goto nextline;
    *(found->slot) = (unsigned long)strtoull(head,&tail,10);
nextline:
    tail = strchr(head, '\n');
    if(!tail) break;
    head = tail+1;
  }

kb_main_used が kb_main_total から (kb_main_free と kb_main_cached と kb_main_buffers の合計)を引いているのと、kb_main_cached が kb_page_cache と kb_slab_reclaimable の和になるように計算していますが、それ以外は、/proc/meminfoの値をそのまま使っているように思いました。

freeの使用量にはキャッシュやバッファを含まないと結論付けました。

topコマンド

次にtopコマンドを調べました。なんとなくfreeと同じだろうと予測があったので、ざくっとしか読んでいません。

top.cのmain関数から、frame_make() → sysinfo_refresh(int forced) → meminfo() と遷移しているのを追えました。このmeminfoはfreeで読んだものと同じなので、おそらくtopとfreeの出力はだいたい同じだと理解しました。

sarコマンド

さて問題のsarコマンドです。sarの出力は、キャッシュなども使用量に含むので、freeとかよりも使用率が高く出るでしょ、という点を確認したかったのでした。

今回確認したソースコードは以下のURLからとってきました。
https://github.com/sysstat/sysstat

最初、sar.c のmain関数から読み始めたのですが、いろいろ複雑な処理をしているように見えたので、途中で方針を変えて、出力する部分を中心に読むことにしました。どうやらpr_stats.c が出力部分を担当しているようなので、この中の stub_print_memory_stats 関数から読み始めました。

すると、526行目で空きメモリを計算して、534行目でシステムのメモリ総量から空きメモリを引いて、使用量を計算しています。あれれ?これだとfreeと一緒だな、となりちょっと困惑。

その後で、ChangeLogを読んでみると、version11.7.4でfree(1)やtop(1)の出力と合わせるように、計算方法変えましたという記述がありました。
https://github.com/sysstat/sysstat/blob/master/CHANGES#L371

対象のサーバのバージョンを調べると sysstat バージョン 10.1.5 だっったので、該当のバージョンのファイルを調べると、キャッシュとかバッファとか込みで計算しているのが確認できました。
https://github.com/sysstat/sysstat/blob/v10.1.5/pr_stats.c#L443

なお、メモリ使用状況の情報源はfreeとかtopと同様に/proc/meminfo のように思いました。(自信ないです。)

まとめ

バージョン11.7.4より前のsarでは、使用量にキャッシュやバッファを含んでいるので、その使用率を見て「メモリが逼迫している」と言ってはいけないと結論づけました。

Linuxのメモリ管理やキャッシュの仕組みの理解が甘いことを痛感したので、この本を読み直そうと思います。「詳解 システム・パフォーマンス」も読みかけですし、しっかりと理解できるようにしたいと思います。

新約聖書を読みました

はじめに

若草物語やロビンソン・クルーソーを読んでいて、欧米の文学の理解には聖書に対する理解が必要だなーと思ったので、娘の卒園記念でもらった新約聖書を読みました。

感じたことなど

だいぶ長いです。軽い気持ちで始めたものの、とにかく長くて途中でサボりがちになりつつ、なんとか読み終わりました。もともとクリスチャンではないから、というのもあったかもしれません。

福音書

4つの福音書が冒頭にあります。これで半分近いです。マタイ、マルコ、ルカ、ヨハネの福音書なんですが、基本的にだいたい同じ内容を4人がそれぞれ記録しているものなんですかね。さっきも読んだけどなぁと思いながら読みました。

イエス様のいろんな教えを書いてあるのですが、正直、あまり良くわからないです。たとえもよくわからない。同時代の人だとわかりやすいのでしょうか。現代的な価値観とも合わない記述もあるように思われて、解説とかつけてないと難しいなーという印象です。

使徒言行録・手紙系

福音書シリーズよりは、若干わかりやすくなる印象です。こっちのほうが、現代的なキリスト教の教えに近い感じですかね。ちょっと読みやすくなった気がして、割とページが進みました。キリスト教は迫害を受けてきたのかな、と感じる記述もありました。

日本においては、キリスト教が割と少数派だと思うので、割と最近(戦前、戦後しばらくのイメージ)まで国内だと迫害とは言わないまでも、肩身の狭い思いはしていたのかも、と思いました。一方で炊き出しやらボランティアは、キリスト教系の方々の貢献は大きいですよね。

ヨハネの黙示録

意味不明でした。これも何か解説がないとツライかも。

おわりに

途中、ところどころに赤鉛筆で線が引いてあって、「なんだろ?」と思っていたのですが、おそらく幼稚園の先生が引いてくださったっぽいです。たしか全部で7箇所くらいあったので、大変だったろうなぁと思いました。そういえば娘たちも「神は愛です(※)」とか言ってたなぁと懐かしく思いました。

※線が引いてあったうちの1つです。

ロビンソン・クルーソー

はじめに

冒険ものが読みたいな、という気持ちだったのと、外国人が書いた本などでちょいちょい引用されていることから原作読んでみようと思ったので、ロビンソン・クルーソーを読みました。

感想など

なんというか、全然子ども向けではないですし、ロビンソン・クルーソーのダメ人間っぷりや聖書のことなど、ある程度の前提となる知識がないとつまらないかも、という印象です。

若草物語でもそうだったのですが、いろんなところで聖書の引用や、考え方が出てきますね。欧米の文学作品では。聖書の教えがある程度分かって読むとまた違うのかもしれません。

冒険ものだと思って読んだのですが、必ずしもそうではないです。生きるための狩りや採集、耕作などの具体的な描写は少ないです。それよりは内面の苦悩だったり、喜怒哀楽だったりの描写の方がより多く印象的でもあります。食人の風習が出てくる等、当時の価値観も垣間見えます。今、同じような本を書いたら物議を醸すかもしれませんね。

それにしても、20年以上も孤独の中に生きていくというのは、自分だと考えられないなぁと思いました。

おわりに

次は「十五少年漂流記」を読もうかな、と思いました。

獣の奏者

はじめに

獣の奏者を読みました。

きっかけは

たしか、NHKでアニメをやっているのをたまため目にして、その後、楽天の電子書籍でコミックが無料お試しで少し読めたことでした。続きが気になったのですが、コミックよりも通勤中に読みやすい文庫版を読みました。

感じたことなど

王獣の本質を理解したいという思いに率直なエリンの生き方には共感を覚えつつ、霧の民の掟が何かわからないので不安を覚えつつ、でした。ラストまで王獣と闘蛇の関係(と言って良いのか?)がわからないので、読者はエリンと一緒に探求し続けることになります。ラストは少し悲しいですね。

掟というかタブーについては、やっぱりその理由というか根拠をきちんと示さないといけないなぁという気になる一方で、政治的なものだったりいろんな立場の人の思惑だったりが入り交じるので、全てをオープンにすることも難しいのかもなぁという気もしました。現実の世界も同じようなことがあるな、と思いながら読みました。

おわりに

あとがきだったかに書いてありますが、子ども向けではないと思いました。大人の方が楽しめる内容ですね。

PCIの勉強続き

はじめに

以前、PCIについての記事を書いたのですが、わかったようなわからないような感じだったのでもうちょっと勉強してみました。

なんとなく分かってきた気がしています

8割方、気のせいだと思います。

最初にたどり着いたのがQiitaのページです。そこから東北学院大学のページを知り、読んでみました。

どうやら、CPUにはIOポートを直接操作する命令が用意されていて、それを使って指定のアドレスを読み書きするか、メモリマップドの場合は対応するメモリを読み書きすることでPCIのデバイスを操作できるようになる、というもののようだと理解しました。

この後は

この記事が良さそうだったので、再読しようと思います。(以前読んだことが合ったのですが、当時はチンプンカンプンでした。今ならもうちょっと分かるかな?)

ちょっと話はそれますが、上記のURLやRui Ueyamaさんのコンパイラブックのような有料の書籍として出しても十二分に価値があるコンテンツを無料で誰でも読めるようにしてくれているというのはとてもありがたいですね。感謝しかありません。

さらに、有料の書籍であっても、数千円で自力では到底調べきれないであろう知見を共有してくれることは大変ありがたいです。お金出して買っているから、という態度ではなく、知見を共有してくれることに感謝を忘れずにいたいと思います。IT系の書籍でなく小説などでも、やはり書いてくれる方がいるから我々も楽しむことができるわけなので、感謝を忘れずにいようと思います。

2021/03/28追記

上記のURLの他にこのサイトも見て、ちょっと分かってきたかなーという感じです。

どうやらPCI Configuration Spaceは0x0cf8に、Config Dataは0x0cfcにマップされているらしいです。Configuration Spaceへバス番号、デバイス番号、ファンクション番号を指定して読み書きしたいレジスタをセットして、0x0cfcの値を読み出したり、そこへ値を渡したりすることで読み書きができる、というようですね。

SATAやネットワークカードの場合に、具体的にどのようにデータを読み書きするのかまではたどり着けていない感じですが、一歩進んだ手応えを感じ中です。

飛ぶ教室

はじめに

一つ前の記事で「アメリカ文学に親しんでいこうと思いました」と書いておきながら、ドイツ文学を読みました。エーリッヒ・ケストナーの「飛ぶ教室」です。

感想

ギムナジウムの少年たちの成長の物語。20年以上前に大学生だった時分、1度読んだことがあったはずですが、全く覚えておらず。また、その当時は何が良いのかもピンときませんでした。

今回改めて読み直すと、少年たちがいろんな(といっても他人から見れば小さな)挫折や苦難に向き合いながら成長していくストーリーに引き込まれるようでした。

いくつかの山場がありました。

  • 実業高校との決闘のシーンとその後の展開
  • 禁煙さんと道理さんの再会のシーン
  • ウーリが跳んだ瞬間
  • マルティンが帰省できないと知ったときの落胆と道理さんの申し出

ドイツの寄宿学校というものをあまり知りません。それどころか、日本でもそういう経験がないため、ギムナジウムの文化的な背景を知らずに読みました。そのあたりがわかればもっと面白く読めたかもしれません。ところどころで、登場人物たちが「も・ち・ろ・ん」と言っている場面があります。おそらくこの中黒部分が少年たちの当時の言い方などを表現しているのだろうと思いながら、やはりそういう場面をしらないためにどうしても第三者的な視点で見てしまうことがありました。

とはいえ、現代とこの本が書かれた時代とでだいぶ違う点も多いと思われるため、現代的なギムナジウムを知っていたとして、そこは変わらないと思います。1936年刊行なので、ドイツが第二次大戦に向かう頃ですので、マルティンの父親の失業などもそうした背景を踏まえるとより理解できますね。

少年たちの成長の物語なんですが、それを見守る大人たち(特に禁煙さんと道理さん)が素敵なんですよね。私もそういう大人でありたいと願います。

おわりに

次はちゃんとアメリカ文学に戻る予定です。

ハックルベリー・フィンの冒険

はじめに

以前、トムソーヤーの冒険を読んだので続きだと思って読みました。

感想

ハックが父親に連れて行かれて小屋で生活を始めるところ、そこから逃亡してジムと出会うところ、その後ジムとともに筏での川下りを続けるところ、王様と公爵に振り回されるところ、トムに振り回されるところ、エンディング。どれもとても面白く一気に読み切ってしまいました。通勤の往復2回とちょっとだったので、だいたい4時間くらいで読み切ったですね。そのくらい引き込まれる作品でした。

まず、ハックが良いです。町では有名な不良なのですが、素朴でピュアな心をもっていますよね。特に当時の時代背景を踏まえるとジムと友情を交わしていくシーンは素敵だと思います。その後、ジムの逃亡を決意することは感動的なシーンですね。ハックは当時の教育を十分に受けていない少年として書かれていて、そのために、時代のくびきから自由になれたのかもしれませんね。

ところどころで、現代的な感覚でありえないような描写があります。大勢が詐欺師たちを「吊るし上げろ」と叫んだり、ファミリー間の決闘だったり、王様と公爵をリンチするシーン(ここは詳細にまでは記載されていませんが)など。現代よりももっと、命が軽く扱われていたのかなと思います。もちろんフィクションなので多少の誇張はあると思いますが、そういう描写が可能な程度の状況はあったのだろうと思います。そうした背景の中で生きていくたくましさのようなものも感じます。ハックの場合はしたたかさと言ったほうが良いのかもですね。

最後のトムとの脱走劇は、正直憤慨でした。物語に憤慨してもしょうがないのですが、ジムが自由の身であることを知った上で、どうでも良いカッコつけのためにあれやこれやの労力をかけて、あげくの果てに銃で打たれるわけですし。一歩間違えていたら死んでいたのかもしれないです。打たれたのがトムなので、まだ良かった。あれで、ジムやハックが打たれていたら最悪ですよね。もちろんフィクションだからそうはならないわけですが。ハックの素直なところが随所に出てくる分、トムはなんとなく嫌味な感じになってしまっている印象でした。

おわりに

アメリカ文学にはこれまで馴染みがなかったのですが、どれもおもしろい作品続きで、しばらくアメリカ文学に親しんでいこうと思いました。