xlxdとかのリフレクタとかならSTREAMS使って実装とかそういうのは面白いのかもしれない(とはいえ動く環境が限られてくる)。とはいえ、マイナーな(と書くと失礼かもしれないけど敢えて書く)APIで実装した場合はその後のメンテナンスできる人間が居るのかとかAPI自体の寿命によりソフトウェアも道連れにとかなってしまうので、よほどの強い理由が無い限りは避けたいよねえ。
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
xlxdとかのリフレクタとかならSTREAMS使って実装とかそういうのは面白いのかもしれない(とはいえ動く環境が限られてくる)。とはいえ、マイナーな(と書くと失礼かもしれないけど敢えて書く)APIで実装した場合はその後のメンテナンスできる人間が居るのかとかAPI自体の寿命によりソフトウェアも道連れにとかなってしまうので、よほどの強い理由が無い限りは避けたいよねえ。
OpenSS7のコード、2020年くらいのパッケージは出てるみたいだけどコード自体はあんまりメンテされていない(メンテが不要なくらい枯れてる?)気がする。 https://github.com/openss7/openss7
STREAMS vs. Sockets Performance Comparison for UDP (June 16, 2007) http://www.openss7.org/papers/strinet/testresults.pdf
STREAMS (TLI/XTIの類?)はSocket経由よりも速いぜ、ということらしいけど… http://www.openss7.org/papers/strinet/testresults.pdf
1988年くらいのUNIX事情ということになるんだろうか、「ラップトップUNIX」なるキーワードで、socket/TLI周りの話などちょっとした文章があるようなんだけど。 https://ipsj.ixsq.nii.ac.jp/ej/?action=pages_view_main&active_action=repository_view_main_item_snippet&all=%E3%83%A9%E3%83%83%E3%83%97%E3%83%88%E3%83%83%E3%83%97unix&count=20&order=0&pn=1&st=1&page_id=13&block_id=8
NEWS-OSの時代においては、BSDかSystemVかといった争いがかなり激しかったので、おそらくネットワーク周りもBSD socketかSystemV TLIの両対応にしておく必要があったのではないか、という想像をしている。
現在においては、BSD socketが使えれば大概のOSで動くじゃないの、というくらいBSD socketが普及しているけれど(自分もTLIなんて今回の件で初めて知った)。
Transport Interfaces Programming Guide (PDF) https://docs.oracle.com/cd/E19620-01/805-4041/805-4041.pdf (Oct. 1998)
Transport Layer Interface - Trans FX (band) https://ja.wiki5.ru/wiki/Transport_Layer_Interface から、SolarisおよびLinuxで動作するクライアントサーバーアプリケーションの例 https://gim.org.pl/uczelnia/Network-Programming/7.XTI_TLI/
ということでLinuxでもTLIは使えるらしいけど…なんかリンクするライブラリとかの検出が面倒そう。
TLI(Transport Layer Interface) https://ja.wikipedia.org/wiki/Transport_Layer_Interface
要するにsocket()の代わりにTCP/IPを喋らせる手段っぽいけど…要る?
でも、イマドキのUNIXなら*BSD/Linux寄りのコードでもそれなりに動いちゃうような気がするんだけど(そもそも*BSD/Linux寄りってどういう意味だよとツッコまれそうだが)。
手っ取り早くSVR4環境を用意するなら、illumos持ってくるしかない?
※romaji.c, screen.cの修正量が多くてちょっと現実逃避してます
プルリクエスト、マージされてナンボ(成果)でしょという評価基準だと…MMDVMHostのIPv6対応くらいしか成果として書けるものが無いってことになるか。
あっちの界隈でそういうものの見方をしてうだうだ言う人がどの程度いるのかは知らないし知りたくもないけど、厄介な人達は既にそういう物差しで見ていることは分かっているので(そういう視線はたまに感じています)…厄介を黙らせるための「成果」を作らないといけないのかなあ。本意じゃないんだけど。
xlxdなるDMRリフレクタ(中継サーバと思って下さい)とmrefdなるM17リフレクタを動かしているのだけど、どうもこれらを統合したxlxdの進化版であるurfdなるものがあると今知った。 https://github.com/nostar/urfd
xlxd、IPv6対応パッチのPRを出していて3年以上放置されてる(xlxdの更新に一応追従はさせてる)んだけど、なんかパッチを捨ててurfdへ移行した方が良いのかなーって気分になってる。
(捨てずに移行しても良いんだろうけど、マージする気の無いものを出し続けるのもそろそろ嫌になってきたし)
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
AIのセリフをそのままつっこんでるのか https://amzn.asia/d/5LskEVn
Temporarily Unavailable Inc.とか創業したくないですか?
SJ3_OBJS, SJ3DIC_OBJS, SJ3MKDIC_OBJS, SJ3STAT_OBJS, SJ3RKCV_OBJSでこれなので、KANAKAN_OBJSの状況を考えると頭が痛いです。かな漢字変換の要となる部分なんだろうし、ヘンにいじるとおかしなことを引き起こしそうで…
とはいえ、sj3_rkconv_mb()が外部から呼ばれている形跡はなく、sj3_rkconv_mb()でキャストされた状態で呼ばれているため、型が何であろうと問題は無いはず…内部の問題、で片付く話かも。
fix branchの時はmake時にimplicitうんぬんで表示された関数に対するプロトタイプ宣言をその都度記載していたんですが、その関数が記述されたファイルの中における関数の出現順もきちんと意識したいしいちいちその都度追加するのも面倒臭い→だったらもうそのファイルに記された関数を全てプロトタイプ宣言としてsj3.hに書いちゃおうぜ、という方向に変えてます(流石にstaticな関数は書きませんけど)。
これ、本気で面倒臭くてぶん投げたくなるくらい面倒なんですが、なんか妙なコードも炙り出せているのでやる価値は(ちょっとだけ)ある感じです。
拝啓 過去の自分殿
https://github.com/FUJIMI-IM/sj3/pull/10/commits/91c5c87e74a2a8e8908dcc66c3142b1383842f23#diff-060563743bc31971162a6d5456d3644dc7d9dd834b0759a1b56e631cef167668R1064
この修正部分、何故オリジナルではunsigned char *となっているのに貴方はwchar16_t *に変更しているのか、理由を教えて頂けませんか?
別にunsigned char *で問題無いのではないでしょうか。mbstowcsのmbs側の引数になるため、wchar16とする理由は薄いように思われますが。
…という訳で修正版のPR後で投げます
(多分、sj3_rkconv_w16()のプロトタイプ宣言に引っ張られたのかも)
SK3RKCV_OBJS (rk_conv.o, sj3_rkcv.o, wc16_str.o)は以前の修正を仮置きするだけ(多分どこかでPR投げてるはずなので)に留めとく
edit.c: In function ‘exec_edit’:
edit.c:432:25: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
432 | for (i = 0 ; i < num && Zcol >= 1 ; i ++)
| ^~~
edit.c:434:33: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’
434 | Zcol -= 1;
| ^~~~
このwarningは今はちょっと置いとく。多分バグな気がするけど。
canuum、きゃにゅうむ、って読むのか(どう読むか全然わからなかった…)
Linuxにおける日本語環境 http://www.ecs.shimane-u.ac.jp/~nawate/lecture/html/5-26/ja.html (1999.5.26)
X11/Emacs抜きの日本語入力環境って、需要無いのかなあというかコンソールが日本語に対応してないのでXに頼るしかなかったんだろうなあと想像するんだけど…大学で触らせてもらったsj3が(このpostの冒頭にある)これでして。
このアカウントは、notestockで公開設定になっていません。
EUC-JPな時代では、konにcanuumなりuumなりといった使い方をしていた人は居たと聞くけど…
そういえば、jfbtermみたいなものがある割に、sj3, uum, canuumみたいな…コンソールから日本語入れちゃうぞーなツールの復権ってあんまし聞いたことないんですけど、どうなんでしょう?UTF-8対応なcanuum, uumって存在するんでしょうか…?(Emacs-anthyとかで、Emacs上から日本語が打てれば十分、という人が多いんだろうか)
とりあえず、自分はsj3(tty client)側を攻めてみる方向で行こうかと考えています。sj3serv側の作業と当たらない部分だし、libsj3lib.aとのやり取りはEUCでやっているようなので、そこから先をiconv使うなりすればとりあえずUTF-8環境でも使えそうな何かは得られるんじゃないかなーとお気楽に考えておりまして。
sj3.h、これsj3.c内のプロトタイプ宣言含んでるし…sj3(tty client)を構築するに必要なソースコード全てのプロトタイプ宣言をここに突っ込んでしまうのが適当そうな気がする(FUJIMI-IM版Makefileにおける、SJ3_OBJSに対応するソースの範囲)。
sj3dic.h、これもおそらくsj3dicを構築するに必要な…SJ3DIC_OBJSの範囲でということになるんじゃないかなあ。sj3mkdic.hは不要なのか必要なのかは今後考えるとして(sj3statはそれだけなので、自前で頑張る)。
FUJIMI-IM/sj3、今後どの方向から攻めてく方が良いですかね?やることは山積みなので何をやっても無駄にはならないと思うんですが…
ANSI化は必須として、sj3(tty console)側から行くか、sj3serv側から行くか…
今日は休もう…どうも今後数か月は所属店舗の休業日に他店への応援に行くことが確定しちゃってるので。
流石にMastodonまでは某社の手は及ぶまい(なんて書くと、秘密結社から逃げる人間を演じている感じがあってなんか楽しくなってきますね)。
とりあえず、115200bpsで動かしていた超漢字のデバッグコンソール、19200bpsにしないとなんか怪しいという感触があって。ファイル転送は…開発環境付属のターミナルプログラム(gterm)ならXMODEMで流し込めるんだけど、OpenBSD上でのビルドができないので他の手段でどうにかしてる(のでシリアルポートの遅さはあんまり問題にならない、ネットワークドライバを開発する場合は致命的な問題になるけど)。
VirtualBoxのUARTエミュレーションの精度って、どういう評判なんでしょう?なんか使っていて「ん゛っ?」と思う場面が幾度かありまして。VMware Playerではそんなことなかったんですけどねえ…
とXに書いたものをここでも書いてみる
しかもXMLを切った貼ったしただけでcontent warning付いてるし
<Port slot="0" enabled="true" IOBase="0x3f8" IRQ="4" path="COM2" hostMode="HostDevice"/>
00:02: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
<Port slot="0" enabled="true" IOBase="0x3f8" IRQ="4" path="COM2" hostMode="HostDevice" uartType="16540"/>
00:02: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
どうやらVirtualBoxの設定方法を間違えているな。どうすればUARTデバイスの種別を変えられるんだろう。
書いていた文章を一旦吹っ飛ばしたので、おかげですっきり書き直せたと思います…💢
( sj3(tty client) の動作要件、web日記に置いとくのもアレなので簡単にまとめたものをissueで投げておきますね)
アースがとれてない事案.... https://social.mikutter.hachune.net/@uaa/111731772566075184
MangoPi MQ-Quad(Allwinner H616)も積み基板化してしまっているな
ジャンプのようなメジャー誌に載ってる漫画を読んでオタクとか言うのはマジで止めてほしいと思うのは厄介の証拠ですかね…
カスみたいなインターネット認定バッヂばら撒き †診断† が氾濫するの本当におもしろくないので、誰か真面目なクイズ作ってほしいが
10BASE-2のLAN、繋がらないときはマシンのコンセント(プラグ)を180度回して挿せって話があったような。
流石にイエローケーブルとか言い出さないですよね…?(自分も未体験の領域)
インターネット老人、同軸ケーブルのEthernetを繋いだことがあるかどうかで判定するのはどうですか(?)
老人(概念)にもなれない、リアルな老人化しつつある自分…まあそんなもんかもしれん。
このアカウントは、notestockで公開設定になっていません。
とはいえあの程度の内容すら自分には半分しか答えられなかったので、何を言っても負け惜しみになっちゃう(=説得力ゼロな)んですよ自分の場合は…
(個人的には「ネットおじさん」に少しイラっとしたんだけどね…いやまあ確かにおじさんなのは事実なんだけどさあ、まあビミョーなお年頃だと思っていただければと)
インターネット老人を測るに適切な設問って、そもそも何を用意すれば良い…?って気がするんだけど。
雑誌ASCIIのコーナーにあった、DMAは何の略か?とかそーゆーのか?(おい
uaaはインターネット老人度50%【ネットおじさん】世間の流行りとともにネットに触れたネットミドル世代。最低限のネットお作法はわきまえてる。
#インターネット老人度診断 https://4ndan.com/app/1166/r/3
インターネット老人というか2ch習熟度って気がするんだけど。
真のインターネット老人ってfjの歩き方(戦い方)を知ってる人なのでは…?
別にねらーでもないし、fjとか書いたことも無いので、まあ件の診断結果が50%というのもまあそんなもんだよねーと理解してる。
あんまり自分のweb日記を晒すのもどうかなーというのはあるんだけど。
Slackware-15.0(i686)とsj3-2.0.1.20の話 (08-Jan-2024) http://www.uaa.org.uk/gomitext/2024/202401.html#08-Jan-2024
framesetとか、今では使わないよね…(自分とこのweb pageもHTML 4.01 Transitionalを未だに使ってるし…)
このアカウントは、notestockで公開設定になっていません。
原典(sj3-2.0.1.20)、Slackware-15.0(i686)でのビルドできてます。インストールすれば/dev/pty*のパーミッションとかも特にいじらずsj3が動きます。インストールメモはweb日記上に今まとめているところ(GitHubとかに回した方が良いのかなあ)。
昔のQEMUってHDDのジオメトリ(C/H/S)に癖があるためにfdiskの動作がおかしくなる(のでインストールできない)Linux distroがあったようななかったようなって記憶があるので、QEMUだから安心とはあんまり考えてないんです。まあ、イマドキのdistroならQEMU上であっても問題なく動くはずなんですけどね…
とりあえず、VMware Player-17.5になってから致命的な問題が多く発生しているのでさくっと他の仮想マシンへ乗り換えちゃったという感じですかね。超漢字はベアメタル用のマシンを確保するのが結構難しいので仮想化頼みだったりしますし。
VMware Playerがマトモならそもそもこんなことする必要ないんですけどね…
sj3(原典)を動かすためのLinux distroを探す→Slackwareだとイイ感じ→VMware PlayerだとLILOの問題でSlackware起動しない(以前は起動できていたような?)→NetBSD/超漢字の問題もありVMware捨てるか→VirtualBox移行しよう→超漢字の動作チェックしよう
というのがここしばらくの流れなんだけど、こうなってくるともう「えっと元々何をやってたんだっけ?」と言いたくなるくらい何をやっていたんだか分かんなくなってきますね…
R4.540へのアップデートの様子をデバッグコンソール越しで見る限りでは、VMware上かどうかを判断して何かのファイルを切り替えてる感じ。多分その辺が影響してるんじゃないかなあ。
ていうか実機上のR4.540ってUSB2.0対応してたん?EHCI見えてるってことは。
USBのホストコントローラはOHCI/EHCIともに認識されてる(動いているとは言っていない)
B-right/V Kernel Ver 4.540 (Thu Nov 6 17:34:43 JST 2008)
Copyright (C) 1995-2008 by Personal Media Corporation
** InitSegmentMgr OK
** InitProcessMgr OK
なるほど、R4.540にアップデートし直せば良いのか。
el torito形式なISOイメージから、起動用コードのディスクイメージを抜く方法ってどこかあったかなあ(hexdumpで当たりを付けて、ddで該当する箇所を抜けば良いんだけど)
VMware Playerの仮想マシンは全てVirtualBoxへ移行(といってもディスクイメージを移して仮想マシンの構成ファイルを作り直しただけ)。VMware Playerもアンインストールしています。
VMware Player上のWindows3.1仮想マシン(SVGAドライバもどっかで拾ったのを入れたような)、これもVirtualBoxへの移行はできてる。この桜柄の壁紙、好きなんですよねえ。
VMware→VirtualBoxへ仮想マシンを移してる。あと5台分移さないといけないのがめんどい。
slackware-15の入ったVMware Player用ディスクイメージ(.vmdk)をVirtualBoxへ移して起動してみたけど、LILO普通に動いてる。なんなんだろうこれ…
slackware-15.0をVMware Playerへインストールしたけど、例によってLILOによるロードが遅いというか遅すぎて止まっているような問題に遭遇。lilo.confにcompactは入っているのに、何故遅い…?
上級者UI、たしかに毎度毎度設定しないと上級者UIにならないのはちと辛いかも(普段はThe Desk越しに書いてるけど、Windows機を落としてOpenBSD機のみで使ってる場合はweb UIを使うしかなく、そうなるとこの問題が顕在化する)。
手元にSlackware(i686)を置いておくと何かと助かりますね…
…ってことは、sj3-2.0.1.20(原典)とFUJIMI-IM版sj3を同時にテストできる環境、slackware-15.0/i686っていうのは結構あり得るのか?(困惑中
オープンしようとするデバイス名は正しく生成できているけど、13(EACCESS)が返ってきてる。rootだと起動できたのでパーミッションの問題みたい。
slackware-15/i686の場合はBSD pty対応なのでイケると思ったんだけどなあ。とはいえ、
sj3.tmpl:
SJ3GROUP = staff→binに変更
CFLAGS += -fcommon を追加
sj3/nmttyslot.c: char *gettys();→static char *gettys();に変更
sj3/sj3.c:
union wait status;
int pid;
pid = wait3((int *)&status, (WNOHANG|WUNTRACED), 0);
↓
int status;
waitpid(-1, &status, WNOHANG|WUNTRACED);
に変更
この程度の修正でビルドが通るというのは流石Slackwareというべきか。とはいえちゃんと動いてないのはどういうことなんだ…
uaa@slackware-vm:~/sj3-2.0.1.20/sj3$ ./sj3
SJ3 Version 2.09C (sjis/euc version)
Fri Feb 23 19:31:47 JST 1996
Copyright (c) 1990-1996 Sony Corporation
All Rights Reserved
Warning cannot open rule file /usr/local/lib/sj3/sjrk
Out of pty's
exit sj3.
uaa@slackware-vm:~/sj3-2.0.1.20/sj3$
なーぜーだーぁー…
2000年の自分の過去の日記を見るに、Slackware-7.1でsj3入れて使ってたって記述があるから…まあ原典を動かせることは確かなんだ。流石にsj3(tty client)が動くかは未テストなんだけど。
原典のsj3を動かすには良いんだろうけど、それだけだよなあ。Slackware-8.xだとkernel 2.4になるので多分pty(4)周りが変わる気がするし、gcc-2.95.3なので。 https://lwn.net/2001/0704/a/slackware-8.0.php3
Slackare-7.1、/dev/pts/*と/dev/pty*の両対応は良いんだけどegcs-2.91.66は流石に…
意外にSlackware-7.1のISOって無いもんですな
http://ftp.slackware-brasil.com.br/slackware-iso/slackware-7.1-iso/
https://ftp.acc.umu.se/mirror/slackware.com/slackware-7.1/iso/ (installのみ)
うーん、ethernet0.virtualDev = "e1000"にすればVMware PlayerでもNetBSD-5.2.3のインストールはできる、インストールは。
とはいえ、必要なツールをpkg_addで用意できないという問題が…
掘り用のソースコード、リンクがexpiredで辿れなかった…
GPUでNostrの公開鍵掘った人おったわ
https://twitter.com/afilini/status/1609576086920171521
NetBSDインストールバトル on VMware Playerするにも、これじゃあどうにも…(vmxnet3を有効にすりゃあ良いんだろうけど、いちいち.vmxいじるのダルいず…)
NetBSD-5.2.3/i386 on VMware Player-17.5、vlance落ちますね。超漢字が悪いとはもう言わせない。
@hfp ありがとうございます。三か所とも、OpenBSD-4.2/i386のisoが置かれているのでどれでも大丈夫そうです。公式ならeu.openbsd.orgのサーバですかね。
UK mirror serviceの名が出てくるのはちょっとびっくり。昔からその名前はあったけど、今でも健在なんですね。
このアカウントは、notestockで公開設定になっていません。
自分も死んだー
今日のあなたの運勢は **死亡** です。
https://m.tkngh.jp/play/9gnqx0qrh3
ただ、古いNetBSDだとports周りどうなるんだろう…?
NetBSD-2.0, 3.0 gcc-3.3.3
NetBSD-4.0 gcc-4.1.2 (prerelease)
NetBSD-5.0 gcc-4.1.3
NetBSD-6.0 gcc-4.5.3
NetBSD-7.0 gcc-4.8.4
NetBSD-8.0 gcc-5.5
NetBSD-9.0 gcc-7.4
NetBSD-10.0(RC2) gcc-10.5
ってところかな?
ふっるいOpenBSDでも良いじゃんよ(というかそっちの方が個人的には楽)なんだけど、いつの間にかnluugのFTPサーバからも古いOpenBSD ISOイメージが消えてるのでどうしたもんかな。歴史的な記録として古いISOイメージ残しといて欲しいんだけど。
The state of toolchains in NetBSD (2021/Apr/9) https://www.cambus.net/the-state-of-toolchains-in-netbsd/
ちょっと探してるものとは違ったけど、NetBSDはFreeBSD/OpenBSDと違ってgccに留まっていて(と書くのはちょっと失礼か)、幅広いバージョンのgccが使えるってことは分かった。
gcc-4.2辺りを標準装備して、EUC-JPロケールの通るx86(32bit)なNetBSDというのは候補になるのかなーとか、なんとなく。
(NetBSDの各リリースが、gccのどんなバージョンを使ってるかというのを知りたいんだけどリリースノートを丹念に追うしかなさそうですかねー)
FUJIMI-IM版ではちゃんと64bit対応してる、ってことは…原典との動作比較は32bit環境を用意しないといけないことになるか。まあ原典にこだわりすぎるのもどーよって話はあるけど、まずは起点をちゃんと定めないとどう進んだかが分かんなくなっちゃうし。
これ、intじゃなくintptr_tにしないと64bit環境では動かないじゃん
むー、原典たるsj3-2.0.1.20、NetBSD-10-RC2でのビルドができない。setup.cで
setup.c:224:23: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
224 | "DebugOut", get_str, (int)&debug_file,
| ^
setup.c:224:23: error: initializer element is not constant
setup.c:224:23: note: (near initialization for 'option[0].optarg')
こんな感じのが多発してる。
このアカウントは、notestockで公開設定になっていません。
えー、昨日ソース取ってきてビルドしてるとこなんだけど…やり直そうかなあ。