最近の(でもないけれど)出来事/落書帳/仲間内のネタ/覚え書き/whatsnew

基本的に落書き帳/メモ帳/備忘録なので、 わりと間違っていたり、 数分後とか後日とかに見たら、 いきなり消えていたり書き換わっていたりとかあります。


Sat,03 Oct,2020

証明写真

基本料金¥1,420-、 期間限定割引¥200-、 CD付けて追加¥550-、 合計¥1,770- らしい。

CD-R

MS-Windows からだと読めるけれど、 FreeBSD だと読めない CD-R がある。 dd if=/dev/cd1 of=/tmp/hoge.iso すら通らない。 それどころかそもそも /dev/cd1 が生えてこない。 何故だろう……。

Sun,04 Oct,2020

GearHead1-GearHeart の更新。

GearHead1-GearHeart

名前取得チップを追加。

変数で指定したメックを目標メックにするチップの分類を間違えていたので修正。
目標メックを変数に取得するチップを追加。

自機メックの情報取得チップ名の統一が取れていなかったのを修正。

名前からメックを検索するチップを追加。

メック間通信を行うチップを追加。

メック名で検索すると汎用名しか返ってこなくて特定できないので、 メック名検索をパイロット名検索に仕様変更。

Sat,10 Oct,2020

lua

lua 5.4 出てたのか。
でも luajit がらみで 5.1 のまま移行できず。

Sun,11 Oct,2020

GearHead1-GearHeart の更新。

GearHead1-GearHeart

SDL2モード時に SDL-1.2 な呼び出しが混じっていたバグ修正。

API に AttackerFrontEnd() 追加。

SDL2 が SIGFPE

FreeBSD 11.4-RELEASE-p4 の clang-10.0.0 で SDL2-2.0.12 をビルドすると、 GearHead1-GearHeart が SIGFPE 起こす事に気付いた。 SIGFPE 起こすのは SDL_render.c の SDL_RenderGetViewport() の rect->w = (int)(renderer->viewport.w / renderer->scale.x);

Thread 1 received signal SIGFPE, Arithmetic exception.
****************** in SDL_RenderGetViewport_REAL (renderer=***********, rect=) at /tmp/SDL2-2.0.12/src/render/SDL_render.c:2128
2128            rect->w = (int)(renderer->viewport.w / renderer->scale.x);
(gdb) info stack
#0  ****************** in SDL_RenderGetViewport_REAL (renderer=***********, rect=) at /tmp/SDL2-2.0.12/src/render/SDL_render.c:2128
#1  SDL_RenderCopyF_REAL (renderer=***********, texture=***********, srcrect=, dstrect=**************) at /tmp/SDL2-2.0.12/src/render/SDL_render.c:2976
#2  ****************** in SDL_RenderCopy_REAL (renderer=**************, texture=0x0, srcrect=0x0, dstrect=0x0) at /tmp/SDL2-2.0.12/src/render/SDL_render.c:2941
#3  ****************** in PRETTYPRINT (MSG=..., WIDTH=550, FG=..., DOCENTER=true, MYFONT=***********) at sdlgfx.pp:2650
#4  ****************** in CMESSAGE (MSG=..., Z=..., C=...) at sdlgfx.pp:2772
#5  ****************** in main () at gharena.pas:224

散々試行錯誤した挙句。
gcc9 -O3 と clang8 -O3 と clang9 -O3 と clang10 -O0 は 期待通りの挙動をしていて、 clang10 -O3 と clang11 -O3 は SIGFPE する。
ちなみに SDL_RenderGetViewport() の SDL_Rect * rect を volatile 宣言すると、 clang10 -O3 でも期待通りの挙動をした。
clang10 以降の最適化にバグでも有るのか……? GearHeart からの SDL_RenderCopy() 呼び出しが間違っているのか……? SDL2 が C言語の未定義の挙動を踏んでいるのか……?
またデバッガで disas して追っかける気力は無いなあ。

なお、FreeBSD 11系の sdl20 のバイナリパッケージについては、 2.0.10_1 は期待通りの挙動をするけれど、 2.0.12_2 とか 2.0.12_3 とかは SIGFPE する。
ports/devel/sdl20 を svn up -r 516748 とかして 強制的に sdl2-2.0.10 を clang10 -O3 でビルドしてみたら、 SIGFPE。

sdl2-2.0.12_3 でも、/etc/make.conf で

.if !empty(.CURDIR:M/usr/ports/devel/sdl20*)
CC=clang90
.endif

してビルドすると期待通りの挙動をした。

Mon,12 Oct,2020 追記:
未定義の挙動を踏んでいる線に気付いたので書き直し。

Tue,13 Oct,2020 追記:

2120 void
2121 SDL_RenderGetViewport(SDL_Renderer * renderer, SDL_Rect * rect)
2122 {
2123     CHECK_RENDERER_MAGIC(renderer, );
2124
2125     if (rect) {
2126         rect->x = (int)(renderer->viewport.x / renderer->scale.x);
2127         rect->y = (int)(renderer->viewport.y / renderer->scale.y);
2128         rect->w = (int)(renderer->viewport.w / renderer->scale.x);
2129         rect->h = (int)(renderer->viewport.h / renderer->scale.y);
2130     }
2131 }

に対して、

        .loc    1 2126 25               # src/render/SDL_render.c:2126:25
        cvtsi2ssl       336(%r12), %xmm0
        .loc    1 2126 64 is_stmt 0     # src/render/SDL_render.c:2126:64
        movsd   408(%r12), %xmm1        # xmm1 = mem[0],zero
        .loc    1 2126 46               # src/render/SDL_render.c:2126:46
        divss   %xmm1, %xmm0
        .loc    1 2126 19               # src/render/SDL_render.c:2126:19
        cvttss2si       %xmm0, %eax
        .loc    1 2126 17               # src/render/SDL_render.c:2126:17
        movl    %eax, -80(%rbp)
        .loc    1 2127 25 is_stmt 1     # src/render/SDL_render.c:2127:25
        xorps   %xmm0, %xmm0
        cvtsi2ssl       340(%r12), %xmm0
        .loc    1 2127 46 is_stmt 0     # src/render/SDL_render.c:2127:46
        movshdup        %xmm1, %xmm2    # xmm2 = xmm1[1,1,3,3]
        divss   %xmm2, %xmm0
        .loc    1 2127 19               # src/render/SDL_render.c:2127:19
        cvttss2si       %xmm0, %eax
        .loc    1 2127 17               # src/render/SDL_render.c:2127:17
        movl    %eax, -76(%rbp)
        .loc    1 2128 44 is_stmt 1     # src/render/SDL_render.c:2128:44
        movsd   344(%r12), %xmm0        # xmm0 = mem[0],zero
        .loc    1 2128 25 is_stmt 0     # src/render/SDL_render.c:2128:25
        cvtdq2ps        %xmm0, %xmm0
        .loc    1 2128 46               # src/render/SDL_render.c:2128:46
        divps   %xmm1, %xmm0						← ここでSIGFPE
        .loc    1 2128 19               # src/render/SDL_render.c:2128:19
        cvttps2dq       %xmm0, %xmm2
        pshufd  $229, %xmm2, %xmm0      # xmm0 = xmm2[1,1,2,3]
        .loc    1 2128 17               # src/render/SDL_render.c:2128:17
        movd    %xmm2, -72(%rbp)
        .loc    1 2129 17 is_stmt 1     # src/render/SDL_render.c:2129:17
        movd    %xmm0, -68(%rbp)

gdb92 で info all-reg したら、
renderer->scale.x = 1;
renderer->scale.y = 1;
な状態に対して ymm1 が {1,1,0,0} だった。
本当に0で割っている。
コメントにもしっかり「xmm1 = mem[0],zero」と書かれているし。

Wed,14 Oct,2020 追記:
SDL2 付属の C で書かれたサンプルだと、 本当に0で割っているにもかかわらず SIGFPE しない。
Free Pascal meets SDL の Pascal で書かれたサンプルだと、 SIGFPE する。

Thu,15 Oct,2020 追記:
SDL2 付属の C で書かれたサンプルでも、 feenableexcept(FE_ALL_EXCEPT); したら SIGFPE するようになった。
FreePascal でも、 fedisableexcept( FE_INVALID ); したら SIGFPE しなくなった。
何でそういう仕様なのかわからないのがモヤモヤするけれど、 取り敢えず動く様にはなった。

Fri,16 Oct,2020 追記:
https://stackoverflow.com/questions/63125919/how-to-avoid-floating-point-exceptions-in-unused-simd-lanes
もしかしてこれ?
-ftrapping-math したら divps 使わずに divss 使う様になった。

Sat,16 Jul,2022 追記:
Sat,16 Jul,2022、 に続く。

Thu,15 Oct,2020

GearHead1-GearHeart の更新。

GearHead1-GearHeart

Pascal-SDL-2-Headers を最新の Jul 31, 2020 版へ更新。

SDL2内部で謎の SIGFPE を起こす問題に応急処置。

Sat,17 Oct,2020

プレミアムバンダイ

HGAW 1/144 エアマスターバースト 届いた。
説明書がいつもの差分のみじゃなくて全手順が書かれた物だった。 完成写真や色見本は無かったけれど。 あと余剰パーツが一切無し、めずらしい。

バンダイの伝票が入っていなかった。 FAQ 見たら、 明細書はお届け翌日以降のオンライン発行に、 領収書はお届け1週間後以降のオンラインでの発行に、 変わったらしい。 でも過去の注文分を見てみたが印刷ボタンが出てこない……。
…… 09:09:56 に見た時は無かったが、 09:51:36 に見なおしてみたら今回注文分のみ出てた。

Sat,07 Nov,2020 追記:
何のひねりも無く普通に作った。 HGAW_AM_AMB.png (400KiB)。 あとは、HGAW 1/144 で レオパルド & レオパルドデストロイ & Gファルコン 辺りを揃えたい……。

宅配便

玄関の呼び鈴を押さずに電話で呼び出ししてきた。 変わったのか……。

GearHead1-GearHeart の更新。

GearHead1-GearHeart

lua の文字列のクォートを、 print系と return の次チップ表記をシングルクォート、 残りの文字列をダブルクォート、 に統一。

指定モジュールの種別の判別チップに、 コックピットを含んでいるか否かの判定機能を追加。

一部レイヤーでレイヤーサイズを間違えていたのを修正。

BV付き攻撃チップを追加。

チップ名の間違い修正。

メックのモジュール情報の取得チップを追加。

チップ群07を、モジュール操作用に空けた。

モジュール処理チップを、チップ群07へ変更。 次のモジュール情報を取得するチップを追加。

モジュールのダメージ取得チップを追加。

Sun,18 Oct,2020

ffmpeg

ffmpeg で変換した時に ビットレート指定が無視されると思いきや。
ビットレート指定は 出力ファイルの指定の前に書かないと駄目らしい。

GearHead1-GearHeart の更新。

GearHead1-GearHeart

QRLファイルをカレントフォルダではなく、 Config_Directory から検索読み込みする様にした。

3D酔い

アーマードコアV にて、3D酔いした。 しかもかなり悪酔い。 今までゲームで酔った事は無かったのに……。 歴代エースコンバットでも歴代アーマードコアでも 全然平気だったのに、突然何だろう……。

Sun,25 Oct,2020 に続く。

Wed,21 Oct,2020

GearHead1-GearHeart の更新。

GearHead1-GearHeart

チップの引数のコメントとデフォルト値を調整。

武器をリロードするチップにて、弾薬指定リロード実装の準備。

Sat,24 Oct,2020

OpenZFS on Debian GNU/Linux 10.6

UEFI なマシンで、 Debian GNU/Linux 10.6 にて /boot と / を両方とも ZFS にしてみた。
ミニマムインストールが終わったので grub-probe /boot したら、
grub-probe: error: unknown filesystem.
これだけでは何の事だかわからないので grub-probe -vvv /boot したら、
grub-core/fs/zfs/zfs.c:2116: zap: name = org.zfsonlinux:large_dnoe, value = e, cd = 0
やっちまったか……。

zpool create 時に -O dnodesize=legacy が必須らしい。
zpool create から全部やり直し。

OpenZFS on Debian GNU/Linux とセクタサイズ

zdb | grep ashift
したら、asfhit=9 だった。 AFT で 512B アラインメントは悲しいので、 ashift=12 にしようと思ったら。
またもや zpool create -o ashift=12 から全部やり直し。

OpenZFS on Debian GNU/LInux と圧縮

XFS 使っていた時と比べて体感で遅かった。
zfs set compression=off rpool
今度は create からやり直す必要は無い模様。 まあ既存のデータは圧縮されたままだろうけれど。

OpenZFS on Debian GNU/LInux と atime

あと zfs set atime=off rpool した。
ようやく体感で XFS と遜色なくなった感じ。

OpenZFS on Debian GNU/LInux と fstab

zfs のマウント情報は fstab には書かず、 zpool から自動的にマウントされるらしい。 で、fstab に zpool 以外のマウントを書いたら zfs より先に fstab の内容がマウントされてしまい困った。
そんな時は、fstab の該当行のオプションで
x-systemd.requires=zfs-mount.service
らしい。

OpenZFS on Debian GNU/Linux のブート

で、インストールが終わって 電源断して電源入れたら起動しない。
EFI のブート情報が揮発したらしい。
web で検索しても代替処置しか見つからなかった。 EFI起動用パーティション(FAT系)にて、 /EFI/debian/grubx64.efi を /EFI/boot/bootx64.efi に コピーして起動する様にはなったけれど。 いまいちスマートじゃない気がする。

OpenZFS on Debian GNU/Linux で TRIM

手動 TRIM のやり方がわからん。
fstrim コマンドは受け付けない。
zpool trim tank も受け付けない。
zfs autotrim も無い。
どうやら現在の Debian 10.6 buster に降りてきている ZFS on Linux 0.7.12 では未対応で、 ZoL 0.8.0 になるまで待て、 と言う事らしい。

考えるのが面倒になったので思考停止して、 buster-backport から ZoL 0.8系を突っ込んだら。
vmdk では trim 非対応らしい。 VBoxManage clonehd Debian_x86_64.vmdk Debian_x86_64.vdi --format=vdi で vdi に変換して、 virtualbox から vmdk を外して vdi をつないで、 VBoxManage storageattach Debian_x86_64 --storagectl SATA --port 0 --device 0 --discard on したら trim 対応になった。 vdi からの discard on は XFS でも通った道。 むしろ何故同じミスを繰り返した>私。

OpenZFS on Debian GNU/Linux で /usr と /var

FreeBSD だと、 /usr /と /var は、/ から分離するのが普通?なので、 OpenZFS on Debian GNU/Linux でもそうしてみた。
BusyBox でエラって起動しなくなった。
run-init: can't execute /sbin/init らしい。
/ を /root へ仮マウントした時点で /root/sbin/init が見えない (/usr/sbin/init にあるけど /usr が未マウント)から 駄目らしい。
1日無駄にした。

initrd の起動中にエラー

sh: write error: Invalid Argument.
とか言ってくる。 でもログに残らないので調べ様が無い。 initrd の手動操作なんて、 RT-Linux とか RTAI とかイジっていた時以来だから 覚えていないぞ。

ALSA がバッファアンダーラン

遠隔にあるマシンの画面を X で飛ばしたら、 ALSA が ALSA lib pcm.c:8424:(snd_pcm_recover) underrun occurred 出してきた。 まあ、処理遅延が発生しまくって バッファアンダーランなんだろうけれど。
~/.asoundrc に

pcm.!default {
        type plug
        slave.pcm "dmixer"
}

pcm.dmixer  {
        type dmix
        ipc_key 1024
        slave {
                pcm "hw:0"
                period_time 0
                period_size 1024
                buffer_size 32768
                rate 44100
        }
}

ctl.dmixer {
        type hw
        card 0
}

で応急処置。

Debian GNU/Linux で TrueCrypt/VeraCrypt

ライセンスの都合でバイナリパッケージが無いらしい。
zuluCrypt で代替できるらしい。

Sun,25 Oct,2020

GearHead1-GearHeart の更新。

GearHead1-GearHeart

武器リロード時に弾薬を指定できるチップを追加。

弾薬装填時のメッセージ表示を、 ReloadAmmo() から InstallAmmo() へ移動。

API に IsSubCom() と IsInvCom() を追加。

弾薬一覧を操作するチップを追加。

3D酔い

Sun,18 Oct,2020 の続き。

前回から1週間経ったし体調も悪くないしで再度、 アーマードコアV。
今回も酔った。 しかも開始15分で。 1時間とか2時間とかの、やりすぎで酔った訳ではない。 本格的に何だろう……。

Wed,28 Oct,2020

GearHead1-GearHeart の更新。

GearHead1-GearHeart

引数入力にて型名の表示をする様にした。

チップの引数に文字列型を追加。

Fri,30 Oct,2020

GearHead1-GearHeart の更新。

GearHead1-GearHeart

コメントだけ記述するチップを追加。

API に NPC_Speaks() 追加。

発言するだけのチップを追加。

超時空要塞マクロス 河森正治デザイナーズノート

12月にまたもや延期?

Sat,31 Oct,2020

FreeBSD と GRUB/GRUB2

FreeBSD の ports(package) から GRUB が消えていると思いきや。
UEFI で GPT な環境なら、 bcdedit で設定すればあとは BIOS から起動 OS の選択が出来るから、 GRUB は不要なのね。

値上げ

ヨドバシカメラの模型関連商品が値上がりして、 割引無しの希望小売価格通りになっている……。

GearHead1-GearHeart の更新。

GearHead1-GearHeart

サブルーチンコールにて複数のサブルーチンを使い分けられる様にした。

チップの遷移先が無かった場合に、 いきなり start に遷移するのではなく、 outofrnage へ遷移する様に変更。
outofrnage は、 サブルーチン圏内では RET 相当、 サブルーチン圏外では END 相当、 の処理にした。

武器管理を再編。

武器の種別判定にて、 グレネードの処理を間違えていたバグ修正、 手/足/尾の処理が無かったバグ修正。

弾薬のダメージクラスを取得するチップを追加。

API に Remaining_of_Ammo() 追加。 弾薬の残弾数を取得するチップを追加。

文字列型引数にて任意のコードが実行できるバグ修正。

サブルーチンコールに使えるラベル文字列のチェックを厳密にした。

文字列型引数と変数名引数にてエスケープを許容していたバグ修正。

Sun,01 Nov,2020

DX超合金?

来週発表って何だろう。 順当に考えると新作劇場版だろうけれど。
まあ参考出品で発売無しがバンダイだからなあ。
HI-METAL R トマホーク とか HI-METAL R ファランクス とか……。

GearHead1-GearHeart の更新。

GearHead1-GearHeart

弾薬の種別を判定するチップを追加。

状態異常を判別するチップを追加。

パーツ情報は取得できないルールらしいのでパーツ情報取得チップを削除。

引数の一覧から選択画面を大きくした。

チップの並び順と ts の並び順がズレていたのを修正。

ファイルを閉じた時にもメッセージを表示する様にした。

Sat,07 Nov,2020

GearHead1-GearHeart の更新。

GearHead1-GearHeart

マニュアルを分冊した。

Sun,08 Nov,2020

GearHead1-GearHeart の更新。

GearHead1-GearHeart

代入を MOV に変更。 ADD, SUB, MUL, DIV を大文字に変更。

文字列代入/文字列比較のチップを追加。

矢印アドレスの桁数を間違えていたバグ修正。

container_stamp.lua の出力後に空行を1行追加。

変形形態情報の取得チップを追加。

変形チップを追加。

Mon,09 Nov,2020

超時空要塞マクロス 河森正治デザイナーズノート

12月4日らしい。

Tue,10 Nov,2020

列車遅延

区間運休……。

Wed,11 Nov,2020

GearHead1-GearHeart の更新。

GearHead1-GearHeart

mingw-w64 のライセンス表記を忘れていたので追加。

Sat,14 Nov,2020

FreeBSD 11-RELEASE

初代 Core i5 なマシンが使えなくなって march=corei7 必須な理由が無くなり、 最低ラインが Core i5-4590 まで上がったので、 make.conf で CPUTYPE?=haswell TARGET_CPUTYPE?=haswell してみた。

Core i5-4590。 make buildworld -j4 に1時間14分。 make buildkernel -j4 に8分。
buildworld が1〜2割くらい速くなったのはなんでじゃろ。

memtest86+

USBメモリに syslinux な環境を構築して、 memtest86+-5.01.bin とか memtest86+-5.31b.bin を 選択して起動できる様にと考えて、 syslinux.cfg に kernel memtest86+-5.01.bin とか kernel memtest86+-5.31b.bin とか書いたら、 永遠に 0104 が表示されて起動しない。
syslinux は拡張子が bin だと CD ブートとみなしてしまうらしい。
拡張子の bin を削除して、 kernel memtest86+-5.01 とか kernel memtest86+-5.31b とか書いたら、 起動する様になった。
複数バージョンの memtest86 や SystemRescueCD とか Ultimate boot CD とかを、 1つの USB メモリに突っ込めて便利。

しかし今回の問題、 タイムスタンプ見たら2013年8月23日から引きずっていたらしい。 なにやってんだか……。

Sun,15 Nov,2020

GearHead1-GearHeart の更新。

GearHead1-GearHeart

メタ文字の記述間違いバグ修正。

保存ファイル名の生成時に拡張子の処理を間違えていて、 拡張子が消えていたバグ修正。

completeBaseName() と baseName() を取り違えていて、 ファイル名にドットを含んだ場合を正しく処理できていなかったバグ修正。

Save As 時にも上書き確認をする様にした。

ファイル上書き確認時にファイル名も表示する様にした。

引数入力時に accept() と reject() をし忘れていたバグ修正。 OK ボタン押下時のエラーを getErr() で取得できる様にした。

引数入力のエラー時にはリトライする様に変更。

引数入力時のデフォルトフォーカスを入力欄に変更。

モデルグラフィクスのセンチネル本

いまだに再販かかっていたのか。 息長いな……。

Mon,16 Nov,2020

バス遅延

道路渋滞の為、所要時間がいつもの倍。

システムトラブル

某所にて、 自動案内システムがシステムトラブルだとかで動かなくて、 全て人手で捌いていた為、1時間遅れ。 よその部署からも人をかき集めて人海戦術で捌いていたが、 それでも追い付いていなかった。 恐怖だな……。

GearHead1-GearHeart の更新。

GearHead1-GearHeart

必要なファイルが足らず起動できない時は、エラー出して終了する様にした。

必要なアイコンファイルが足らず起動できない時は、 エラー出して終了する様にした。

ファイル上書き時の確認メッセージ表示を、 QFileDialog::getSaveFileName() 側から、 自前処理に変更。

Tue,17 Nov,2020

GearHead1-GearHeart の更新。

GearHead1-GearHeart

翻訳ファイルを、アプリケーション個別定義とシステム共通定義に再分離。

Thu,19 Nov,2020

GearHead1-GearHeart の更新。

GearHead1-GearHeart

ini ファイルの読み書きをする様にしてみた。

iniファイルの置き場所を GearHead準拠に変更してみた。

iniファイルに変更が有った場合のみ書き込みする様に変更。

デバッグ用に MainWindow* debug_w 追加。

環境設定の ini からの読み込み/保存を追加。

主画面の表示倍率の設定保存読み込みを追加。

Fri,20 Nov,2020

GearHead1-GearHeart の更新。

GearHead1-GearHeart

環境設定の ini からの再読み込みを追加。

ini ファイル中のキー指定を直接記述から QString へ変更。

ini ファイルが無い場合は読み込まない様に修正。

主画面の表示倍率の設定読み込みの不具合修正。

ByteArray な geometry から、数値な pos, size に変更。

widget 配置を ini へ読み書きする様にした。

Qt でウィジェット配置の保存と再現

Qt でウィンドウ内にウィジェットを配置する場合、 普通は配置されるウィジェットの位置や大きさは指定せずに、 お任せにして Qt がいい様に取り計らってくれる。
でもそれだと、 ユーザーがウィジェットの位置や大きさを調整しても、 次回起動時に配置の再現がされない問題が有る。 対処法としては、 アプリケーション側で配置の記録と再現を実装するしかないらしい。

で、QSettings* ini を用意して、
ini->setValue(key.mainwindow_geometry, this->saveGeometry());
ini->setValue(key.mainwindow_state, this->saveState());
して
this->restoreGeometry(ini->value(key.mainwindow_geometry).toByteArray());
this->restoreState(ini->value(key.mainwindow_state).toByteArray());
したら、
アプリケーションのウィンドウ自体の
位置と大きさは保存再現されたけれども、
ウィンドウ中のウィジェットの配置と大きさはお任せのままだった。
あと、ini ファイルに保存される内容が16進ダンプなのでなんか嫌。
ini->setValue(key.mainwindow_pos, pos()); ini->setValue(key.mainwindow_size, size()); に変更して、 this->resize(ini->value(key.mainwindow_size).toSize()); this->move(ini->value(key.mainwindow_pos).toPoint()); する様にしたら、 ini ファイルに保存される内容が読みやすい数値表記になったけれど、 お任せ配置なのは変わらず。
各ウィジェットに対して、 ini->setValue(key.mainwindow_centralwidget_size , ui->centralwidget ->size()); ini->setValue(key.mainwindow_splitter_1V_size , ui->splitter_1V ->size()); ini->setValue(key.mainwindow_listWidget_size , ui->listWidget ->size()); (以下略)して、 ui->centralwidget ->resize(ini->value(key.mainwindow_centralwidget_size ).toSize()); ui->splitter_1V ->resize(ini->value(key.mainwindow_splitter_1V_size ).toSize()); ui->listWidget ->resize(ini->value(key.mainwindow_listWidget_size ).toSize()); (以下略)しても、 ini ファイルにはそれっぽい情報が保存されたけれども、 ウィジェット配置は再現されなかった。
ini->setValue(key.mainwindow_splitter_1V_state, ui->splitter_1V ->saveState()); ini->setValue(key.mainwindow_splitter_2H_state, ui->splitter_2H ->saveState()); (以下略)して、 ui->splitter_1V->restoreState(ini->value(key.mainwindow_splitter_1V_state).toByteArray()); ui->splitter_2H->restoreState(ini->value(key.mainwindow_splitter_2H_state).toByteArray()); (以下略)したら、 ウィジェットの配置が再現された。 なお、ini ファイルへの記述は16進ダンプになった。 あと、非レイアウト系?のウィジェットに saveState() とか restoreState() しようとしたら、 そんなメンバ関数は無いとエラッた。

非レイアウト?ウィジェットは size() と resize() で再現し、 レイアウト?ウィジェットは saveState() と restoreState() で再現する、 らしい。
この辺のノウハウ記述が、 Qt のドキュメントで見つからないんだよなあ……。 英語ドキュメントしかないから 見落としているのかもしれないけれど……。

Sat,21 Nov,2020

更地

工場だった所が整地工事中だった。 何ができるのだろう。

GearHead1-GearHeart の更新。

GearHead1-GearHeart

QSettings の Key-Value で使うキーを、 class MainWindow 内から namespace Settings 内へ移動。

引数入力ウィンドウの位置サイズを ini へ保存読み込みする様にした。

引数選択ウィンドウの位置サイズを ini へ保存読み込みする様にした。

引数入力ウィンドウと引数選択ウィンドウにて、 ウィンドウ内ウィジェットの配置を決め打ちから自動レイアウトに変更。

引数入力ウィンドウと引数選択ウィンドウの位置サイズも、 自動保存をやめて、ユーザが明示的に保存した時のみ保存する様に変更。

超時空要塞マクロス 河森正治デザイナーズノート

入荷予定の書店少ないな。 取り寄せしないと駄目か……。

Sun,22 Nov,2020

ELECOM UC-SGT(S/N 末尾が B)

MS-Windows 8.1 (64bit) だと、不明なデバイス、になった。
FreeBSD 11.4-RELEASE/amd64 だと認識したし、 ちゃんと /dev/cuaU0 も生えてきたので使えそう。 ディスクのサルベージ用の PC-9801 から、 外部メディアに接続できる PC/AT……とは今は言わないか、へ 接続する手段が確保できればよく、 どうせ Z-MODEM 転送しか必要ないので、 lrzsz で転送できれば。

なお、その PC-9801 用 IDE HDD を USBな変換アダプタで PC/AT? に接続したら。 40MB HDD はデバイスの認識すらせず。 240MB HDD は物理デバイスは認識したけれど、 論理デバイスを認識しなくて、 物理デバイスに対して dd とか ddrescue とか dd for windows(http://www.chrysocome.net/dd の方)とか 使っても、 容量不明で読み出せないとのエラーで読み出せなかった。
気になるのは、 240MB HDD を接続したら物理デバイスを2つと認識した事。 なんでじゃろ。

シリアルナンバー

シリアルナンバーを 黒地に黒で表記するのはやめてくれ……>ELECOM
上記の UC-SGT なのだが、 半透明のスモークグレーの筐体に、 透明シールに黒で印字したシールで貼ってあって読めなかった。 シリアルナンバーの末尾のアルファベットで 使用するドライバが違うと説明されているのに判別できないって……。 結局、一旦剥がして読んで貼り直した。

更地

駅近くに更地ができていた。 何が有った所だっけ……?

Anthy:拙作パッチの旧安定版(stable),安定版(release),試験版(testing)更新のリリースノート:

かな漢字変換 anthy で、個人用学習データを活用して、なんかもう思い付く事を何でもかんでも試してみて、変換結果の改善を目指すパッチ

かな漢字変換 anthy で、個人用学習データを活用して、なんかもう思い付く事を何でもかんでも試してみて、変換結果の改善を目指すパッチ

かな漢字変換 anthy で、個人用学習データを活用して、変換結果の改善を目指すパッチ

例文追加。ブートストラップ学習を更新。コーパスデータベースを更新。

Thu,26 Nov,2020

uim-anthy の改造パッチ

uim-Anthy のキーカスタマイズで大文字と小文字を別のキーとみなすパッチ(Canna+kinput2風)

uim-1.8.8に対応。

Fri,27 Nov,2020

ヨドバシ.com にログインできない

まただよ……。
前回の、 Sat,04 Jul,2020 と同じ現象。

Sat,28 Nov,2020

転送速度のベンチマーク
転送速度のベンチマーク
接続方法Read : SEQ 1MiB Q=8,T=1Read : SEQ 1MiB Q=1,T=1Read : RND 4KiB Q=32,T=1Read : RND 4KiB Q=1,T=1
USBメモリ、USB3.0接続99.619 MB/s99.194 MB/s9.658 MB/s9.382 MB/s
USBメモリ、USB2.0接続39.217 MB/s39.427 MB/s7.295 MB/s7.155 MB/s
USBメモリ、USB3.0接続(隣接ポートにUSB1.1接続有)99.618 MB/s98.991 MB/s9.687 MB/s9.430 MB/s
HDD, SATA接続、C:170.287 MB/s171.114 MB/s0.801 MB/s0.441 MB/s
HDD, SATA接続、D:176.171 MB/s179.332 MB/s1.123 MB/s0.507 MB/s
HDD, SATA接続、E:175.507 MB/s172.598 MB/s1.238 MB/s0.563 MB/s
HDD, SATA接続、F:150.356 MB/s149.116 MB/s1.307 MB/s0.575 MB/s
HDD, SATA接続、Z:182.454 MB/s179.715 MB/s1.382 MB/s0.643 MB/s
プロバイダ

ネットワーク接続が死んだ。 まただよ……。今使っているプロバイダ、 一度接続が死ぬと再接続まで30分かかるんだよな……。

Sun,29 Nov,2020

FreePascal 3.2.0 on FreeBSD

FreeBSD のバイナリパッケージに FreePascal 3.2.0 が来ていた。

Free Pascal Compiler version 3.2.0 [2020/11/26] for x86_64
Copyright (c) 1993-2020 by Florian Klaempfl and others
Target OS: FreeBSD for x86-64
Compiling gharena.pas
gharena.pas(32,6) Warning: APPTYPE is not supported by the target OS
Linking build.sdl.FreeBSD_amd64.default/gharena
gharena.pas(272,1) Error: Util /bin/ld.bfd not found, switching to external linking
gharena.pas(272,1) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted
Error: /usr/local/bin/ppcx64 returned an error exitcode

だと。なんだろう。

追加 doc に書いてあった。
環境変数 FPC_LDPATH に ld の在りかを書く必要が有るらしい。 export FPC_LDPATH=/usr/bin/ld でいいのかな。

Sat,16 Jan,2021 に続く。

GearHead1-GearHeart の更新。

GearHead1-GearHeart

変形関連のチップ追加の準備。

statusBar2 のメッセージ生成が無駄に分かれていたので統合。

画面左の treeWidget を翻訳対応にした。

Wed,02 Dec,2020

GearHead1-GearHeart の更新。

GearHead1-GearHeart

QRLチップ一覧の表示の展開状況を、ini へ保存読み込みする様にした。

Fri,04 Dec,2020

拡幅工事

しばらく前から、 踏切が拡幅工事をしていた。

値引き

昨日特売で@88- だった商品が、 今日は@68- だった時の微妙な悲しみ。

ポイント還元

通販での買物時に、 ポイントサイト経由を忘れた時の微妙な悲しみ。

Sat,05 Dec,2020

ヨドバシ.com にログインできない

今日も今日とて Access Denied。 Sat,04 Jul,2020 と同じ現象。

コンビニ跡地

駐車場だった所にセブンイレブンができて、 数ヶ月で閉店してそのままになっていた所が工事を始めていた。 今度は何ができるのだろう。

本の在庫

マクロス河森正治デザイナーズノート、 今朝在庫数を見たら3店舗有りだった所を、 今見たら2店舗有りに減っていた。

でも近所の書店は、 どこも在庫無しなんだよなあ。

プラモデル

チェルノブイリ除染員プラモって売れるのか?

Sat,05 Dec,2020

Debian 10.7 GNU/Linux のコンソールでタブレットを使う方法

Debian 10.7 のバイナリパッケージの gpm だと、 VirtualBox の仮想タブレットを認識してくれなかった。 仕方がないのでソースパッケージから gpm にパッチ当てて対応。

ソースパッケージからビルドする準備をしてから適当な作業ディレクトリで
% apt source gpm
して、そこに archlinux GNU/Linux の gpm-vm のパッチ gpm-23.patch を当てて、
% debuild -uc -us -b
でビルドして、
% sudo apt reinstall gpm_1.20.7-5_amd64.deb libgpm2_1.20.7-5_amd64.deb
でパッチ済みの gpm に差し替えて、
% echo "gpm hold" | sudo dpkg --set-selections
% echo "libgpm2 hold" | sudo dpkg --set-selections
でパッチ済みの gpm パッケージをロックして、
/etc/gpm.conf に
device=/dev/input/event2
type=vbox
等と書いて、
% sudo /etc/init.d/gpm restart
で gpm を再起動。

以上でタブレットを使える様になった。

Wed,09 Dec,2020

本屋の取り置きサービス

店頭で取り置きを頼むと1ヶ月待ってくれるのに対して、 オンラインから取り置きを頼むと7日しか待ってくれない。
なんでだろう。

Sat,12 Dec,2020

メモリ不足

メインメモリ 8GiB、スワップ 4GiB なマシンで、 メモリ食い潰して落ちた。
12GiB で足りなくなるとは思わなかった……。

Sun,13 Dec,2020

Qt5-5.15.2 on FreeBSD

Qt5-5.15.2 が、 FreeBSD のバイナリパッケージに降臨し始めた。
Qt 5.15.0 の Qt側のバグにより、 FreeBSD 提供の Qt5 のバイナリパッケージの更新が止まってから だいぶ経ったな。
5.15.1 はスキップかな?

MS-Windows でディスククラッシュ

MS-Windows でファイルシステムの不整合?が出た。
結論としては、 高速スタートアップが有効になったままシャットダウンして、 別 OS から MS-Windows 領域へ書き込みをしていた為だった。
Windows 8.0/8.1 から シャットダウンが高速スタートアップ状態になったのを忘れていたよ。

OpenZFS on Debian 10.7 GNU/Linux で引越

PC 1台で、ZFS 領域を新旧2つ用意して、 引っ越しをしてみたのだが。
やるんじゃなかった……。 激しく面倒で手間がかかった。

やるなら、 PC 2台用意して転送するか、 PC 1台なら新・旧・ライブの3つの環境を用意して ライブ環境で起動して旧から新へ転送するか、 どちらかにした方が良さそう。

Debian 10.7 GNU/Linux で Capsキーを Ctrlキーへ差し替え

/etc/default/keyboard で XKBOPTIONS="ctrl:nocaps" するだけでは駄目だった。
なんじゃそりゃ。 Debian 9 辺りでは出来ていたのだが。

Debian 10.7 GNU/Linux で Shift + 0 を ~ へ差し替え

真っ当なやり方がわからん。

Debian 10.7 GNU/Linux でキーマップ変更

えらい手間取った。

/etc/console-setup/remap.inc に、
上記の Shift + 0 を ~ へ差し替えと、
CapsLock を Ctrl に差し替えと、
一緒くたにして、

shift keycode 11 = asciitilde
keycode 58 = Control

適当に差し替え内容を記述するだけ。

……。 駄目だ。 再起動すると console-setup が呼び出されなくて、 キーマップ変更が読み込まれない。 systemd わけわかんないよ。

無駄に疲れた。

Fri,18 Dec,2020 追記:
sudo dpkg-reconfigure -phigh console-setup
sudo update-initramfs -u
したら再起動してもキーマップ変更が読み込まれる様になった。 なんで initrd が影響するのだろう。 わけがわからないよ。

Sat,19 Dec,2020 追記:
/etc/default/keyboard や /etc/console-setup/remap.inc を 書き換えた後に、
sudo dpkg-reconfigure -phigh console-setup
sudo update-initramfs -u
の両方ともしておかないと、 再起動した時に反映されない事に気付いた。 dpkg-reconfigure は当然としても、 update-initramfs はなんでだろう……。

Mon,14 Dec,2020

Microsoft の Windows Update

Windows10 1909→2004の 強制アップデートが始まったのだが。
インストール中です表示が始まってから8時間半経って、 ようやく再起動して下さい表示。
そこから再起動したら、 PC の電源を切らないで下さい表示が3時間。
これには数分かかることがあります表示が15分。
合計約12時間かかった。

Sun,20 Dec,2020

WEB I/F からの環境設定

とあるサービスにて 環境設定の変更をする必要に迫られたので、 公式 Web サイトのメニューから環境設定をクリック……、
サブメニューが出てこない orz。
散々試行錯誤した挙句、 数ヶ月(実働は数日)かかって辿り着いた結論が、
user agent を Android に偽造しないとサブメニューが出てこない。
なんなんだよそれは……。

更新周期

最近のディスプレイのリフレッシュレートは 120Hz とか 360Hz とかあるらしいれど。
USB 1.1 Low Speed の更新周期って 100Hz じゃなかったっけ。
ディスプレイの反応速度が 120Hz とか 360Hz とかあっても、 キーボードやマウスの反応速度が 100Hz じゃ、 ラグるんじゃないかなあと思った。 ゲーマーとかシューターとかどうするんだろう。

うちのキーボードとマウスと ジョイスティックとジョイパッドを全部調べてみたら、 マウス1つと ジョイパッド1つ(具体的には DUAL SHOCK 3 CECH-ZC2J だけ)が Full Speed だった。
と言う事は、最高で 1000Hz 出るのか。 もっとも最高速度を出しているのか否かはわからんけれど。 どうやったら調べられるのだろう。

Armored Core V

アーマードコアフォーアンサー からの アーマードコアV。

控えめに言ってつまらなかった。 肌に合わないとでも言ったらよいか。 あと、開始15分でおもいっきり 3D酔いした。

システムは、4/fA では唐突に 高速高機動高運動なゲームに良い意味で変革していた印象があるれど。 今度はうってかわって……何と言ったら良いのか……。 通常は動きが遅いけれど、ブーストで短時間だけ妙に速くなる。 この速度差についていけずに 3D酔いした感じ。

攻撃と防御がジャンケン方式に変わった。
個人的にこの変更は大嫌い。
攻撃と防御に属性が3種類(KE,CE,TE)有る。 例えば、KEに強い防御に対して KEな攻撃属性の武器でいくら攻撃しても、 ダメージがほとんど入らない。 逆にKEに弱い防御に対して KEな攻撃属性の武器を使うと、 容易とまではいかずともガリガリ削れる。
この属性は、ブリーフィングではあまりわからず (たまにブリーフィングで説明してくれるミッションがあるにはあるが)、 実際の戦闘中に戦闘モードから (攻撃が一切出来ない)スキャンモードに変更して調べると、 わかる様になっている。 戦闘中に攻撃を止めるなんて死にたいのかお前は状態。 それにわかったところで機体構成の交換は基本出来ない (ストーリーミッションでは特定の場所で有償換装が出来るが、 周辺の敵を掃討済みでないと拒否されるのでニワトリタマゴ)。
結局、 ミッション毎に捨てプレイを1回やって調べるか、 攻略本か攻略サイトを見るか、する事になる。
この、捨てプレイか攻略を見るかしないと対処できないのが嫌。

ミッションが、 ストーリーミッションと オーダーミッションと 決戦ミッションの 3系統に分かれた(オフラインの場合)。
ストーリーミッションの1つのミッションはやたら長い。 途中コンティニュー出来るポイントは有るが セーブは出来ないのでやっぱり長い。
オーダーミッションは短時間でサクッとできるが無駄に数が多い。 しかも似た様なミッションばっかりでマンネリ。
決戦ミッション(オフラインモード)は オーダーミッションと大して変わらない。 ただ、チームポイントを 3000point 賭けて勝負に挑み、 負けたら 3000point 没収、 勝っても 3000point が戻って追加で +160point。 ストーリとオーダーを全クリで 40000〜45000 くらい貯まったので、 決戦ミッション(オフライン)で 13〜15連敗くらいはできる勘定。 で、実際に決戦ミッション(オフライン)に挑んだら、 決戦ミッション(オフライン)コンプリート時点で 17000 しか残らんかった。 決戦ミッション(オフライン)8つに対して、10敗くらいした勘定。 勝率悪いな……>自分。

オーバードウェポン OW の使い方が把握できなかった。
ええと、最低限、コアと脚とジェネレーターを、 OW 対応のパーツに換装しておかないと使えないんですかね。
それから、戦闘中に OW に武装交換して、 無防備状態でチャージを始めて満タンまでチャージしてからでないと、 撃てないんですかね。
当たれば一撃必殺だけれども 私の腕前じゃ NPC 相手でさえ当たらない orz。 戦闘中にゾディアック AC に 当てるなんて無理。
あと、web で攻略サイトを見てみると、 「MULTIPLE PULSE は オーダーミッション全クリで入手」 との記事を見かけたが間違いで、 「MULTIPLE PULSE は ストーリーミッション全クリと オーダーミッション全クリの両方をこなすと入手」 だった。 どっちみち当てらんないんですけど orz。

標準装備のレーダーが無くなった。
RECON(リコン)で調べるらしいけれど 結局使い方を把握できずに全クリ。

戦闘モードとスキャンモードの切り替えが面倒。
戦闘中に攻撃停止しないと調べられないなんて死にたいのか。

廃品回収が面倒。
結局無視した。

ゲームデータの大部分は初回起動時に HDD にコピーしているらしく、 プレイ中の待ち時間は短くて快適。

お金は普通にプレイすると、 全クリまでに 2500〜3000万くらい入手する模様。 たぶん。 勘定を間違えていなければ。
うち、2000〜2500万くらいが パーツやエンブレムやガレージやらのコンプリート代に消えて、 オーダーとストーリの全クリ時点で手元に残ったのが 500万。
途中で注意していれば 1000万のトロフィーは容易に達成できるが、 無駄遣いすると駄目。
その後、決戦ミッション(オフライン)やったら、 残金 700万くらいになった。

レベルは普通にプレイすると、 全クリまでに Lv52〜Lv53 に到達した。
Lv50 で店売りパーツ全開放らしい。
決戦ミッション(オフライン)で無駄遣いしなければ余裕。

全クリしても ミッションの選択画面が GUI のみなのが不便。
4 や fA では一覧画面で選択できる様になったけれど、 V ではそれが無い。
サブクエストのクリア状況一覧も無い。

セーブデータをUSBメモリ等にコピー出来ないのが嫌。
PlauStation Plus にはコピーできるけれど、 有料サブスクリプションでしょうそれは。 月額基本料金を永遠に払い続けるのは嫌なんですよ。 全クリ前にハードウェアが壊れてセーブデータを失ったら どうしようとか、 懐ゲーとしてやりたくなった時に 本体が壊れていたらセーブデータ失うしとか、 思っちゃう心配性だし。

Tue,22 Dec,2020

駐車場

駅前の不動産屋のビルが、 だいぶ前に更地になっていたのだが。 今日は駐車場が出来上がっていた。

Sat,26 Dec,2020

キューブ系パズル

Thu,28 May,2020 の続き。

ルービックからは発売されていない 1x2x3 とか 2x2x1 のキューブ系パズルを、 triboxストア と言うお店から購入してみた。
注文の翌営業日には発送されていた。早いな。
web上の注意事項通り、潤滑油モレとかスレ傷とかあったけれど、 動きは滑らかだった。 物は made in china だった。

両方とも難易度はメッチャ低い。 撹拌しているうちに、 いつの間にかそろっているくらい構成パターンが少ない。

2x2x1 は、貼ってある色シールの表面がザラザラした物だった。 あとロゴの文字はシール切り抜きでの表現だった。

1x2x3 は、貼ってある色シールの表面がツルツルでスベる。 あと、キズや汚れがかなりある。

Sun,27 Dec,2020

GearHead1-GearHeart の更新。

GearHead1-GearHeart

tr() まわりの処理を大幅変更。

Mon,28 Dec,2020

転送速度

PlayStation3 で USB メモリへのコピー 16GB に 35分。

7.8MB/sec くらい?

Tue,29 Dec,2020

セキュリティ対策としてのスマホ認証

複数の銀行や証券会社が、 「スマホ認証を登録していない口座は手数料無料優遇を取りやめる」とか、 「スマホ認証を登録していない口座からの出金は制限する」とか、 発表しているが。
スマホを持っていない人は救済策無しに切り捨てなのだろうか。
プレスリリースでは「不正利用対策として」と言ってはいるが。 ガラケー/ガラホの利用者救済で SMS 認証とか、 固定電話/ガラケー/ガラホの利用者救済で電話番号認証とか、 電話が駄目ならワンタイムパスワード生成トークンとか、 パソコンのみ利用者の救済で YubiKey とか、 やり様は有るだろうにやらないって事は切り捨てなのだろうか。

ゆうちょ銀行は、今まで採用していた ワンタイムパスワード生成トークンの無条件有料化、 無料の認証サービスはスマホのみ、に、はしった辺り、 切り捨てとしか見えん。 ゆうちょ銀行の手落ちで 不正利用被害の大量発生出した挙句、切り捨てで対策とは。

住信SBIネット銀行は、 その他の対策を一切無視して 手数料優遇条件にスマホ登録必須にした辺り、 切り捨てとしか見えん。 あと入金でも手数料取る様に変わるのか。

あおぞら銀行は、 メールワンタイムパスワードを廃止して、 スマホ認証か、郵送か、電話番号認証か、どれか選べ、か。 折り合いを付けた気がする。

楽天証券は、 出金時認証は選択式で SMS 認証、 出金口座変更は郵送か SMS の選択式。 折り合いを付けた?

SBI証券、 全ユーザのパスワードと取引パスワードの強制変更に踏み切ったのは、 やらかしたからなのだろうか。

マネックス証券は、 出金時認証は選択式でスマホ認証、 うーん。

銀行全般に言える事だが、 口座番号とキャッシュカード暗証番号で ネットバンキングの利用開始やログインできる様に変更しているのは、 下策どころか駄目な気がするのだが。

パスワード強制変更

某所にて、 3ヶ月毎のパスワード変更、 過去3回で使用したパスワードは使用不可、 を強制されていたのだが。 ようやく取りやめるらしい。
「NIST の発表を受けて」変更したとの事だが、 それって1年半遅れだよね。

alt-cannadic の私家改造版

「織り合い」(|おりあい|)とか出ちゃうのは、 私が勝手に D2W5 とか追加したせいだろうな。
相変わらず手動での辞書メンテナンスは厄介だな。

Thu,31 Dec,2020

大晦日

T/O

マウス

マウスの中ボタンの調子が悪くて、 押しても入力されなかったり、 チャタリングしたりする。 また壊れたかなあ。

Sat,98 Jan,2021 に続く。

カメラ

長い事使っていた携帯電話内蔵 LEDフラッシュライト付きカメラが駄目になったので、 同じく携帯電話内蔵 フラッシュ無しのカメラに乗り換えたのは半年以上前。
……。
フラッシュ無しだと真っ昼間の太陽光が差している状態でも 写りが暗い……。
あと、 どう足掻いても専用機には敵わないか。

LED スタンド

2年くらい前に、 白熱電球のスタンドから、 無調光の安物 LED スタンドに買い換えたのだが。
明るさ自体は十分すぎるのだが、 ピンポイントでまぶしくて対象物がテカってしまい、 その周辺はちょっと暗くて、 いまいち使いにくい。
多階調の方が良かったのかなあ。 あと、 光の明るさだけでなく、光の広がり具合も割と重要なのね。


2021年の1に続く。


FENIX HomePage
G-HAL HomePage
Mail to, メールはこちらへ
Suggestion Box, 投書箱
BBS, 掲示板 UserName:BBS、Password:BBS
(C) 2020 G-HAL