何とか無事(?)テスト終わった、、、
6時間連続だと、気がめいってくるよ orz
どうでもいいけど、髪きりに行きたいなぁ。
当分土日は大会だろうし、、、
いつになったら切りに行けるんだろう orz
ふと、グラフソフトの仮のタイトルでもある、
計算機のつづりを調べてたら、つづりが違ってたことが発覚 orz
Calcurator → Calculator が正解のようです。
昔よく間違えていた、Explorer のつづりを間違えて
いたことに精通するものがあるかも。。。
まぁ、仕方が無いので、サクラエディタのGrep機能使って抽出して、
ちまちまと置換して、ファイル名変えて、Subversionのリポジトリに
反映させて・・・という風に、ちまちまとやってました。
一応、ほとんどのものの修正は完了。
チェックアウトしたフォルダの名前だけ間違ったままだけど、
もう一度チェックアウトするのも面倒だし、
特に実害なさそうなので、放置。
さて、今日は以下の3点の実装。
・対数関数で底がe以外でもできるようにした。
と言っても、Log(底a,真数b) = (Log(b) / Log(a)) という風に
出力するだけですが。
本当は、引数を複数取れる関数として
実装しようと考えてたけど、力足りず orz
面倒なので、手っ取り早くこういう風にした。
・「」の省略を行っても、「」が補完されるようにした。
まぁ、これはあんまり自信ないです。
表面上はできてるけど、つぎはぎだらけな感じがして、
絶対に不具合が出そうな悪寒。
・解が無い部分のグラフ表示をしないようにした。
例えば、Root(X)の計算時、Xが負の数のときに
グラフを描画しないようにした。
あと、ちまちまと機能修正とか追加とかもしたけど、
何やったか覚えてないので、省略。
ダウンロードはこちらから。
http://yasuharu.net/admin/diary/img/Calculator3.zip
これで、明日帰ってからデバッグして、よさそうなら、
WinCE FANとか、Vectorに投稿してみようかな。
さて、話は変わりますが、明日は実は課題テストだったり。
3年生最初のテスト、いかなる結果となるか・・・。
まぁ、できる限りは、がんばりますが。
さて、今日は先日から作っていたグラフソフトの
続きをやっていました。
ダウンロードはこちらから。
http://yasuharu.net/admin/diary/img/Calcurator2.zip
動作環境は、以下のとおりです。
OS:Windows XP、Pocket PC 2003
その他に必要なソフト:.NET Framework 1.1 もしくは .NET Compact Framework 1.0 以上
今回実装したのは、複数グラフの描画を可能にすること、
および、グラフ機能と電卓機能の分離。
前者は、グラフを複数描画すること自体は、
別に、インスタンスを複数生成すれば
すぐにできちゃうので、描画することは簡単なのですが、
そのグラフの式をどうやって編集するか、というのが、
一番の悩みどころでした。
編集中で保存してない式については、どうするか、、、とか。
まぁ、面倒だから、一般的(?)なかたちで、
説明するのも面倒なので、ソフトを見ればわかると思います。
後者については、やはり、こちらも簡単と言えば簡単なのですが、
GUIコントロールを切り取りとかすると、デリゲートの登録が
外れてしまうようで、再設定が面倒だったです orz
しかも、Pocket PC用のデザインエディタ(でいいのかな?)って、
管理するコントロールの数が増えるにつれて、
やたらと、動作が遅くなるんだよねぇ。。。
んまぁ、そんなこんなで、新しいバージョンが完成しました、っと。
明日からは新学期です。
やっとというか、とうとうというか、
3年生になるわけですが、
大学受験もあることだし、いろいろと
重要な時期になってくるわけですね・・・。
とりあえず、クラスがどうなるのか、それが気になるな。
もう既に、一部ではわかってるようだけど、
自分はどうなのかなぁ、と。
まぁ、去年と同じく男子クラスでも、
すごしやすいからそれはそれでいいんですが、
そのすごしやすさが、後半になって、
違う形で痛手とならないかなぁ、と思う。
まぁ、でも、結局は自分自身のやる気か。
前々から作ろうと思ってた、グラフソフトを今日作ってました。
とはいっても、骨組み自体は前からできていたので、
何とか寝るまでに完成することができました。
まぁ、かなり手抜きですが、とりあえず、
公開してみようかと思います。
ダウンロード
http://yasuharu.net/admin/diary/img/Calcurator.zip
動作環境は、以下のとおりです。
OS:Windows XP、Pocket PC 2003
その他に必要なソフト:.NET Framework 1.1 もしくは .NET Compact Framework 1.0 以上
一応、上記の環境であれば、動作することを確認しています。
ちなみに、X^Xとかやると、バッファオーバーフローしますが、
Exceptionをcatchしようにも、速度が遅くなりそうな気がするので、
特に対応はしていません。
あと、ソースコードについてですが、気が向いたら公開しようと思います。
てか、,NET Refrectorでのぞけば、ほとんどの部分がそのまま表示されたりしますが orz
これで、不具合修正とか、機能追加をある程度終えたら、
Vectorとか、今回はWinCE FANとかにも、投稿してみようかな。
そういえば、さっきVector見てたら、ソフトライブラリの
更新スケジュールに関する告知が書いてあって、
昨日から、ソフトライブラリの更新が、毎週火曜日~土曜日に
変更になるようです。
今までは、週二日だったので、更新頻度が上がって、
登録が完了して、今までだと、次の更新まで待つ必要があったのが、
大方、登録完了した日に更新が反映されるようになるのかな。
んまぁ、最近、頻繁にバージョンアップを行ってるので、
結構うれしいかもしれない。
先日からお伝えしていた、不具合の件ですが、
今回のバージョンで修正が完了しました。
ダウンロード
http://yasuharu.net/software/typing/
変更点
http://yasuharu.net/software/typing/history.html
よくよく考えてみると、そろそろ、
この不具合を確認してから一月か・・・。
その間にダウンロードされた数が、
おおよそ、7千ほど。
それを考えると、ぞっとするものがあるな・・・。
迷惑をおかけした方、本当にすいませんでした。
さて、原因はと言いますと、正直なところ
正確な原因はわかりません。
ただ、実装が荒かったのが、原因かなぁ、と。
どんな風になっていたかと言うと、このプログラムでは
エディットボックスをサブクラス化していました。
その中で、WM_CHARメッセージをすべて、親ウィンドウに流す、と
言うなんとも荒っぽい処理があったのですが、
どうやら、これが原因だったようです。
その不具合をどうやって自分で確認したかって言うのも、
また不思議な話で、Spy++でメッセージを見てたて、
文字列入力すると、文字化けする、って言うことに気づいたわけです。
まぁ、よく理由はわかりませんが、推測は、
エディットコントロールに変換後の文字列を
入力するときに、WMCHARが連続して入ってしまった、
(本当は、WMCHAR、WMIMENOTIFYの順でこないといけないんだと思う)
というのが原因で、3Byte毎のデータが欠落してたっぽい。
ということで、ようやく肩の荷が下りた感じです。
これでやっと、グラフソフトのほうに集中できそうです・・・。
昨日、今日と那須塩原に旅行に行ってました。
まぁ、いろいろとあったけど結構楽しめたと思います。
さて、例のエディットボックスの改良ですが、
旅行行っている間に、全体の処理を考えとこう、、、
なんて思ってたら、案の定、途中から忘れてました。
んで、今日帰ってきてからいろいろといじっていたのですが、
何か、仕様なのか不具合なのか、静的変数に
文字列の代入とかうまくできなかった。
原因はわからなかったけど、まぁ、回避はできてるのでいいと思う。
現状で完了しているのは、IME経由からの書き込み、
キャレットの位置変更、変換の位置変更、
末尾の文字列削除(2Byte,1Byte)ぐらいかな。
実装しないといけないのは、任意位置へのキャレット移動、
任意場所でのBS,Delete、これくらいかな。
ぁー、あと、IMEがOffのときの処理も書いてないや。
まぁ、多分、6日の朝にはできるかなぁ、ってところか。
6日だと、Vectorに反映されるのは、ちょうど一週間ぐらいかぁ。
結構きついかも・・・。なんにしても、早めにやろう。
さて、今日は前々から把握していたけど、対処のしようがなかった、
エディットボックスの文字化けの問題を対処すべく、
いろいろと試行錯誤をしていました。
最初は、内部で使用する文字コードを
Unicodeに変更しようと思ったのですが、
それを直しながらいろいろと調べてると、
Unicodeのアプリケーションだと9x系で
正常な動作が望めないらしい(未確認)ので、
この方法は断念しました。
結局、どういう方法を取ったかというと、
他の文字表示自体は文字化けを起こしていないので、
エディットボックスを自作する、という方法をやってみる。
まず、いろいろと調べてみると、
Windowsにはキャレット表示を制御する
関数(CreateCaret,SetCaretPos...)があって、
それを使って、キャレットの表示を行えるということ。
話はそれるけど、このとき、間違えて、
BeginPaintしたものをReleaseDC(本来ならEndPaintじゃ
ないとまずいはず)してて、描画されてなくて、
ずっと悩んでいました・・・。
んで、何とか表示できるようになって、
次に、IMEの変換文字列の表示等の制御。
これについては、COMPOSITIONFORMを使って、
IMEを操作してやれば、できるようです。
以上、今日やってみたこと。
んでまぁ、ある程度考えた後に、実装に入っていって、
はやめに完成するようにしないとな。
春休み終了まで、残すところ一週間ほど。
課題は大方終わってるけど、まだ、
やり残したことがいっぱいある。。。
4月に入ったら、旅行に行くようだし、
その前には準備をいろいろとしないといけない。
それを考慮すると、おおよそ自由に使えるのは
3日ほどかぁ。。。
もう少し時間があればなぁ。
とりあえず、パソコン関連で春休み中に
終わらせてしまいたいのは、
・ゲーム作成のプロジェクトのほうの作業。
・計算機兼グラフソフトの初版公開までできるようにする。
・Free Typingの問題を増やす。
・グラナド・エスパダのベータテストの体験記をまとめる。
・誰かさんにRONをしろ、といわれてる orz
これぐらいかなぁ。
単純にこれだけなら、いいんだけど、
勉強とかもしないといけないし、きついなぁ。
まぁ、下三つは、明日と明後日の夜で死ぬ気でやるか・・・。
Free Typingに新しい問題を増やそうにも、
面白そうなのが思いつかない。
とりあえず、県名とか、野球球団の名前とか、
祭日の名前とか・・・そんなのしか思いつかないなぁ。
まぁ、いろいろと考えてみよう。
最近、勉強時間が少ないような気がする・・・。
強も、VNCの動作がおかしくて、いろいろといじってたら、
3時間も余計なことに使う結果になったし・・・。
そういえば、他の人と勉強時間について話してたりすると、
よく「部活やってるから時間がない」という風にいうことがあるけど、
実際これって理由になってないよなぁ、最終的な結果は見えてるわけだし。
なんというか、もう少しがんばってかないといけないな。
あと、Free Typingのほうですが、不具合修正を行いました。
ダウンロード
http://yasuharu.net/software/typing/
変更点
http://yasuharu.net/software/typing/history.html
さて、このソフトの問題ファイルを新しく増やしたいと思うんだけど、
どんなのがいいんだろう?
この日記を見てる人手、提案等あったらお願いします。
まぁ、どんなのでもかまわないです。
これで、問題ファイルの追加がある程度終わったら、
Vectorのほうの更新もしないといけないな。
#どうでもいいけど、最近日記がかけない orz
#時間的にとかそういうのじゃなくて、文章がうまくまとまらない。。。
#今日のも2回ほど書き直してる。
あんまり暇もないし、どうしようかなぁ、と迷いましたが、
何かむしょうに面白い本が読みたかったので小説を買ってきました。
まぁ、息抜き程度にはちょうどいいのかもしれない。
さて、今回買ってきた小説ですが、一冊は、
司馬 遼太郎 著
竜馬が行く(1)
を買ってきました。
有名といえば有名なのかもしれませんが、
先生か誰かに勧められて、今まで読んでなかったので、
買ってきてみました。
内容がよかったら続編も買ってみようかと思います。
全部で8巻ぐらいありましたが orz
もう一冊はというと、
森 博嗣 著
詩的私的ジャック
を買ってきました。
こちらのほうは、シリーズもののわけですが、
前回までは結構面白かったので、今回も買ってみました。
後もう一冊、できれば「そして誰もいなくなった」を買いたかったけど、
探しても見当たらなかったので、買いませんでした。
今度違う本屋さんで探してみることにしよう。
さて、今日は先輩方の送別会でした。
んまぁ、面白かったけど、疲れた・・・。
まぁ、適当に今日やったことをだらだらと書いてみようと思う。
まず、11時ごろ用事を予定より早く終えて、準備して、
1時ごろ集合場所に到着。
そこから、前々から予定していた"0次会"をすることに。
内容はというと、3年の先輩方と2年生混合で野球の試合をするというもの。
元々、運動はできないので、どうなることかひやひやしたけど、
何とか、多少は打てたので、それなりに楽しかったと思う。
んで、野球を終えてからは、けいどろをやって、缶蹴りやって、
という風にして、4時ごろまで公園で過ごす。
その次に、ゲームセンター行って、まぁ、
別に自分は特にやることもないので、他の人のを見つつ、時間をつぶしていた。
んで、6時ごろになって、本来の焼肉屋での送別会を行って、8時ごろ解散。
その後は、それぞれ分かれて2次会を行っているようです(現在進行形)
まぁ、自分はというと、他の友人と本屋によって、そのまま帰ってきて、
それでも、家に着いたのが10時。
文章が支離滅裂ですが、メモ程度と考えてください orz
んで、その後、グラナド・エスパダのクローズドベータテストの
終了カウントダウンがあったので、それに参加してみる。
あまりの人の多さに、グラフィックカードが貧弱なこのマシンで、
FPSが10程度の状態で、何とかカウントダウンを見届ける。
途中で、ロースペッククライアントに切り替えてみるも、
あんまり効果なし・・・。
さて、そのカウントダウンの最後ですか、最後の最後で、
GMの方が「OB終了です。ありがとうございました」と一言。
あんまりぴんとこないかもしれませんが、OB = Open Beta、
しかし、今回はクローズドベータなわけでして・・・。
最後の最後にやってしまいましたとさ orz
その結果、最後の告知が「CBです・・ごめんなさい」という一言に orz
そして、数秒後にログイン画面に戻されました、とさ。
まぁ、グラナド・エスパダについては、近いうちに
今のところ手元にあるスクリーンショットを纏めて公開します。
さて、明日は朝から学校だ orz
午後も部活だし、早めに寝ないと、学校の補講の最中に寝てそうだ・・・。
部活の先輩がたの送別会です。
ということで、昼から夜まで出かけることになるのですが、
予定が間に合うかどうか・・・。
まぁ、何とか間に合うようにしよう。
さて、今日はPocket PC用の電卓を作ってたのですが、
何か、変なところでFormatExceptionがでちゃって悩み中。
まぁ、春休み中に完成するようにがんばろう。
現在タイピングソフトの改良中・・・。
今回は結構規模の大きい更新になりそうです。
まぁ、ほとんどできているので、後はチェックだけなのですが、
今眠い状況下で行うと、確実にミスするので、
今日はこの辺で寝ます・・・。
今日は部活がなかったので、課題を進めていました。
今週の日曜日までには、何とか全部終わらせれそうかな。
さて、Free Typingのほうの修正等をしていたときに
気づいたことをいくつか書いてみようと思います。
・FindNextFileで、FATだと作成日ソートで、
NTFSだとファイル名ソートとか、になる。
ちなみに、MSDNには、ファイル名ソートとの記述しかない。
この問題は、いわれるまで気づきませんでした。
まさか、こんな落とし穴があるとはねぇ・・・。
まぁ、いい勉強になったと思うけど。
・std::set
要素の追加を行う際にソートを行ってくれる
コンテナ(でいいのかな)だそうです。
ソートの方法は、templateとして指定するクラスの
< 演算子を使ってソートしているようです。
これが、あったおかげで今日の作業も楽だった。
・advance(iterator itr,int Number)
イテレータの要素をNumber分進める。
今回使ったのはこれくらいかな。
そういえば、今回の修正の際に気づいたのですが、
なぜか、コンパイラの実行速度のオプションが有効になっていました。
一応、今回からオプションをきるようにしたのですが、
これがどういう風になることか。
なんか、最適化って、確かに早くはなるけど、
機械語レベルでの不具合を発生させるっていうような
感じがするんだよなぁ。
あと、ためしに内部の文字列をUNICODEに変更してみようとしましたが、
こちらは見事に挫折しました・・・。
普通に、UNICODEオプションを有効にして、コンパイルしたら
エラーが出ること出ること・・・。
しかも、修正してもまた違うところからエラー出てくるし、
最終的には、400件ぐらいエラー起こしてました orz
まぁ、暇見て修正するようにしよう。
今はちょっとよくなってきたけど、
頭痛 + 吐き気に教われてます orz
まぁ、やることも終わったしさっさと寝よう。
今日はというと、午前中は学習会で、午後は部活。
結局、春休みだろうが学校にずっといるわけです orz
まぁ、どうせ家いてもだらだらしてるだけだし、
このほうがいいわけですが。
明日は、部活が午前。
んで、午後からどうしようかなぁ、と悩み中。
学習室に行って勉強してこうか、それとも、
そのまま家に帰ってこようか・・・。
まぁ、面倒だから家でいいかなぁ。。。