yumetodoの旅とプログラミングとかの記録

旅や登山の記録やプログラミング関連の話とかフリーソフト紹介とか

まいん氏の #二度目の人生を異世界で が総スカン食らっているようだけど

まいん氏って誰?

まいん小説家になろうで投稿されている作家さん。「食い詰め傭兵の幻想奇譚」「二度目の人生を異世界で」など。

私もこの2つの作品の更新は追っかけて読んでいる。

問題のツイート

随分と昔の2013年から2014年のツイートが槍玉に上がっている。

img

槍玉に上がっている「二度目の人生を異世界で」の設定

設定が乗っていた話はすでに削除されているが、ぎりぎりGoogleのキャッシュに残っていた。引用すると

「手伝うもなにも、検索履歴から引っ張ればすぐでしょう?」

それもそうだと、あの世界に送り込む魂を検索した時の履歴から、該当する情報を引っ張り出して表示させる。

功刀 蓮弥 人族 享年94歳。

現在リソース不足の9201-0846-2525-4989へリソース充填の為、界渡り中。

元の世界番号は8190-9735-1414-3878であり、特記する事象なし。

界渡り前は、功刀一刀流第14代当主。

幼少より剣道を嗜み、13歳にして剣術へ移行し、その才能を開花させる。

15歳より、武者修行と称し中国大陸へ渡り黒社会で活動。

刀一本で大人数へ切り込み、生還する様から「剣鬼」の異名で呼ばれる。

黒社会活動中の殺害人数は5年間で912名に及ぶ。

その後、世界大戦に従軍。

4年間の従軍期間中の殺害数は3712名、全て斬殺。

「ブレードオーガ」のコードネームで畏怖される。

終戦後は功刀流の家督を継ぎ、後進の育成や、剣術の普及に尽力。

各地で公演や剣術の実演を行い、功刀一刀流を広く普及させ、国内外に49の道場を持つに至る。

晩年は刀匠として大成し、「華蓮」の銘を持ち、人間国宝に指定。

美食家としても知られ、自身も高い料理の腕を持つ。

94歳と127日目にして、老衰にて死去。

生涯殺害数、5730名。

「……リアルチートキター?」

「なんでカタコトなんですか、主様」

情報の書かれているウィンドウから視線を上げて、ぼそっと言った私に、部下が即時にツッコミを入れてくる。

きっと今の私は、非常にうつろな表情をしているに違いない。

「なにこれ!? 適当に選んだ割には、とんでもない人生だよねこれ!?」

「こんな人生送って、よく老衰で死ねましたねこの人……。普通たたみの上では死ねない人生ですよねぇ」

「刀だけで五千人以上殺すって、ありえないよね!? ってか終戦迎えた後からも4ケタくらい殺してるよね、この人!」

「よほど上手に隠蔽したんでしょうねぇ」

「そういえば、特記事項なしってことは、この人犯罪者になったことないよ!」

犯罪歴があれば特記事項として情報が表示されるはずだった。

ちなみにだが、ここで表示される犯罪暦は、その世界の法に触れたという事実がない限りは犯罪暦としてカウントされない。

そうでもしないと、ほぼ全ての人間の情報に犯罪暦が表示されてしまうからだ。

当たり前だが、いくら困っていたとは言え、犯罪者を界渡りさせるつもりなど毛頭なかったのだが、急いで手配したとは言え、私はなんという札を引いてしまったんだろうと頭を抱えてしまう。

この人が元いた世界には数十億の人間がいたから、五千人程度の殺害数は、常識外れに多いとは言っても、世界にたいした影響は与えなかったはずだ。

しかし、今回送った先の世界の人口は、せいぜい1000万前後がいい所だ。

そこに素の状態で五千人を殺し得る人を、さらにチートっぽいスキルまで付属させた上で送ってしまった。

小説の設定についての感想

まあよくあるなろう小説の異世界転生からの俺TUEEE系小説だ。主人公(男)が老衰で死んで、前世の記憶を失って転生する。

TVアニメ化されるというラノベ『二度目の人生を異世界で』の設定がひどすぎて目眩がする - 読む・考える・書く

連載開始が2014年なので、この主人公は1920年頃生まれたことになる。すると、日中戦争開始時点で17歳、敗戦時で25歳くらいか。で、この間に912+3712=4624名を斬殺した、と。

引き算してみると戦後も1000人以上殺していることになるというトンデモはとりあえず無視するとしても、この設定のあまりの馬鹿らしさには乾いた笑いしか出てこない。


それに、異世界側の設定であればいくらでも好きにすればいいが、ここは現世における主人公の生涯に関する設定なのだから、いくらラノベでも歴史的事実をガン無視したデタラメは許されない。この主人公が斬殺しまくった舞台は中国しかあり得ないだろう。


戦場で敵を斬りまくったなどという軍人の自慢話は大嘘で、ほぼすべてが実際には無抵抗の捕虜や民間人の虐殺だったのだ。

引用部分、なかなか崩壊した設定だなと思ったら考察している記事があった。

しかしだ、そもそもみんな忘れてないだろうか、小説家になろうにあがる小説の大半は設定が崩壊している。この作品の設定もやはり崩壊しているが、べつにこの程度日常茶飯事である。

手塚治虫の「漫画の描き方」を引っ張ってきて基本的人権が云々言っているツイートも見かけるが、小説家になろうにある作品の多くで基本的人権は崩壊してる。というか俺TUEEEを成立させるには基本的人権がある程度消し飛んだ世界観を持ってこないと設定が成立させにくい。

ああ、上の記事で捕虜や民間人の虐殺とか言っているが、戦争とはそういうものであり、だから戦争は許されざることである。

それにどうも忘れられているようだが、異世界転生もので、転生前がパラレルワールドではないといつから錯覚していた?

小説の設定には作者の政治的主張が出るものだが、以て小説や作者を叩くのは頓珍漢である。というか、それこそ作者の基本的人権の重大な侵害だから自己矛盾甚だしいことを思い出して欲しい。

というわけで、流れに乗って叩いちゃった各位は反省されたい。

なおちゃんとなろうに上がっている全話を読破していればわかることだが、基本的人権や性志向・性自認の軽視傾向の度合いは、ほかのなろう作品と大差ない

「だから小説家になろうは糞」という理論なら成り立つのかもしれないが(要検証)、この作品の攻撃は成り立たない。

問題のツイート

言うまでもなく人種差別的、攻撃的な言動である。とはいえこの程度の低レベルな言動はこんにち、twitterでは極めてよく見かけるものであり、なかなか悲しい。極右極左ともにこの手の救いのない罵倒の応酬が日々繰り広げられている。彼らは「ネトウヨ」だの「パヨク」だのという全く機能しないレッテルを張り合うコトしかできないのだろうか・・・。

ただツイートの時期に注目しておきたい。2013年から2014年というのは「二度目の人生を異世界で」の連載が始まる前、ないし始まった直後頃のことである。

なんだってそんな4年も前の話が蒸し返されたのだろうか?

この点は別途考察が必要である。

おそらくだが、小説の設定と現実世界の区別がつかなくなったお馬鹿たちが作者の攻撃材料を探す過程で引っ張りだされたものだろう。

声優降板について

まあ単に大きな市場である中国市場で叩かれているから傷がつくとかそんな程度の判断だろう。炎上への対処を明確に打ち出せないまま声優の繋ぎとめに失敗した、ということだろう。針小棒大に書き立てている人が居るだけのことだ。

作者の政治主張と作品内容を分けて考えられない人たちへ

どうも小説家になろうにあがる小説には歴史修正主義的な傾向があるように思う。例えば魔法科高校の劣等生だってそのたぐいだと、私なんかは思っている。

でも、魔法科高校の劣等生北山雫はかわいい。これが正義だ。

まとめ

追記

https://www.hokkaido-np.co.jp/article/197053www.hokkaido-np.co.jp

アニメ制作中止とのこと。まあそれはいい。声優に殺害予告が行くという意味不明な状況だったしな。

www.asahi.com

しかしノベルに影響が行くのは意味がわからん。

なんにせよ、作品が知られるようになるより前のツイートが原因で作品を潰せてしまうという悪しき前例ができてしまった。とても良くない

コアってなに?スレッドが2つある?非同期?というあなたに

前提: 演算器

例えばAND回路とかOR回路なんかをイメージしてほしい。

まずCPUがある

一般にCPUは1つのPCに1つのものをよく見かけるが、複数CPUが乗っていることもある。

コアとは

CPUは多数の演算器が複雑に組み合わさってできているが、この脳みそに当たるものが1つのCPUの中に複数あることがある(というかそのほうが主流)。これがコアだ。

Pipeline

基本的にコア1つに付き1つの作業しか同時にできない。はずであった。しかし、作業内容をCPUが見抜いて、依存関係のない演算同士をばらしてPipelineを組み立て、同時に複数の処理を実行するという離れ業を現代のCPUはやってのける。

ただし、例えば条件分岐では、分岐するまでパイプライン進められなくなる。パイプラインを崩す。

条件分岐予測とか投機的実行

パイプラインが崩れると処理速度が遅くなって困るので条件分岐に対しては条件分岐予測というものがある。

つまり、CPUの謎パワーで条件分岐先を予測して、投機的実行(Pipelineを組み立て分岐先の処理を実行)してしまう。条件分岐判定が終わって予測が間違っていたら処理を差し戻して正しい処理を実行する。

この投機的実行の有用性が揺らぐ事件としてSpectreがある。雑に解説すると、処理の差し戻しが不完全なことで意図しない副作用が起きるというものである。まじでどーすんだこれ。

SMT(同時マルチスレッディング)

Pipelineとは別に、基本的にコア1つに付き1つの作業しか同時にできないという概念を覆すものがある。1つの作業中のCPUをよく観察すると、すべての回路が仕事をしているわけではなかった。遊んでいるところでもう1個仕事できるんじゃないか?例えるならば右手でスマホを操作しながら左手で飲み物を飲めるようなものだ。

いわゆる論理コア。

論理コア

Intel® Hyper-Threading Technology

SMTの実装例である。1つのコアを2つのコアに見せかける。HTT。Technologyは冗長だから省いてHTと呼んだりハイパースレッディングと呼んだり。

プロセス

一気にソフトウェア面での話になってくる。

実行ファイルを実行する時にOSが生成し管理する。

一般的なOSでは当たり前のようにプロセスは複数作れる。

スレッド

プロセスごとにスレッドを生成できる。プロセスではメモリー空間を共有するのが難しい。スレッドならメモリー空間は共有だ(ただしバグを作り込みやすい)。スレッドの生成コストは普通プロセスの生成コストより小さい。

スレッドプール

プログラミングの技法的な話になってくる。スレッドは確かにプロセスの生成コストより小さいかもしれないがそれでも重い。ループの中で逐次スレッドを生成しては破棄するような使い方をすると遅すぎる。ここで生産者ー消費者モデルというプログラミングの技法を使う。つまり予めいくつかのスレッドを生成しておき休眠させ、必要になったら起こしてデータを渡して処理を行わせ、終わったら次のデータが来るまでまた眠る。これがスレッドプールだ。

非同期

スレッドプールをまともに実装するなんてことができるのは一部のプログラマーだけだ。一般的なプログラマーには無理だし、そうでなくても楽をしたい。生産者ー消費者モデルではなく、ある処理が終わったときに呼び出す処理(callback)を登録しておくという手法を用いるほうがわかりやすい。これが非同期プログラミングだ。

futhre/thenとかasync/awaitとか

非同期プログラミングはスレッドプールを自分で書くよりはマシかも知れないが、プログラムの可読性が落ちる(callback地獄)。そこでライブラリ側でこれをどうにかする手法としてfuture/thenだったり、これをもうすこし可読性を上げて書けるようにするプログラミング言語仕様側のサポートとしてasync/awaitとかが一部のプログラミング言語にはある。

「スレッドと呼ばれるものが2つある問題」

プロセスごとにスレッドがあるのだが、一方でSMTの論理コアのことをスレッドと呼ぶことがある。プロセスごとのスレッドを論理コアにOSが割り当てるのだからThreadingのほうが正しいはずなのだが、どういうわけか論理コアのこともスレッドと呼ぶ。意味がわからない。

謝辞

質問者
情報提供

ようやくこのブログをHTTPS化した

はてなブログHTTPS化の状況

はてなブログHTTPS化の状況はちょっと遅かった。

staff.hatenablog.com

2017年9月25日に全ページHTTPS化に向けたロードマップが出た。

しかし作業は当初見積りより遅れ、

blog.hatenablog.com

staff.hatenablog.com

2017年11月20日に管理画面がHTTPS化、第一段階が終わった。

staff.hatenablog.com

2018年2月22日にようやく第二段階のはてな提供ドメインのブログHTTPS化がアナウンスされたが、これは全ユーザー一斉ではなく順次だった。

つい最近になってようやくHTTPS化の対象になったのでHTTPS化した。

HTTPS化の瞬間

HTTPS

ポチッとな。

テーマ側の対応

検索ボックスのアイコン

このブログはテーマを自作しているのでそっちの対応も必要だ。まあもともとHTTPS化の流れを知っていた私に隙はない(キリッ

・・・とか思っていたがそうでもなかった。あやややや。

yumetodo.hateblo.jp

でも述べたとおり、自作テーマははてなが提供しているBoilerplateをforkして作っているのだが、そのはてな提供部分が問題だった。

検索ボックスの検索アイコンは、CSSbackground-imageで実現しているのだが、それがどのようになっていたかというと、

https://github.com/hatena/Hatena-Blog-Theme-Boilerplate-Less/blob/9bf81a62aa2804f27b96c79ea34bebfa6b1f4630/boilerplate.less#L561

    .search-module-button {
        width: 20px;
        height: 20px;
        background: transparent url(http://blog.hatena.ne.jp/images/theme/search.png) no-repeat right center;
        border: none;
        outline: none;
        text-indent: -9999px;
        position: absolute;
        top: 5px;
        right: 5px;
        opacity: 0.5;
        &:hover {
            opacity: 0.85;
        }

のようにhttpから始まるURLの画像が指定されていた。これはPull Requestチャンスだな!と思って

make HTTPS to avoid mixed contents by yumetodo · Pull Request #16 · hatena/Hatena-Blog-Theme-Boilerplate-Less

を投げたのだが、よく見たら

github.com

あれ~、開発終了している・・・。まじか。どうも

github.com

lessをやめて、sassに移行したらしい。は?意味がわからん。一体 @ueday氏(はてなの中の人?)は何をやってるんや???

まあそれはいい。で、そのsassの方の該当部分はどうなっとるんじゃろなと思ってみると、

    .search-module-button {
        width: 24px;
        height: 24px;
        margin-right: 5px;
        background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cdefs%3E%3Cstyle%3E.a%7Bfill:none;%7D%3C/style%3E%3C/defs%3E%3Ctitle%3Esearch%3C/title%3E%3Cpath d='M16.7,15l-3.4-3.3h-.1a5.4,5.4,0,0,0,.9-3.1,5.6,5.6,0,1,0-5.6,5.6,5.4,5.4,0,0,0,3.1-.9.1.1,0,0,0,.1.1L15,16.7a1.1,1.1,0,0,0,.8.3,1.6,1.6,0,0,0,.9-.3,1.4,1.4,0,0,0,0-1.7M8.5,12.3A3.8,3.8,0,0,1,4.8,8.5,3.8,3.8,0,0,1,8.5,4.7a3.9,3.9,0,0,1,3.8,3.8,3.8,3.8,0,0,1-3.8,3.8'/%3E%3Crect class='a' width='20' height='20'/%3E%3C/svg%3E") no-repeat center;
        background-size: 20px 20px;
        border: none;
        outline: none;
        color: transparent;
        overflow: hidden;
        opacity: .5;
        cursor: pointer;
        &:hover {
            opacity: .85;
        }
}

インラインSVGになっていた

まあそっちのほうがいいかってことでこちらも追従した。

github.com

CIを直す

自作テーマはCIで自動デプロイしているんだが、このCIが前から壊れていた。原因はテーマのハックに使っているJavaScriptをminify&ugrifyするGoogle Closure CompilerがJava7で動かなくなったためらしい。Shippableのコンテナに入っているのは

Overview - Shippable Docs

によればv6.3.4のイメージのハズだから、

v6.3.4 - Shippable Docs#nodejs

Java 1.8.0が入っているはずなのだが、どうもjava -versionする限りでは1.7が入っている。

やってられんのでdocker imageを指定してやることにしようとしたが、その迷走の過程で

aaaaaaaa

大量のcommitを濫造した。うへぇ・・・。

ついでにClosure Compilerのinstall scriptに使ってたfs-promiseがいつの間にかdeprecatedになってたのでfs-extraを使うように直したり、その他Node.jsのdependencyを更新したりして、

app.shippable.com

どうにかCIが通った。

本当は本家がlessからsassに移行したのに追従してこっちもsassにするべきなんだろうけど、だるいのでやめた。

記事のMixed Contentsとの戦い

まあもともとHTTPS化の流れを知っていた私に隙はない(キリッ

・・・と思ったがこちらもやはり穴があったようで数箇所httpなコンテンツを読み込んでいた。

まあ修正箇所は多くないし全部単純な置換で済んだので良かった。

よく言われるHTTPS化のメリットについて検証

鍵マークがつく

Mixed Contentsを全部潰したところ、ついた。なんか気持ちいい。

http2対応による対応ブラウザで表示速度アップ

速いと噂のhttp2を使うにはHTTPS化が前提になる。

http2対応していないブラウザとかもう絶滅しているのでいいとして(IE11ですら対応している)、はてな側でhttp2対応しないと意味がない。

見た感じまだまだ全然http2対応していないのでまあ当然速度アップとかない。

・・・というかそもそもはてなブログは読み込むものが多すぎてhttp2対応しても効果が吹き飛びそう

SEO

もともと急にどうこういう話でもないし、そんなに大きなfactorでもないし気にしない。

終わりに

  • ようやくこのブログをHTTPS化した
  • Shippableの挙動がなんか気まぐれ
  • @ueday氏(はてなの中の人?)はなぜlessを捨ててsassに移ったのか?謎い。