近日 Ver 0.31 を公開する予定です。内容は主に Ver 0.30 で発生していた不具合や細かな修正となります。
あと、アプリケーションには直接関係ありませんが、Web ページの多言語化対応の方もできてきましたので、同じ頃ぐらいにアップデートしたいと思います。
]]>※たまにはこんな内容のブログでもいいかなーと
戦果を稼ぎつつ月次内で500位以内に入るとランキング報酬としてレアな装備や装備の先行配布が行われるのですが、第六駆逐隊攻略とかやっていたのでランキング報酬については今まで全然意識していませんでした。戦果は月跨ぎである程度引き継がれるので、継続してランキング入りしている人がやや有利な形になっており、途中から参加する場合は若干不利になります。
しかし、年跨ぎでは戦果はリセットされ 1 から始まるので全員平等に始められるようになっています。なので今回試しに 500位以内のランカーに入れるかどうか挑戦してみようと思いました。
せっかくなので1週ごとにランキングで今何位なのかブログに書いていこうと思います。土日に書くつもりなのですが、1週目の週末はちーたんタッチボードのリリースとかで割と手が付かなったので今日書いています。
さて、1週目といっても4日ぐらいしかなかったのですが、現在の戦果ランキングを見てみるとこの位置にいました。

372ポイントで 865位についています。ここからまずは 500位を目指すのですが、その500位を見てみると…、

27ポイント差、結構近いですね・・・。
なんとなくなのですが 500位以内は割と簡単そうなので、今月の目標は 100位以内を目指そうかと思います。ただ、100位のポイントは見ることができないので地道に順位をあげて確認していくしかないようです。(他の人に聞くというのもありですが・・・)
さて、今回はここまでにして次回は2週目の戦果報告をしたいと思います。まだ実験段階なので今回は書かないのですが、次回あたりにでも戦果稼ぎ方法について書いてみたいと思います。
]]>ちーたんタッチボード Ver 0.30 を公開しました。当初はちょっとしたプログラム改修のみを行う予定だったのですが、なんだかんだ手を入れていったらやや大きめの改修になってしまいました。なので Ver 0.30 です。
代表的な改修点は以下のものになります。
ようやくというかやっとできました。初めてちーたんタッチボードを作ってから約8か月になります。
以前の投稿でも書いたのですが当初は XAML ファイルからボードの定義を作成するように考えていました。しかし、ちーたんタッチボード用に拡張パラメータを設定しようとすると XAML だけでは限界があったので、いろいろ悩んだ結果 Excel ツールとして作成することにしました。
Excel なら図形も使えるしセルも使えるしマクロも使えるしフォームも使えると割となんでもできます。今回はレイアウトを図形で作成し、パラメータはセルにテーブル形式で入力するようにしました。そしてそれらの入力情報からマクロでボードコンテナ定義ファイル(JSON ファイル)として出力するようにしました。
ツールはダウンロードページから、使い方は別途専用ページを作成しましたのでそちらをご覧ください。
Excel 最強。
割と要望が多かった前回のボードの位置を記憶する機能を追加しました。これはボードを切り替えた時やちーたんタッチボードを起動したときなどに適用されます。
なぜ今まで実装していなかったのかというと、ボード切り替えのタイミングでボードが初期位置にないとボード切り替えボタンが毎回異なる場所に配置されてしまうため、連続でボードを切り替える場合に結構面倒だと思ったからです。
今回その対策については特に行っておりませんが、ボードの前回の位置を記憶するかどうかは設定画面で切り替え可能です。
Shift や Ctrl の押下動作は今まで独自に考えて実装していました。普通に使う分には特に問題ないのですが、例えばエクスプローラー上でファイルを複数選択する際に Shift キーを押しながらマウス操作を行っても複数選択することはできませんでした。これは Windows 標準の動作と異なる処理を行っていたからです。
Ver 0.30 では限りなく Windows 標準のタッチキーボードと同じ動作になるように実装したので、Shift キーとマウスパッドを同時に配置してエクスプローラーでファイルを複数するような動作ができるようになりました。もちろん Ctrl や Alt も同様です。また他のアプリケーションでも同じ動作ができるようになっています。
用は今までは内側(ちーたんタッチボード)だけしか考えていなかったのを、外部アプリケーションも考えて改修してみたということです。
実はまだ Windows 標準のタッチキーボードと動作が違うところがあるのですが、あまり気にならないところなのでおいおい直していきたいと思います。
修飾キー以外、例えばペイントソフト用にスペースキーをトグルにしたとき、トグルを解除するのを忘れたまま他のウィンドウをアクティブにしてしまうと、そのままスペースが連続して入力されてしまうという現象が前のバージョンまでありました。
Ver 0.30 ではウィンドウが切り替わったことを検知してトグルキーを解除する機能を追加しました。この設定は標準では無効になっていますが、ボードの設定で有効にすることができます。(文字キーをトグルにすることはほとんどないため)
配布しているペイント用のボードにはこの設定を適用しています。
すみません、いつの間にかエラーになっていました。どうやら XP と WPF のアイコンの問題だったのでうまく回避するようにしました。
詳しくは前に投稿した記事をご覧ください。
他にも変更点はありますが詳しくは更新履歴のページを参照してください。
あと、ホームページの更新履歴のほうで「ちーたんタッチボードのページを40か国語に対応しました」って書いてしまったんですが実はまだ「概要」と「ダウンロード」ページしかできてません orz 。時間があれば追記していきたいと思います。
]]>環境
いつのころからか、ASP.NET MVC アプリケーションをデバッグ実行しようとすると図のような「CultureNotFoundException」の例外が発生する様になりました。

このまま続行して動かしても全く問題ないのですが、デバッグ実行するたびに出てくるので (100% ではないが7~8割) 結構煩わしいです。
海外サイトを調べてみると「C:WindowsMicrosoft.NETFrameworkv4.0.30319Temporary ASP.NET Files」フォルダを削除すると直るような記述はあったのですが、それっぽいフォルダが削除してみましたが直りませんでした。(フォルダ名が若干違う)
現状例外を直接発生しないようにする方法が見つからなかったので、ここでは例外が発生してもそのまま無視できる方法について記載しています。この方法を試す場合は、例外を無視しても問題ない場合に行ってください。
Visual Studio を起動したらメニューの「デバッグ」から「例外」を選択します。

右の「追加」ボタンをクリックします。

「新しい例外」ダイアログが表示されたら、型から「Common Language Runtime Exceptions」を選択し、例外名に「System.Globalization.CultureNotFoundException」と入力して OK ボタンをクリックします。

一覧に「System.Globalization.CultureNotFoundException」が表示されていることを確認し、例外が発生しても一時停止されないように「スローされるとき」のチェックを外します。OK ボタンをクリックし、実行しても例外で一時停止されないか確認してみてください。

実行するとグローバルIPアドレスを取得してファイルに保存するツール「グローバルIPアドレス取得ツール」Ver 1.01 を公開しました。もともとは sorceryforce.com の方で公開していたのですが、プログラム改修にあたって sorceryforce.net の方に持ってきました。
使い方や用途などは専用ページの方に記載していますのでそちらをご覧ください。
]]>メモ書きです。
あるプログラムで .aspx ファイルをいじっていて、そのファイルを直接プログラムで読み込んでみたらいくつかの行末に「 」が付加されていました。原因はわかりませんがたぶんエンコードの問題ではないかと思います。
読み込んだ文字列は string.Trim を掛けていたので問題ないと思っていたのですが、処理上問題が発生していてデバッグしてみたら文字列の最後に「 」が付いていたのが問題だったみたいです。string.Trim メソッドでは「 」を削除できないようなので以下のようにして削除しました。
text.Replace(" ", "");
現在公開しているツール「ちーたんタッチボード」では、色情報を 0.0 ~ 1.0 の小数で持っているのですが、プログラムで ARGB として設定する際に 0 ~ 255 形式に変換する必要がありました。しかし、小数↔整数 の変換には誤差がつきものなのでどうにかならないのかなと思っていたのですが、WPF で使用されている System.Windows.Media.Color に「ScA」「ScR」のようなプロパティがあるのを見つけました。
MSDN で調べてみると渡す値は 0 ~ 1 と書いてあったので「0 ~ 255 の代わりに 0.0 ~ 1.0 の線形補間で色情報を渡せるんだ」と思い込んでしまったのが悪夢の始まりでした。
実は現在公開しているちーたんタッチボード Ver 0.23 では背景や文字の色設定を行うと設定するたびに微妙に色が変わったりする不具合が存在しています。もうお分かりかと思いますが、上記の誤解により発生している不具合です。(次に公開する Ver 0.30 では治ってます^^;)
当時原因がよくわからなくてほかのライブラリが原因なのではないかとか思ったりしていたのですが、最終的に Color 構造体に秘密があるのではないかと思い、値設定後の各パラメータのダンプを取ってみました。以下は ScX プロパティに 0.01 ずつ設定したものです。
| A | R | G | B | ScA | ScR | ScG | ScB |
|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 |
| 3 | 25 | 25 | 25 | 0.01 | 0.01 | 0.01 | 0.01 |
| 5 | 39 | 39 | 39 | 0.02 | 0.02 | 0.02 | 0.02 |
| 8 | 48 | 48 | 48 | 0.03 | 0.03 | 0.03 | 0.03 |
| 10 | 56 | 56 | 56 | 0.04 | 0.04 | 0.04 | 0.04 |
| 13 | 63 | 63 | 63 | 0.05 | 0.05 | 0.05 | 0.05 |
| 15 | 69 | 69 | 69 | 0.06 | 0.06 | 0.06 | 0.06 |
| 18 | 75 | 75 | 75 | 0.07 | 0.07 | 0.07 | 0.07 |
| 20 | 80 | 80 | 80 | 0.08 | 0.08 | 0.08 | 0.08 |
| 23 | 85 | 85 | 85 | 0.09 | 0.09 | 0.09 | 0.09 |
| 26 | 89 | 89 | 89 | 0.10 | 0.10 | 0.10 | 0.10 |
| 28 | 93 | 93 | 93 | 0.11 | 0.11 | 0.11 | 0.11 |
| 31 | 97 | 97 | 97 | 0.12 | 0.12 | 0.12 | 0.12 |
| 33 | 101 | 101 | 101 | 0.13 | 0.13 | 0.13 | 0.13 |
| 36 | 105 | 105 | 105 | 0.14 | 0.14 | 0.14 | 0.14 |
| 38 | 108 | 108 | 108 | 0.15 | 0.15 | 0.15 | 0.15 |
| 41 | 111 | 111 | 111 | 0.16 | 0.16 | 0.16 | 0.16 |
| 43 | 115 | 115 | 115 | 0.17 | 0.17 | 0.17 | 0.17 |
| 46 | 118 | 118 | 118 | 0.18 | 0.18 | 0.18 | 0.18 |
| 48 | 121 | 121 | 121 | 0.19 | 0.19 | 0.19 | 0.19 |
| 51 | 124 | 124 | 124 | 0.20 | 0.20 | 0.20 | 0.20 |
| 54 | 126 | 126 | 126 | 0.21 | 0.21 | 0.21 | 0.21 |
| 56 | 129 | 129 | 129 | 0.22 | 0.22 | 0.22 | 0.22 |
| 59 | 132 | 132 | 132 | 0.23 | 0.23 | 0.23 | 0.23 |
| 61 | 134 | 134 | 134 | 0.24 | 0.24 | 0.24 | 0.24 |
| 64 | 137 | 137 | 137 | 0.25 | 0.25 | 0.25 | 0.25 |
| 66 | 139 | 139 | 139 | 0.26 | 0.26 | 0.26 | 0.26 |
| 69 | 142 | 142 | 142 | 0.27 | 0.27 | 0.27 | 0.27 |
| 71 | 144 | 144 | 144 | 0.28 | 0.28 | 0.28 | 0.28 |
| 74 | 147 | 147 | 147 | 0.29 | 0.29 | 0.29 | 0.29 |
| 77 | 149 | 149 | 149 | 0.30 | 0.30 | 0.30 | 0.30 |
| 79 | 151 | 151 | 151 | 0.31 | 0.31 | 0.31 | 0.31 |
| 82 | 153 | 153 | 153 | 0.32 | 0.32 | 0.32 | 0.32 |
| 84 | 155 | 155 | 155 | 0.33 | 0.33 | 0.33 | 0.33 |
| 87 | 158 | 158 | 158 | 0.34 < /td> | 0.34 | 0.34 | 0.34 |
| 89 | 160 | 160 | 160 | 0.35 | 0.35 | 0.35 | 0.35 |
| 92 | 162 | 162 | 162 | 0.36 | 0.36 | 0.36 | 0.36 |
| 94 | 164 | 164 | 164 | 0.37 | 0.37 | 0.37 | 0.37 |
| 97 | 166 | 166 | 166 | 0.38 | 0.38 | 0.38 | 0.38 |
| 99 | 168 | 168 | 168 | 0.39 | 0.39 | 0.39 | 0.39 |
| 102 | 170 | 170 | 170 | 0.40 | 0.40 | 0.40 | 0.40 |
| 105 | 172 | 172 | 172 | 0.41 | 0.41 | 0.41 | 0.41 |
| 107 | 173 | 173 | 173 | 0.42 | 0.42 | 0.42 | 0.42 |
| 110 | 175 | 175 | 175 | 0.43 | 0.43 | 0.43 | 0.43 |
| 112 | 177 | 177 | 177 | 0.44 | 0.44 | 0.44 | 0.44 |
| 115 | 179 | 179 | 179 | 0.45 | 0.45 | 0.45 | 0.45 |
| 117 | 181 | 181 | 181 | 0.46 | 0.46 | 0.46 | 0.46 |
| 120 | 182 | 182 | 182 | 0.47 | 0.47 | 0.47 | 0.47 |
| 122 | 184 | 184 | 184 | 0.48 | 0.48 | 0.48 | 0.48 |
| 125 | 186 | 186 | 186 | 0.49 | 0.49 | 0.49 | 0.49 |
| 128 | 188 | 188 | 188 | 0.50 | 0.50 | 0.50 | 0.50 |
| 130 | 189 | 189 | 189 | 0.51 | 0.51 | 0.51 | 0.51 |
| 133 | 191 | 191 | 191 | 0.52 | 0.52 | 0.52 | 0.52 |
| 135 | 192 | 192 | 192 | 0.53 | 0.53 | 0.53 | 0.53 |
| 138 | 194 | 194 | 194 | 0.54 | 0.54 | 0.54 | 0.54 |
| 140 | 196 | 196 | 196 | 0.55 | 0.55 | 0.55 | 0.55 |
| 143 | 197 | 197 | 197 | 0.56 | 0.56 | 0.56 | 0.56 |
| 145 | 199 | 199 | 199 | 0.57 | 0.57 | 0.57 | 0.57 |
| 148 | 200 | 200 | 200 | 0.58 | 0.58 | 0.58 | 0.58 |
| 150 | 202 | 202 | 202 | 0.59 | 0.59 | 0.59 | 0.59 |
| 153 | 203 | 203 | 203 | 0.60 | 0.60 | 0.60 | 0.60 |
| 156 | 205 | 205 | 205 | 0.61 | 0.61 | 0.61 | 0.61 |
| 158 | 206 | 206 | 206 | 0.62 | 0.62 | 0.62 | 0.62 |
| 161 | 208 | 208 | 208 | 0.63 | 0.63 | 0.63 | 0.63 |
| 163 | 209 | 209 | 209 | 0.64 | 0.64 | 0.64 | 0.64 |
| 166 | 211 | 211 | 211 | 0.65 | 0.65 | 0.65 | 0.65 |
| 168 | 212 | 212 | 212 | 0.66 | 0.66 | 0.66 | 0.66 |
| 171 | 214 | 214 | 214 | 0.67 | 0.67 | 0.67 | 0.67 |
| 173 | 215 | 215 | 215 | 0.68 | 0.68 | 0.68 | 0.68 |
| 176 | 216 | 216 | 216 | 0.69 | 0.69 | 0.69 | 0.69 |
| 179 | 218 | 218 | 218 | 0.70 | 0.70 | 0.70 | 0.70 |
| 181 | 219 | 219 | 219 | 0.71 | 0.71 | 0.71 | 0.71 |
| 184 | 221 | 221 | 221 | 0.72 | 0.72 | 0.72 | 0.72 |
| 186 | 222 | 222 | 222 | 0.73 | 0.73 | 0.73 | 0.73 |
| 189 | 223 | 223 | 223 | 0.74 | 0.74 | 0.74 | 0.74 |
| 191 | 225 | 225 | 225 | 0.75 | 0.75 | 0.75 | 0.75 |
| 194 | 226 | 226 | 226 | 0.76 | 0.76 | 0.76 | 0.76 |
| 196 | 227 | 227 | 227 | 0.77 | 0.77 | 0.77 | 0.77 |
| 199 | 229 | 229 | 229 | 0.78 | 0.78 | 0.78 | 0.78 |
| 201 | 230 | 230 | 230 | 0.79 | 0.79 | 0.79 | 0.79 |
| 204 | 231 | 231 | 231 | 0.80 | 0.80 | 0.80 | 0.80 |
| 207 | 232 | 232 | 232 | 0.81 | 0.81 | 0.81 | 0.81 |
| 209 | 234 | 234 | 234 | 0.82 | 0.82 | 0.82 | 0.82 |
| 212 | 235 | 235 | 235 | 0.83 | 0.83 | 0.83 | 0.83 |
| 214 | 236 | 236 | 236 | 0.84 | 0.84 | 0.84 | 0.84 |
| 217 | 237 | 237 | 237 | 0.85 | 0.85 | 0.85 | 0.85 |
| 219 | 239 | 239 | 239 | 0.86 | 0.86 | 0.86 | 0.86 |
| 222 | 240 | 240 | 240 | 0.87 | 0.87 | 0.87 | 0.87 |
| 224 | 241 | 241 | 241 | 0.88 | 0.88 | 0.88 | 0.88 |
| 227 | 242 | 242 | 242 | 0.89 | 0.89 | 0.89 | 0.89 |
| 230 | 243 | 243 | 243 | 0.90 | 0.90 | 0.90 | 0.90 |
| 232 | 245 | 245 | 245 | 0.91 | 0.91 | 0.91 | 0.91 |
| 235 | 246 | 246 | 246 | 0.92 | 0.92 | 0.92 | 0.92 |
| 237 | 247 | 247 | 247 | 0.93 | 0.93 | 0.93 | 0.93 |
| 240 | 248 | 248 | 248 | 0.94 | 0.94 | 0.94 | 0.94 |
| 242 | 249 | 249 | 249 | 0.95 | 0.95 | 0.95 | 0.95 |
| 245 | 250 | 250 | 250 | 0.96 | 0.96 | 0.96 | 0.96 |
| 247 | 252 | 252 | 252 | 0.97 | 0.97 | 0.97 | 0.97 |
| 250 | 253 | 253 | 253 | 0.98 | 0.98 | 0.98 | 0.98 |
| 252 | 254 | 254 | 254 | 0.99 | 0.99 | 0.99 | 0.99 |
| 255 | 255 | 255 | 255 | 1.00 | 1.00 | 1.00 | 1.00 |
見事に線形ではありませんでした。
よくよく調べてみると ARGB のほうは sRGB という規格、ScA ScR ScG ScB のほうは scRGB という規格らしいです。scRGB については以下のサイトなどを参考にしてください。簡単にまとめると、sRGB(8bit) では表現できなかった色を 12bit や 16bit などに拡張してより多くの色情報を表現できるようにしたものです。
しかし、いろいろ調べてみても sRGB と scRGB の変換方法がよくわからなかったのでコードベースで情報がないか調べてみたところ以下のサイトがありました。
確かにこのコードに当てはめると Color 構造体で出力された結果と一致しました。ですが、この変換処理と scRGB について書かれている公式との関連性がよくわかりませんでした。Microsoft が独自に定義したものかもしれませんが、それについても文面を見つけることができませんでした。
まあとりあえず現状は 0.0~1.0 と 0~255 は単純に線形変換させて対応することにし、scRGB については今回の記事で参考になったという形にとどめておきたいと思います。なにか詳しい情報があればコメントいただければと思います。
]]>WordPress の標準機能にアクセスカウンターの機能がなかったのでずっと放置していたのですが、久々に調べてみたらプラグインでいろいろ公開されているみたいだったのでサイドメニューに追加してみました。
使用したプラグインは「count per day」というもので、英語圏のプラグインなのですが、インストール後は自動的に日本語で表示されるので割と使いやすいです(一部英語のままですが)。プラグインインストール後はウィジェットから配置できます。
WordPress のアクセスカウンターなので sorceryforce.net や sorceryforce.com のアクセスカウントは含まれません。
]]>
環境
Crystal Reports のデータベース フィールドに DataSet のテーブルをバインドした後に、DataSet のテーブルの項目を変更してもデータベース フィールドには自動的に反映されません。最新の状態を反映させるには以下の手順を行います。