nekoTheShadow’s diary

IT業界の片隅でひっそり生きるシステムエンジニアです(´・ω・`)

青木峰郎『ふつうのLinuxプログラミング[第2版]: Linuxの仕組みから学べるgccプログラミングの王道』(SBクリエイティブ)

本書がメインテーマとしているのは「Linuxに用意されている、システムとのやり取りをするためのAPI」。すなわちシステムコールの概念や方法をC言語プログラミングを通じて学ぶことができる1冊です。たとえばlsmvpwdなど、普段何気なく利用しているコマンドがKernelとどのようなやり取りをしているのか? 基礎的だが、おざなりにされがちな部分を学ぶことができて、Linuxに対する理解が深まりました。個人的には

このあたりの「わかったふりをしてきた」ところをきっちり学びなおすことができてよかったと思います。プログラマである以上は仕組みが分かったうえで、便利なものを使うという態度を徹底したいものです。しったかぶりを決め込む、わからないものをわからないままにしておくのはだめ絶対(´・ω・`)

筆者の狙いかどうかはわかりませんが「プログラミングを通じて学ぶ」というのが本書の良書たるゆえんだと思いました。Linuxに書かれた本は数多くあれど、そのほとんどは知識として学ぶだけで、読んだ後にきちんと知識が定着しているかどうかというと、実はちょっとあやしい。一方、本書は大量のソースコードが掲載されており、読者は自由に写経することが可能です(実際わたしも全コードをすべて写経しました)。写経とはいえ、実際に手を動かすのと動かさないのでは、知識の身に付き具合が全く違います。忙しいとついついおっくうになりがちですが、これからも意識的に手を動かしていきたいところです。

最後に読者プレゼント(?)。まずは本書を読み終わった後に、なんとなく作成したなんちゃってlsコマンド。本書の途中でlsコマンドを作成するくだりがあるのですが、それとほぼいっしょのような……。

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <dirent.h>
#include <string.h>

int
main(int argc, char *argv[]) {
    if (argc == 1) {
        fprintf(stderr, "NO ARGS\n");
        exit(1);
    }

    for (int i = 1; i < argc; i++) {
        char *dirname = argv[i];
        DIR *dir = opendir(dirname);
        if (!dir) {
            perror(dirname);
            exit(1);
        }

        struct dirent *ent;
        while (ent = readdir(dir)) {
            char *filename = ent->d_name;
            if (strcmp(filename, ".") == 0 || strcmp(filename, "..") == 0) continue;
            printf("%s\n", filename);
        }
        
        if (closedir(dir) < 0) {
            perror(dirname);
            exit(1);
        }
    }
}

もうひとつが標準入力やファイルから1行すべてを読み込むreadline関数を作ったので、こちらもなんとなく公開しておきます。本書はその性質上、ファイルから1行読み込む処理を何度も書く必要があるのですが、そのたびにfgetsを使うのは面倒。とくにいちいち文字数を指定するのはおっくうなので、その必要のない関数を用意しておき、使いまわしていました(´・ω・`) 何かのお役に立てば幸いです(´・ω・`)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define LEN 100

char *readline(FILE *stream);
char *xalloc(char *ptr, int len);
void die(char *str);

char *readline(FILE *stream) {
    int len = LEN;
    char *line = xalloc(NULL, len);

    char ch;
    int i;
    for (i = 0; ;i++) {
        if (i == len) {
            len += LEN;
            line = xalloc(line, len);
        }

        ch = getc(stream);
        if (ch == EOF || ch == '\n') break;
        line[i] = ch;
    }

    if (i == 0 && ch == EOF) return NULL;
    line[i] = '\0';
    return line;
}

void die(char *str) {
    fprintf(stderr, "failed to %s\n", str);
    exit(1);
}

char *xalloc(char *ptr, int len) {
    int size = len * sizeof(char);
    void *str = realloc(ptr, size);

    if (str == NULL) {
        if (ptr != NULL) {
            free(ptr);
        }
        die("xalloc");
    }

    return str;
}

まつもとゆきひろ『まつもとゆきひろ コードの未来』(日経BP社)

まつもとゆきひろ コードの未来

まつもとゆきひろ コードの未来

お仕事にはしていないとはいえ、一応はRubyistの端くれなので、Rubyのパパの本は読んだ次第です(´・ω・`) 本書の事実上の後編になる『言語のしくみ』がかなり面白い本であったことも読んだ理由になります。

nekotheshadow.hatenablog.com

『言語のしくみ』が「プログラミング言語をデザインする」という一貫したテーマを持っていたことに比べると、本書は非常に手広。筆者が関心を持っているソフトウェア技術を縦横無尽に取り上げたエッセイ集という印象です。出版年が2012年とやや古いため、取り上げられているトピックも時代遅れ――と思いきや、2018年の今でも大きく外していないのはさすが。個人的には第1章から第3章ぐらいまでの、プログラミング言語に関して書かれたパートが一番面白かったかしら。プログラミング言語をデザインしているだけあって、見識の深さがうかがえ、読者としては大変勉強になりました。

世界のまつもとゆきひろ氏を捕まえて、こういうものいいはどうかと思いますが、非常に文章がお上手。実用的で、意図が伝わりやすいし、ユーモアもある。Rubyという世界中のプログラマが使う"言語"を設計できたのは、日本語力・文章力があってのことなのかしらん(´・ω・`)

日経コンピュータ編集『システム障害はなぜ二度起きたか: みずほ、12年の教訓』(日経BP社)

システム障害はなぜ二度起きたか みずほ、12年の教訓

システム障害はなぜ二度起きたか みずほ、12年の教訓

  • 他行で実績のあるシステムの片寄せではなく、新規開発。
  • ハードウェアとソフトウェアが密結合なメインフレーム基盤にもかかわらず、基盤とアプリを分割調達。
  • 大手SIer1社に音頭を取らせるのが通常だが、それを行っている形跡がない。
  • 銀行=システム産業にもかかわらず、システム担当の取締役がいない。システム子会社の実力もかなり怪しい。
  • コーポレートガバナンスコンプライアンスがさほど機能していないともっぱらの評判。

などなど、書き出せばきりがありませんが、大規模システムの構築の常識からかけ離れたプロジェクトマネジメントを行っているとして、インターネットIT好事家からは熱視線(ex.「SI界のサクラダファミリア」「サクラダファミリアのほうが先に完成するのでは?」)が寄せられていることで知られる、みずほ銀行の勘定系刷新プロジェクト。それにしても、素人目にも勝算が低いとわかるこのプロジェクトになぜみずほ銀行は乗り出してしまったのか? 本書はその理由となる、2002年と2011年のみずほ銀行の大規模システムトラブルのルポタージュといってよいでしょう。

本書はざっくり4部構成になるのですが、面白かったのは前半2章。つまり実際にあったシステム障害のルポ部分であり、保守運用経験者の視点から読むと非常に胸が痛くなる内容でした。詳しい内容は本書に譲るとして、2つのシステム障害の真因は「システム投資、とくにシステム運用をけちった」ことだと思いました。直接金を生み出すわけではない情報システムとその運営にはできるだけ金を使うべきではない、というのは事業会社の在り方としてはある一面正しいのですが、銀行のように業務とシステムが密結合な業態だとそうはいかないということが、偉い人にはわかっていなかったのだと思います(´・ω・`)

またここ数か月保守運用をしている身として感じるのは、SI業界の保守運用軽視の傾向。設計開発が花形で、テストはその一段階下、保守運用は最底辺というような妙な身分制があり、このあたりの風潮がSIにおんぶにだっこなみずほ銀行につたわり、結果として運用ミスによるシステム障害が発生したのでは……と個人的には邪推していました。

後半はシステム構築および保守運用プロジェクトに関する一般論が述べられているところであり、学びが少ないというか、「ふんふん、確かにそうだね」という感じ。その内容は確かに正論ではあるものの、ではなぜその正論が実践できないのか? その視点が欠けているようには感じられました。もっとも本書を執筆したのは日経コンピュータの記者陣。つまりSIを生業にしておらず、その職業の性質上個人プレーが多くなりがち。それだと、出入り業者に過ぎないSIerの悲哀や組織運営やチームビルディングの難しさは、実感としてわからないのかもしれませんね(´・ω・`)

最近読んだノンフィクション: 『ドキュメント 五代目山口組』『モンスター』『誘蛾灯』『浅草博徒一代』

ここ1-2か月で読んだノンフィクションのうち、面白かったものの感想をブログに書き残しておきたいと思います(´・ω・`)

溝口敦『ドキュメント 五代目山口組』(講談社+α文庫)

ドキュメント 五代目山口組 (講談社+α文庫)

ドキュメント 五代目山口組 (講談社+α文庫)

昨今世間をにぎわしている山口組3分裂に関する同著者のルポを以前に読んだことがあり、本書がテーマとしている5代目組長がそのルポで大変批判的に扱われていたということから興味をもって手に取った1冊です。その批判的な論調はルポが書かれた20年前(=本書の出版年)とほとんど変わらず、この5代目は山口組という巨大組織をすべるほどの器ではなかった。合理主義的で経済にも明るく、やくざ内政治もうまいという点では近代的で先駆的ではあったが、山口組ひいては暴力団全体の気質を変化させてしまった――というのが本書の5代目組長への評価となります(ただ本書はほとんど触れていませんが、このようなタイプの組長出現は当時の経済状況=バブル経済があってこそのことだとは思います)。先述したルポでは山口組の分裂のきっかけをこの5代目組長の就任に見るのですが、それを予見したような記述を20年前に行っていることに驚かされます。

そういえば、繰り返し話題に挙げた「ルポ」ですが、その書評をブログに乗せていたことを思い出しました。そもそも「ルポ」を買って読んだのは「hontoのメルマガが執拗に進めてくるから」という、自分でもどうかしているとしか思えない理由でしたが、ただ読んでみて勉強になったことは確か。なんでも食わず嫌いせず読んでみるものですね(´・ω・`)

nekotheshadow.hatenablog.com

一橋文哉『モンスター: 尼崎連続殺人事件の真実』(講談社+α文庫)

モンスター 尼崎連続殺人事件の真実 (講談社+α文庫)

モンスター 尼崎連続殺人事件の真実 (講談社+α文庫)

ひとりの老婆を中心とした、血縁関係のない「ファミリー」が金を目当てとして次々に人を殺めていく――3流サスペンスやホラーの筋立てとしか思えない尼崎事件を覚えている方は多いと思いますが、本書はこの「老婆」の生い立ちから事件の一部始終を丹念に追いかけています。凶悪犯罪が発生すると、その事件の裏に何か深刻な社会的事情があったのではないかととりざたされますが、本書を読む限り、尼崎事件はそのような社会的事情とはかけはなれた特異点的な犯罪だと感じました。

まず「ファミリー」という形態が異常そのもの。そもそも血縁関係婚姻関係がない人間と共同生活を送る、そのうえ新しい名前を与えるという点で、一般常識から乖離していますが、その裏では凄惨な暴力をくわえて、正常な思考能力を奪う。そうして膨れ上がった「ファミリー」の豪奢な生活を維持すべく、財産を目的として、よその家庭に入り込み、果ては殺人まで行きつく場合もある――と聞くと、この原因を社会一般に帰するのはかなり厳しいように思います。筆者はこの「異常」の要因を「老婆」の生い立ちと彼女が心酔していたとある暴力団員にあると結論付けていますが、正直にいって納得いきかねます(´・ω・`) 事実は小説より奇なりということでしょうか。ただこの「のっとり」にあった家庭はどこにでもある「普通」の家庭であり、「異常」の発生が社会と無関係に起こるとしても、その「異常」に巻きまれる可能性は十分にあるということを思い知らされます。

青木理『誘蛾灯: 二つの連続不審死事件』(講談社+α文庫)

必ずしも見目麗しいというわけではない女性に多くの男たちが入れあげ、金を貢げるだけ貢いだあとに不審死を遂げていく――と聞くと首都圏連続不審死事件が想起されがちですが、同時期によく似た事件が鳥取でも起きており、本書はその鳥取連続不審死事件を取材したものとなります。資産家令嬢を装った容疑者が婚活パーティを通じて知り合った独身男性に貢がせて殺害(?)する。そして逮捕/収監/死刑確定後も裁判の場やブログメディアを通じて自らのアピールを続けるという点で、前者はどこか都会的な劇場型犯罪、昔かたぎな単語を使えば"アプレ犯罪"のような様相を見せていたのに対し、後者は土俗的というか、俗っぽい言葉をつかえば「どろどろ」とした印象を持ちました。

疲弊した地方都市の、常連客だけしかいないようなスナックに勤務する肥満体のホステス。そのうえx2で5人の子供を持つシングルマザー。そんな彼女に男たちが入れあげ、結果として不審死を遂げていくのだが、その男たちはいわゆる"ダメンズ"ではないどころか、新聞記者や景観などお堅い職業が多く、しかもそのほとんどが妻子持ち。本書によると容疑者の女は病的なうそつきで、男性を支配する才能の持ち主であったようですが、それにしても「社会的に立派な人々がなぜこんな女に?」という印象はぬぐえませんでした。本書は「どんな家庭にもあるちょっとした不和に入り込んでいく才能を女が有していたこと」と「経済的にも文化的にも疲弊していく地方都市」をこの不可思議を説明するファクターとして繰り返し挙げているのですが、それもどこまで当たっているのか。やはり事実は小説より奇なり(2回目)。ルポタージュを読む面白さはこういうところにあるのかもしれません。

佐賀純一『浅草博徒一代: アウトローが見た日本の闇』(新潮文庫)

浅草博徒一代―アウトローが見た日本の闇 (新潮文庫)

浅草博徒一代―アウトローが見た日本の闇 (新潮文庫)

大正から昭和にかけて浅草に勢力を張った博徒の晩年にインタビューを試みた筆者がそのインタビューを物語風に再編成したものになります。まず「博徒」という生き方・職業があること自体が勉強になりました。社会の風紀を乱すということで、いつの時代もばくちやギャンブルはご法度。しかし需要あるところに供給ありというのも世の常です。品物がご禁制であり、国家権力としては存在してはいけない職業であることから、記録にきちんと残されているわけではありませんが、職業として存在する以上はそこには独特の美学や倫理観や経済制度があり、その一端を知ることだけでも十分勉強になります。また裏街道から見る社会を知ることで、読者の社会理解に多様性をもたらすものだとわたしは思います。

ただ本書の魅力はそれだけではありません。本書が取材する博徒が送った、その波乱万丈の人生は下手な小説などよりはずっとドラマチック。大正から昭和初期という激動の時代に博徒という文字通りやくざな生き方を選んだ男の一代記に読みごたえがないなんてあるはずがないのです。これで3度目になりますが、やはり事実は小説より奇なり。出版社のマーケティングとして、ミュージシャンとしてはじめてノーベル文学賞を受賞したボブディランが「ぱくった」本として本書を売り出していきたいようですが、そういう好事家観点だけで読んでしまうと大変損をするので、お気を付けください(?)。

「しがない問題」を解いてみました。

お題「しがない問題」

tbpgr.hatenablog.com

@tbpgrさんが「しがない問題」というお題を作成されていたので、自分が好きなRubyとPython3、最近お勉強中のC#、そしてお仕事で最近にらめっこをすることが多いSQLで回答してみました。休日でやることがなかったので(´・ω・`) なおSQLDb2 Express-C 10.5で動作確認していますが、標準的なSQLからそれほど乖離していないと思います。

まずはRubyRubyは配列から重複なく指定された数の要素を取り出すsampleというメソッドがあるので、これを利用します。

def solve
  chars = "しくてがない".chars
  title = nil
  100.times do |n|
    title = chars.sample(4).join
    return "#{n + 1}回SIerのSEからWEB系のエンジニアに転職したが楽しくて仕方がないラジオ、略して「しがないラジオ」" if title == "しがない"
  end
  "#{title}ラジオ」ちゃうやん"
end

puts solve

お次はPython3。Python2でも動きそうな気がします(´・ω・`) Pythonにもsampleメソッドが存在するので、これを使うのが便利そうです。

import random

def solve():
    for n in range(100):
        title = "".join(random.sample("しくてがない", 4))
        if title == "しがない":
            return "第{0}回SIerのSEからWEB系のエンジニアに転職したが楽しくて仕方がないラジオ、略して「しがないラジオ」".format(n + 1)
    return "「{0}ラジオ」ちゃうやん".format(title)

if __name__ == '__main__':
    answer = solve()
    print(answer)

さてお勉強中のC#ですが、わたしのC#力が低いからか、sampleメソッドに類するものを見つけることができませんでした(´・ω・`) ただ乱数を生成するSystem.Randomクラスは用意されているので、自らsampleメソッドを実装することに。

using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(solve());
    }

    static string solve()
    {
        string title = null;
        foreach(var n in Enumerable.Range(1, 100))
        {
            title = sample("しくてがない", 4);
            if (title == "しがない")
            {
                return $"第{n + 1}回SIerのSEからWEB系のエンジニアに転職したが楽しくて仕方がないラジオ、略して「しがないラジオ」";
            }
        }
        return $"「{title}ラジオ」ちゃうやん";
    }

    static Random random = new Random();

    static string sample(string chars, int len)
    {
        var idxs = new List<int>();
        while (idxs.Count < len)
        {
            var idx = random.Next(chars.Length);
            if (!idxs.Contains(idx))
            {
                idxs.Add(idx);
            }
        }
        return string.Join("", idxs.Select(idx => chars[idx]));
    }
}

最後のSQLですが……これで本当にあっているのかしらん(´・ω・`) なおSQLがいくら得意でも、実際のアプリケーション開発でこんなSQLは書いてはいけません。保守担当者が地獄を見ます(実体験)。フレームワークによる自動生成や分析屋さんが書き捨てで書く分なら問題ないのですが、メンテナビリティを考えると、シンプルなSQLがベストだと思います。

with
chars(char) as (
    select 'し' from sysibm.sysdummy1
  union
    select 'く' from sysibm.sysdummy1
  union 
    select 'て' from sysibm.sysdummy1
  union 
    select 'が' from sysibm.sysdummy1
  union 
    select 'な' from sysibm.sysdummy1
  union 
    select 'い' from sysibm.sysdummy1
),
titles(idx, title) as (
  select row_number() over (order by title), title
  from (
    select c1.char || c2.char || c3.char || c4.char as title
    from chars c1, chars c2, chars c3, chars c4  
    where c2.char not in (c1.char)
    and   c3.char not in (c1.char, c2.char)
    and   c4.char not in (c1.char, c2.char, c3.char)
  )
),
episodes(episode, idx) as (
    select 0, 0 from sysibm.sysdummy1
  union all
    select episode + 1, cast(rand() * (select count(*) from titles) as integer) + 1
    from episodes 
    where episode < 100
),
programs(episode, title) as (
  select episode, title 
  from titles t join episodes e on t.idx = e.idx
)
select case
  when (select count(*) from programs where title = 'しがない') <> 0 then
    '第' || (select min(episode) from programs where title = 'しがない') || '回SIerのSEからWEB系のエンジニアに転職したが楽しくて仕方がないラジオ、略して「しがないラジオ」'
  else
     '「' || (select title from programs where episode = 100) || 'ラジオ」ちゃうやん'
  end
from sysibm.sysdummy1

いうまでもありませんが、本問題のもとねたはTech系Podcastの「しがないラジオ」。問題の発案者である@tbpgrさん(出演もされていましたね)がTwitterでよく話題に出されていたことがきっかけで存在を知り、通勤中などに関心のある回を"拾い聴き"しています。いい視聴者じゃなくてすみません(´・ω・`)

shiganai.org

ラジオを聴いている限りだと、パーソナリティのふたりはわたしと年齢が近い感じがします。たぶんわたしのほうが1-3歳年下。またわたしも大阪出身なので、関西人には親近感を抱きがち。自分と同郷で年も近いふたりがIT業界の在り方自体に対して問題意識をもつだけではなく、実際に行動に移しているとなると、これは応援せざるを得ない。なら「全話ちゃんと聞けよ」ということなのですが――仕事が忙し杉内(2流SIer勤め並みの感想)。だれかわてに時間をおくれやす(´・ω・`)

Scott Oaks『Javaパフォーマンス』(オライリージャパン)

Javaパフォーマンス

Javaパフォーマンス

ここ数か月、Java製のシステムのパフォーマンス問題に悩まされることが多く、手に取ったという悲しいいきさつがあります(´・ω・`) しかも11月の初めに買っていたにもかかわらず、前述の問題のせいで読む時間がとれず、ようやくきちんと読み始めたのが年末年始の冬休みでした(´・ω・`)

本書はJavaのパフォーマンス監視やチューニングのいろはを教えてくれる1冊です。本書を手に取った時点でJavaのパフォーマンス測定ツールが純正(?)やサードパーティ製問わず、様々あることは知っており、そういうツールのチュートリアル集・リファレンス集かと思って読み始めたのですが、結果から言うとそんなお手軽な本ではありませんでした。もちろん「道具」の使い方は丁寧に解説されていますが、その「道具」には必ず使いどころが存在します。のみでも丸太を切ることはできるかもしれませんが、そういう場合はのこぎりを使いたいものです。本書はツールの使い方だけではなく、どういう場合に使うべきかという根本的な部分から丁寧に解説している点で、価値の高い1冊だと思います。

またパフォーマンス測定やチューニングが話題になるのは、何かしらの問題が顕在してからが多いと思います。もちろん「問題」への対策を知っておくことも大事ですが、「問題」の原因やそれが起きる背景を知っておくことはもっと大事です。本書はその「原因」や「背景」について、きっちりページ数を割いています。たとえばJavaコンパイラガベージコレクション、ヒープメモリやスタック領域がそもそもどういうものであるか、それらがどのようなアルゴリズムや機能を備えているか、そしてそのアルゴリズムや機能がどのようにJavaのパフォーマンスに影響するのか。通常のプログラミング作業を行ううえではほとんど意識しない領域、俗に低レイヤといわれる領域の話がみっちりと解説されており、わたしのように初心者から中級者の脱皮に悩むプログラマには最適だと思いました。

最後にパフォーマンスの観点で「通常のプログラミング」の際に気を付けるべき事項まで、本書は丁寧に解説しています。パフォーマンス監視やチューニングというと、ツールを駆使したり、設定とにらめっこしたりすることが想起しがちで、実際そういう側面も否定しきれないのですが、しかしコーディングの時点で気を付けなければならない問題、あるいは気をつけておけば発生しなかった問題というのは当然存在します。「+=による文字列結合は避ける」「jdbcを利用したDB操作の際はトランザクションを保ちすぎずに頻繁にコミットする」という基本的なところから、データのシリアライズやスレッドの効率的な利用法という応用編まで、パフォーマンスに関するテーマが幅広く扱われており、とても勉強になりました。

最近はハードウェアのスペック向上が著しいこと、「低レイヤ」のアルゴリズムが洗練されていることから、富豪的なプログラミングでも意外に平気だったりしますが、しかし油断していると火を噴き始めるのがパフォーマンス問題。みんなが困っているところで、問題をさっそうと解決する、あるいは解決までの道筋を立てることができると、かなりの強みになりそう。またパフォーマンスに強い関心がなくても、低レイヤの動きやJavaプログラミングの常識的なところも学べるので、Java初心者を脱したい人にはおすすめできると思います。まずは1-2回通読することで本書に何が書かれているかを頭の片隅に入れており、いざパフォーマンスが発火しだしたときに、本書片手に問題対応するというのが良いのではないでしょうか?


余談: 監訳を務めている「Acroquest Technology株式会社」という会社。どこかで聞き覚えがあると思ったら『Java本格入門』(技術評論社)の筆者陣が所属している会社のようです。この『Java本格入門』も超よかったのでおすすめ(´・ω・`)

nekotheshadow.hatenablog.com

最近読んだ漫画の読書メモ:『漫画版 野武士のグルメ』『漫画版 野武士のグルメ 2』『ルードウィヒ・B』『いやされて 社畜女子のコミックアンソロジー』

これを書いている人は基本的には漫画読みではないのですが、たまには漫画を読みたくなることもあります。そこでここ数か月で読んだなかで、面白かったいくつかの作品について読書メモを公開します。ただ繰り返すようにわたしは漫画についてよい読者ではないので、もしかすると頓珍漢なことを書いているかもしれませんが、許してください(´・ω・`)

久住昌之土山しげる『漫画版 野武士のグルメ』『漫画版 野武士のグルメ 2』(幻冬舎)

野武士のグルメ

野武士のグルメ

以前に読んだ『孤独のグルメ』が面白かったので、同系統の漫画を探していたところ、『孤独のグルメ』に並んで平積みされていたので購入。原作者が『孤独のグルメ』と同じのようですね。定年退職後に時間が有り余っている還暦男があちらこちらでご飯を食べる――というだけなのだが、引き込まれてしまう。作中では「野武士」と称される、主人公の食に対する姿勢は確かにユニークではあるものの、それを除くとただただおっさんがご飯を食べているだけ。しかし面白い。不思議(´・ω・`) 『孤独のグルメ』しかり、それが何かは説明しづらいものの、漠然と面白いという不思議なタイプの作品でした。

手塚治虫『ルードウィヒ・B』(希望コミックス カジュアルワイド)

手塚治虫の絶筆で、以前から関心はあったものの、読むに至らなかったのですが、偶然書店でいわゆる「コンビニコミック」版の本作を発見。値段も手ごろだったので、手に取った次第です。これが死の間際、病床にて書かれたとは思えない出来上がり。とくにフランツの存在。これが本作を音楽家の伝記漫画にたいへんな深みを持たせています。絶筆ということで、本作はかなり半端なところで終わっています。かなわないことではありますが、続きが読みたい(´・ω・`) 007シリーズやシャーロック・ホームズシリーズなど、すでに亡くなった作家の作品をほかの作家が書き足していくということは欧米ではよく見られるので、本作もほかの漫画家が続きを書いてくれないかしら(´・ω・`)

赤塚不二夫『おそ松くん ベスト・セレクション』(ちくま文庫)

おそ松さん』人気にあやかってか、本書が平台に積み上げられていたので、ついつい購入。有名漫画ですが、よくよく考えてみれば内容を知らない。せっかくの機会だし、抜粋版を読んでみるのも悪くない――という軽いのりで読み始めたのですが、面白かった(´・ω・`) とにかく無茶苦茶でナンセンス。そもそも6つ子という設定もぶっ飛んでいるうえに、話自体もそもそも筋があるのかないのかよくわからない感じで、とにかく勢いだけで進みまくる。あとがきによると、作者の赤塚不二夫自体がけっこうな奇人変人だったのですが、しかし奇人変人にしか書けないような作品という気もします。

ビタワン、結うき。、火野遥人 他『いやされて 社畜女子のコミックアンソロジー』 (電撃コミックスNEXT)

いやされて 社畜女子のコミックアンソロジー (電撃コミックスNEXT)

いやされて 社畜女子のコミックアンソロジー (電撃コミックスNEXT)

毎週Twitterで読む『社畜ちゃん』の更新だけが楽しみという社会人生活(血涙)を送っているのですが、その『社畜ちゃん』の原作&作画コンビが宣伝していたので購入。感想としては――かわいい(´・ω・`) とくに今の現場は殺伐している(炎上中)ので、本作に掲載されている作品の登場人物のような人がひとりでもいれば精神の癒しになるのですが、そうはうまくいかないですよね(´・ω・`)