Tatsu still writes something... Fourth season

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

いまさらながらWindowsアプリケーション開発のガイドラインを見る

海外の方から、Meiryo UIも大っきらい!!のウインドウ位置がプライマリモニタの左端なのは不便だという旨のメールが来た。で、どうするかなと調べていて、WindowsGUIアプリを作るようになって16年にしていまさらなのだが始めてWindowsアプリケーション開発のガイドラインを見た。そこには、ちゃんとウインドウやダイアログの表示位置についても書いてあり、中でもただ親ウインドウの中心に子となるダイアログを置くのではなく、視線を考えて左上45%の位置に置くというくだりはなるほどと思ったものである。

いったい、世の中のソフトウェアはガイドライン見てるのかなとか、どうやっているんだろうと軽く思いつつ、ダイアログやヘルプの表示位置を調整してMeiryo UIも大っきらい!! Version 2.34としてリリースした。

昨日は、その後マルチディスプレイの画面を何度も切り替えつつファイルのバックアップを片方のマシンで採りながらもう一方のマシンのchkdskを行っていたが、ダイアログの表示位置がめちゃくちゃだとそのたびにディスプレイ移動してマウスカーソル移動してなんてやる必要があったのかと思うとガイドラインの遵守って大事だなと思わされた最近であった。

さて、この辺のウインドウの表示位置周りの修正、他の拙作にも入れていかないといかんかなぁ。
(2017/06/04 16:20追記)
まずは兄弟的な存在のウインドウの各部分の幅・高さを調整するツールRe-Metricsに反映しました。

続きを読む

じゆう…むじゅん…はかなさ…じぶん……らしさ

Windows 10 Version 1703ではシステムフォントの大きさすら標準では変更できなくなったようで、海外の方がMeiryo UIも大っきらい!!(No!! Meiryo UI)をダウンロードして使うという事例があったので、対応する形でMeiryo UIも大っきらい!!(No!! Meiryo UI)をバージョンアップしました。

今回、Windows 10の詳細なバージョンを表示するようにしたのはWindows 10 Version 1703でシステムフォントの大きさを変更できなくなったことを考えると、今後Meiryo UIも大っきらい!!でシステムフォントの大きさを設定しても反映されなくなることも考えられなくはないので、どの時点でWindowsに変更が入ったかがわかるようにするためです。

考えてみるとWindows側の変更でいつこのソフトが無駄になってもおかしくはないので、案外はかないものかもしれません。そもそも、自由なソフトではないWindowsで自由を求めること自体矛盾してますし。という訳で、本文のタイトルになるという訳です。

続きを読む

文字セットをどうしよう

Windows 10 Creators Updateで良いんだか悪いんだか、Meiryo UIも大っきらい!!にフォーカスが当たったので見直しをかけてるけど文字セットの扱いをどうするか悩んでいる。

影響を受けるところとしては

  • 言語ファイルの表示フォントの指定
  • プリセットの設定

といったところだろうか。

この辺をどうにかしないと他の国の人がローカライズしようとしたときに表示がおかしいとか、プリセット呼び出してOK押すとシステムフォントが文字化けなんてことになりそうなので、何とかしないといけないんだろうなとぼんやり考えている。
他のいじりたいところはトピックブランチ作った状態でgithubのページにソースは上げているので、文字セット関連を追加してやって、ヘルプのバージョンアップ時の変更点について訳していただいたらバージョンアップかな。
多言語表示ってちゃんとやろうとすると厄介なものだ。

さらば、Vista

2017年4月11日にWindows Vistaのサポートが終了した。

という訳で、以下の手順を採って綺麗な状態でスタンドアローンにして動態保存にした。ネットワークから切断した完全なるパーソナルな状態である。

  • SP2統合媒体からクリーンインストールを行う
  • Windows Updateで入るすべてのパッチを適用する
  • イメージバックアップを取得する
  • 手元に落としていたパッチを整理して、Windows Updateで入らなかったパッチを当てる。
  • Ultimate Extrasをすべて入れる
  • ネットワークインターフェースをすべて無効にする
  • ウイルス対策ソフトを外す
  • 再度、イメージバックアップを取得する

実際は、工程の中でパッチ等のチェックが全然終わらないので電源を強制断して再実行を何度かやったのでウイルス対策ソフト外す前にsfc /scannowかけてやったりとかしたけど、これで立派な動態保存状態になったのではないだろうか。
動態保存とはいえ、Vista以降固有のソフトはほとんどないというか、Windows 7で済むので拙作の動作確認くらいしか使い道ないけど。

続きを読む

世界は戸惑いとともに回る

Windows 10 Version 1703(Creators Update)でシステムフォントサイズの変更画面が無くなって、それに対して拙作Meiryo UIも大っきらい!!で対処できるというのを自分で作っておきながらなんだかなと戸惑っていたら、アクセス解析経由でさらに不思議な光景を見た。

日本で作った拙作Meiryo UIも大っきらい!!(別名:No!! Meiryo UI)について中国のフォーラムで言及されていたのをアメリカのMicrosoftのフォーラムで引用しているという光景である。
(Has "Change only the text size" been removed in Creators - Microsoft Community)
日本、中国、アメリカと合計で3カ国絡んだことになる。なんとも奇妙な縁だ。

進捗表示は厄介なものだ

今日はメールで指摘があったMulSyncの同期実行時のプログレスバー表示を改善して公開した。

MulSyncはC#.NET Frameworkで組んでいるのを生かしてワーカースレッドを起動しての実行、進捗表示管理、処理終了後の処理呼び出しといったスレッド周りを面倒見てくれるBackgroundWorkerクラスにおんぶにだっこできたので楽に改善できたのだが、長い時間がかかる処理とその進捗の表示というのは実に厄介なものである。

GUI周りはメインスレッドでないと処理できないので行いたい処理は別にスレッドを立ち上げて処理する必要がある。で、メインスレッドは処理を行うスレッドを待つ際に常に処理を行っているとCPUの実行時間を食うので適度にウェイトを入れる必要があるのだが、その間にも実際の処理は進んでいるのでメインスレッドでの進捗表示と実際の進捗を合わせるのは難しいものである。

どのスレッドからもGUI周りに手を出せる環境があったらなと思うのだが、そんな環境はあるのだろうか。

ロングテールなんて所詮夢物語なのか

と思いつつ久々に自作掲示板をバージョンアップして公開した。
@niftyの@homepage終了に続き、掲示板サービスが終了するという話が出たときに、掲示板やめようかと思ったこともあったが、なんだかんだ言って自作ソフトの反響を聞くのに使われることも結構あって張り合いにはなるので、掲示板を続けることにした。

 という訳で、仕方なく自作掲示板を引っ張り出す。
 まず、以前の自作掲示板をやめたのはCGIの負荷の関係だったので心当たりがありそうなロックの部分を環境に依存するらしいflockではなく、ファイルのリネームにする。合わせて、ロックのタイミングをチェックする。また、@homepage→ホームページサービスへの移行でURL叩いて見えるファイルが異なっていたので、.htaccessを置くとともに.htaccessを効果的に設定できるよう、ディレクトリ配置を整理する。これでひとまず、人前に出せる状態にはなったかなと思う。というか、いかに今まで@homepageの環境に依存していたかを思い知らされる。

 次に通知。かつての@nifty掲示板サービスではRSS出力があって、新着チェックに役立っていたのでWeb日記を自前のCGIで出していた時の知識というか、書き方を引っ張り出してRSS出力を実装する。

 この状態で落ち着いてはいたのだが、先週スパマーの襲来があったので、何があったかと思ったらhttpsのURL書き込むいたずら対策が漏れていたので布団の中で書き込み食らってはロールバックしながら、あわてて対処を行う。掲示板サービス使ってた間にhttps化が進んだんだなということを認識させられながら対処する。

 Webページでいつまでも古いバージョンを公開しているのもまずいなということで33回忌の墓参りから帰った後、確認と書きかけになっていたドキュメントの整備を行って公開する。

 今度はホームページサービスと掲示CGIが続いてくれればよいのだが。

続きを読む

.NET Frameworkでも多言語表示してみた

海外からリクエストがあったので、フォルダ同期ツールMulSyncを多言語対応してみた。

複数言語表示は以前、Win32+VC++で書いているMeiryo UIも大っきらい!!でやったことがあるのだが、その時と比べるとプログラミングは全く簡単だった。

今回は.NET FrameworkWindows Formsでの挑戦となるのだが、Win32+VC++でやった時と比べると実に楽だった。
GUIはデザイナーで既定の言語に英語書いて、フォームのLanguageプロパティを切り替えて日本語にしてから日本語を書くだけで言語に応じて文言切り替えてくれるし。表示する文字列はResources.(ja-jpなどの言語名).resxという名前でリソース作ってソリューションエクスプローラーのPropertiesの下に移動しておき、リソースから読み込めばあとは勝手にやってくれるしとヘルプ以外はいろいろとそろっているので本当に楽なものである。
言語リソース読み込みとか文言切り替えとかWin32では自分で書いてたことを思うと全くもって楽なものである、今回はC#なので文字列の扱いも楽だし。

続きを読む

RunWithSize Version 1.0.2をリリースしました

 題名通り、RunWithSize Version 1.0.2をリリースしました。

 今回は、いつもFirefoxを右端に置いているのできっちりと右端において起動したかったということと、VMWare Workstation Playerを起動するときにやたら大きいサイズで起動してもしょうがないということで、起動位置の右端、下端の指定と幅・高さの指定の省略機能を付けました。
 あれ?幅・高さの指定を省略するとソフトウェアの名前と動作が違ってくるなぁ。まあ、いいか。

続きを読む

書初め

もう3日ですが、新年あけましておめでとうございます。

今年もよろしくお願いします。

ということで、今年の書初めは新作(と言っても小さなツールだけど)Windows用のプログラムを指定したサイズ、場所で起動するツールRunWithSizeを新しく公開しました。

昨年大みそかに大掃除していて、弟が使わなくなって捨てた1024*768ドットの液晶モニタをサブディスプレイにしたら動画サイト見る時など便利かなということで押し入れから出してきたのはよいが、ウインドウを小さくしたり、移動したりするのが面倒ということでベクターあたりを探したけど、見つけることができなかったので作ってみたというのが作ったきっかけだったりします。

続きを読む