読者です 読者をやめる 読者になる 読者になる

愛と勇気と缶ビール

ふしぎとぼくらはなにをしたらよいか

年末に読んだ本 (2016-2017)

旅行もしくは帰省するときは、荷物が増えるのが嫌なので紙の本ではなくKindle Paperwhiteを持っていくことにしている。

で、新幹線の中で退屈しない読み物がほしいなーと思って舞城王太郎を選んだ。

世界は密室でできている。 (講談社文庫)

世界は密室でできている。 (講談社文庫)

「世界は密室でできている。」は主人公の親友ルンババが名探偵役となり、様々な密室の謎を解き明かしていくストーリー…なんだけども、とにかく展開が早い。

事件が起きたと思ったらほぼその次の瞬間にルンババが解決してしまう。だからといってカタルシスがないかといえばそうでもなく、謎が生まれ解決されていくそのスピード自体がカタルシスを生む。

進撃の巨人も割と展開が早い漫画だと思うが、僕はああいう風に出し惜しみをせずどんどん伏線を回収していく作品が好きだ。その逆に、何年越しで伏線を回収してスゲー!とか言われている作品にはあまり感心しない。ワンピースとか。

「世界は密室でできている。」がミステリに属するのか否かはよく分からないが、ミステリのお作法なんてどうでもいいと思っている。面白ければいいのだ。

煙か土か食い物 (講談社文庫)

煙か土か食い物 (講談社文庫)

これ、舞城王太郎のデビュー作らしい。なるほどなあ。冒頭がカタカナの多いライト小説っぽくて馴染み辛いかと思ったが、すぐ主人公がアメリカから日本に戻ってきて読みやすくなった。

これもミステリ的な筋立てではあるのだが、全体としては主人公とその家族のサーガ的な小説。なぜだか、「砂糖菓子の弾丸は撃ちぬけない」を思い出した。

砂糖菓子の弾丸は撃ちぬけない  A Lollypop or A Bullet (角川文庫)

砂糖菓子の弾丸は撃ちぬけない A Lollypop or A Bullet (角川文庫)

主人公の無力感とか、世界の見え方が似ていると言えば似ているのかな。感覚的な話にしかならないけども。

阿修羅ガール

阿修羅ガール

「阿修羅ガール」は、話が別世界に飛ぶところで脱落。

ストーリーが中断されたり過去に行ったり別の話に飛ぶ小説が嫌いというわけではなく、むしろそういった趣向は好物とさえいえるのだけど、これが合わなかったのは完全に別の話が始まるのではなく「それまでのストーリーの続きの比喩」的な読み方をしなきゃならないのかな?という部分にひっかかったから?なんだか読むモチベーションが削がれてしまった。

問題は英国ではない、EUなのだ 21世紀の新・国家論 (文春新書)

問題は英国ではない、EUなのだ 21世紀の新・国家論 (文春新書)

これは親父が貸してくれたので読んだ。トッド先生は相変わらずトゥルー知識人という感じで、尊敬できる。このようにデータに基づいて社会について語れる人は少ない。

宿屋めぐり (講談社文庫)

宿屋めぐり (講談社文庫)

町田康の描くネオ時代劇。変に内省的で饒舌な主人公が、語彙の上ではほぼ現代と同じになっている江戸時代(?)をプラプラするストーリー。そういう意味では「パンク侍、斬られて候」と同じ。

これも明らかに時代劇という枠を超越した作品なので、真面目なそれを期待して読まないほうがいいだろう。町田康のスーパー饒舌体には、読んでいる人間の思考を侵す力がある。こちらが考える前に主人公が考えてしまうというか、考える間を与えないというか。考えるというのも言葉の働きなので、特定の言葉づかいをしていると同じようなことを考えるようになる…といっていたのは高橋源一郎だったか。とにかくそういうことである。

文章のありか

自分のblogの記事がRSSに流れてきて驚いた。だから何だ、というわけではないが。

おなじ文章でも、PCで読むのとスマートフォンで読むのではやはり印象が違う。スマートフォンでも、ブラウザで個別記事を読むのとRSSリーダーの中で読むのでは違っている。

文章を書くことにしてもそうで、パソコンで書くのとスマートフォンで書くのは違っている(今これはスマートフォンで書いている)。当然、紙にペンで書くとまた違った文章になる。紙に書くのとパソコンのキーボードで打つのは全然違うのだ、というのを僕は奥さんとの交換日記で学んだ。

こうした違いを理解しない人も世の中にはいるのだろう。そうした人はおそらく人間の頭の中に不変の「表現したい内容」があって、それを書き出すのだから媒体が何であっても同じ文章になるはずだ、という貧しい見方をしているのだろう、と僕は勝手に想像する。

人間が言語を使ってそこにある内面を表現するのだ、というナイーブなものの見方はある時代に一旦否定され終わりを迎えたのだけど、その前時代に留まっている人はやはりいて、それ自体が悪いということはない。新しい考え方が常に正しいわけではないし、それを知っているから偉いわけでもない。

ただ、ものごとの機微に明らかに鈍感な人というのはいて、それを指すのに貧しいという言葉を使うことはある。

村田沙耶香「コンビニ人間」

ブログ復帰?を兼ねて、なんでも書くことにした。今までは色々なトピックのブログの書き分けを試みては止めてを繰り返していたのだけど、面倒なのでもう止めることにする。

僕は近年の芥川賞・直木賞作品などには目もくれないという保守的読書家気取りのイヤミったらしい人間だったのだが、「コンビニ人間」はあまりに評判が良かったので電子書籍版を買って読んだ。かなり面白かった。

コンビニ人間

コンビニ人間

何がいいって、主人公のコンビニ人間たる女性と対比して「人間、気持ち悪いな〜」というのがまざまざと感じられるところ。今の社会でいわゆる「普通の人」がする普通のふるまいがいかに気持ち悪いかがビシビシ伝わってきて、それが不快なのではなく面白い。違った目で切り取られた世界を眺めること、やっぱりそれが小説の醍醐味の一つなのだなあ、と。

「コンビニ人間」の面白いところは普通の人間の気持ち悪さなのだが、その気持ち悪さを感じるためにはやはり主人公の側に立つ必要がある。かといって主人公は共感を呼びやすい人物でも何でもないのだけど、いつの間にか読者はコンビニ人間の側に立っている。コンビニ人間の側に立つ視点を持たなければこの小説の面白さはやっぱり味わいにくいと思う。

けど普段の生活では僕らは普通の人の側に立ってあれやれこれやらしているわけで、主人公と同様の感性を持って暮らしているわけではない。逆に、コンビニ人間の視点に立つことなく普通の人の目線のまま「これコンビニ人間の方が完全におかしな人間で、他の人は何もおかしくないよね」という姿勢を徹頭徹尾貫いて読むような人がいたとして、その人にとってこの小説が面白いかどうかはよく分からない。

けど芥川賞を取ってけっこう売れているということは、多くの人はやっぱりコンビニ人間の目から普通の人の生活を眺めて「気持ち悪いな〜」という面白おかしさを味わったのだと思う。その多くの人はやっぱり普段は普通の人として振る舞っているわけなので、そういう僕らが普通でない人の視点に同化して小説を読んで、楽しめるというのは一体どういうことなのだろうか?

この話に結論はないのだが、すごく多くの人が「普通の人が気持ち悪く見える視点に立つ小説」を読んで楽しめるというのは、不思議なことだ。あるいは僕の楽しみ方が他の人と違うのかもしれないが、とにかく僕は不思議に思っている。

話は変わるが、(そして実は変わっていないのだが、)歌人である枡野浩一さんが漫画家の古泉智浩さんとやっているネットラジオ「本と雑談ラジオ」でもコンビニ人間が話題にあがっている。

booktalkradio.seesaa.net

このラジオを聴いて「コンビニ人間を読みたい!」と思う人はあまりいないと思うが、若干気持ち悪いおじさん二人がうにゃうにゃ喋っているラジオに興味がある人は聴いてみるといいかもしれない。

このラジオの別の会で紹介されている「しろいろの街の、その骨の体温の」もよかった。

booktalkradio.seesaa.net

しろいろの街の、その骨の体温の (朝日文庫)

しろいろの街の、その骨の体温の (朝日文庫)

これは単純に言うとスクールカーストの話で、主人公の女の子が進学していくにつれ徐々に「いけてない女子」としてスクールカーストを下っていくところ、ヒーロー(男主人公の恋人役が「ヒロイン」なら女主人公の恋人役は「ヒーロー」でいいだろう)が逆にスクールカーストの上位に行ってしまうところ、スクールカースト上位やスクールカースト下位の女子の間でそれぞれ行われるえげつない差別、などなど見所満載なのである。

けどこれも、実際にスクールカーストの洗礼を浴びた女性にとってはいまさら小説で読んで面白いものではないかもしれない。僕自身は中学・高校といわゆる「オタクグループ」に属して人畜無害の存在として扱われていたのだが、女子の間ではこのような闘争が行われていたのだろうか。地方だと親の間の経済格差もそれほど大きくないし、都市部のそれよりは大したことないのではないかと思うのだが。

奥さんに聞いたところ現代の東京にはスクールカーストだけでなく「スクール間SNSカースト」も存在するらしく、例えばプチ金持ち以上の子が通う高校にはInstagramで何か投稿すれば「いいね!」が沢山つく女子高生が量産されている一方で普通の高校ではInstagramよりTwitterが流行っている…(当たり前だが、Instagramで写真を取って何か自慢するにも「カネ」がいるのだ。せちがらい話だ。西原理恵子だ。)というスクール間カーストとSNSを合わせて煮込んだ地獄のような状況を耳にしてしまって、ああ僕は地方に男として、SNSがない時代に生まれてよかった…と胸をなで下ろすことにもなったのだった。(了)

PostgreSQLのLISTEN/NOTIFYでJSONデータを飛ばす

PostgreSQL

PostgreSQLではJSON, JSONBデータ型のサポートがあります。MySQLも5.7からあるようです。

アプリに対してちょっとした通知を飛ばしたくなったのですが、ちょっとした通知のために別のミドルウェアを導入するのは明らかに筋が悪いのでPostgresのLISTEN/NOTIFYを使うことにしました。

PostgresのLISTEN/NOTIFYはtext型しか渡せないので、ここは構造化されたデータををJSONなどで渡したくなるのが人情というものです。

以下のようなTRIGGERと

DROP TRIGGER IF EXISTS my_table_inserted ON my_table;

CREATE TRIGGER my_table_inserted
    AFTER INSERT ON my_table
    FOR EACH ROW
    EXECUTE PROCEDURE on_my_table_inserted();

以下のようなFUNCTIONで人情を達成します。

CREATE OR REPLACE FUNCTION on_my_table_inserted() RETURNS trigger AS $$
BEGIN
    PERFORM pg_notify('my_table_inserted', json_build_object(
        'id', NEW.id,
        'data_1', NEW.data_1,
        'data_2', NEW.data_2
    )::text);
    RETURN NEW;
END;
$$ LANGUAGE 'plpgsql';

結局のところ送っているのはtext型なのですが、受け取る側でJSON decodeすれば問題ないです。

Pythonで非同期に通知を受け取るコードは別記事に書きます。

完全に余談ですが、現状のPipelineDBではTRIGGERとLISTEN/NOTIFYをこのように組み合わせてCONTINUOUS VIEWの更新通知を受け取ることは出来ません。 CONTINUOUS TRIGGERの実現方法が原因だと思うのですが、多分そのうち何とかなると思います。

PostgreSQLちょっといい話

PostgreSQL

最近、PostgreSQL(というかPipelineDB)をいじる機会があったのでメモ。

RDBMSにあるとうれしい、というかPostgresにあって「これ良いな」と思った機能を適当に列挙するの回。

CREATE DOMAIN

要はtypedefが出来る。

CREATE DOMAIN company_code smallint;

これで型の別名を定義して、table定義でこの別名を使うことにより

  • 開発中に型の定義を「やっぱこっちで」と切り替えるのが簡単になる
  • 本来同じ型の値を使うべきtable間でうっかり定義がずれてしまうことを抑止できる

などなどのメリットが得られる。地味な機能だけど割とうれしい。

Lateral Join

Reuse Calculations in the Same Query with Lateral Joins

くやしくはリンク先を読んでほしいのだけど、要はカラムの値を元にした計算結果を使って更に何らかの値を計算したいような場合に、まあまあ簡便な記法でクエリが書けるということ。 集計とかでうれしい。

RETURNING

MySQLだとlast_insert_idとかを使うしかないが、RETURNINGを使うとINSERTやUPDATEした後に任意の値を返せる。よい。

思ったよりネタがなかった。