つい先ほどまで明日補講があることを完全に忘れてた orz
(正直言って)あの補講だけは忘れると洒落にならない、
というか、即除籍決定。
んまぁ、とりあえず、思い出したからいいけど・・・。
しかし、何か少し曜日の感覚がおかしいかな。
日曜日は模試で缶詰で、かと思えば、昨日は
遠足で一日中ぐーたらで、今日が水曜日だって感覚が無い orz
今日はというと、遠足で長島スパーランド行ってきました。
まぁ、それなりというか、特に書くことも無し。
あえて言うなら、もうホワイトサイクロン乗る気は無い orz
一回でおなかいっぱいって感じでした・・・。
んでまぁ、帰ってきてからはひどい頭痛にうなされ、
今は多少落ち着いてますが、明日は別種の
頭痛に襲われる可能性ありです orz
さて、予習やって、多少勉強して寝るかね。
Visual Studio 2005のリソースエディタってこんなにも
動作が不安定なのか・・・?
少なくとも、2003のときはそんなに
不安定じゃなかったはずなんだが。
さて、唐突にこんなことかいてますが、
一体どんなことがあったかといいますと、
症状自体は結構前から出てたのですが、
リソースエディタをいじってると、いつの間にか
変更が認識されないようになって、
ダイアログの情報とかを更新しても
コンパイルのときにリソースの
再コンパイルが行われないんですね・・・。
しかも、挙句の果てには、ソフト側に
変更が認識されていないということで、
Visual Studioを終了しても何食わぬ顔で
保存ダイアログを出してくれません。
もうこうなってくると、腹が立つ一方で
こんな状況が一週間ほど前から発生しています。
それとか、このリソースエディタ、
結構不満がいろいろとあったり。
Pocket PC用の開発してるときとか
再描画するのに10秒ぐらいかかったりとか、
まぁ、このときはオブジェクトの数が
50程度あったとはいえ、かなり動作が遅かったです。
それに加えて、リファクタリング関係のものも
読み込んでるようなので、こちらは
どちらかというと仕方ないのかな・・・。
まぁ、とにかく、前者をどうにかしたい。
後からちょっと情報を探してみようか。
先ほどまでうとうとしながら勉強していて、
あやうくそのまま寝てしまうところでした。。。
んまぁ、明日の朝に振りこすかなぁ。
さて、今日はというと、模試で、
帰ってきてからはEclipseでPHPの開発とデバッグを
できるようにしていました。
まぁ、いまさら環境を整える必要は無いのですが、
php_dbgによって、ブレークポイント設定したりとか、
一時停止中に変数の中身見れたりとか、
ステップイン、ステップアウトができたりとか、、、
とにかく、詳細なデバッグが行えるようになるようで、
それを試してみたくてやってました。
んで、結果はというと、一応、動くとこまで
持ってくることはできましたが、一発で
すんなりとインストール、というわけでは無かったです orz
まぁ、適当に試行錯誤してればそのうち
動くようになると思います。
そういや、VS.Phpなどというものもあるようで・・・。
まぁ、こちらは、製品のようですが、
探せば無料体験版があります。
ということで、数時間前にも同じこと書いた気がしますが、
特にネタも無いので流用。
土曜日の夜だし、プログラミングやろうか、とも思ったけど、
なんとなくやる気がしない・・・。
まぁ、不具合修正とかそういうわけで急いでるわけでもないし、
ゆっくり実装していくことにしよう。
簡単に、実装したいことをまとめてみると、
現状でログ取り用のクラス(CResult)があって、
最後の結果の分析用に新しくクラス(CAnalyzeResult)を作って、
そこには、Vectorを使ってログのリストを渡すか、
そのままCResultを渡すようにする。
CAnalyzeResultでは、setとか、mapとか使ってソートする。
ソートしたデータは、タブごとのプロシージャの
WMCREATE(もしくは、WMINITDIALOG)内で設定をする。
データは、リストボックスに挿入するようにして、
リストボックスの項目を選択したら、それに応じて
仮想キーボードの該当キーの別表示を行う。
こんなもんだろうか。
あとは、ミスの割合とかのグラフとかも
作ってみたいなぁ。
まぁ、いろいろと構想を膨らませてみることにしよう。
昨日の夜書き忘れて、さらに、今日の朝囲うと思ったら、
それすらも記憶の果てに忘れ去られてた orz
ぱっと、自分のサイト見てみて、日記のところ見て、
先日書いた文章が表示されて、はっ、と思って、
やっとも思い出した次第。
さて、今日はというと、学校で補講。
そして、明日は模試ということで、一週間休み無し orz
まぁ、、、本当に無いかというと、今週は、
テスト週間が終わった日の午後は自由にしてたし、
来週も、火曜日は、長島スパーランドに遠足だそうで、
適度に休みはあるので、大丈夫そうです。
(大丈夫とか、そういう問題でもない気がするが)
最近、授業後は大概自習室で勉強しているのですが、
今日もしていて、途中でうとうとしてきて、
こっくりこっくりしているのも、周りの人に目障りだろうし、
迷惑だろうから、さっさと帰ってきました。
まぁ、そんなことはいいとして、昨日友人と話してたことについて、
自分なりの意見を書いてみようと思います。
以下、間違ってたりとか、無知を示すような文章が
続くと思いますが、ご了承ください。
まず、議論していた内容ですが、
高セキュリティ機能を実現する次世代OS環境の開発実施について(PDF)
http://www.bits.go.jp/press/pdf/securevm.pdf
についてです。
まぁ、自分が文章を読んで想像しているのから書いていきますと、
ハードウェアと現行のオペレーティングシステムの間に
ワンクッションおいて、その間ハードウェアと
オペレーティングシステムの間の部分に仮想マシン(VM)を
動作させて、VM上でネットワークの暗号化や、不必要な
リソースへのアクセス制限を行うことでセキュリティを
確保しよう、というのが狙いだと考えています。
友人と話していて、本当にVMである必要があるのか、という話に
なったのですが、私自身が考えるには、この点が重要で
仮に既存のリソース(Linux等)を改良して、
それを使うということになったとすると、今まで使っていた環境とは
がらりと変わってしまうわけです。
その分、VM上で今までどおり(完全に今までどおり、というのは
語弊があるが)の環境が動作させれるのなら、
そちらの方が合理的じゃないんでしょうか。
これは、実際に利用する立場から見てみたものですが、
セキュリティというから観点から見てみると、
どちらも、あまり大差が無いのではないだろうか、というのが自分の考えです。
次に、VM上で動作させるとして、動作速度は
どうなのか、という話ですが、これについては、
最低ラインで、Windows + VMWare という環境と同レベルであると考えます。
(これが速いと思うか、遅いと思うかは人それぞれですが)
というのは、なぜこの環境で示したかというと、実際の環境と
対比しやすいからで、例えば、Windowsがセキュリティ機能を担当する部分で、
VMWareの部分がVMWare上で動作するオペレーティングシステム、と考えると、
Windows上では、私たちが普通に使っているだけでも、裏ではさまざまなプログラムが
動いています。その中には、今回のVMに似たようなセキュリティを担当するような
プログラムだって動いているでしょうし、なにより、高度なGUI機能が提供されています。
仮に、VM上でGUI等を一切提供せず、セキュリティ関係のプログラムも
そこまで多い数でなければ、少なくとも、Windows + VMWareという環境より、
速くなるのが妥当ではないだろうか、というのが私の考えです。
甘い考えかもしれませんが、Windows上でタスクマネージャを開いて
プロセスの数を見てみても、これだけの数が動いていて、
さらに、その上でVMWareを動かしたら、そこそこな速度は出せるものですし、
妥当な線ではないだろうか、といったところです。
それに、実用自体は3年か、5年ぐらいをめどと考えるのが適当だと思うので、
そのころには今よりコンピュータの処理速度は格段に上がっているのではないでしょうか。
このことについて、よく評価する面ばかり書きましたが、
少し不安に思う面もいくつかあります。
まず、予算的にこれで足りるのか、ということ。
ニュースサイトを見たときにも書いてあったのですが、
本当にこういう開発を行うのなら、開発費の桁数が
1,2桁違うそうです。
あとは、若手養成もかねている、というような書き方がされてますが、
本当にこういうOSが作りたいのなら、そこにまで手を回す必要があるのでしょうか。
開発費をこういうところで還元しようという考えがあるのかもしれませんが、
すこし、不安な要素になりかねないような気もします。
以上、長々と書いてみましたが、正直無知をさらけ出すような
文章を書いて、痛々しい気もしますが、公開しようと思います。
まだまだ、書いてみたいことはありますが、あまり時間も無いので、
これぐらいにしておこうと思います。
間違いやコメント等ありましたら、↓のコメント機能から
送信してください、
昨日テストが終わって、今週末の日曜日に模試。
そして、その一週間後の来月の5日あたりに実力テスト。
自分で一学期にやると決めてるものも、あんまり
進み具合がよくないし、実力テストは課題を
やらないといけないし、ってな感じで、
結構時間的に余裕が無いかもしれない。
すこし、睡眠時間を減らしてないと、まずいかなぁ。
てか、こんな事言ってるそばから議論に夢中になって
時間がどんどんすぎてゆく・・・ orz
やっとのことで、中間テスト終了。
ということで、今日は今までプログラミングしてました。
さて、内容はというと、Free Typingの改造ですが、
今回は終了時に詳細な結果を表示するような
改造をしてみました。
まだ、完成しているわけではないのですが、
一通りの枠組みはできているので、あとは、
肉付けをしていくだけです。
まぁ、ここのところが、どんな機能をつけようかと
迷うところで、面白いところです。
今回は、タブで制御できるようにしてあるので、
ある程度はスペースも確保できるので
いろいろな角度から分析できるようにしようと思います。
正直なところ、他のタイピングソフトと比べて、
殺風景で見劣りするので、こういうところで
差異をつけていくように考えています。
あと、今日やってて思ったことを二つほど。
・STLのエラーわかり辛い
最初、こんな感じでエラーが出たのですが、
エラー 2 error C2784: "bool std::operator <(const std::Tree<Traits> &,const std::Tree<Traits> &)"
: テンプレート 引数を "const std::Tree<Traits> &" に対して "const std::string" から減少できませんでした
(改行付加して、シングルクォーテーションをダブルクォーテーションに変更)
これを見て、一体何のエラーなのか、わかるものなんでしょうか。
(一概には言えないと思いますが)自分の場合、このエラーの原因は、
<string>がインクルードされていないのが原因でした。
STLのmapを使おうとして、検索のキーの型にstringを指定して、
コンパイラがmapに必要な比較演算子を探しても、
見つからなかった、ということだと思います。
・同一のプロシージャに複数のウィンドウから
メッセージをを送出するのは、危険すぎるかなぁ
ウィンドウクラス(Win32APIのじゃなくて、C++のクラス)が存在して、
そのインスタンスを複数生成すると、ウィンドウクラスの
staticの一時的なウィンドウプロシージャに、生成した
ウィンドウすべてが一度メッセージを送出することになるので、
それってどうなのかなぁ、ってことです。
最初は、危険かなぁ、と考えていましたが、
いろいろ、他の人が書いてあるのを見てみたり、
自分なりに考え見ましたが、結局、
よくよく考えてみると、根底の部分では、
TranslateMessageとか呼び出す前は、
全部共通のメッセージのはずなので、
ある程度、信頼性が確保できるのなら、
問題ないのかなぁ、という自分の中での結論に至りました。
最後に、今日のプログラミングで書いたソースコードの行数。
大体、5,6時間程度やって、400行・・・。
時間の割りに、あんまりかけてないかなぁ。
普段自分はサクラエディタというテキストエディタを使っています。
まぁ、このエディタ自体は、ソースコードの色分け表示ができたり、
文字コードの変換とか、改行コードの変換とか、簡単にできて、
非常に重宝しています。
Japanese Text Editor
http://sakura-editor.sourceforge.net/
さて、今回、ファイルを保存するときの初期ディレクトリを
デスクトップにする、というのと、ファイルを保存するときの
初期拡張子を"txt"にする、という二つの設定をできないかと、
いろいろと探してみたのですが、そのような設定が
見当たらなかったので、まぁ、面倒だからソースコードレベルで
設定しようと思い、やってみました。
んで、まぁ、前置きが長くなったけど、以下そのときのメモ。
一応、作業を行った環境を書いておくと、
Windows XP Professional SP2
Visual Studio 2005 Professional
サクラエディタのリビジョン:969
です。
多分、以下で行うような作業だけなら、
Visual C++ 2005 Express + Platform SDK
の環境でも、おそらく(未確認)できると思います。
まず、ソースコードは、上記のサイトのSubversionの
Repositoryからチェックアウト。
このとき、TortoiseSVNがインストールされていると
「TortoiseSVNで最新のソースコードをサクラエディタ開発Trunkからチェックアウト」
と書いてあるところをクリックするだけでチェックアウトできます。
チェックアウトするときに、証明書云々と問われますが、
問題ないと確認したら、先に進んでチェックアウトを行ってください。
チェックアウトが完了したら、Visual Studioでソリューションを
開いて、「CDlgOpenFile.cpp」を開きます。
そして、以下の箇所をそれぞれ修正。
・ファイルを保存するときの初期ディレクトリをデスクトップにする
911行目をコメントアウト。
//mofn.lpstrInitialDir = mszInitialDir;
以下のソースをコメントアウトした行の次の行に挿入。
意味は、デスクトップのパスを取得(SHGetFolderPath)して、
OPENFILENAME構造体の変数 m_ofn の lpstrInitialDir に渡す。
char DesktopPath[255] = "";
SHGetFolderPath(NULL,CSIDLDESKTOP,NULL,0,DesktopPath);
mofn.lpstrInitialDir = DesktopPath;
・ファイルを保存するときの初期拡張子を"txt"にする
922行目の記述を以下のように変更。
意味は、OPENFILENAME構造体の拡張子が指定されなかった場合に
自動的に付加する拡張子を指定する変数、lpstrDefExt の値を変更。
m_ofn.lpstrDefExt = "";
↓
m_ofn.lpstrDefExt = "txt";
以上でそれぞれの変更が完了。
後は、コンパイルして、確認して、Releaseに変更して、
再度コンパイルして、以上で完了です。
サーバーの移行等も完了し、サーバーが使うことがなくなったので、
サーバーの停止。
以下、そのときのメッセージ。
[root@localhost root]# mysql stop
ERROR 1049: stop なんてデータベースは知りません.
妙に堅苦しくないメッセージなので、
最初出たときに少し驚いた(==
[root@localhost root]# shutdown -h now
Broadcast message from root (pts/1) (Sat May 20 21:23:13 2006):
The system is going down for system halt NOW!
そして、shutdown...
さて、明日もテストなので、勉強してくるかな。
午前中は、補講で、午後はそのまま学校残って自習。
自習の間に、ついうとうとして、30分ほどの睡眠を
2回ほどしたような気がするのは秘密。
うん、多分誰も気づいてないから、まぁいいや。
って、よくよく考えてみると、なぜそこで眠気に襲われるかって、
昨晩遅くまで起きてたのが原因なんだろうなぁ。
しかし、今回はパソコンやってて眠くてこうなった、というのは、
自分が馬鹿だった、ってそれだけでいいんだけど、
例えば、遅くまで勉強してて眠くなった、というのは、
どう対処すればいいんだろうか。
自分が悪いっていうのは、確かだけど、これから、
そういう状況になるってことも、大いにありえるだろうし、
なんていうかな、そういう耐性っぽいものを
つけていかないと、いけないのかもしれない。
まぁ、よくわからないことかいてるけど、
さっさと寝て、明日もがんばることにしよう。
Free Typingのログの切り離し作業完了。
一応、動く程度にはなってるけど、少し、
クラス間の関連が怪しいのと、新しい
機能をいくつか入れてみたいので、公開は
まだ先になりそうです。
さて、明日は午前中は補講。
多分、午後もそのまま自習室によってくと思う。
んでまぁ、帰ってきたら、今日の続きと、
サーバー停止させて、バックアップ取ったりとか、
やろうと思う。
今日から、来週の火曜日まで中間テスト。
今日は、現代文、英語2、物理だったけど、
あんまり芳しくない感じだなぁ。
明日は、数学3と地理だけど、毎度地理が足を
引っ張ってるので、がんばるようにしないと。
数学3の方は、これだけ70分テストだけど、
どんな問題になるかが気になるところ。
範囲が、微分のところ全部なので、
微分したりとか、グラフ書いたりとか
すると、結構時間がかかったり。
あとは、近似式がちょっとやばい感じかなぁ。
f(a + h) ≒ f(a) + f'(a) * h
f(x) ≒ f(0) + f'(0) * x
の使い分けとかがいまいちわかってなかったり。
なんか、重大なことを見落としてる感じがするなぁ。
Webサイトのコメント送信のところの文字化けを、
修正してなかったのを思い出して、急いで修正。
何度か、手違いでいろいろとやってしまい、
結構時間がかかるはめに・・・。
まぁ、とりあえず、何とか直せたと思う。
先ほど、サクラエディタのソースコードを
見ようと思って、サクラエディタのページを見てたのですが、
スキーム名に「tsvn:」って指定すると、TortoiseSVNが
コロン以下のアドレスから、チェックアウトしようとしてくれるようです。
リポジトリを公開することがあったら、これをやってみるようにしよう。
物理がまずい・・・。
今回の範囲は、電気の一番最初のところ(斥力が
どうこうとか、コンデンサがどうこうとか)なわけですが、
いまいち、よく理解ができていない・・・。
明後日がテストだけど、もう一度問題を解きなおすとして、
どうにかなるだろうか。
化学の有機のところがわからないとか、そういうのなら、
まだ、いいような気がするんですがね、工学系等の
道に進むというのに、コンデンサのあたりがわからないとか、
あんまりしゃれにならないので、どうにかしないといけない。
約1年半ほど稼動し続けたサーバーですが、
Webサーバーの移行も完了し、リポジトリの停止も
通知したので、これでやっと、サーバーを
停止できる状況まで持ってこれました。
まぁ、停電とかでたまにサーバーが停止してる
こともありましたが、本当によくがんばってくれたと思います。
スペックもかなり低い割には、そんなに遅さを
感じることも無かったし、6年近くたつパソコンの割りに、
特に目立った故障とかも無くて、よかったと思う。
ちなみに、自分で覚えてる限りで、最長の連続稼働日数は
130日ほどだったと思います。
毎度毎度、100日越そうとすると、暴風だったり、
ブレーカー飛んだりで、いわゆるジンクスがあったわけです。
この130日ってのも、つい先週までの記録なわけですが、
このときは、暴風とかそういうのじゃなくて、
早朝に送電側で電源切り替えたのかわからないけど、
瞬間的に停電したようでした。
さて、それで、これからバックアップ作業に入って、
完全に停止しようと考えてるのですが、どうやって、
バックアップしようかというのが問題でして、
まず、バックアップ方法をどうしようか、というのと、
純粋に時間が無い、ということ。
前者の方は、ハードディスクのイメージごと、
フルバックアップしたいのですが、Linuxの
ファイルシステム(名前忘れた)がWindows上で
マウントできるようなソフトを探して、
そっからバックアップしないといけないんです。
多分、Linux上でSambaとか何か経由するにしても、
できないことは無いだろうけど、ちょっと時間がかかりそう。
だから、いっそのこと、Windows上でマウントして作業した方が
楽そう、っていうことです。
それに、ハードディスクの容量が、ちょうどDVDにはいる
ぐらいのサイズなので、そっちにバックアップしたいってのもあります。
で、結構切実なのが、後者。
こっちの方は、結構問題ありまして、まず、今からサーバー止めて、
作業するにも時間が無いっていうのも問題なんですが、
仮に、今サーバー止めて、一週間放置したら、ハードディスクが
動くかどうかわからないっていうのがあるんです。
ものがものですし、耐用時間もかなり越えてるはずだし、
あんまり悠長なことをやってられない。
まぁ、来週に作業を移せば、それでもいいんですが、
なんとなく、一週間何もせずに放置ってのもなんとなく気が引ける。
勉強のあいまにでも、ちょこちょことやってけば、
何とかできるだろうか・・・。
まぁ、そんな感じでうだうだと書いて見ましたが、
そんなことかいてる暇あったら、作業した方がいいですね。
多分、最後の方の理由により、停止するのは、来週くらい・・・?
手を加えてみよう、とは思うものの、いまいち案がまとまらない。
もうちょっと、動的な表示を増やしたいかなぁ、とも思うけど、
何をどうしようか・・・迷う(==
とりあえず、つれづれと心にうつりゆくよしなしごとを
書いてみようと思います。
・結果の表示方法を変更する
・ログの履歴を残せるようにする
・ロードできる画像の種類を増やす
・音楽ファイルのファイルの種類を自分で調べるようにする
・カスタマイズできる項目を拡張する
・問題ファイルを増やす
・問題ファイルを暗号化して、1ファイルにまとめる
・ローマ字の「si」と「shi」の区別とかを自動認識する
上から、やる気がある順番に並べてある。
とりあえず、今は結果の表示周りを改造してみようかと思う。
なんというか、ここら辺はかなりめちゃくちゃな実装になってて、
ソースコード見てもらえればわかるのだけど、
何故か結果の集計をKeyboard側でやってるんですよね・・・。
まぁ、それゆえに結果表示の拡張性が下がってるのだと思う。
土曜日で、テスト週間なのに、補講があるとのことです orz
まぁ・・・別に受験勉強もテスト勉強も、同じだと考えれば、
あまり時間もないことだし、妥当といえば妥当か。
補講自体は、午前中で終わるのだけども、午後家に帰ってきて、
勉強に集中できるわけもなさそうだし、多分、
学校の自習室によってくると思う。
ところで、昨日言ってた雑誌のInterfaceにマイコンが
ついてるとのことですが、まぁ、面白そうなので、
買ってきてみました。
今は作るときはないけど、大学入ってから、
おもちゃとして遊ぼうかと考え中。
学校の近くに赤ペンが切れたので、それを買いに行ってきました。
別にそんなことはどうでもいいんですが、
ついでに、パソコン関連の雑誌を物色してたら、
日経ソフトウェアの「プログラミング実力アップ大作戦!」という
特集の中で、Haskellに関する説明が載ってました orz
名前と多少の特徴は友人から聞いて知ってたけど、
Web上にあまり日本語の情報が無いようなのに、
こういう形で取り上げられていたのが少し驚き。
あとその雑誌に「C言語まるごと学習ブック」とか言うのも
あって、少しほしいかなぁ、と思ったけど、
とりあえず、勉強に集中できなくなるので、やめといた orz
あと、もうひとつそこの本屋で見かけたのが、
Interfaceに付録としてマイコンがついてました。
これって、以前に一度作ったことがあるのだけど、
そのときのCPUのソケットの部分をかえれば、動くのだろうか。
ポートの配置が同じなら、ソケット変えるだけでも
動くような気はするけどなぁ。
まぁ、ちょっと父親に聞いて、
興味がわいたら買ってみようかと思う。