難しい・・・><
論理回路の設計なんてリアクティブプログラミングの典型例みたいなところがある (適当) けど、それは日頃コードを書くとき CPU の声を聞きたくなるというのとは別のレイヤーの話なので
CPU を設計するときと CPU を駆動するプログラムを設計するときは脳の使う領域が違うので……
ポヨグヤミン入門が論理回路からの Verilog からの C だったので、どうしても手続き型視点がなぁ
育ちが悪いので、 Rust を書いててブロックが式になるけど手続き型っぽいのなどを見て最初に浮かんだ感想は「これ Ruby で見たやつだ、いいじゃん」でした (Scheme ではなかった)
そういう (言ってみればエッジケース的でもある) 話、結局「自然なセマンティクス」があるよねという話になるので、最低限意味論という概念を認識できていないとどうしようもないし、この話をするたびにいちいち意味論について書くほど暇でもないというのがある
でも、お約束の
1 + "hoge"
がエラーになるかどうかみたいなのもどう型付けするかの話であって動的静的の話とは直接関係ないって、そこ理解してない人が多い話ではあるかも><
そもそも言語の設計の話をするならその辺りは教養の範囲内ではの気持ちがなくもないので……
らりおさんは型システムの議論慣れてるからそんな事は当然として話してるけど、型システムの議論慣れてない人はそこもなんのこっちゃらわからないわけで・・・><
オレンジが言いたい事としては、この議論をするなら、特に型システムの議論に慣れてない人がいる場合には、『動的静的の厳密な違いの話』( https://mstdn.nere9.help/@orange_in_space/105989721643608005 https://mstdn.nere9.help/@orange_in_space/105989751027039873 )と、『静的型な環境と動的型な環境それぞれの傾向の話』は厳密には違うって話もしてあげないと、混乱して可哀想かもって・・・><
そもそも雑でいいやという思想だと動的型付けになりがちなので (スクリプト言語の大半もそうだし)、そのあたりのコアの思想が明確でない中途半端というか一貫しない言語はそもそも考慮する価値をあまり感じないですね……
@yumetodo よくわかんないけどqiitadonからは通知何も来てなくてmisskey.devからだけ通知がきてるかも><
で、強い弱いも型安全も文化圏によってかなり指すものが違ったりするので、オレンジは「ゆるふわ」ってゆるふわな書き方をしてた><;
そもそも型がゆるふわかどうか面って、どこがどのようにゆるふわかで例えばオレンジが大好きな(だけど実用はしたことが無い)Adaの思想であれば「整数型とかそのまま使うのマジ!? ちゃんと名前ついた型作れよ」みたいな発想だし、あれかも><
これの言語とか静的型付けだけど、スプリプト言語っぽい思想の変な言語でかなりゆるふわ的発想かも><
U-22プログラミング・コンテスト2019、独自の言語を開発した15歳が経済産業大臣賞を受賞 | スラド IT https://it.srad.jp/story/19/10/23/1625249/
そもそも静的型付き言語は型をしっかりつけろという前提があると仮定していたので、静的型付きなのにガバい言語とかいまどき新しく用意するか? と思っていたという話です。
古代言語の系譜なら C みたいにガバいのも仕方ないとなるけど
オレンジのさっきのgistでの本題として言いたい事はそのおかしさで、なおかつ、ちゃんと型安全にするのであれば宇宙船演算子を導入すると便利そうって言いたかった><
あと、この事例がまさにそうだけど、こういう場合には静的か動的かって話ではなく型安全とか強い弱いの文脈の話であって動的でゆるふわだけど強い型付けとか色々あるわけであって、静的/動的ではあんまり書かないほうがいいんでは感><
IComparable インターフェイス (System) | Microsoft Docs
https://docs.microsoft.com/ja-jp/dotnet/api/system.icomparable?view=net-6.0
え、マジで現代に静的型付きなのに三方比較を int で返す言語があったの!?
それはごめんなさい、 C# のマトモでなさを見誤ってました
C# はそこに関してはなぜか型がゆるふわだけど、別に長くないよ?>< むしろオレンジの書き方の方が冗長><
や、だってまさか言いたいことの本題が「C# の三方比較クソ長ったらしすぎ」だったとは思いませんよ
じゃあ最初から「そんな心配しなくてもC++では宇宙船演算子が型をきっちりとした実装で導入されるからそんな心配しなくても大丈夫だよ!」で50分の謎のやり取りしないで済んだじゃん?><
はい、「<=>」を実装している沢山ある言語のなかでも静的型付きなのは C++ だけでしたね
少なくともwikipedia日本語版の記事の例示だと型がゆるふわな環境以外での宇宙船演算子の実装事例が書いて無いけど、型がきっちりな宇宙船演算子導入事例って具体的にどんなのがあるの?><
元ネタつったって <=> を実装している言語なんて沢山あるって話ですよ
オレンジ語っぽさをがんばってなくすなら
「宇宙船演算子って簡潔に書けて便利そう。でも、型がゆるふわで整数型で返すような実装はごめんだなぁ」
って言うことを最初に書いた><
そしたら「Rustはハイカラなので順序はちゃんと型で返す!!!」って話が返ってきて「そういう話をしてるんじゃないんだけど?><;」ってなった><
https://mstdn.nere9.help/@orange_in_space/107411394832547304
"宇宙船演算子、"
"こういう風に静的型付けの環境でこういう風にするのであれば"
↑つまり型がしっかりしてるならば
"普通に便利なのではかもって気がしてる><"
"がも"が"ではかも"になってて意味不明だけど、つまり元ネタには型の問題があるけどそれさえクリアできれば普通に便利かもって言ってる><
宇宙船演算子、こういう風に静的型付けの環境でこういう風にするのであれば普通に便利なのではかもって気がしてる><
ちゃんと型検査される、『「どっちがでかいの?ていうか同じ?」型』>< https://gist.github.com/orange-in-space/51a5ea3884bc0f001923b0a8a6734772
だから、短く書けたら便利だから宇宙船演算子欲しい(けども整数型で帰ってくるなんてキモイ仕様は絶対ヤダ)って言ってるんじゃん!?><
それは「ThreeWayComparison.Compare(a, b)」と「a <=> b」を比べるから落差が大きいのであって、言語仕様の問題では?
宇宙船演算子 - Wikipedia https://ja.wikipedia.org/wiki/%E5%AE%87%E5%AE%99%E8%88%B9%E6%BC%94%E7%AE%97%E5%AD%90
の
”Perl (数値のみ)[1]、PHP (バージョン7以上)[2]、Ruby[3]、Apache GroovyはA < B、A == B、A > Bのケースでそれぞれ-1、0、1を返す実装契約を規定している。”
みたいな実装だと型がゆるふわで気持ち悪いけど、ちゃんと型がかっちりしてる言語で導入すれば、宇宙船演算子が返すのが『「順序はこうだよ!」って型』を返すので安全だし、安全なまま短く書くメリットが出ていいじゃん!?><
っていう話をしてる><
@lo48576 ぜんぜん違うじゃん?><; それで言う所のOrd型(?)を返す演算子があったら便利だよね!>< って話を書いてるのに><
switch (a <=> b)
{
case (OrderIs.LessThanRight)
{
//以下略
みたいに書けるようにしたいって言ってる><
(この場合<=>が返すのはOrderIs型><)
よくわかんないけど、オレンジの主張は
a <=>b ってすれば
比較して順序な型返す関数(a,b) って書いたのと同じになってくれる ようになって欲しいって意味だけどなってるのかも?><
https://doc.rust-lang.org/stable/std/cmp/trait.Ord.html
もう世界で百億人くらい同じこと考えていて綺麗な言語は既にそうなっているので、そうなっていないレガシー言語がしょーもないとかいう話をグダグダしていること自体がしょーもない
宇宙船演算子、こういう風に静的型付けの環境でこういう風にするのであれば普通に便利なのではかもって気がしてる><
ちゃんと型検査される、『「どっちがでかいの?ていうか同じ?」型』>< https://gist.github.com/orange-in-space/51a5ea3884bc0f001923b0a8a6734772
Adaみたいにend ifとかend loopとかend hoge的に言語仕様で書けるようにすればよくね?><
Ada Programming/Subprograms - Wikibooks, open books for an open world https://en.wikibooks.org/wiki/Ada_Programming/Subprograms
}//なんとか
だと、ズレてても検出できないんですよね。
while(cond1) {
while(cond2) {
foo();
}//while
if(cond3) {
bar();
}//if
}//while
が
while(cond) {
while(cond2) {
/* このあたりでごっそりコードを消したが、うっかり消しすぎた */
bar();
}//if
}//while
になっていても、コンパイルが通ってしまう。
で、ブロックの中身がデカかったらミスマッチに気付けない。
このアカウントは、notestockで公開設定になっていません。
オレンジはBASICから入ってPascalに移行した流れのあれで慣れてるので <> でも != でもどっちでも違和感ないかも・・・><
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
そこまではしないけど、Pascal好きとしては色つきのエディタならばbegin endの方が見やすく感じてる><;
# define BEGIN {
# define END }
どうでもいいけど { ... } はわかりづらいから BEGIN ... END にしたがる人の話を思い出したわ
その「読みづらい」は「視認性が良くない」と「意図を読み取りづらい」が混同されていて、区別するべきだと思いますね
「読みづらくても(コンパイラやテスト環境がしっかりしてれば)何とかなる!」って、それ「読みづらいコードでもコンパイラやテスト環境がしっかりしてれば問題ないので読みづらいコードを書いてもよい」って主張と何が違うのか?><;
開発環境やコンパイラ、と含みを持たせたのは、当然テストを書くだとかなんとかもっと色々やるのがラクな環境があることの含みであって、syntax checker さえあればという話ではない
はちゃめちゃに長い operator とかでなければ人類は必ず見間違いや見落しをするので開発環境やコンパイラが適切な指示や指摘をしてくれるならなんだっていい
このアカウントは、notestockで公開設定になっていません。
そんなクソコードが許されるなら
and_ and nad _or or and_and and or_ or
は読みづらいじゃん……その論法はクソすぎる
わかりやすくするために超極端に言うと、(!illiliilllilli | iilliillili)よりも (not illiliilllilli or iilliillili)のほうが見やすいじゃん!?><;
だからさっきから書いてるように、| とか ! とか記号小さすぎて見間違いとか見落としの危険高いじゃん!?><;
その条件はテキストで書かれるので、メタな意味を持つ and や or や not はテキストで書くより記号で書いてほしいですね。というわけで and / or / not キーワードきらい。
たとえばビットパターン混ぜ混ぜする時とかは「PatternA | PatternB」みたいに書きたいけど、条件とかの時は「条件A | 条件B & 条件C」よりも「条件A or 条件B and 条件C」みたいに予約語方式の方が目に入りやすくて見間違えにくいじゃん?><
こういう問題もあるので「オレンジが言語作るならC一族記号方式(!, | ...)とPascal一族予約語方式(not, or ...)両対応にする!><」って言ってる><
Pascalで
if not Hoge then
begin
end;
が
たとえばC# は
if (!Hoge)
{
}
じゃん?>< 見落としそうじゃん?><
これ、オレンジは実際にはやってないけどでもDelphiから乗り換えた時にはDelphiというかPascalのnotは ! じゃなくそのまま「not」なので見落とさなかったのが 「! ってそんな小さいのどう考えても見落とすじゃん!?><」ってなったのでわかるしヤバそうな時にそうするのいい感じかも感><
あまりコーディング規約がきちんとしているところで仕事をする機会が無いが、trueの比較でif(bool)はやるけど、falseのときはif(!bool)じゃなくてif(bool == false)と書くようにしている。なんか見落としそうで。!使えと言われたら使うけども。
このアカウントは、notestockで公開設定になっていません。
システム側がダイアログ出すアプリケーションエラーであればシステムのイベントログに記録されるので、System.Diagnostics.EventLogでEntryWrittenイベントで検出すればいいっぽい><(アプリケーションエラーの取得だけなら管理者権限不要っぽい><)
https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.eventlog.entrywritten?view=dotnet-plat-ext-6.0
これ参考にしてイベントでe.Entry.ReplacementStringsの中身見るだけで出来た><
関連な蛇足で(?)プロセス指定でウィンドウをアクティブに出来るMicrosoft.VisualBasic.Interaction.AppActivateとかいう便利なものを発見したんだけどソース見てびっくりしたけど
https://github.com/microsoft/referencesource/blob/5697c29004a34d80acdaf5742d7e699022c64ecd/Microsoft.VisualBasic/runtime/msvbalib/Interaction.vb#L140
VB.NETのMicrosoft.VisualBasicのライブラリのソースコードってちゃんとVB.NETで書かれてたのか!><;(C# で書かれてるのかとおもってた><;)
通常のモーダルダイアログを出してる時との識別は、(そのプロセスの)ForegroundなウィンドウをGetParent()して親ウィンドウがあれば普通のモーダルダイアログで、親ウィンドウが無いのであればアプリケーションエラーダイアログって判断してすればよほど変な事して無い限り大丈夫っぽさ><
単純にモーダルなダイアログ出してるかのチェックと同等になっちゃうけど、自動的にチェックしているような状況であればモーダルなウィンドウなんて出ないはず?><;(操作する人が居ないんだし)なので何とかなる?><;
Windowsのアプリがエラー出てるかどうか判定、.NETの場合はwin32apiのIsWindowEnabled()使ってWS_DISABLED状態であるか調べれば、アプリケーションエラーのダイアログが出てるかわかるっぽい><
(言い方を変えると、つまり勝手にWS_DISABLEDにしてるっぽい)
もっと低レベルのエラー出してシステムに怒られてる場合(たとえばメモリ保護違反とか)は、それでは検出出来ないっぽい><
それ(おもちゃレベルの)FLIRカメラついてるから欲しい・・・><
(おもちゃレベルじゃないFLIRカメラは気軽に民生用に作ると怒られるらしい・・・><;)
高堅牢タフネススマートフォン | CAT S61 https://www.kcs.ne.jp/lp/cat-s61/
堅牢な端末が欲しいならこれ買って格安sim契約したほうがいい気がしてきた
ていうか、自動実行してテストしてるんだったら、テストする側もC# で書いてるなら対象をProcessクラスで持ってるわけだからかなり短いコードになりそう><
エラーダイアログは、.NETなアプリの場合は、.NETなエラーであればエラー吐いてるプロセスがエラーダイアログのウィンドウハンドル持ってて、そうじゃない場合はなんかサービスが(子プロセス作って)ダイアログ出すので、それでも判定できそう><
Windowsの.NETなアプリの場合?には、Process.MainWindowHandleでプロセスのメインフォーム調べてGetForegroundWindowでフォーカスがあるウィンドウと比較して違ってたらつまり「メインウィンドウがフォーカス持ってないのでエラーダイアログ出してるっぽい!」って調べられるのでそれでだいたい済むんでは感><
GUIを持った何らかのWindowsのアプリを自動実行して、そのアプリが例外吐いて死んだかどうかだけだけを順々に見ていくだけであれば、どのウィンドウがフォーカス持っているかというかZオーダーを見て他にダイアログ出てるかだけ見ればいいんでは感><
(もちろんプロセスやウィンドウが既に居なくなっているのであれば失敗するのでそれで検出できるだろうし><)
これ、ひとつの「アプリが落ちてるか判定するのをちょちょいと出来るライブラリ!><」として作ったら便利かも?><
https://mstdn.nere9.help/@orange_in_space/107409948146982991
基本は自動映像解析式で、異常時に人間にハンドオーバーして、人間が誤検知と判断した場合には減速して通過(完全にキャンセルにしないのはメイデイなネタになっちゃうから><;)、誤検知の操作をしない場合には非常停止にすれば人道的?><;
踏切に接近したら地上の踏切区間監視担当運転士の端末に映像が映って、許可操作し続けないと非常ブレーキを掛ける仕組み><
労組が怒りそうなお仕事になりそうではあるけど><;
ふと思ったけど、逆転の発想で、人間による踏切の監視を地上側に移管って出来ないんだろうか?><
民間航空の将来像で言われててNASAが研究したりしてる、実際に操縦するパイロットを地上側に置いて機上には車掌的な人間を置くシステムの鉄道版的な><
2020-07-06 「京浜東北線のワンマン運転化」を、JR東日本が検討する理由 | News&Analysis | ダイヤモンド・オンライン https://diamond.jp/articles/-/242039?page=3
書いた><
そこに(も?)橋を架けるっぽい (#.3933687) | 山手線で唯一残っていた開かずの踏切の廃止が決定。代替となる陸橋完成は10年後か | スラド https://srad.jp/comment/3933687
山手線の踏切の代替の道路に関してはこんな感じらしい><
補助第92号線(中里)の事業に着手|東京都 https://www.metro.tokyo.lg.jp/tosei/hodohappyo/press/2021/03/05/04.html
ATACS+ATO(+ドライバレス)は踏切撤去しなくても導入可能なので、特にそういったことは考えていないとは思うけど、安全性の面でさっさと無くしたい
このアカウントは、notestockで公開設定になっていません。
ゲームのMODでゲームの状況判断するのでWMIでゲームのプロセスのワーキングセットのサイズを見る手法とかCPU使用率を見るのがあるので、同様に、落ちるのが例えばメモリリーク的な動作であるならワーキングセットの変化みたり、暴走ならCPU使用率の面積(?)みたり、逆に停まるならCPU使用率がすごく低くなった所で処理後に期待される状態にあるのか(ウィンドウの親子関係とかを)見るとかもありそう?><
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
状況がよくわかんないけど少なくともWindowsならばプロセスとかウィンドウハンドルとかが生き残ってるか監視すればいいような・・・><
このアカウントは、notestockで公開設定になっていません。
完全に一般人(?)ならあれだけど、研究者だったり研究者であった人がそういう事に関して調べる姿勢や習慣を持たないのはどうなの?><
主張がおかしい研究者の話がニュースになって話題にしてる時に、こんなやつが所属してるのかだけで済ませてその研究者の足元(過去に書いてきた論文や経歴等)を調べないの なんなの?><
どういう背景でどう主張してるのかとかそもそもまともに研究してる人間なのかとか、もしかしたらニュース記事がおかしいだけかもしれないとか見えてこないじゃん?><
オレンジ的には、オレンジ以外の人が好奇心や知的探求心をオレンジほどじゃなくても強くなる(する)にはどうすればいいのかが一番気になる><
(「世界中でオレンジだけしか気にしてないっぽい!?><;」って事柄が多すぎるので><;)
メタな事に、なぜ自分はほぼ無制限に好奇心的欲求が発生するのか?><;という疑問に対しても同様に好奇心が発生してるからこそそれについても調べずにいられないからこそ調べたということになるし、「オレンジが」では無く脳の機能として考えると、
脳の機能の一部が自身について解明するように報酬系(?)を弄ってというか脳の他の部分を操作して行わせてると考えるとおもしろいかも><
・・・という文を書かせてるのもその脳の機能の一部だと考えることも出来る><;
論文で「好奇心」を空腹感のようなものと例えてあったけど、過食症が満腹感を感じる部分がぶっ壊れると起きたりする感じなのと似たような感じで、眼窩前頭皮質の一部がぶっ壊れると「好奇心」の判断というか脳内処理としての(?)情報の取捨選択の判断が「全部必要!><;」になっちゃって全て好奇心の欲求になってしまう暴走状況になるみたいな感じかもしれないらしい?><
昼間に読んだ人はどのように情報を取捨選択してるのか?の論文が引用してる論文とかによると、脳の眼窩前頭皮質って部分が変だと(?)好奇心が暴走するっぽい?><
で、論文じゃない日本語の微妙な情報によるとスマホ依存とかになるとその辺りが疲労してうまく動かなくなるらしい?><
その話とあわせて逆に(?)考えると、つまりオレンジは情報の多さに疲れた人と正反対みたいな事になってる?><
平成30年12月3日 共同発表:ADHDの脳構造の特徴を人工知能により解明し、遺伝子多型の影響を発見 https://www.jst.go.jp/pr/announce/20181203-3/index.html
ちなみに体感では震度0.8くらいだった><
(めちゃくちゃ小さいけど確実に地震って自信持てるゆれだった><(じしんだけに・・・><;))
ここの隣町(20マイルくらい東)にも日系人収容所あったのか・・・><
https://mstdn.nere9.help/@orange_in_space/107405486428892952
Richmond Free Press - Wikipedia https://en.wikipedia.org/wiki/Richmond_Free_Press
なんで現地加工しないかというと、スポーン地点付近の資源が尽きる前(つまり石炭とセット)にかなりの規模になってるのでそれを改修する形で使うので、分散化するタイミングがない><
あと、鉄鉱石と銅鉱石を混ぜて運ぶこと多いかも><
基本的に鉱床のすぐそばで鉄板・銅板に加工してから鉄道輸送しているのでコンクリ床だけは別のラインを確保しなければならない
あれのせいで鉄鉱石を採掘した瞬間に鉄にして運搬してしまうメソッドに迷いが生じるんだよなぁ
「消えた祖父の謎を追う〜“アメリカの敵”となった日本移民〜」 - BS1スペシャル - NHK https://www.nhk.jp/p/bs1sp/ts/YMKV7LM62W/episode/te/Z5PMRG362Q/
眼窩前頭皮質 - Wikipedia https://ja.wikipedia.org/wiki/%E7%9C%BC%E7%AA%A9%E5%89%8D%E9%A0%AD%E7%9A%AE%E8%B3%AA
これら、すごくおもしろかったんだけど、メタだけど、実際に論文まで読もうとした人々が特にどの傾向が強いのか気になる><
(オレンジしか読んでない可能性・・・><)
関連する論文も面白そうだけど有料><;
How people decide what they want to know | Nature Human Behaviour https://www.nature.com/articles/s41562-019-0793-1
知りたい?知りたくない?人は3つの基準で情報を取捨選択する : カラパイア https://karapaia.com/archives/52308336.html
Individual differences in information-seeking | Nature Communications https://www.nature.com/articles/s41467-021-27046-5