世界最大のデモパーティ「Revision」で優勝!制作したKLab社員にインタビュー (2020/06/11)
https://www.klab.com/jp/blog/pr/2020/revisionklab.html
Demo sceneって向こうの物ばかりだと思ってたけど、和製Demo(Intro)がここまで行ける日を目にすることができるとは…ものすごく嬉しい話だし、これからも楽しめそう。(もうちょい早くに知りたかった)
OpenBSD(uaa@), Ham(JG1UAA), Ingress(Lv14, RES), Japanese(Sagamihara-city, Kanagawa)
Another side: https://social.tchncs.de/@uaa
npub1rarr265r9f9j6ewp960hcm7cvz9zskc7l2ykwul57e7xa60r8css7uf890
Messages from this Mastodon account can read via mostr.pub with npub1j3un8843rpuk4rvwnd7plaknf2lce58yl6qmpkqrwt3tr5k60vfqxmlq0w
世界最大のデモパーティ「Revision」で優勝!制作したKLab社員にインタビュー (2020/06/11)
https://www.klab.com/jp/blog/pr/2020/revisionklab.html
Demo sceneって向こうの物ばかりだと思ってたけど、和製Demo(Intro)がここまで行ける日を目にすることができるとは…ものすごく嬉しい話だし、これからも楽しめそう。(もうちょい早くに知りたかった)
落としてみたけど…8GBなArc A770のせいなんでしょうか、起動時のプログレスバーが70%程度のところでしばらく固まった後、落ちました。
ドキュメントにはDX11, 11GB以上のVRAM, 3080ti以上ってあるのでメモリ不足なのかも。AMDじゃ動かないかもとまで書いてあるし。
AIだけでのDemo sceneでもNVIDIA一択なのかしら。
めっちゃ怖いんですけどこのintro。https://demozoo.org/productions/322374/
GPUが遊んでるのもアレなので久々にDemoでも見てみるかなーと漁ってるんだけど…イマドキのDemoって1GB物とかあるのか。もうMegaDemoじゃなくGigaDemoじゃないですかそれ
write_stdout()で使ってるIsknj1(), Isknj2()(これはsjgetchar.c内でのみ存在)、これとSJ_read()で使ってるiseuc3byte(), iseuc2byte(), issjis1()(これはkctype.h由来)、なんかこの辺はうまく整理できそうな気がするけどどうなんだろう。文字境界単位で処理させる、それの入口と出口の処理ってことなんだろうし。
あとは紙と鉛筆用意してちょっと考えまとめるか…チラシの裏みたいになんか書いてあるものじゃないとどうもアイデア湧かない…
エヴァンゲリオンももう30年近く前の話になるのか…(それを言い出すとWindows95とかもそうなる)
@hadsn CPUも熱かった(ので6x86Lにして低熱化した)とか、60/66MHzではなく75MHzのバスクロックへの対応を必要とするケースもあったとか(バスクロックの設定によりPCIバスが33MHzではなく37.5MHzで動いてしまうマザーボードもあった)、まあ色々じゃじゃ馬ではありましたね。それを使うユーザ達も随分熱い人がいたように記憶してます、NIFTY-ServeのFCYRIXフォーラムとか。
Cyrix直系のコアってAMD Geode(旧National Semiconductor Geode)LX 800辺りがまだ残ってるかどうか…だっけ?
Rise mP6のコアが確かDM&P Vortex86DXとしてまだ生きてたよね?86duinoで使ってるアレ(なのでお金に余裕があったら86duino Educakeをもう一台1個欲しいなって思ってる…あの時代の思い出を、冥途の土産として)
@hadsn あの頃貧乏な学生だった身には、PC自作で遊ばせてくれたという意味では良い石だったと思うけど世間的にはどうなんだろう…Quakeでの(FPU)パフォーマンスの低さが思いっきり低評価に繋がっちゃいましたよね。
あの辺のコードは完全にリファクタリングしないとどーにもならんってことだけは分かった。さて、どーやろっかな。
サーバも電源次第で良い仕事をしたりしなかったりするので、マイ電柱が(待て
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
3文字分トラップしといて、あとでまとめてputchar()×3で吐き出すのってさ…putchar()×3がatomicである保証ってどこにもない気がするんだけど。
…ってことは、トラップしてまとめて吐き出す意味って、無くね?
write(STDOUT_FILENO, xxx)でまとめて吐かないとatomicにならないような気が。
問題はUTF-8の文字境界単位のトラップ、最大4byteで考えるか6byteで考えるかなんだよな。今は4byteだけどかつては6byteな仕様だったし…また6byteに戻しますとか言い出す可能性もあるだろうし。
ん-、やっぱ文字境界単位でトラップしてるだけ、というコードに見えるな。EUCの場合だと、
・SS2(0x8e)もしくはEUCの範囲
knj1stにSS2もしはEUCの1byte目をトラップ
次の文字が来た時点でknj1st, [次の文字]の順に出力
・SS3(0x8f)
knj2ndにSS3をトラップ
knj1stに次の文字をトラップ
さらに次の文字が来た時点でknj2nd, knj1st, [さらに次の文字]の順に出力
なので単に与えられた文字をwhile() putchar(*s++)でがーっとやってるのと結果は変わらない。並べ替えとかやってる訳じゃないし。
文字境界単位でのトラップって、文字の途中までバイト列を吐き出しちゃった時にBS食らうと画面表示がおかしくなる問題を回避する目的でやってるのかな。きちんと1文字分表示させた段階でBS食らうなら問題ないのだし。
言語設定がEUCになっているのでset_eucmode()は実行されるしeucmode = 1になるのも分かるけど、その先だよなあ。eucmode = 0にしても何か変わった動作をしているようには見えないのが謎。
とりあえず作業内容を少し思い出すところまではできたから、今日はここまで。
わかんねーなー…
sjgetchar.cのvoid write_stdout(unsigned char *s, int n)、単に中身をwhile (n-- > 0) putchar(*s++);にしただけでも普通に動くんだけど、何のためにknj1stだのknj2ndだのを使ってknj2nd→knj1stの順にひっくりかえす処理をやってるんだ??
uaa@slackware-vm2:~/sj3$ 12345
Jbash[uaa on sj3]: 12345: コマンドが見つかりません
uaa@slackware-vm2:~/sj3$
a3 b1 a3 b2 a3 b3 a3 b4 a3 b5 ..........
0d 0a 1b 5b 3f 32 30 30 34 6c 0d ...[?2004l.
4a 62 61 73 68 5b 75 61 61 20 6f 6e 20 73 6a 33 5d 3a 20 a3 b1 a3 b2 a3 b3 a3 b4 a3 b5 3a 20 a5 b3 a5 de a5 f3 a5 c9 a4 ac b8 ab a4 c4 a4 ab a4 ea a4 de a4 bb a4 f3 0d 0a 1b 5b 3f 32 30 30 34 68 75 61 61 40 73 6c 61 63 6b 77 61 72 65 2d 76 6d 32 3a 7e 2f 73 6a 33 24 20 Jbash[uaa on sj3]: ..........: ...........................[?2004huaa@slackware-vm2:~/sj3$
uaa@slackware-vm2:~/sj3$ あいうえお
Jbash[uaa on sj3]: あいうえお: コマンドが見つかりません
uaa@slackware-vm2:~/sj3$
a4 a2 a4 a4 a4 a6 a4 a8 a4 aa ..........
0d 0a 1b 5b 3f 32 30 30 34 6c 0d ...[?2004l.
4a 62 61 73 68 5b 75 61 61 20 6f 6e 20 73 6a 33 5d 3a 20 a4 a2 a4 a4 a4 a6 a4 a8 a4 aa 3a 20 a5 b3 a5 de a5 f3 a5 c9 a4 ac b8 ab a4 c4 a4 ab a4 ea a4 de a4 bb a4 f3 0d 0a 1b 5b 3f 32 30 30 34 68 75 61 61 40 73 6c 61 63 6b 77 61 72 65 2d 76 6d 32 3a 7e 2f 73 6a 33 24 20 Jbash[uaa on sj3]: ..........: ...........................[?2004huaa@slackware-vm2:~/sj3$
ん-む、必ずoutput_master()→write_stdout()を通るような気がする。なんつーか…buffer modeでなんかしてる時とか、画面下のファンクションキー表示はこのパスを通ってない。
あああああ、make sj3じゃないとsj3ビルドしないんだこれ…!(本当に忘れてる)
うぬおおおかしいな、echo "aaa" > /dev/ttyS0だとちゃんとシリアルポートにデータが吐かれるのに、書いたコードだとダンマリ。なんか間違えてるんだろうけど何を間違えたのか見当がつかぬ。
…思い出した、Vine-2.5な仮想マシン上でsj3servを動かして、他のマシンでsj3(client)動かすんだこれ…
(というくらいに、作業内容忘れてる…)
ptyのpacket modeが何飛ばしてくるのかが分からない。
どうもsj3のsjgetchar.c、このpacketと、read時において…EUCなりSJISなりにおける、マルチバイト文字を構成する際にマルチバイト文字の境界をきちんとする(途中でぶった切られない)ことを保証する処理が入ってるっぽいなという感じに見えるのでそこはUTF-8対応する際も実装(というか改造?)しないといけないんじゃないのって思ってる。
pty terminal packet mode TIOCPKT (2011/9/18) https://stackoverflow.com/questions/7460035/pty-terminal-packet-mode-tiocpkt
STREAMS I/O subsystemの説明を見よってリンクあるけどリンク先の文書量が多いからあとで読む https://docs.oracle.com/cd/E19455-01/805-7478/index.html
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
TLが速すぎてインターネット中年会を観測はできていないのだけど、なんかトラブってるか何かで絵文字がうまく表示できてないことは分かった、misskey.io。
このアカウントは、notestockで公開設定になっていません。
子供の理科の教科書を見たら、劣性遺伝/優性遺伝が潜性遺伝/顕性遺伝になってたな。
こうやって、古い教育を受けてきた者達を老害として切り捨てていくのね?(と、敢えて)
このアカウントは、notestockで公開設定になっていません。
日本語フォントとかな漢字変換くらいじゃないか、国産だとありがたいのって。
“国産” のソフトウェアの質が高いかは知らんけど、開発が日本語だったりプライマリユーザが日本語だったりドキュメントが日本語だったりフォーラムが日本語だったりしたら、そりゃ当然国際的な戦闘力は低くなるだろとは思う
黒船となる海外産OSに占められている今でもこの程度なので、もし国産OS等で日本のITがガチガチに固められていたら…暗黒時代程度では済まないくらい真っ黒な時代が来ていたんだろうなあ、って妄想します。
ほんと、日本メーカーのWindows PCとか日本メーカーのAndroid端末って買う気しないんですよね。流石に今は違うと思いたいのですが…要らないアプリ山盛りでクソ重いとか、さらっとスペックをケチるとか、そういうのを見てしまうとね。
PCは自作で回避できるから良いとして、Android端末はなあ…逃げようがないってのがなんとも。
流石にLLM等のAI物だと「国産!国産!!」厨は少しは大人しくなるんでしょうか。CPUやOSのように分かりやすいものではなさそうに自分には見えますので…(不勉強だからそそう見えるのかも、識者のコメントに期待)。
※国産を持ち上げる連中の例としてRubyを使っただけなので、Rubyをdisる気は一切無いです(TRONとか他の物にした方が良かったかな?)
「日本にはRubyがある、スゴイ!国産万歳!!」勢も大概にしろやと思うけど、「日本発のソフトウェアは何もない、日本ダメ!斜陽国家!!」勢も正直言って鬱陶しい。
どちらの勢力もきちっと滅ぼさないと、日本でのソフトウェア開発はままならないと思うよ?この両方の勢力がプロジェクトの足を引っ張り、頭を殴り、隙あらば背後から刺してくるのだから。
このアカウントは、notestockで公開設定になっていません。
"Firefox の動作としては正しく、Firefox で正しい動きにならないサイトが悪い" という表現は、ちょっと過激なのではないだろうか?
Windows の Firefox で X(Twitter) の 『さらに表示』が出るのは何のバグなのか https://qiita.com/yuratwc/items/9a48e6d2f16e38bcd912 #Qiita
nerfってspamと同様に、動詞化した商標なのか(メーカーとしては困っちゃうかもだけど)。
このアカウントは、notestockで公開設定になっていません。
とりあえず、UCS-2→EUC-JP変換時にどうにもならなかった文字については無条件に「〓」にしてしまっても良い気がする。基本的に半角文字は変換可能だし、対応しないものは基本的に全角文字…と理解してる。EUC-JP→UCS-2に変換できなかったものについては、「�」(U+FFFD)で良いかな?
ん?もしかして下駄記号の伏せ字って「情報を伏せる」ではなくて「活字を(ひっくり返して)伏せる」という意味だったりする?
〓「ゲタを履かせる」 (2022/3/28) https://www.yoshimurainsatu.co.jp/blog/?p=4590
下駄記号、伏せ字として使うケースもあるっていうけど実際にそういう使われ方をしている現場にはお目にかかったことが無いな。
「○ー○ー○ー○」(ウーバーイーツなりセーラームーンなりお好きな物を入れてね!)はよく見かけても、これを「〓ー〓ー〓ー〓」としているのは見たことが無いな。
さっき見た文字起こしのページには「〓(なんか言ってたこと)〓」みたいに括る使い方もあるって書いてあったし…奥深いな、下駄記号。
Wikipediaの下駄記号の項 https://ja.wikipedia.org/wiki/%E4%B8%8B%E9%A7%84%E8%A8%98%E5%8F%B7 「文字列ソートにおいては下駄記号を西郷にするように」ってJIS X 4061( https://kikakurui.com/x4/X4061-1996-01.html )の規定があるって話が書かれているけどこれってどの程度実装されてるんだろう。
そもそも〓(ゲタ)とは何を表すものなのか、「〓 意味」で検索していたら妙なのが引っかかってしまって困惑する事態になっていたという訳。本来の意味としては https://8089.co.jp/basic/word/%E3%80%93%EF%BC%88%E3%82%B2%E3%82%BF%EF%BC%89 のテープ起こし・文字起こし用語集に記された項目が信用できるのだろう。専門業者の手による用語集だし。
もうこんな辞書だと何が何やら分からない。
旗旒信号 https://kotobank.jp/word/-480446 (精選版 日本国語大辞典)
旗〓信号https://kotobank.jp/word/-1159914 (改訂新版 世界大百科事典)
どちらも旗旒信号の解説なのに、世界大百科事典の(本文は問題ないが)見出しの旒の字が〓になってしまっている。実は「旗〓信号」という…〓の文字にもしっかり意味があるものだと解釈してしまった。
このアカウントは、notestockで公開設定になっていません。
(まあMSXの場合はPCGになってるから、パターンテーブル書き換えちゃえば好きなグリフを定義できてしまうのだけども)
あー、確かに8bit機のBASICってグラフィック文字持ってたわ。その文字を入力するGRAPHキーとかあったくらいだし。MSXなんかだとこんな感じの http://ngs.no.coocan.jp/doc/wiki.cgi/TechHan?page=Appendix+A%2E9+%A5%AD%A5%E3%A5%E9%A5%AF%A5%BF%A5%B3%A1%BC%A5%C9%C9%BD が定義されてるけど、他機種なんかだとひらがなの代わりに派手なやつがあってこれはこれで羨ましかった記憶が。https://note.com/kazushinakamura/n/n38bac119d449
Unicode 13 sextants U+1FB00--U+1FB3B · Issue #607 · microsoft/cascadia-code · GitHub
https://github.com/microsoft/cascadia-code/issues/607
Unicode いろいろやってんな……
うーむ、w16(sj3の内部形式、EUC-JPではあるけど一部改変してる感じはある)←→UCS-16のテーブル、0x00~0x1f辺りのコントロールコードとかって考慮する必要あるのかなあ。mbstowcs_utf8()(仮称)に何を突っ込んでくるのか、というのを知らないとおかしなことになるのかも。んなこと考えずにとりあえず組んで、おかしければ調べる…でも良いのかもだけど。
久々にsj3側の作業に戻るのでsjgetchar.cを見ているところなんだけど…UTF-8拡張を行うのに追加した部分、例えばwcstombs()に対するwcstombs_utf8()みたいなものをどこに置くかというのはちょっと悩みどころ。とはいえ、wcstombs_utf8()/mbstowcs_utf8()の二つの関数になるはずなので、いちいち別ファイルに分けるのもどうなん?という気がする。
uaa@framboise:~$ echo -n "TEXTCOLLBYfGiJUETHQ4hAcKSMd5zYpgqf1YRDhkmxHkhPWptrkoyz28wnI9V0aHeAuaKnak" | sha256
cccc5da79fdfb699b8cdf1d79a8d7814fe46e06bde4f201628423495f6e2d195
uaa@framboise:~$ echo -n "TEXTCOLLBYfGiJUETHQ4hEcKSMd5zYpgqf1YRDhkmxHkhPWptrkoyz28wnI9V0aHeAuaKnak" | sha256
173fb01b24b000789aae6a599193908745b0a031810453a464367c68baa6d333
uaa@framboise:~$
流石にこっちは一致しないか
uaa@framboise:~$ echo -n "TEXTCOLLBYfGiJUETHQ4hAcKSMd5zYpgqf1YRDhkmxHkhPWptrkoyz28wnI9V0aHeAuaKnak" | md5
faad49866e9498fc1719f5289e7a0269
uaa@framboise:~$ echo -n "TEXTCOLLBYfGiJUETHQ4hEcKSMd5zYpgqf1YRDhkmxHkhPWptrkoyz28wnI9V0aHeAuaKnak" | md5
faad49866e9498fc1719f5289e7a0269
uaa@framboise:~$
おおお、同じだあ…
このアカウントは、notestockで公開設定になっていません。
「新宿東口の猫」はなぜ立体的に見えるのか? (田谷 修一郎, VISION Vol. 34, No. 3, 84–87, 2022) https://doi.org/10.24636/vision.34.3_84
ほう、RV1106向けのU-bootがrockchip-linuxに来てるのか。LuckFoxがmainlineに入るかは知らないけど、何かしらの対応がこれで進んでいくのかな? https://github.com/rockchip-linux/u-boot/commit/6c92d3a962ffcb90dd084a26d816babedf6b8f29
"Boost Clock: To The Moon"って…どこまで上げるんだろう。
"Tensor Cores: As Many As Possible"っていうのも。
「ブーストクロック:とにかく高い」
「テンソルコア: 積めるだけ」
という雑(謎?)な記述としか…まあユーモアはあると思うけど。
このアカウントは、notestockで公開設定になっていません。
名前の修正かけたらPayPalのマイナンバーカードによる身分確認もすんなり通った…なるほどここは漢字で本名入れないとどうにもならない場所なのか。
PayPalの名前変更依頼、なんか運転免許に書かれてる「日本語の名前」で登録されちゃったんだけど…対外(国)的にそれって大丈夫なんだろうか。まさかマイナンバーカードによる本人確認(二度失敗してる)って、日本語の氏名で登録されてないとダメとかそういうシステムだったりする…?
uaaは正気度20%、狂気度80%【ガチ狂人】完全にご乱心召されてる。SAN値ピンチ。
#あなたは正気なのか狂気なのか
#4ndancom
https://4ndan.com/app/1008/r/4
ポケモンがオライリーの表紙を飾るってのも、それはそれで面白そう(版権の問題もあるからそうはならないだろうけど)。
このアカウントは、notestockで公開設定になっていません。
なんかこれってアマチュア無線界隈にすごく当てはまるな。
なんでもかんでも法的にシロクロ付けないといけない人達のおかげで、できていたこと/できるはずのことが全て潰されてしまう。
このアカウントは、notestockで公開設定になっていません。
「マクド」な選択肢が無いというところに何かの意図を感じる…!
このアカウントは、notestockで公開設定になっていません。
いくらActivityPubで繋がっているとはいえ、Misskeyな人はMisskey越しにフォローかなあ(よほどの場合じゃないとMastodon側からはフォローしない)。Misskeyで拡張されてる諸々とMastodonってあんまし相性良くないから…
MastodonからMisskeyアカウントをフォローしていない、避けている理由としてどんなものがありますか?(複数回答)
候補に理由がある場合はその他を選んで返信で追加してください。
当時の記憶、日記付けてたとしても怪しいですw(えっへん、と胸を張ってみる←やめぃ)
OpenDHTのビルドがマトモになったとはいえ、mrefdに組み込んで動かしてよいものかは結構判断が難しい。組み込んじゃうとリフレクタの情報を流しちゃうので、うっかり何かやらかしてしまうのではないかという危惧が。
確かに観測者によって変わってくるのかも。UNIXワークステーション(PC-UNIXじゃなくSunとかNECとか、研究室に置いてそうな高い奴)で暮らしていた人から見ると全然違う景色になってるんだろうし。
というか今でもああいう人達から見ると、「まだそんなところで…」と言われちゃうんだろうなあ。先達の背中はまだまだ遠い…
このアカウントは、notestockで公開設定になっていません。
どっかの新書だか何だかのCMを兼ねた記事で、価値は創造できることを忘れてしまっているがために日本人は貧しくなった…と言ってる人が居たような気がするけど、何を創造するにしても最低限のリソースは要るんだよな。そのリソースが無い、という「根本的な貧しさ」の視点が抜けていると思ってる。
(まあ情けない話ではあるけれど、トップを取りに行けるだけのリソースが無い以上は「どうやって手持ちのリソースを守りながら今を食いつないでリソースを増やしていくのか」っていう防衛戦をしないといけないでしょうに)
(先陣切ってトップを取りに行く戦略は確かに必要なんだけど、皆が皆それをやってもしゃーないので、トップを狙う人達が取りこぼしたところをうまく攫うとか、トップを狙う人達に寄り添って助けていくことでおこぼれをもらうとか、立ち回りで食ってくのも一つの生存戦略なのかなーって)
まあ何を以て勝ちなのか負けなのかって問題はあるけど…多分ああいうこと言う人達の頭の中だと世界でトップシェア取れるかどうかとかそういう基準かな?
負け技術なんて言い出したらTRONもSuperHもみんなみんな負け技術になると思う。
損な役回りに見合うだけの報酬をきちんと出す、っていうならともかく…出さないだろうなあ。どこの業界だろうと、他人を安く使い潰すことを是としてきたし、それに慣れきってしまった。今更多少景気が良くなって金回りが良くなったとしても、簡単には改まらないよ。
矢面に立つ人…「嫌だよめんどくせえ」でお断りしてきそう(管理職も罰ゲーム、なんて言われるこのご時世だし)。
誰がリーダーになっても散々叩いてきたのだし、今後も叩くんだろうから…そのツケはしっかり甘受するのが筋ってもんだと思う。
ついでに、(Linuxみたいなdesktopが絡む領域になると)日本語化、というので日本人はかなりのdisadvantageが最初からあるからね。メッセージの日本語化だけじゃなく、日本語の表示と入力の問題。
…だから勝てないというつもりはないけれど。
少ないリソースをどう運用するかって問題と、リソースをどう増やすかっていう問題、どっちも下手打ってるのは確か。まあコード書けない人は黙ってよーね、で良い気はするけど…コード書けない人達がうるさいから書きたくなくなるよね。
1990~2000年代って、言うほど日本にOSS定着してたっけ?
2000年でも怪しくて、2002~2003年以降からなんとなく定着しつつあったというのが皮膚感覚なんだけど…まあオッサンの感覚なので怪しいかも。
このアカウントは、notestockで公開設定になっていません。
道交法の目的って第一条に書いてあるけど https://elaws.e-gov.go.jp/document?lawid=335AC0000000105
1. 道路における危険の防止
2. その他交通の安全と円滑を図る
3. 道路の交通に起因する障害の防止
なので意図的な低速走行というのはこの目的に反する以上ギルティ。
ミドルネーム持ってるとか、複合姓とか、いわゆる「日本人的な名前」から外れた名前を持つ人達に対して日本のシステムってものすごく冷たいよね。大して文字数の書けない「姓」「名」の項目にどう彼等の名前を記せと…収まらないケースだって少なくないのが現実だよな(なので非常に失礼な扱いをしてることになるのだが…)。
姓/名の順番を逆に登録してしまったおかげで、マイナンバーカードによる本人確認で「名前が違う」と蹴られているPayPal。どうやって直せば良いのやら…運転免許の写真貼り付けて名前の修正要望出したところで受け付けてもらえるのかどうか。
以前のPRもお塩な対応なので https://github.com/savoirfairelinux/opendht/pull/689 、多分これもお塩を投げつけられるんだろうけど一応出しとくかね https://github.com/savoirfairelinux/opendht/pull/690 。
今度はOpenBSDマシンが突然落ちたんだが…何が起こってるんだろう
Linuxの#!/bin/shってshじゃなくbashとかdashなケースがあるから…(震え声)
ふむ、やはりその都度$save_CPPFLAGSしてという…まあダーティなのかもしれないけど汎用性を求めるならそうしないといかんだろう。このconfigure.acみたいに。 https://github.com/NanoComp/meep/blob/master/configure.ac
基本的にCPPFLAGS += "hogefuga" は使わないで、saved_CPPFLAGS = $CPPFLAGSしてからCPPFLAGS = "$saved_CPPFLAGS hogefuga"しないとダメってことか。
なにそれ…
./configure MsgPack_CFLAGS=-I/usr/local/include MsgPack_LIBS=-L/usr/local/lib JsonCpp_CFLAGS=-I/usr/local/include JsonCpp_LIBS=-L/usr/local/lib
これだとダメで、
bash ./configure MsgPack_CFLAGS=-I/usr/local/include MsgPack_LIBS=-L/usr/local/lib JsonCpp_CFLAGS=-I/usr/local/include JsonCpp_LIBS=-L/usr/local/lib
これなら大丈夫っていうの。
なんかCPPFLAGS += "xxxx"っていうのが気に入らないらしいってのは分かったんだけど。
./configure[3224]: CPPFLAGS+= -DOPENDHT_BUILD: not found
./configure[3237]: CPPFLAGS+= -Dopendht_EXPORTS: not found
:
./configure[18229]: CPPFLAGS+= -DOPENDHT_JSONCPP: not found
なんだこれは
(ダメ親やってます、ごめんなさいってこの場を借りて子供達には謝っておこう)
ああああああマシンの再起動と共にSlackwareの仮想マシン巻き込みやがった…💢
ああそうだ打ち込んでる途中でなんか再起動しちゃったから忘れてたけど…実名プレイなネット生活って実際マゾだと思います。「実名プレイしてる人間の顔にどう泥を塗って社会的に殺してやろうか」って視線、結構感じますし。今後も増えるよきっと。
とはいえ社会人になってから実名プレイ続けてるからなあ…20年は経ってるんじゃないか。なので今更仮面を被れっていうのもなんかめんどくせえなって。
ドライバは2024/2/26版以降新しいのがでてないというのもまた気になるところだな。
おおお、いきなりVIDEO_TDR_FAILUREが発生してブルースクリーンになったぞWindows11(とはいえそこから障害情報収集中→再起動まで画面がそれなりに表示されてるのがすごい)。
しっかし、ここまでArc A770の機嫌が悪いというのはなかなか珍しいな。どうしたんだろう。
このアカウントは、notestockで公開設定になっていません。
お前か!
openbsd-current-vm$ grep CPPFLAGS Makefile
CPPFLAGS =
openbsd-current-vm$
uaa@slackware-vm2:~/opendht-3.1.7$ grep CPPFLAGS Makefile
CPPFLAGS = -DOPENDHT_BUILD -Dopendht_EXPORTS
uaa@slackware-vm2:~/opendht-3.1.7$
これじゃあどう頑張っても-fvisibility=hiddenの縛りから抜けられないよ。
__attribute__((visibility("default")))とかの類は定義できてる
やはり旧来のrc(.d)な作法と、systemdな作法との違いで起こった不幸な事故と考えるのが適当なのかも。とはいえ、世界はLinuxとsystemdだけのものじゃないよ、ということを訴えておかないと面倒なことになるというのも事実なんだろうなあ…
まあィヌックスに限って言えば、近年は systemd の流儀に合わせて fork からの daemonize などはせずフォアグラウンドで動く方が主流になってきている気がするけど
(「だよな」って打ったはずなのに「だよん」って…まあ面白いから良いや)
initにdebug print仕込んでもinitがSIGHUP送ってなくて、OpenBSDカーネルの https://github.com/openbsd/src/blob/master/sys/kern/kern_proc.c#L412 から飛んできてることは分かっていて、デーモン化すればSIGHUP食らわない(回避してる)んだろうなーとなると、多分セッションリーダかどうかで判断してるのかなって気はしてる。
とはいえ、init→/bin/sh→nohupでバックグラウンドプロセスを動かしても死ぬ、ということについての説明がこれだと付かないんだよん。
initの配下で/bin/shによるrcの実行が行われ、その/bin/shの配下でバックグラウンドプロセスが起動すると。で、rcの処理が終わる→/bin/shの処理が終わるので、バックグラウンドプロセスに対しSIGHUPが飛ぶってことか。
なので、動作としては全く間違ってない。間違っているのはバックグラウンドプロセスを動かし続けたいというその考え(だからデーモン化しろと何度言えば💢って怒られそうな話、と)。
そもそもinitから起動する物は「制御端末を持たないデーモン」「処理が完結する各種必要な物」を旨とし、「(制御端末を必要とするかどうかはさておき)バックグラウンドプロセス」ではないような気がする。rcのドキュメントを見てると。
ちょっと途中まで読んで挫折したけどこれなのかなあ、initとかSIGHUP周りの話。
技術/UNIX/なぜnohupをバックグランドジョブとして起動するのが定番なのか?(擬似端末, Pseudo Terminal, SIGHUP他) (2010/11/29) https://www.glamenv-septzen.net/view/854#id3d4712
お金に余裕があったら、86Duino Educakeをもう一台記念に買っておきたいと思っているけどなかなかそんな余裕は無いんだよね…っていうか、まだ在庫あるのか。 https://www.switch-science.com/products/1661
(以前の繰り返しになるけど)あんなTLB bug突っ込んでおいて、何故当時のAMD/Cyrix機でWindows9xが動いていたのかというのは本当に気になる。実はちょっとだけ(誤差と感じられる範囲かもしれないがしかしそこには確実なものとして)Intelよりも不安定だったという事実があったとかそういうことだったんだろうか。
確かめてみたい気がしなくもないけど、もうその時代のマシンは手元に無いんだ…Cyrixの石、再び動く日を見てみたいと思っていても。
※元Cyrix使いでした
なのでpatcher9x( https://github.com/JHRobotics/patcher9x )を使えばAMDなマシンでの仮想環境下でWindows9xが動くという話ではあるんだけど…当時の自分はこれの存在を知らなかったので。
Windows 9x TLB Invalidation Bug (Aug/10/2015) https://blog.stuffedcow.net/2015/08/win9x-tlb-invalidation-bug/
そういうバグを抱えていても、IntelはともかくCyrix/AMDのチップでWindows9xがおかしな動作をしていたという記憶は…自分には無かったけど実はあったんだろうか、「これだから互換チップは」とか言っていた人もいるくらいだし。
そして今となっては、AMDのCPU上では仮想化されたWindows9xの動作が不安定という問題に繋がっていくのだろう…
Intel vs AMDか…Windows9xを仮想マシンで使う可能性が少しでもあるならIntel一択って気がする(AMDでも動かせなくはないけど面倒)。
その用途を一切考えなければAMDに行けるんだけど…Bulldozer使ってた頃にこの問題で散々痛い目にあったので今はIntel使い。
The Design and Implementation of the NetBSD rc.d system http://www.mewburn.net/luke/papers/rc.d.pdf これを見てもrc.localから呼び出したコードにSIGHUPを投げつける理由は見当たらず。
今はfork()でゴリゴリやらなくても、daemon()を呼ぶだけでデーモン化可能なのか。何と便利な時代なんだ。
sj3の時はptyを使うのでclose(stdin)とかdup2()とかうだうだする代わりにlogin_tty()に回したとかそういう経緯だったんだっけ。今回はpty要らないしむしろ標準入出力から切り離す必要もあるしってことでその辺のことは考えなくて良いかね。
結局、「作法に則って記述せよ、手抜きは認めぬ」という問題だったということかね。
その「作法」ってのがよー分からんし、時代に即しているか(守るだけの合理性があるのか)という問題はあるけれど。
とりあえず、killjobc()でセッションリーダに対してSIGHUPが飛んでくる→セッションリーダでないこと、が条件となるとデーモン化しか思いつかないんだけどね。
これってsj3とかのコードでも出てきた、プロセスグループとか端末のdetachとかその辺の問題に関係してたりする…?
なんとなくなんだけど、ちゃんとfork()使ってデーモン化したものを/etc/rc.localから呼び出せよ?という意図だったりする?テキトーにhogefuga &で逃げんな、って。
killobjcじゃなくて、killjobcか。sp->s_ttyvpが非NULLの物にSIGHUPを投げつけてると。
signal_checkを3つ起動していて、全てSIGHUP食らって落ちてる。何故killobjcを呼び出したかを追う必要があるか。
Mar 17 09:05:00 openbsd-current-vm signal_check: signal 1
Mar 17 09:05:00 openbsd-current-vm last message repeated 2 times
Mar 17 09:05:00 openbsd-current-vm /bsd: killobjc: SIGHUP 0xfffffd813d879f00
でもまあよく考えてみればnohup越しに起動してもSIGHUPが飛んでくる以上、initが絡んでいる可能性は低いと読むべきなのか。カーネルがプロセス番号をしっかり握っている訳なのだし。
このアカウントは、notestockで公開設定になっていません。
カーネルの起動~init辺りを起動する前後までの動作を追うのってどうするのが手っ取り早いんだろう。とりあえずprintf()仕込みまくりで、で対応できそうな気がしなくもないんだけど(エレガントではないのは分かってる)。
※割り込みとか扱う場合だとprintf()デバッグ以外の方法を考えないと困るケースはある…
initにdebug print仕込んでみたけどSIGHUP投げつけた形跡はない…ってことは、カーネルの仕業なんだろうなあ。