Androidにはなぜモーダルダイアログが無いのか?

https://aharisu.hatenadiary.org/entry/20180815/1534348306
正確には同期で表示されるダイアログが無い。
これは端末回転やメモリ不足によって画面オブジェクトの再作成が行われることが想定されているからだと思う。
非同期で表示されるダイアログならDialogFragmentで復元できるが、「処理の途中で表示していたダイアログ」があると変数の状態や処理がどこまで進んだときに表示されたダイアログなのかを全部保存しないとそれを復元できない。

太田モアレ「寄生獣・リバーシ」

読了。
寄生獣」とほぼ同じ時間軸・同じ地域を舞台にした、ミギーと新一とは別の人物を主人公に据えた作品。主人公は「人間どもこそ地球を蝕む寄生虫!! いや……寄生獣か」の広川の息子だが、広川ほどぶっ飛んだ思想の持ち主ではなく、まあ一般人である。
寄生獣本編では登場しなかった人物なので当然ながらミギー・新一と出会うことはない。
面白くなくはないが、期待以上でもなかった。

桜井画門「亜人」

読了。
死亡した場合に、怪我をしていない身体状態にリセットされるという特徴を持った「亜人」と呼ばれる人が存在する世界の話。
物語の後半は歴戦の兵士である亜人「佐藤」による愉快犯のテロリズムに対抗するエピソードになる。

進撃の巨人世界の謎

最終話のエレンの台詞「人類の8割を殺すことになる」と最終決戦をした砦の位置(アフリカの端)から考えると、進撃の巨人世界では人類はアフリカ大陸以外にはほとんど住んでいない……?なんかヒィズル国も地鳴らし圏内に存在したっぽいし。
マーレ国やその他諸国の文明水準から考えると、これはえらく不自然な気がする。
いっそアフリカ以外大陸なんて存在しない説もありかと思うが、32巻地図にはユーラシア大陸インドあたりまでの海岸線はちゃんと書かれてるんだよなあ。
進撃の巨人世界は太陽が西から昇り東に沈む、地球ではない世界なのでたまたまユーラシア大陸と海岸線は一致してたけど、巨大な大陸はアフリカ大陸以外に存在しませんって言われたら反論しようがないが……。

C#のlock構文が必要な理由

https://blog.siongames.net/entry/lockcontro
マルチスレッドだと、例えばスレッドAとスレッドBが同じ変数を+1更新をかけたとき、

1.スレッドAが変数内容を読む
2.スレッドBが変数内容を読む
3.スレッドAが読んだ値+1の内容を変数に格納する
4.スレッドBが読んだ値+1の内容を変数に格納する

……という順で処理がされることがある。
この場合『2回ほど変数を+1更新する処理が実行されたのに、変数内容は+1しかされない』という動作になる。
これを防ぐために、あるスレッドからアクセスしている間は別のスレッドからの読み書きを禁止するのがlock構文。

///


/// lock()構文を使用して排他制御する
///

public class LockProcess : ProcessBase
{
private object lockObj = new object();
public override void AddProcess(int loopCount)
{
for (int i = 0; i < loopCount; ++i)
{
lock (lockObj)
{
value++;
}
}
}
}