Tatsu still writes something... Fourth season

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

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

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ドットの液晶モニタをサブディスプレイにしたら動画サイト見る時など便利かなということで押し入れから出してきたのはよいが、ウインドウを小さくしたり、移動したりするのが面倒ということでベクターあたりを探したけど、見つけることができなかったので作ってみたというのが作ったきっかけだったりします。

続きを読む

旅の思い出は取り込んでおこう

12月30日になってようやく年賀状を作った。
せっかく、複合機の電源を入れたのでかつて旅行に行ったときの入場券とかを取り込んでみた。

この手の入場券もまた、旅の思い出になるのだが、感熱紙を使っているものについてはぎりぎり文字が見えるくらいまで印刷が劣化していたものもあって、さっさと取り込むんだったなと思ったしだいである。

入場券の印刷には感熱紙は使って欲しくないものだ。

GitHubはじめました。

KDDIによるビッグローブ買収のニュースを聞いたときに、Webページを置いている@niftyについても買収を検討しているというニュースがあったので、どうしたものかとTwitterで言っていたらGitHubとか検討するのも良いんじゃというレスがあり、自分の作ったものを置く拠点は多い方がよいだろうと思っていた。
それとは別に、本業の方でgitを使うという話が出ていて慣れようと思ったのと、Meiryo UIも大っきらい!!の国際化にあたって、ソースを開かれたところに置いておいた方がOSの言語の自動判別部分を作るのに有利かなという思いがあった。という訳でGitHubのアカウントを作ってみることにした。

とりあえず、@ITの記事はじまりはいつもプルリク? GitリポジトリホスティングサービスGitHubとはを見て、アカウント作って、Windowマシンで行う git-svnでのSubversionからGitへの移行方法を見て、ソースをMIT LicenceにしているMeiryo UIも大っきらい!!とRe-Metricsのソースを公開してみた。

やり方は、先ほど挙げたページの通りだが、タグの移行についてはVisual Studio 2015 Update 3で入れたGit for Windowsでは

$ git branch -r | egrep --text "tags/" | cut -d / -f3 | xargs -iVAR git tag VAR origin/tags/VAR

とcutコマンドで切り出すフィールドの位置とタグ作成のコマンドを調整する必要があった。

今後、使われるかどうかはわからないが、オープンソースにできるものは出していって使ってみようと思う。

Linux暮らしをしてみる

本業でLinuxを扱うことが増えそうなので、Linuxに慣れるため今日はLinux暮らしなんてしてみる。

マルチブートは何かと面倒なので、VMWare Workstation Playerに仕事で使うことになる64bit Ubuntu入れて併用する方向で進めることとする。
まずは、マウスの進む・戻るに使う5ボタンを使えるようにするため、拡張子.vmxの仮想マシンの設定ファイルにこれを書く。

mouse.vusb.enable = "TRUE"
mouse.vusb.useBasicMouse = "FALSE"
usb.generic.allowHID = "TRUE"

なんでこれ標準になってないんだろう。

今回は、ネットワーク設定をNATにしてブラウザアプライアンス的に使うのではなく、ある程度、本格的に使うのでSophos AntiVirusも入れてみる。

ブラウザはFirefoxがあるので問題なし。ブックマークなどはスマートフォン用にFirefox Syncを使うようにしているプロファイルがあるので、これを使うことにする。
こづかい帳もLibreOfficeがあるので、このへんは問題なし。
メールは、持っていくのが面倒なのでこれについてはホストのWindowsで処理することにする。

ファイルは、ホストマシンに共有フォルダを作っていたのでそこにファイルマネージャからアクセスしたり、SSHサーバー入れてファイル送れるようにしたのでこれも問題なし。

音楽聞いたり、写真見たりというところではアプリに慣れない・知らないことがあるのでこのへんはWindowsでよいか。

文字の綺麗さではWindowsFirefoxも縦横両方向のサブピクセルレンダリングを有効にして、ClearTypeレベルを上げ、ガンマ値を下げるとそれなりのところまでは持っていけるのだが、全体の自然さ、アプリの対応と言ったところではLinuxの方が数枚上手という感じである。
文字の綺麗さなどを考慮するとライトユースだったらLinuxの方が案外良いのかもと思ったりする。PCとしては寂しいところではあるが。

まずは、Linuxに親しむことかな。

BookSync Version 2.10.4をリリースしました。

すっかり昨日のことになりますが、BookSync Version 2.10.4をリリースしました。

今回はIE関連のバグ修正がメインで、経緯は掲示板にある通りです。

フォルダ内のブックマークが多い時の強制終了についてはIEのブックマークの並べ順を管理するレジストリに書き込む領域が足りなくなった時に領域を再確保するところでせっかく確保した領域を使うのを忘れていたというなんとも情けないミスだったりします。
普段使いではフォルダ分けをきっちりとしていて、フォルダ内のブックマークがそう多くなかったたので気づかなかった訳で、大量のデータは試験データを作るのも扱うのも難しいものだと思った次第です。

IEの文字数についても同様で深い階層に長いブックマーク名は見づらいので普段使いではそれほどなかったので、なかなか見つからなかった上、他のブラウザのブックマークの長さをIEのブックマークの長さに切り詰めるところとIEのお気に入りに書き込むところで二重に文字数のチェックをしていたのでそこでの整合性を取るのに苦戦しました。

というわけで、今回は大量・長い文字列への対応の難しさを実感させられたバージョンアップとなりました。