以前、調べて書き溜めたままになっていた文章なのだけど、腐ってしまいそうだったので公開してみました。
システム開発関連のことって、理系の人も多いはずなんだけど、結構、嘘や間違った記述が多くて困ってしまう。上記の記事では、ウォーターフォールモデルの起源についてもきちんと書いたので興味ある人はぜひ(長いけど)。
Twitter で話題になっていたが、たしかに非常に面白い。
著者はあのラムズフェルドである。ラムズフェルドと言えば、ブッシュ政権を陰で操ってきたと噂される人物であり、大量破壊兵器があるというデマをでっち上げ、イラク戦争を強引に推し進めた。そういう人物として知られている。
しかし、読んでの印象はまったく違う。なんと理性的で賢く献身的な人物なのだろうか。どの文章も理路整然としており、経験と根拠に根差した説得的な話が並ぶ。
不確実性の中でリーダーはどのように振舞うべきか、マスコミとどのように付き合うべきか、官僚主義とどう戦うのか。実際に長年政権中枢で大統領を支え、その後は企業のCEOとしても活躍した人物の口から語られるのは大変面白くためになる話ばかりだ。
そして、「イラクに大量破壊兵器があった」ことに誤った情報に飛びついてしまったと素直に反省の意を示し、グアンタモナ収容所での事件に対してもひどい行為で早く気付くべきだったと述べている。とうてい陰で操る人物のコメントではない。
喧伝される印象と人物像がここまでかけ離れた人も珍しい。しかし、ひとり似た人物が頭に浮かんだ。銀河英雄伝説のオーベルシュタインである。与えられた問題に対し極めて冷静に考え、そして達成しなければならない決めたら、私情を挟まず断固たる決意でそれを成し遂げる。その結果としてどんな批判をも受け止める。
少なくともアフガニスタン戦争の理由に関しての彼の説明には納得した。911のテロの後、この悲劇は何度も繰り返される可能性があった。テロを食い止めることは非常に難しく、対応方法としては根源であるアルカイダの殲滅しかなかった。
その結果として、多くの無関係なアフガニスタン人が被害を被ったのは事実だろう。しかし、アメリカを守る役割を担ったラムズフェルドにはそれを実行する以外の方法はなかった。
とはいえ、最後まで読んで、(それを目的に読んでいたわけではないけれど)ブッシュ政権がなぜイラク戦争に突入したのかはよくわからないところがある。自伝が別にあるようなのでそちらを読めばわかるのかもしれないが、もしかするとブッシュあるいは現場からの要求に従っただけでラムズフェルド自身は決定をサポートしたにすぎなかったのかもしれない。
本書で披露される様々な知恵はいずれも実際に役立つと思うが、個人的に気に入ったものをメモ代わりにピックアップしてみた。本を買う参考にしてほしい。
別に好きで趣味にしているわけではないのだが、ダイエットに関する研究本は継続的に買っている気がする。私の家系にはやせ型がいない。齢を重ねると痩せにくくなるのはわかってはいるが、最近は食が細くなっているにも関わらず体重は徐々に増加中だ。
今回読んだのは「運動しても痩せないのはなぜか:代謝の最新科学が示す「それでも運動すべき理由」」という本だ。
タイトルだけ見ると、ありきたりなダイエット本に見えるが、中身は想像以上に難しい。まず冒頭からタンザニアの原住民ハッザ族のフィールド調査の話で始まる。普通この手の話は他者の研究が引用されることが多いのだが、この本の場合、実体験である。著者は、フィールド調査を通じて自然の中で暮らす人々と都会で暮らす人々のカロリー消費について調べる研究者なのだ。生理学についての詳細な説明も多く、化学系の話題に大変疎い私にとって読むのがつらくなる章も多々あった。
一方で細かい議論を除くと、同書が語る内容はそう多くはない。
この本では内臓脂肪については述べられていなかったが、最近の研究では次のような結果も出ているようだ。基本的には内臓脂肪減らしたければ運動をした方がよいようだ。
運動とカロリー制限はどちらが内臓脂肪の減少に効果的か?という問いを検証したBr J Sports Medのメタ解析。https://t.co/KdYfUqBF7t
— 庵野拓将 (Takumasa Anno) (@takumasa39) 2023年9月15日
運動、カロリー制限ともに内臓脂肪を減少させるが、運動のみが用量反応関係を示し、運動量の増加により内臓脂肪の減少が大きくなることが示唆されたとのこと。
しかし結局のところ、ダイエットしたければ食べる量減らして運動しろ、という昔ながらのアドバイスが有効というのが悲しいところ。もっと楽に痩せられる方法はないものか。
[追記] 寝ないと痩せないという論文もあるようだ。たしかに疲れて帰ると甘いものを食べたくなるのは世の常ではある。
「人間は寝ないと痩せない」という論文。
— いっちー@バーチャル精神科医 (@ichiipsy) 2023年10月31日
人間はぐっすり眠れないと食事のバランスが崩れるようになっていて、消費カロリーは変わらないのに摂取カロリーと食事バランスがバグって、「気づいたら太ってる」モードに突入すると明らかになった。
痩せたいときにはぐっすり寝よう! pic.twitter.com/KNbJFmmvtI
意見というのは十人十色、様々な主張はあってしかるべきとは思う。
思うものの、事件の犯人に対する擁護は被害者に対する攻撃や抑圧として機能することも忘れるべきではないと思う。「ロシアが戦争を仕掛けたのはウクライナの挑発があった」、「性被害の告発が、ジャニーズ所属タレントの未来を奪った」、そういう逆張りの主張をする著名人は多い。もし、あなたがウクライナ人や性被害の当事者だったらどう感じるだろうか。一方的に被害を受けたにも関わらず、なぜさらに非難されなければならないのか。まるで「いじめの原因はいじめられる側にある」かのような論理だ。
法学では「もし原因がなかったならば結果も起こらなかった」という因果関係が重視されるそうだ。そういう観点で見れば、たとえウクライナがロシアを挑発しようがしまいが、戦争と言う行動を起こしたのは間違いなくロシアである。同様に、たとえタレント側が枕営業を意図したとしても、大人であり権力者であるジャニー喜多川が断れれば性加害は起こらない。性加害を行わなければ、性被害の告発もなく、ジャニーズタレントが活躍の場を奪われることもなかった。どちらが悪いのかは明らかだ。どんなに理屈を積み重ねようとそれは変わらない。
さて、次のような見解についてはどう考えればよいだろうか。
旧統一教会へのバッシングは山上徹也の安倍元首相殺害テロを容認しているのではないか
私はこのように考えるべきだと思う。
いずれも当たり前のことではないだろうか。意思に基づき犯罪を実行に移した者が悪いのであり、その他のことは飾りに過ぎない。
このケースのように宗教や教育や思想が絡む場合、複雑な問題として扱われることが多い。しかし、そもそも事件の主犯を決めるのに宗教や学校、思想が関係するのだろうか。少なくとも現代においては、教義や思想に従っていれば犯罪行為をしてもよいわけはないし、教育のためなら暴行してもよいという時代ではなくなっている。宗教や教育や思想というベールを取り払って見たとき、犯罪とみなされるのであれば、その行為は罰せられるべきだろう。
「過去は変えられないが、未来は変えられる」とか書くとちょっと啓蒙書っぽいタイトルで気恥ずかしくなる。ただ、自身の考えが昔と変わってきたので書き留めておこうと思う。
今、ちょうど話題だからジャニーズ事務所の性加害問題を例に挙げる。しばしば、このような問題に対し、過去への補償・清算に重点が置かれる。もちろん、当事者には重要な話だけど、被害があったという事実が消えてなくなるわけではないし、北公次のようにすでに亡くなっている人にできる補償などあるわけがない。過去は変えたくても変わらない。できるのはせいぜい解釈くらいか。
過去のことは、生きている当事者たちが何らかの合意に基づいて落としどころを決めるしかない。そしてそれがどのような結末を迎えようが社会にとってはあまり重要ではない。
一方で、未来は変えることができる。だから、このような問題が発覚したときに我々、同時代に生きる人間にできるのは、同じような問題が起こらないような仕組みを作ることだけだ。
子供のころ、各種新聞では「戦時中、新聞社は政府に加担し戦争を煽ったことを反省しな繰り返さないようにしなければならない」といった言説をよく見かけた。しかし、今回の対応を見る限り、将来マスコミは同じことを繰り返すだろう、ということが明白になった気がする。いち芸能事務所にすら対抗できない人々が、政府に対抗できるわけがないではないか。
誰が口だけの反省をし、誰がきちんと再発を防止するために行動しているのか、そういう観点から見るようにしたい。
先日「AFURI」というラーメン屋の商標の件でひと悶着があったことは知っている人が多いと思う。
さて、この吉川醸造の主張を読んでどう思っただろうか。普通は「AFURIはひどい会社だ。許せん」と思うのではなかろうか。では、次の記事を読んでみてほしい。
私は事の真相を知らない。しかし、上記の記事を読んだらまったく別の感想を覚えるのではなかろうか。
吉川醸造の記事に人々が共感を寄せてしまうのは、読み手の次のような先入観があるからだろう。
もちろん、商標権と言う観点からAFURIはおかしなことをしていない、という側面もあるが、ここで問題としたいのは想起される感情についてなので無視する。
誰が本当のことを言っているのかわからない、と言う意味では黒澤明の「羅生門」的と言えなくもないけれど*1、どちらかというと、古くからみられるどんでんがえし的な落ちだとは思う。しかも、結構などんでん返しだ。
昨今、映画を見ていてもどんでん返し的な落ちで失敗しているように感じることが多いが、現実のどんでん返しはとても見事だ。完全に予想を裏切られるし、その裏切り方が斜め上を行っている。事実は小説より奇なり、とはよく言ったものだ。
最初にこのことを認識したのは、「北海道七飯町の林道で親に置き去りにされた7歳の少年が行方不明になった事件」だった。
この事件では、親がしつけのために子供を道の途中で置き去りにした。親は数分で引き返したものの、子供の行方はしれず、その後何日も見つからなかった。
当初から実は子供はすでに親に殺されていて、親が嘘をついているのでは、という声が絶えなかった。
結末はご存じだろうが、行方不明になった7歳の少年はなんとサバイブし7日間も生き延びていた。まじか。
これも「7歳の子供はかよわく、クマもいる北海道の山中で、水も食料もなく何日も生存できるはずがない」という先入観によるものだし、親からしてもそんな場所に降ろされたのに、泣きながら立ちすくむのではなくサバイブ始めちゃうとは予想もしなかっただろう。(得てして、子供は思考の枠から外れた行動をするものだが)
この事件は偶然の産物だが、昨今ネット全盛の時代になって、吉川醸造同様ミスリードを誘うことで、立場を逆転させようといういかがなものかと思われる事例も散見される。
しかし、よく考えればメディアでの公表が昔より簡単になっただけで、メディアを使って悪役を仕立て上げるということは昔からしばし行われてきた。
例えば「安部英医師「薬害エイズ」事件の真実」では、「薬害エイズ事件」の主犯として取り上げられた安部英医師が避けられなかった事故に対するスケープゴートにされたことが説得的に展開される。
人は事件が起こると、悲しんでいる人や文句を言っている人が正しいのだろう、あるいは事件が起こっているのだから犯人はいるはずだ、という短絡的な思考に至ってしまう。そしてその思い込みを元にストーリーを勝手に作り上げてしまう。
今回、いろいろな事例を取り上げたが、いずれも事件を知った当初は短絡的に考えてしまったものばかりであり、そのような考えを断罪する立場にはない。しかし次のことは言えるだろう。
当初は2週間くらいでさくっと作る予定だったけど、気付いてみれば早3カ月。ようやく公開できる状態になりました。
ここまで時間がかかったのは、技術的課題というよりは、子育て真っ最中でプライベートな時間がほとんど取れなかったことが一番の理由です。寝る前の1時間とかその程度しか自由にならないのだから、遅々として進まない。45歳の誕生日まではと思っていたけどちょっとオーバーしてしまいました。*1
今回作ったのは、(私が仕事でやっているような)日本のエンタープライズ・システムでよく出てくる機能をまとめたJavaScript/Node.js向け共通ライブラリです。
エンタープライズ向けのシステムは現在でも Java で開発されることが多く、今回開発したような機能も Java であれば既存に存在したりするのですが、Node.js は比較的歴史が浅いこともあり日本特有のレガシーな機能はあまり提供されません。
例えば、和歴(Java なら JapaneseEra)、書式によるパース/フォーマット(Java なら DecimalFormat/DateFormat)、レガシーエンコーディング(Java は標準でWindows-31J、EUC-JP、IBM漢字のエンコード/デコードが可能)、ひらがな/カタカナ・全角/半角変換(Java なら ICU4J)など Java であればすでに決定版の解決策があります。
npm を探せば該当するライブラリもなくはないですが、Node.js の小機能主義も相まって、品質や一貫性の面で使いづらい点も少なくありません。
JTC-utils では、加えて、全銀カナ対応、一貫性のある CSV と固定長の入出力機能(固定長ではパック10進、ゾーン10進もサポート)も用意しています。
私も JDK 1.1 以来長いこと Java で開発をしてきましたが、クラウド化の流れを受け最近では Node.js を選ぶことが多くなってきています。
VSCode、ESLint、Jest をはじめ開発環境は整っているし、起動は速く、各種ベンチマークを見る限りパフォーマンスも Java と肩を並べるレベル、言語仕様も安定的で使いやすいレベルに充実。いずれにせよ、Web ではクライアントサイドを JavaScript で開発せざるを得ないわけだから、バックエンドも JavaScript を使った方が開発生産性は高いと考えるのは自然です。
過去においては Java の Write once, run anywhere が重要でしたが、コンテナが一般化した現代においては軽く動かせる Node.js の方がむしろ便利になってしまいました。
エンタープライズシステムを Node.js で作ろうと思う方は、このライブラリを使ってみていただけると幸いです。(開発苦労話はまた次回)
[2023/7/17] 苦労した点は Qiita の記事として公開しました。
*1:そうです、とうとう折り返しを軽く超え、45歳ですよ。