Tatsu still writes something... Fourth season

これからも私はなにかをしてなにかを書く

緊急データHDD交換

トラブルは突然に

現在メインマシンになっている9世代i5マシン、昨日は諸々の整理をしてNASに必要なデータは転送し、バックアップも採った。

夕食の時間が来たのでWindows 11はすぐ寝るからいいだろうと放っておいて夕食。で、案の定寝てたので起こしてやったら事態発生。

あれ?データディスクの中身が見えない!イベントビューアーを見るとdiskのエラーが大量。CrystalDiskInfoではスピンアップエラーが大量。

少し前にも少量diskのエラーがでていたのだが平日だったので様子見となったがここに来て大量に出るとは。

対処開始

とりあえずシャットダウンして(高速スタートアップはマルチブートなので使ってません)電源コードを引っこ抜き、ディスクをCore2Duo時代に予備で取っておいたものに交換。今回はCOOLER MASTER Cosmosだったので両サイドパネル外すだけでかんたん交換。

前のディスクを何かと使うので買っていたSATA外付け台に入れてMiniTool Partition Wizardでクローン。

なんとか間に合ったようでデータに被害はなさそうだ。被害があったらNASやバックアップHDDから持ってくればよいし。

あとはゼロクリア。なんとか間に合ってよかった。

寿命って?

壊れたメインマシンのHDDは2014年製、交換したHDDはCore2Duo時代の予備の2017年製、後は2021年製が予備であるので後1回はなんとかなりそうである。

基本的な部品はメインマシンが2018〜2021年、サブマシンが2022〜2023年と年式が揃ってはいるがストレージが謎すぎる。

Barracuda 7200.12が生き残っていたり、2014年に買ったMLC SSDが生き残っているあたりは実に不気味である。

極めつけは40,000時間で未だ正常判定の中古ノートのHDD。これは流石に入手時に入っていたWindowsと基本道具、どうでもいいデータ以外は入れてないけど。

反省

最初にイベントビューアーを見てdiskにエラーがでたときにサブマシンとNASにデータ入れておいてしばらくサブマシン使ってメインマシンを休眠させて週末にディスク交換をすべきだったと思う。

サブマシンはソフト開発で色々使ってたからデータよく同期してたし、いろいろなマシンで個人家計簿書いてたのでNASともしばしばデータも同期してたのと気まぐれにバックアップ取ってたので問題なかったけど。それでもタイミング次第では危なかった。

GeForceのドライバ問題でWindows Updateから入ってくるドライバを使ってたサブマシン、あらかじめこの状態でもう少し安定性見ておくべきだったなぁ。そうすれば安心して任せられたのだが。

あと、最近GitHub用事が多いのでLinuxマシンもコミュニケーションは取れるようにしておくべきだった。

高DPIディスプレイでないと分からない物

4Kで動かして初めて分かった物

GitHubのIssueを見ると何かと4K等の高DPIでのIssueが目立つようになってきた。

また、職場でも4Kディスプレイを使うようになるとフォント倍率の関係で作業領域が圧倒的に広くなるわけではないけど広くなった画面やきれいさを増したフォントを見てほしくなった。

で、アマゾンプライムデーで4Kディスプレイを即決で購入、DispleyPortがあるマシンがないので、今ある電源の出力の範囲でDispleyPortがあるグラフィックボードも購入する。おかげで、別な遊びも遊べるようになったがドライバで悶絶したのは別な話。

実際に4K等の高DPIにするとそれに応じて見えないけどウインドウ枠とかの初期設定もDPIの分の倍率がかかって増えて、これが原因で一部ソフトの表示が変になるということが計算の結果分かった。

というわけで早速Windowsカスタマイズシリーズの対応を始めた。

続きを読む

Windowsフォームいい加減古いよなぁ(MulSync Version 2.0.4)

あれ?これつけたよね?

ほとんどサポート掲示板となっている自分のWebページの掲示板を見ていたら同期対象フォルダの参照ボタンがないぞという報告が来た。さすがにそれは間抜けな自分でもつけるだろうと思っていたらウインドウの大きさの関係で表示されていなかったというオチがついたのだが、前々からウインドウをリサイズするとボタンの位置関係がなんか微妙だったので直すことにした。

DockとかAnchorとか当てにならない

で、ボタンの位置関係はリサイズするごとに再配置しているのだがよく見る記事ではやれDockいじれ、Anchorを左右にと言うのがゴロゴロ出てくるのだが、TableLayoutPanel - GroupBox - FlowLayoutPanel 縦 - FlowLayoutPanel 横とくっつけているとどこで連結関係を見失うのかリサイズするとボタンは右に行くばかり。

結局Anchorは上と左だけ、Dockは知りませんで計算だけでリサイズすることでなんとかなった。

あと、問題になっていた右端の参照ボタンが見えなくなる問題はデザイン時の大きさより横のテキストボックスが小さくならないのでフォーム(ウインドウ)等のMinimumSizeを設定してこれ以上は小さくしないことで解決した。

この辺のレイアウトマネージャー、Javaでは20世紀から動いているのだが2005年の.NET Framework 2.0でついたにもかかわらずこのざま。何やってるんだよという感じである。

.NET Framework は2.0で今に続く形となった格好ではあるが、このレイアウトマネージャー関連とか、VB.NETの半端な先祖返りでさらなるVB.NETの複雑化を招いた事を考えると案外過大評価な部分もあるのかなと思った次第である。一方、この頃からC#は少しずつ小技が効く言語になり始めていたのだが。

タコなのはWindows Forms

しばらく前から高DPI対応に対するWindows Formsの対応のしょぼさとかWinUI3の配布の難しさとかを見てWPF版MulSyncを少しずつ作っているのだが、こっちでは変な計算をすることなくボタンがはみ出ないレイアウトを実現できている。

そう考えるとWindows Forms、高DPI対応といい、Javaのレイアウトマネージャーという手本が遙か前に出ているにもかかわらず計算が変とかということを考えるともう新規開発では使うべきではないと思うようになってきた。メンテナンス案件とシンプルなのを生かして使い捨て書き殴りないし、長く使わない物用というのが居場所なのかなと感じた次第である。

続きを読む

UserLAndで遊ぶ

何やってるんだか

GWなので、今週のお題「何して遊ぶ?」ということなのだが、3月に残業代使って群馬に旅行行って足尾銅山碓氷峠鉄道文化むら富岡製糸場行ったので特に旅行に行くネタもない、ジムは祝日なので休みということでこのGWは趣味としてのコンピュータいじりでもしてすごそうかと。

で、昨日MulSyncリリースしたけどもう一つやったことがあったのでメモ。

AndroidスマホにUserLAndというデスクトップLinux環境作るアプリがあるので、それで遊んでた。こういうことできるくらいスマホのストレージの容量が大きくなっているので現実的になったというわけで技術進歩恐るべしという物である。

で、Ubuntuばかりだと飽きるのでDebianLXDE入れてそこそこ形になったのだが、色々と面倒な点があったのでちょっとメモしておく。

ここからの話は2023年5月1日の話。なので、読み返すときはご注意を。

始まりは窓1個から

UserLAndの以前のバージョンではデスクトップ環境が入った物をダウンロードして使い始めることができたのだが、今はデスクトップ環境が入った物をダウンロードには課金が必要になったので、本業の勉強も兼ねて構築やってみるかということでやってみる。マイクロサーバーとかだとPCのような環境はないので立ち回りの勉強になるし。

で、Debianvncログインでスタート。あるのはtwmの窓一個。というわけで、何をするにもこれがないと始まらない物を入れておく。

sudo apt install dialog
sudo apt install vi
sudo apt update
sudo apt upgrade

セットアップの中で何かとtui選択にdialogを使うのだが、入ってないのでインストール。設定いじるのにエディタは必須だけど入ってないのでvi(m)。これがないと始まらない。あとは、まあ、Debian系のお約束。

それでは一発LXDEいってみるか

Debianエコシステムはとんでもない物で、ちまちま必要物をインストールしなくてもメタパッケージでデスクトップ環境入るので、使わせてもらう。

sudo apt install task-lxde-desktop

さて、ぶっ壊れた依存関係直すか

メタパッケージでデスクトップ環境入れたのはいいが、PCほどには設定が洗練されていないので、インストール中に依存関係のエラーが出る出る。放置していると何を入れるのもままならなくなるので直す必要がある。というわけで、一つ一つ修復していく。

エラーメッセージの依存している~はまだ設定されていませんというメッセージを見て、次の作業をコマンドを実行して無理矢理設定を行う。~は設定ができてないパッケージ名とする。

sudo rm /var/lib/dpkg/info/~.postinst
sudo dpkg --configure ~

まずは、dbusが大量に引っかかるので、そこからか。

日本人なら日本語が使えなきゃ

ということで、依存関係が一通り片がついたら日本語環境を整える。

sudo apt install task-japanese
sudo apt install locales-all

といったところで基本的な物を入れる。

で次。localectlは ない のでdpkg-reconfigureを使う。

sudo dpkg-reconfigure locales

ここはtui選択なので、ja_JP.UTF-8を選んでおく。UTF-8万歳。UTF-8ができる前にUCS-2にいったWindows残念。

デスクトップ環境には

sudo apt install task-japanese-desktop
sudo apt install ibus-mozc

としておく。この辺までやって切断 - セッション終了 - 再起動。おお、日本語デスクトップ環境だ。W-ZERO3シリーズを思い出すけど、遙かに洗練された環境だ。

勝利の証

とりあえず、勝利の証としてaisleriotソリティアなどインストールしてみる。

sudo apt install aisleriot

これで広告なしでフリーセルが遊べるぞぉ。ってWSLでもやったなぁ。

画面ちっさ

さすがにスマートフォンの画面は小さいので調節する。

まず、解像度は/usr/bin/tightvncserverを編集する。

$cmd .= " -geometry 

で始まる行があるので、自分は

$cmd .= " -geometry 1024x1024"

として、縦画面を考慮した1024×1024とした。これでソフトウェアキーボードを出すと良い感じになった。

あと、スマートフォンはDPIが高いので~/.Xresourcesに

Xft.dpi:168

と書いて168dpi、Windowsでいうところの175%とした。

あとは、LXDEの設定を色々といじってそれなりに使えるようにした。

他プログラムとの連携

UserLAndの/storage配下はAndroidからも見えるので、そこにファイルを置くとアクセスできる。

ということは、LibreOfficeががぜん使えてしまうぞ。

タブレットBluetoothバイスがあると本気でデスクトップとして使えてしまうぞ。

できてないこと

後は、日本語入力の設定のやり方が依然として分からないんだよなぁ。

キーボードの設定も絡んでどうやってるんだろう?

まだ、速度稼げた

もう少しだけチューンできたので

もう少しだけチューンできたのでMulSync Version 2.0.3をリリースしました。

細かい速度稼ぎくらいですが、日常使っているとどうしても気になるので作成したという次第です。

今までは少しずつMVVMの勉強とか、WInFormsでは高DPIへの対応がどうしても今ひとつだったり、ちょっとしたレイアウトでもリサイズすると微妙におかしかったりと今ひとつだったのでプログラムの構造をばらしたり、.NET6のWPFGUI書いてみたりと言うことを進めていましたが、仕事が忙しかったり、他の事していたりとなかなか進まなかったのが現状だったりします。

まだ、速度稼げた

4月になってC#でなるべく速度を稼ぐ必要がある仕事をしたあと、ふと今までのソースを見ているとまだ少しだけ速度を稼ぐ事が分かったので、少しずついじってみたというのがここ数日だったりします。無駄にボクシング起こしていたり、一度配列にしておけば境界チェック削れたとか、細かいことを行って、少し削ったというのが今回のリリースというわけです。

とはいえ、.NET Framework 3.5というのもさすがにないのでこれはこれで仮想マシンとか用として、この後は伸びしろを増やすべく次世代版に手つけていきます。

ああ、なぜC言語の文字列関連関数は符号ありをとるようにしたんだろう?

というわけで

BookSync Version 2.12.1です。

調査していてふと思ったのでタイトルにはしてみましたが、ぶっちゃけ言うとサロゲートペアの処理ミスです。

UTF-16からUTF-8へ変換するときにサロゲートペアの処理をミスっておかしくなったと。

というわけで修正した物をリリースしました。

ここからは昔話になりますので興味のない型は読まなくても良いです。

続きを読む

Just for fun or not for fun?

つまらない日々

Chromeが覇権とってから何年経ったのだろう?気がつきゃ、EdgeとかBraveとか似非Chromeばかり。実につまらない日々だった。右クリックすりゃどれも一緒、ネットにつながらなきゃ恐竜。

それと、スマホ同期との絡みもあってBookSync最後にイジってから気がつきゃ、2年半が経っていた。

何もしてないわけではなく、各国の何たらUIというフォントにぶち切れた人々の相手をしていたりしていたわけだが。

続きを読む

Visual Studioが腐ってたので直した

コンパイルできない?

仕事の関係もあり、久々にC++の勘を取り戻そうかと自分のプロジェクトをイジっているときに事態は起きた。

「winnt.hをインクルードするときにctype.hが見つからない」とな?

Visual Studio 2008もインストールしていたWindows 10マシンで、こっちでもコンパイルできるようにしていたのでこっちでコンパイルすると無事コンパイルできた。

自作ソフト色々と扱うために色々入れていたWindows 10マシンだったので、今度はすっきりとしたWindows 11マシンに持っていってVisual Studio 2022でコンパイルしてみた。こっちはうまくいった。

どちらも自作ソフトの都合上Visual Studio 2019/2022を両方入れているマシン。はて、何が違うのだろう?

続きを読む

Webページを新しく建てました

実はWebページ新たに建ててました

タイトル通り、2月に入ってメインのWebページを新たに建ててました。

www.tatsu-syo.info

になります。コンセプトを考える余裕がなかったので、急ぎで建てたのでWebページのタイトルも一緒ですし、せいぜい全体のデザインを仙台電車色をコンセプトにした程度です。

ちなみにFirefoxだとメニューバーの表示 - スタイルシートで別バージョンの仙台電車色になります。なので、Firefoxで来ていただけるとうれしいです。

続きを読む

ハイブリッドワークは金かかる

自社に戻ってきたのは良いのだが

会社の事情で顧客先への背広通勤を昨年末でやめて、自社に戻ってきた。

ここから買い物が続くとは思ってもみなかった。

続きを読む