23:19:58 orange @orange_in_space@mstdn.nere9.help
icon

ブッシュっぽさ><

"(機械翻訳)トランプ大統領は英国が核保有国であることに気づいておらず、かつてフィンランドがロシアの一部であるかどうか上級補佐官に尋ねた"
John Bolton: White House makes last gasp bid to stop book's release - BBC News bbc.com/news/world-us-canada-5

Web site image
John Bolton: White House makes last gasp bid to stop book''s release
23:11:34 orange @orange_in_space@mstdn.nere9.help
icon

elite dangerousやればわかるけど銀河系って超でかいよ><
「地球が存在する銀河系には少なくとも36種類の知的生命体が存在する」という主張 - GIGAZINE gigazine.net/news/20200618-ali

Web site image
「地球が存在する銀河系には少なくとも36種類の知的生命体が存在する」という主張
23:04:01 orange @orange_in_space@mstdn.nere9.help
icon

KISS原則の話少しやってた><
mstdn.nere9.help/@orange_in_sp

Web site image
orange (@orange_in_space@mstdn.nere9.help)
23:02:37 orange @orange_in_space@mstdn.nere9.help
icon

999999.9999ライム味のんだ><(報告)

23:00:20 orange @orange_in_space@mstdn.nere9.help
icon

みた><
「はやぶさ2のライバル オシリス・レックス最新報告」 - コズミック フロント☆NEXT - NHK nhk.jp/p/cosmic/ts/KWRKNGPXZV/

Web site image
「はやぶさ2のライバル オシリス・レックス最新報告」 - コズミック フロント
21:52:17 orange @orange_in_space@mstdn.nere9.help
icon

具体的にいうと函館駅にあるっぽい><(たぶん)

21:51:30 orange @orange_in_space@mstdn.nere9.help
2020-06-18 20:52:21 遊佐こずえの投稿 kozue@yysk.icu
icon

このアカウントは、notestockで公開設定になっていません。

21:51:25 orange @orange_in_space@mstdn.nere9.help
2020-06-18 20:51:09 あくらふの投稿 Aqraf@m.aqr.af
icon

出発信号機に対応する中継信号機ってあるんかな

21:50:40 orange @orange_in_space@mstdn.nere9.help
icon

「出発進行」(第一出発進行?)って言ってる気がする><

"【前面展望】スーパー白鳥 函館→青森 夜間展望動画" を YouTube で見る youtu.be/Sapqjc5iIt4

Attach YouTube
21:32:06 orange @orange_in_space@mstdn.nere9.help
icon

少なくとも函館駅はホームが曲がってて端頭式ホームの奥に停車させるせいで、出発時に最初の色灯式信号は見えないっぽい><

21:30:00 orange @orange_in_space@mstdn.nere9.help
icon

えじょさんなら知ってる可能性?><;

21:29:05 orange @orange_in_space@mstdn.nere9.help
icon

函館の全面展望動画いくつか見てみたけど、歓呼聞こえなくてこの先が場内なのか出発なのかわからない><;

21:13:55 orange @orange_in_space@mstdn.nere9.help
icon

これはどうなんだろ?><
118 JR函館駅の「中継信号機(灯列式)」。: 北の鉄ちゃんの部屋 231108.at.webry.info/201401/ar

Web site image
118 JR函館駅の「中継信号機(灯列式)」。
21:09:05 orange @orange_in_space@mstdn.nere9.help
icon

出発信号の予告信号もしかしてこれ?><
File:Hanshin Railway Repeating Signal.jpg - Wikimedia Commons commons.wikimedia.org/wiki/Fil

Web site image
File:Hanshin Railway Repeating Signal.jpg - Wikimedia Commons
20:59:36 orange @orange_in_space@mstdn.nere9.help
2020-06-18 20:52:56 おさの投稿 osapon@mstdn.nere9.help
icon

出発信号機を中継しないといけない状況、運転士が先頭にいない、運転士が下か上に固定でいて車両に乗っていないケーブルカーとか?

20:56:39 orange @orange_in_space@mstdn.nere9.help
icon

スマホアプリ版が多機能で、音声のみの専用ハードが活躍出来る隙がなさそう><;

音声ガイドアプリ【多言語対応】美術館・博物館・観光地に│アコースティガイド・ジャパン acoustiguide.co.jp/app/

音声ガイドアプリ【多言語対応】美術館・博物館・観光地に│アコースティガイド・ジャパン
20:47:21 orange @orange_in_space@mstdn.nere9.help
2020-06-18 20:45:20 おさの投稿 osapon@mstdn.nere9.help
icon

可視光で通信するやつあったね。(記事内の画像が全然でない)
水中レーザー無線LANの海洋試験成功。海洋調査、防衛にも活用 | Optinews
optinews.info/2017/10/31/water

Web site image
水中レーザー無線LANの海洋試験成功。海洋調査、防衛にも活用
20:47:05 orange @orange_in_space@mstdn.nere9.help
icon

つまり美術館とかの照明をそれにして、展示物の前の天井にある照明がそれぞれデジタル可視光通信というか可視光放送?><; で、展示物の解説音声を流してて、受信ヘッドホンして展示物見回るとその場ごとの説明が聴けるってシステム><

20:44:04 orange @orange_in_space@mstdn.nere9.help
icon

可視光式にすればたとえば美術館の案内とかを聴けるシステムで部屋ごとに放送内容変えるとか簡単に出来る><
(可視光じゃなくても出来るけど><;)

20:41:33 orange @orange_in_space@mstdn.nere9.help
icon

赤外線FMワイヤレスヘッドホンって昔いっぱいあった(今も?)けど、可視光LED照明デジタルワイヤレスヘッドホンって無理なのかな?><
電球の光を観察すれば、25メートル離れた場所の会話が盗聴できる。イスラエル | スラド ハードウェア hardware.srad.jp/story/20/06/1

Web site image
電球の光を観察すれば、25メートル離れた場所の会話が盗聴できる。イスラエル | スラド ハードウェア
20:04:37 orange @orange_in_space@mstdn.nere9.help
icon

なんでないのかというとたぶん両方にするとGCが複雑になるのと、さっき書いた通り、みんな使い分けを理解できず即時実行デストラクタの方に終了処理全部書いちゃうだろうと思われてるからだと思う><;

20:02:02 orange @orange_in_space@mstdn.nere9.help
icon

かなり前にツイッターでGC関連の話題が盛り上がった時に、
GCと、スコープが外れた瞬間に呼ばれるデストラクタの両方がある言語って無いの?><
ってちょっと盛り上がったけどそういうの無いらしい><
(遅延実行デストラクタと即時実行デストラクタの二段構えな環境><)

19:57:01 orange @orange_in_space@mstdn.nere9.help
icon

オレンジはそう考えてて、スコープ外れた瞬間にデストラクタが呼ばれる特殊な参照カウンタインタフェース実装して欲しいって前から言ってる><;
ただし、さっき書いたようにそうするとそればっかり使う馬鹿が現れて極端にパフォーマンスが落ちる事態も起きそうだし、たぶんそれを危惧してるのでDelphiにはあったのにC# には受け継がれなかったんだと思う><;

19:53:29 orange @orange_in_space@mstdn.nere9.help
2020-06-18 19:51:42 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

GC が適用される型と適用されない型を分けるとか、 GC されるハンドル型とされないポインタ型を分けるとか、なんか他にやりようあるんじゃないの? と思ってしまう (まあやった結果として駄目な API が完成したのかもしれないけど、それは単に失敗しただけでは)

19:53:25 orange @orange_in_space@mstdn.nere9.help
2020-06-18 19:50:27 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

そもそもいわゆる高度な GC が本質的に非決定性を抱えているものなので、その上に決定性のあるリソース破棄を実装しようというのが「?」という感じ (いや GC を最後の砦にしたい気持ちはわかるけど)

19:53:02 orange @orange_in_space@mstdn.nere9.help
icon

GUIのリソースはだいたい明示的なタイミングで解放するほうがパフォーマンスが良いもの><(短く説明するの難しい><)

19:48:19 orange @orange_in_space@mstdn.nere9.help
icon

「なんでもかんでも毎回リソース解放してたらパフォーマンス悪い」
 ↓
GCだ!
 ↓
「でも、少数派ながら長期間抱え込むと逆にパフォーマンスに悪影響があるリソースもある」
 ↓
IDisporsableだ!
 ↓
「でも、明示的に解放するの忘れたらどうしよう」
 ↓
GCがいつか呼ぶデストラクタで解放されるので一応ある程度安全(でもパフォーマンスは低下するのであくまでフールプルーフ)

19:40:56 orange @orange_in_space@mstdn.nere9.help
icon

GC導入によるパフォーマンス向上の代償かも><

19:39:56 orange @orange_in_space@mstdn.nere9.help
2020-06-18 19:33:01 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

それ GC まわりの設計の問題では (GC 詳しくないけど、 GC レスなマトモな言語でそういう問題起きないので)

19:39:53 orange @orange_in_space@mstdn.nere9.help
2020-05-16 12:43:36 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

「取っ付きやすさは後からどうにかできるが、デザインや哲学は簡単には変えられない (というかそこを弄るなら別物を作り直した方がいい)」という思想なので、何はともあれ一番重視するのは哲学です

19:38:47 orange @orange_in_space@mstdn.nere9.help
icon

逆に言うと、いつ解放してもほとんど問題がないであろうリソースにはIDisporsableは使わない>< 明示的に解放しなければ問題があるので問題がある場面で使われている><

C# がスコープによる参照カウントの仕組みを用意しなかったのは、そうするとたぶん不適切な場面でも参照カウンタによるデストラクタ呼び出しを多用されまくられて、GCの遅延実行がほとんど機能しなくなって(しかもC# の方式では参照カウンタは処理が余計に必要だろうし)パフォーマンスが極端に落ちることを危惧したんだと思う><

19:28:01 orange @orange_in_space@mstdn.nere9.help
icon

homoo.social/@204504bySE/10436
の通り、いつかはデストラクタが実行されて解放される><
ただしいつ実行されるかはGCのお気持ち次第で、それまでは無駄にリソースを食い続ける><
そして、IDisporsableは、ある時点で明示的にリソースが解放されるべきものに使う仕組みで、つまりそれは明示的にリソースがされるべきもの><(たとえばグラフィック関連のものであればもうこれは描画に使用しないとするタイミング(や一通りの処理が終わったタイミング)で解放されるべきもの><)

Web site image
:homoo_right:​いわし缶​:homoo: (@204504bySE@homoo.social)
19:23:03 orange @orange_in_space@mstdn.nere9.help
2020-06-18 18:18:51 :nonke:​お金で買えない団地妻​:homoo:の投稿 204504bySE@homoo.social
icon

@orange_in_space IDisposableを実装するクラスは、デストラクタ内でもDisposeを呼ぶことが求められている(コンパイルエラーは出ないが) つまり自分でusingしなくてもそのオブジェクトがGCされるときにアンマネージドリソースも開放される。

19:22:53 orange @orange_in_space@mstdn.nere9.help
icon

それはそうだけど、(たぶん)パフォーマンスを考えてあえてそうなってて、その上で、

19:22:01 orange @orange_in_space@mstdn.nere9.help
2020-06-18 19:20:01 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

「忘れてた」ときに問題が起きるデザイン自体が error-prone であると形容される人間に優しくないデザインそのものなのではという感想しかないです……

19:13:36 orange @orange_in_space@mstdn.nere9.help
icon

ていうか、C# のお勉強の課題でIDisposableなものをDisporse忘れ(using忘れ)してたら減点対象にするのが普通だと思うけど違うの?><;
あとJavaも含めてfinallyを使うべき場面で使ってないとか><
自信なくなってきた><

19:07:27 orange @orange_in_space@mstdn.nere9.help
icon

めげてきた><

19:07:01 orange @orange_in_space@mstdn.nere9.help
icon

多重化して多層にするの大事だし、ぶっ壊れた!→全停止 ってするのが安全な分野は限られてる><
危険な部分だけきれいに止まれるようにも多重化><

19:04:01 orange @orange_in_space@mstdn.nere9.help
icon

実際の飛行機に限った話というか、毎度お馴染みエアバスA320><; の話で言うと、
オートパイロットが壊れたらオートパイロットが無効になるはその通り><
一方でA320系は多重フライバイワイヤな飛行機で、高レベルの操縦システムが壊れたら1段下に落ちるようになってる><
一番下まで落ちると非常用の直接操縦するモードになって、直接舵を操作することになる><
このモードはプロテクションもフィードバックもなくとても操縦が難しいらしく危険で、ほんとのほんとにダメもとになってる><
一番上の通常の操縦システムが壊れても、もちろんAPが壊れた程度でも、いきなり一番下の危険なモードには落っこちない><

18:55:50 orange @orange_in_space@mstdn.nere9.help
2020-06-18 16:18:47 skiaphorusの投稿 skia@mstdn.poyo.me
icon

このアカウントは、notestockで公開設定になっていません。

18:50:02 orange @orange_in_space@mstdn.nere9.help
icon

フランスかぶれなので申し訳ない気分に><;

18:49:31 orange @orange_in_space@mstdn.nere9.help
2020-06-18 18:42:22 ESD@┓(谷)┏の投稿 eternalNo3@best-friends.chat
icon

このアカウントは、notestockで公開設定になっていません。

18:45:01 orange @orange_in_space@mstdn.nere9.help
icon

C++にはちゃんとスコープで管理される参照カウンタあるっぽさ・・・><
(これをC# にもつけて欲しい・・・><(乱用されると性能落ちるからつけないんだろうけど><;))

shared_ptr - cpprefjp C++日本語リファレンス cpprefjp.github.io/reference/m

Web site image
shared_ptr - cpprefjp C++日本語リファレンス
18:26:56 orange @orange_in_space@mstdn.nere9.help
icon

@204504bySE デストラクタが呼ばれるまで解放されないんだから、Cでベタ書きしたアプリでリソース解放処理サボってOSに任せるように書くのとほぼ同じ事になるでしょそれ><;
GUI等のリソースは非同期に解放すべきでは無い場面が多いので明示的に解放できるようになってて、そういう場面のためにIDisporsableとusingがあるんだし、それはあくまでフールプルーフ><

18:20:36 orange @orange_in_space@mstdn.nere9.help
icon

Delphiは参照カウンタ使って、解放処理を自動実行させるの出来た><
(C# がある意味退化した部分><((参照カウンタ式では無い)GC導入と、GCによるメリットを失うコードを書かせないようにあえてそうされちゃったっぽさ>< ))

18:17:03 orange @orange_in_space@mstdn.nere9.help
icon

C# のusingが文脈上の"明示的"では無いのであればC# 使えばおk><

18:12:48 orange @orange_in_space@mstdn.nere9.help
icon

どっちにしてもWindowsでは多くの場面でリソースの明示的な開放処理が必要だし、多くのGUI環境もたぶん同様かも><
GUIが身近じゃない人から見たら奇妙なのかもしれないけど、GUIのプログラミングなら当たり前の事だと思うんだけど><(ものすごく高レベルなスクリプト環境とかでは隠蔽されてるかもだけど)

18:09:07 orange @orange_in_space@mstdn.nere9.help
icon

リソース開放処理書きたくない人向けに、C# に参照カウンタがついたらいいのにって思ってた><
モドキは前に書いた><
gist.github.com/orange-in-spac

Web site image
C# 用参照カウンタのようなもの><
18:06:24 orange @orange_in_space@mstdn.nere9.help
icon

リソース開放めんどいなら、GCがある言語使おうね!><;
でも、C# on .NETは、GCで開放してくれない明示的な開放が必要なリソース大量にあるし、全部GC任せに出来る環境はオレンジは少なくとも知らないよ><;

18:03:48 orange @orange_in_space@mstdn.nere9.help
icon

画面書き換える度に使用メモリがどんどん増えてくアホみたいなアプリになっちゃうよ><;

18:01:54 orange @orange_in_space@mstdn.nere9.help
icon

Windowsは確保したらちゃんと解放しないとメモリリークするリソースがたくさんあるよ!><;
プロセス終了すりゃそりゃ(たぶん)解放されるけど、ちゃんと不要になったら解放するように書かないとアホみたいにメモリ食う変なソフトウェアが出来るよ><;

17:58:41 orange @orange_in_space@mstdn.nere9.help
icon

?????><;

17:58:34 orange @orange_in_space@mstdn.nere9.help
2020-06-18 17:45:58 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

そもそもうまい設計してたらリソース解放なんてそうそう明示しないけど……

17:58:30 orange @orange_in_space@mstdn.nere9.help
2020-06-18 17:45:10 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

「プロセスが終了するとき細々したデータ構造を free してたらそれだけでめっちゃ時間かかるので、 free しないで OS 側にまとめて開放させた」みたいな感動の実話を聞いたことがあります (具体的なことが思い出せないけど、少なくとも「なんじゃこの素人は」と思わなかったのは確か)

17:47:54 orange @orange_in_space@mstdn.nere9.help
icon

Windowsのプロセスどうのとかメッセージどうの、プログラミングWindows第5版を読むといいと思うよ!><;

17:41:54 orange @orange_in_space@mstdn.nere9.help
icon

クリーンアップしなくてもOSが何とかしてくれるはずももちろんたぶんWindowsもそうなんでしょ><; 挙動見てる限りではたぶん><
それに期待するなら通常の終了処理でもクリーンアップする処理省いたら?><;
「どうせプロセスが終了すれば開いてるファイルはおそらく安全に閉じるしあらゆるリソースの解放はきっとOSがやってくれるだろう」って><;
実際そんなコード見たら🤔ってなると思うけど><;

17:36:38 orange @orange_in_space@mstdn.nere9.help
icon

他の誰かって誰?><; その他の部分は自分で書いて無いの?><;
その部分は異常を検出するようには書かないの?><;

17:35:24 orange @orange_in_space@mstdn.nere9.help
2020-06-18 17:33:17 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

mstdn.nere9.help/@orange_in_sp

「破綻したデータを食う前に処理を止めろ」には同意するし正しいけど、それは「破綻を発見したとき、既に他の誰かがその破綻を発生させていて、自分より前にそれを誰かが食っていない保証がない」という視点が欠けている

Web site image
orange (@orange_in_space@mstdn.nere9.help)
17:30:13 orange @orange_in_space@mstdn.nere9.help
icon

ちゃんと止まらないのはおかしいのは100%同意だけど、Windowsのアプリであれば異常検知後にダメもとでもそれだけ実行すべき終了処理がほぼ必ずあるし、それを即実行出来るように書いていないのであればそれ自体が危険だともいえるし、
微妙に矛盾するけど、異常検知の処理と非同期で何らかの処理が行われ続けてて、異常検知の処理と何らかの処理の順番の実行順が不定であるのであれば、それはつまり手遅れであるし、手遅れにならないようにするには、問題が起こる処理の前に異常検知する必要があるかも><
つまり、時間的に既知である異常が検出されたのであれば影響のある処理を実行する前に処理を取り止めるべきであって、不定の順番による検出に期待すべきではないし、

超短く言うと「処理実行する前に異常かどうかちゃんと確かめて異常だったらその処理は実行せず戻せ!><」かも><

17:21:37 orange @orange_in_space@mstdn.nere9.help
2020-06-18 17:19:59 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

最初の文脈に戻りますが、「アプリ開発者による『これはもう駄目だ!』という表明を信用しない」というのが OS の思想であるというのならそうですねという感じだけど、その帰結が「大丈夫! 駄目だと思うから駄目なんだ! まだいけるぞ!」と死体に鞭打って破綻したプログラムを走らせ続ける凶行であるというのが、ちょっと信じられなかっただけです

17:14:56 orange @orange_in_space@mstdn.nere9.help
icon

そういう処理書かずに「想定外の異常に陥った! プロセスごと殺そう!」って安全策じゃなくただの手抜きじゃん><

17:12:34 orange @orange_in_space@mstdn.nere9.help
icon

なので、出来る限りクリティカルなものから終了処理させないといけないし、それによって停止する可能性が高い同期処理なのであれば、その処理の重要性と新たなリスクを天秤にかけて場合によっては別スレッドで実行すべきかも><(もちろん最終的にタイムアウト出来るように作るべきかも><)
そこまで出来る限りの事をした上ではじめてプロセスごと自殺させる選択肢が出るかも><

17:07:34 orange @orange_in_space@mstdn.nere9.help
2020-06-18 17:06:40 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

ちなみに迂闊にファイルをフラッシュしようとすると I/O が永遠にブロックしてプロセスが終了しなくなるなどの場合が現実にあります (というかそれでつらい思いをした)

17:06:19 orange @orange_in_space@mstdn.nere9.help
icon

もちろん><
一か八かな状況に陥ってるんだから少なくともファイルハンドルは解放しないと><

17:05:16 orange @orange_in_space@mstdn.nere9.help
2020-06-18 17:04:45 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

たとえそれがファイルシステムやデバイス側の異常に見えたとしても、ですか?

17:01:37 orange @orange_in_space@mstdn.nere9.help
icon

どんな異常であろうがとりあえず開いているファイルだけはとにかくなるべく閉じよう
ってしてるけど少なくともオレンジは><;

17:00:16 orange @orange_in_space@mstdn.nere9.help
2020-06-18 16:59:51 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

だから「どういう “異常” なのか」次第なので、一口に「異常」と言われてもそんなのケースバイケースです

16:59:20 orange @orange_in_space@mstdn.nere9.help
icon

ファイル開いてる時に異常検知したらとりあえずとにかく『ファイル閉じてから』終了しない?><;
もちろん『ファイル閉じようとして閉じれなかったら諦めて次にすべき終了処理にスキップする』ってなるように><

16:56:42 orange @orange_in_space@mstdn.nere9.help
icon

UNIXのソフトウェアって、異常検知した時に開いてるファイルを閉じずに終了させるように書いたりするの?><;

16:53:32 orange @orange_in_space@mstdn.nere9.help
icon

Windowsのアプリケーションは、そういったダメもとでも実行するほうが良い終了処理がいくつも出てくるので(※1)、ちゃんと異常が起きた時になるべく必要な終了処理をよりクリティカルなものを優先して実行するように書くクセをつけましょう><
(※1 これWindowsに限らないと思うんだけど・・・><)

16:48:12 orange @orange_in_space@mstdn.nere9.help
icon

逆にその場面でUNIX文化圏の人がやらかしそうなのが、『シンプル』にするために多重の安全装置を省いて、アームへの電源を断って、だらーんって勢いや重力で動いちゃってどっかにぶつける事故><

16:45:25 orange @orange_in_space@mstdn.nere9.help
icon

それは例えばアームを停止する動作(何らかのロック機構とか)を(用意した上で)(ダメもとでも)実行すべきかも><
ダメもとでもって結構重要で、原子炉の非常用発電装置には安全装置がついていない><(ダメもとでも動かなければならないので><)

16:42:54 orange @orange_in_space@mstdn.nere9.help
2020-06-18 16:41:55 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

たとえば、人が近付くとアームを引っ込める処理があるとします。
でもアームを引っ込める処理をしたのにセンサはアームがどんどん飛び出していることを報告するかもしれない。
それでもまだ「異常事態には人に危害が及ばないようアームを引っ込めるべきだ!」といえますかね

16:36:42 orange @orange_in_space@mstdn.nere9.help
icon

それって単にきれいに処理を抜けるように書いて無いだけでしょ?><;
きれいに処理を抜けることすら不可能かつ異常を検知できる状態ってある?><;

16:35:17 orange @orange_in_space@mstdn.nere9.help
2020-06-18 16:21:59 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

エラーに対処できるならすればいいけど、対処しようのないエラーとか、対処を考えるだけ無駄なエラーとかがあって、そのうちごく一部に「幸運にも assert とか書いとくだけで検出できるエラー」があるんですよ

16:33:15 orange @orange_in_space@mstdn.nere9.help
icon

原子炉だって想定外の異常時に停止するけど、「動作を停止」するわけでは決してなく「運転停止動作を実行する」ように作られている><

16:30:57 orange @orange_in_space@mstdn.nere9.help
icon

ホーアはこれでUNIX流シンプルを賞賛してAda流の複雑にガチガチに神経質に異常を見つけようとする文化を批判してる><
でも、Adaが使われるような人が死ぬ分野ではホーアが批判してるような「複雑になっても(合理的な確率で)想定される全ての異常に対処する」になってるかも><
最終的に異常停止しか出来なくなる事態は同様にそれぞれ想定されていても、そこに至るまでのエラートラップの規模が全く違うかも><

16:24:27 orange @orange_in_space@mstdn.nere9.help
icon

ホーアのこれだと思う><

"ソフトウェアを設計するには、2通りの方法がある。1つは、とてもシンプルに設計して、明らかに欠陥がないようにすること。もう1つは、とても複雑に設計して明らかな欠陥がないようにすることだ。前者の方がはるかに困難である。"

アントニー・ホーア - Wikipedia ja.wikipedia.org/wiki/%E3%82%A

Web site image
%E3%82%A2%E3%83%B3%E3%83%88%E3%83%8B%E3%83%BC%E3%83%BB%E3%83%9B%E3%83%BC%E3%82%A2
16:17:03 orange @orange_in_space@mstdn.nere9.help
icon

『あり得ない状況※a』とはあり得ない状況であると認識できない状況であって、『あり得ない状況である※b』と認識可能であれば、『あり得ない状況※b』を前提に処理すべきかも><

言い方を変えると、『あり得ない状況※a』であると認識出来る事に期待すべきではないかも><

16:12:55 orange @orange_in_space@mstdn.nere9.help
2020-06-18 16:11:54 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

結局同じことで、我々は暗黙に或いは明示的に「不変条件」とか「一貫性」というものを想定して、それが満たされているときにしか動かないプログラムを書いている。
不変条件の存在しないとはすなわちあらゆる仕様が信用できないということなので、本質的にナンセンスなんですよ。「ありえない状況」の存在しないプログラムはありえない。

16:12:00 orange @orange_in_space@mstdn.nere9.help
icon

書けばいいかもというかオレンジは実際そんな感じに偏執的に?><; 書いてる><
というかそれが当たり前だと思ってたし、みんなそんなに雑なの?><;

16:08:23 orange @orange_in_space@mstdn.nere9.help
icon

「...64だった」って検出するコードを書くのであれば、ちゃんと処理抜けるように(マルチスレッドであれば他のスレッドも『即終了しなければならない状況にある』と知れるように)書けばいいかも><

16:06:11 orange @orange_in_space@mstdn.nere9.help
2020-06-18 16:05:13 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

たとえば std の vector を長さ128にリサイズした直後に容量を確認したら 64 だったりするとビビるじゃないですか。というか「物理的に可能ではあるが絶対に想定しないしいちいちチェックして if 文で対処もしない」類のエラーなわけです。
私が殺したいプロセス異常というのはそういう種類の話

16:05:27 orange @orange_in_space@mstdn.nere9.help
icon

逆に言うと、意図的に異常終了させなければならないようなコードであれば、エラー処理が十分では無いと言えるかも><
(UNIX文化圏ではシンプルにするために色々省くんだろうけど)

16:02:01 orange @orange_in_space@mstdn.nere9.help
icon

不整合を見なかったことにして動作を続けるように書くんじゃなく、
各場面で不整合であるかチェックして、正しくなければ処理をせずエラーを返し、返された側もエラーが来る事を前提に書く
ってすれば、きれいに処理を抜けていって最終的にプロセスが終了する ってなるかも><

15:58:24 orange @orange_in_space@mstdn.nere9.help
2020-06-18 15:56:18 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

もちろん人命に関わる状況とかだと話は変わってくるけど、それも設計レベルで「不整合がプログラム全体に漏れ出さないように作って、不整合があった場所はさっさと殺して再起動しろ (結果として全体が不整合に狂わされることなく動き続けるようにしろ)」となるべきであって、「気付いてしまった不整合を見なかったことにして実行を続ける」は如何なる状況でも正当化されないと考えます

15:58:02 orange @orange_in_space@mstdn.nere9.help
icon

これそれこそUNIX流の『シンプル』なんだと思う><
異常な値が来る位置を想定できるのであれば異常な値が来た時の処理を書くべきかも><
ていうか普通のアプリ程度で「『想定不能な値がやって来て』 かつ 『ある特定の位置で異常であるか判断できて』 かつ 『異常であった場合に適切に処理できない』場面ってある?><;

15:53:22 orange @orange_in_space@mstdn.nere9.help
2020-06-18 15:51:08 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

Panic を恐れるべからず - 何とは言わない天然水飲みたさ
blog.cardina1.red/2019/12/19/d

私は「狂ったプログラムの自称 “後始末” や自称 “復帰” を信用できる理由はないので、不整合があれば即座に殺せ」を信条にしています

15:53:17 orange @orange_in_space@mstdn.nere9.help
2020-06-18 15:49:45 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

これは私とだいぶ見解が違いますね……

15:48:20 orange @orange_in_space@mstdn.nere9.help
icon

うん><; でも意図的に異常終了させる必要がある場面てまず無いと思う><;

15:47:21 orange @orange_in_space@mstdn.nere9.help
2020-06-18 15:45:57 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

これはそうでしょうけど、だからといって abort がアホであっていいことにはならないので別の話です

15:47:00 orange @orange_in_space@mstdn.nere9.help
icon

PCの電源切りたい時に電源プラグ引っこ抜いて「いきなり電源落ちても壊れない頑丈なファイルシステムを使ってるからだいじょうぶ! いつもこうしてる!」
みたいな感じに感じる><; 「そりゃファイルは壊れないかもしれないけどでも・・・・><; 」的な><;

15:43:30 orange @orange_in_space@mstdn.nere9.help
icon

完全にどうしようもない状況であればたしかにそうかも><;
でもWindows用のアプリの場合、例えばメモリを確保できなかったとか、GUI等のリソースがOS側の都合で破棄された等の場合程度であれば、OS側の異常終了の機能に頼るべきではないかも><;

15:40:31 orange @orange_in_space@mstdn.nere9.help
2020-06-18 15:37:29 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

そもそもプログラムが正気 (状態の一貫性や満たすべき条件) を失った時点で当人に後始末をさせるのは気休めでしかなくて、根本的には OS が強引に後片付けを引き継ぐべきという考え (OS 越しでなくハードウェアと直に対話している特殊なアプリとかは別として)

15:35:28 orange @orange_in_space@mstdn.nere9.help
icon

それはごもっともだけど、でも非同期な部分がある環境のソフトウェアでそんな野蛮な方法で止めるの問題があるかも><;

15:33:57 orange @orange_in_space@mstdn.nere9.help
2020-06-18 15:30:40 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

だからその「開発時に想定できなかった」マズい (実質未定義動作みたいな) 状態で使うべき abort が、なんで OS によってコールバック関数が呼ばれ続けるのを止めないのか、という話です!

15:33:43 orange @orange_in_space@mstdn.nere9.help
icon

であれば、『異常な状況に陥ったっぽいフラグ』を用意してそれをたてるようにして、各所でそれを見て処理を抜けるように書くようにしないと、シングルスレッドなソフトウェアではどうにかなんとかなっても、マルチスレッドなソフトウェア(Windows用に普通に書けばそうなる)ではわりと大変なことになると思う><

15:30:26 orange @orange_in_space@mstdn.nere9.help
2020-06-18 15:28:40 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

これは「エラーがあって、それが想定のうちで、かつプログラムが正気で走っている」という状況でしょう。その状態なら綺麗に後始末するのは正しい。

abort はそうではなくて、「プログラムが論理バグの存在を (内部状態の矛盾や仕様違反の検出によって) 自覚した、既に手遅れの状態」で使う自殺スイッチであって、これを使ったあとぶっ壊れ状態で更に正常系を想定したコードが続行されるなんてこと許せるわけがないんですよ

15:28:54 orange @orange_in_space@mstdn.nere9.help
icon

ほんとのほんとのほんとのほんとに、どうっっっしてもどうにもなら無い場面以外では、正常に終了するように書くべきかもというか、
異常終了はあくまで、開発時に想定出来なかった異常により終了する場面で起きるものと考えるのがWindows流だと思う><

15:25:53 orange @orange_in_space@mstdn.nere9.help
2020-06-18 15:22:22 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

異常だからこそ abort してるんです

15:25:29 orange @orange_in_space@mstdn.nere9.help
icon

あと、GUIでイベントドリブンなコードの場合は、終了させたい時は『「終了してね!><」フラグ』をたてておいてそれ監視するみたいに書く方が普通だとオレンジは思ってた><
(別スレッドも『終了してねフラグ』が立ってたら「あ、もう要らないのか」って判断して処理スキップするように書いたり><)

15:21:53 orange @orange_in_space@mstdn.nere9.help
icon

GUI使ってるのであればリソースの解放処理が必要かも?><

15:21:00 orange @orange_in_space@mstdn.nere9.help
2020-06-18 15:19:57 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

ウィンドウプロシージャから呼んでいる同スレッドの関数で abort() しているので、そのまま本来実行継続を意図していない状態で再度ウィンドウプロシージャにエントリーしてくるのは私の意図するところではないわけですよ
(そもそも内部的な不整合を検知したから abort しているわけであって)

15:20:55 orange @orange_in_space@mstdn.nere9.help
2020-06-18 15:17:48 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

文脈は Win32 の小さなプログラムを C++ で書いている状況です

15:20:53 orange @orange_in_space@mstdn.nere9.help
2020-06-18 15:17:04 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

プロセスを殺す仕組みがあるなら、 abort() を呼んだとき同じような挙動で死んでくれればいい (OS が殺してくれればいい) と思うわけですが……

15:19:58 orange @orange_in_space@mstdn.nere9.help
icon

よくわかんないけどちゃんと処理抜けて必要な終了処理して終了するように書けばおkだと思う><
自プロセス殺してまでして終了ってかなり異常な状況っぽさ><

15:15:22 orange @orange_in_space@mstdn.nere9.help
icon

ファイルもGUIも何も使わない小さなコマンドラインなアプリとかなら別だけど、ものすごくレアケースっぽさ><

15:13:42 orange @orange_in_space@mstdn.nere9.help
icon

あと、Windowsのソフトウェア作るのに、異常終了させるのはダメだと思う><;
UNIXはどうだか知らないけど、論理的に異常終了させる場面であっても、ほんとにOSの異常終了が起きてしまうのは、ほんとに異常というか非常事態であると考える方がいいかも?><;
ちゃんと終了処理をしないとダメかも><;

15:06:15 orange @orange_in_space@mstdn.nere9.help
icon

全部UNIXでおkって人(Matz氏とか)なら気にならないんだろうけど><

15:04:35 orange @orange_in_space@mstdn.nere9.help
icon

うん><; なのであちこちUNIXというかPOSIX前提すぎて「そんな1970年代にテクノロジーじゃなくもっとモダンなOSを使うんだよ!><# 」ってなる時に邪魔になる部分多いと思うし、UNIX依存部分は明確に分離して欲しさがある><(よりモダンな環境や逆にチープな環境ではその部分無視しようってしやすく><)

15:00:30 orange @orange_in_space@mstdn.nere9.help
2020-06-18 15:00:14 酸性雨の投稿 acid_rain@amefur.asia
icon

このアカウントは、notestockで公開設定になっていません。

14:59:15 orange @orange_in_space@mstdn.nere9.help
icon

C言語文化圏、UNIXっぽすぎる><

14:57:38 orange @orange_in_space@mstdn.nere9.help
icon

Windows、UNIXでは無いのでC言語文化圏流(=UNIX流)の事はしない方がいいイメージ><

14:55:46 orange @orange_in_space@mstdn.nere9.help
icon

よくわかんないけど自プロセス殺すんじゃダメなのかな感と、もうひとつイベントがバラバラのスレッドで動いてるとかかも?><(状況が謎><)

14:53:40 orange @orange_in_space@mstdn.nere9.help
2020-06-18 14:46:48 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

しかも abort() するのが一度だけだと、ダイアログは出るけど abort 貫通して何事もなく次のメッセージを処理しつづけるので、異常終了したはずのゲームを続けて遊ぶことができてしまう……なんだこれは

14:53:32 orange @orange_in_space@mstdn.nere9.help
2020-06-18 14:46:34 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

VS で std::abort() 呼んでるのに何事もなく次のウィンドウプロシージャが呼ばれるし、そのたびに abort() を呼ぶので「ボボボボボボボボボロン」とすごいエラー音の後にデバッグしますかのダイアログが出てきます (マジで何なんだ)

14:46:37 orange @orange_in_space@mstdn.nere9.help
icon

先人><

実用性皆無、トリチウム管を使った原子力電池の自作 | あつラボ b.eax.jp/eh/14921/

Web site image
実用性皆無、トリチウム管を使った原子力電池の自作
14:44:59 orange @orange_in_space@mstdn.nere9.help
icon

トリチウム管原子力発電なら個人でも合法的に可能!><(電力が雀の涙)

14:43:40 orange @orange_in_space@mstdn.nere9.help
2020-06-18 14:34:22 もちもちずきん🍆🔰の投稿 Yohei_Zuho@mstdn.y-zu.org
icon

このアカウントは、notestockで公開設定になっていません。

14:41:04 orange @orange_in_space@mstdn.nere9.help
icon

ファーストパーソンなゲームをする人よりも、神様視点なシミュレーションゲームとかをする人の方が科学的というか非神秘的(?)というか無神論者率が高いとかあるのかも?><

14:35:58 orange @orange_in_space@mstdn.nere9.help
icon

Examining the roles of intuition and gender in magical beliefs - ScienceDirect sciencedirect.com/science/arti

Web site image
Examining the roles of intuition and gender in magical beliefs
14:34:58 orange @orange_in_space@mstdn.nere9.help
icon

Higher trust in intuition helps account for why women are more likely to believe in magical phenomena psypost.org/2020/06/higher-tru

Web site image
Higher trust in intuition helps account for why women are more likely to believe in magical phenomena
14:34:44 orange @orange_in_space@mstdn.nere9.help
icon

女性が非科学的な物事を信じるのは男性より直感を信頼しているためという研究結果 - GIGAZINE gigazine.net/news/20200618-mag

Web site image
女性が非科学的な物事を信じるのは男性より直感を信頼しているためという研究結果
14:03:09 orange @orange_in_space@mstdn.nere9.help
icon

ANAに行ってなにがしたいんだろう?><

社会人に転職したい企業を聞いた結果 | スラド srad.jp/story/20/06/17/0117224

Web site image
社会人に転職したい企業を聞いた結果 | スラド
14:00:41 orange @orange_in_space@mstdn.nere9.help
icon

・・・><

13:56:45 orange @orange_in_space@mstdn.nere9.help
icon

元の話がよくわかんないけど、丸くする=丸は操作可能であると示すって方式で素晴らしいデザインをしたのがPortal><

13:55:23 orange @orange_in_space@mstdn.nere9.help
2020-06-18 13:40:28 あじょだよの投稿 azyobuzin@mstdn.maud.io
icon

ボタンを丸くするの、特にユーザビリティの改善みがないので、それはオナニーではという気持ちがある

13:38:05 orange @orange_in_space@mstdn.nere9.help
icon

メローイエローってこんな感じだったっけ?><

13:37:41 orange @orange_in_space@mstdn.nere9.help
icon

なんだっけこれ!?>< ってなる味><

13:37:18 orange @orange_in_space@mstdn.nere9.help
icon

コカ・コーラ、オレンジバニラ、微妙にドクターペッパーっぽくって微妙にガラナっぽさがあって微妙にフルーツ牛乳っぽくてよくわかんないけどかなり美味しい><

09:35:21 orange @orange_in_space@mstdn.nere9.help
2020-06-18 09:25:20 おさの投稿 osapon@mstdn.nere9.help
icon

アボカド、こんなんになるよ。(まだ花も実もできない)

Attach image
09:35:17 orange @orange_in_space@mstdn.nere9.help
2020-06-18 00:07:48 くろみるの投稿 chrml@mstdn.nere9.help
icon

このアカウントは、notestockで公開設定になっていません。

08:46:10 orange @orange_in_space@mstdn.nere9.help
icon

うどんにコシがある世界線を探す旅><

08:45:40 orange @orange_in_space@mstdn.nere9.help
2020-06-18 08:42:50 ぽな (C.Ponapalt)の投稿 ponapalt@ukadon.shillest.net
icon

伊勢かい?転生

08:40:30 orange @orange_in_space@mstdn.nere9.help
icon

舟歌(八代亜紀)カントリーでUSAな歌詞バージョンって作ったらおもしろそう><

08:38:25 orange @orange_in_space@mstdn.nere9.help
icon

故郷の川や山がどうのとかトラックドライバーがどうのは共通だけど、日本の演歌は農業歌詞は少なめで漁業歌詞が多い?><
カントリーはウィスキーとビールでホンキートンク(またはバー)だけど、演歌はジャパニーズ酒でジャパニーズ居酒屋?><

08:34:01 orange @orange_in_space@mstdn.nere9.help
icon

アメリカ向けカントリー歌詞な演歌とか、逆に歌詞が日本の演歌名内容のカントリーってどうだろう?><

08:31:57 orange @orange_in_space@mstdn.nere9.help
icon

古典的カントリー、日本に置き換えるとたぶん演歌><;(演歌は嫌い!><;)

08:30:48 orange @orange_in_space@mstdn.nere9.help
icon

ラブソング系カントリーも嫌いじゃないし結構聞いてるけどでも、
故郷の川や山がどうのとか、カウボーイ、カウガールはこうだとか農場がどうしたこうしたとか、ウィスキーとビールがどうのでほろ酔い気分で酒場がどうしたとか、初めて乗ったポンコツ車がどうのこうのでトラックドライバーがどうしたこうしたとかそういうのも聴きたいのにそういうの無いっぽい><(ジャンルがちがうっぽさ><)

08:28:23 orange @orange_in_space@mstdn.nere9.help
icon

これたぶんカントリーのネトラジで聴いてても印象に残らなくて記憶に残ってないはずって感じだった・・・><
歌詞もなんかほとんどラブソングしかない?><;

08:24:14 orange @orange_in_space@mstdn.nere9.help
icon

オレンジが何度か「だれ?><;」ってなったテイラー・スウィフトって人の曲、古いの(10年くらい前まで?)はカントリーなので「カントリー!><」って聴いてみたけど、悪くも無いけど特に良くも無く普通・・・><

06:30:12 orange @orange_in_space@mstdn.nere9.help
icon

FB、政治広告の非表示機能を導入 批判押さえ込む狙い 写真3枚 国際ニュース:AFPBB News afpbb.com/articles/-/3288921

Web site image
FB、政治広告の非表示機能を導入 批判押さえ込む狙い
05:55:17 orange @orange_in_space@mstdn.nere9.help
icon

FCAとPSAの経営統合 EUが競争法違反の疑いで調査開始 | NHKニュース www3.nhk.or.jp/news/html/20200