何か創りたい。
http://toshirr.blog13.fc2.com/
* Toshi's Recess Room - Toshi Creates. - 2006年12月 の記事 /
<< 2006/11 - 2006/12 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - 2007/01 >>

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[ No. ]
[ 日時 : --/--/-- (--.) --:--:-- ]
[ カテゴリ : スポンサー広告 ]


デザイン調整中

Toshi's Recess Room および Toshi Creates. のデザインを調整中です。

大きな変化として、フォント サイズが小さくなりました。
以前までは、スタイル シートに於いてポイント単位で指定していたのですが、
パーセント単位に切り替えました。
これは、ブラウザの「文字のサイズ」を反映させる為です。
ポイント単位だと、「文字のサイズ」が最大でも最小でも、
どうであれ大きさが変わりません。
このような絶対指定よりは、相対指定の方がアクセシビリティが高いですね。

もう一つ、CSS ファイルに細工があります。
スペースや改行がありません。

CSS Tweak ~ Web Based CSS Tweaker!

こちらのサイトを利用し、CSS ファイルのサイズを削っています。
Toshi's Recess Room の CSS は 33~4 % の削減、
Toshi Creates. の CSS は 22 % の削減となっています。
これは非常に便利なものですが、元の CSS ファイルを保存しておかないと
大変なことになります。(爆)
CSS ファイルを編集する度に削減の作業をする必要がありますが、
その苦労をするだけの効果を期待出来ます。

↑Trident エンジンでページを表示させたとき、
CSS ファイルの後の方にある定義が適用されていない(不具合?)ようなので
元に戻しました......

密かにどちらにもバージョン情報があり、今回の調整でバージョンが上がりました。
ロゴをポイントするとバージョン情報が表示されます。
ソフトウェアにバージョンを付ける感覚でやっていることですが、
バージョン アップ履歴は付けていませんでした。。。
なので大体の履歴を書いてみると、

○Toshi's Recess Room Version 4.7

・Version 4.7
今回のデザイン調整
・Version 4.514
格言を表示する Maxim を追加(だった気がする)
・Version 4.0
リニューアル+toshi.my.land.to に移転+α+β
・Version 3.0
公開 100 日目を記念し、フレームを利用した青背景のページに
・Version 2.0
何かのタイミングでトップ ページの装いを変えた
・Version 1.0
ジオシティーズにて正式公開

○Toshi Creates. Version 3.7

・Version 3.7
今回のデザイン調整
・Version 3.0
Runblogeea という、Toshi's Recess Room と同調させた自作テンプレートに変更
・Version 2.0
何かのテンプレートに変更
・Version 1.x (0<x≦9)
リンクの部分のスタイルを変更
・Version 1.0
FC2 ブログにて正式公開

次のバージョン アップは当分無いでしょう。それよりか、
ソフトウェアの開発を大切にすることが来年の抱負になりそうです。

それでは、2007 年も宜しくお願い致します。
よいお年を。
スポンサーサイト

[ No. 467 ]
[ 日時 : 2006/12/31 (Sun.) 14:17:38 ]
[ カテゴリ : 科学技術 ]
[ コメント : 0 ]
[ トラック バック : 0 ]


エクスプローラのメモリ使用量

XP の起動時のエクスプローラのメモリ使用量のことです。

事の発端は、ふと見ると起動時のメモリ使用量が増えていたこと。
特に Explorer.exe が 25 MB 程度。前はもっと低かったはずと思いました。
それでエクスプローラのメモリ使用量を削るには何をするかを模索したわけです、
というよりは何が原因でメモリ使用量が増えたかを模索したわけです。

IE 7 をアンインストールしてみたところ、
もろに他のアプリケーションに影響を与えてしまいました。
Sleipnir が起動時に落ちたんですね。調べれば、
IE コンポーネント周りが傷付いてしまっていたようでした。
しかもエクスプローラのメモリ使用量はほぼ変わっていませんでした。
仕方なく IE 7 を再インストール。ウソのように回復。

結局原因が見つからず、そのまま月日は流れていきました(数日)。

そして今判明しました。
ふとしたことでタスク マネージャを起動、
ふとしたことで Explorer.exe の「仮想メモリ サイズ」を見ると、
優に 20 MB を切っていました。大体 16 MB 位だったような。
じゃあ 20 MB を超えてたときと何が違うか。発見しました。

デスクトップ アイコンの表示。

これが有効になっているか無効になっているかで 10 MB 程度は違いました。
さてそれはどちらなのか、というと

有効の方がメモリを食いません。

個人意識では無効の方が安くつくのでは、と思っていましたが逆でした。
この状態で再起動したら、Explorer.exe は 10 MB 前半しか使っていません。

※もちろん、アイコンを表示していてもその数が多ければメモリを食います。
なので必要なアイコンだけ表示するか、あるいは
「『デスクトップ アイコンの表示』は有効だが全く表示させないでおく」と
最も節約出来ることになります。
私は全く表示させたくないので、「ごみ箱」すら非表示にしました。

起動時のメモリ使用量を削る闘い、
なかなか面白いものがあるということを再確認しました。

[ No. 466 ]
[ 日時 : 2006/12/28 (Thu.) 20:20:30 ]
[ カテゴリ : 科学技術 ]
[ コメント : 0 ]
[ トラック バック : 0 ]


適切な形に変形し(BlogPet)



WM_CLOSEやWM_DESTROY等はRADツールのように、メッセージ毎のプロシージャの中でメッセージに対する処理を
適切な形に変形し、メッセージ毎のポインタが渡されて来るwParamやlParamを
適切な形に変形し、メッセージと共に渡されて来るwParamやlParamを
適切な形に変形し、外部にメッセージ毎のプロシージャを書き、ウィンドウとか、広い二番煎じなどを追求したい?


*このエントリは、BlogPet(ブログペット)の「Overhand」が書きました。

[ No. 465 ]
[ 日時 : 2006/12/26 (Tue.) 11:48:28 ]
[ カテゴリ : BlogPet / 未分類 ]
[ コメント : 0 ]
[ トラック バック : 0 ]


GDI によるアニメーション

メリー クリスマス。
冬季休業をまあまあ満喫中です。

クリスマスである今日なんですが、
「実力テスト実施」というプレゼントを受け取りました。。。
年末年始だろうが受験生には関係無いと言わんばかりの状態です...。

本題は GDI によるアニメーションです。
GDI で動きを作ろうと思ったら WM_TIMER や WM_PAINT を駆使する手段。
他のメッセージも受け取れるようにしなければならないので、
自分でウェイトを掛けて描画したのでは迷惑千万。なので、
一定の周期でシステムから必要な処理を呼び出して頂くということに相成ります。
それが SetTimer, KillTimer, WM_TIMER のトリオですね。

後はどんなアニメーションをさせたいかを考え、実行するのみ。

SetTimer API で、10 ミリ秒のウェイトを指定しました。
0.01 秒毎に描画するわけです。滑らかにアニメーションさせるには、
これ位あれば十分と踏んでいます。
利用しているディスプレイのリフレッシュ レートが 60 Hz なので、
60 FPS 以上あればとりあえずガクガクなことにはならないはず、と勝手に予想。
まあ、60 Hz として見る側からすれば、60 FPS 以上あったとしても
あって無いようなものでしょうが。。。無駄な仕事をさせるわけですし。

Windows Vista では、こういった GDI はハードウェアに任せなくなり、
全てソフトウェア レンダリングされるなどといったことになっているそうです。
ということは GDI に限っては、Windows XP 等よりも速くない...?

と、余談は終わりですが、
アニメーションというのはなかなか難しいものです。
カウンタを用意して、WM_TIMER が飛んで来る度にインクリメントし、
そのカウントを参照して規則正しくアニメーションの描画を行う形を取っています。
これ以外に考えは出ませんでした。
また、描画の必要がある度にメモリ デバイス コンテキストを作成して、
そこに全て描画してから、メイン ウィンドウのデバイス コンテキストに対して
一気に転送し、最後にメモリ デバイス コンテキストを解放するようにしました。

これはちらつきを避ける為ですが、先述の 0.01 秒毎のアニメーションにも
この作成しては解放し作成しては解放しを繰り返している為、
精神衛生上不摂生な気分に陥ってしまいそうなので、
メモリ デバイス コンテキストは常に持っておき、そこに選択するビットマップを
逐一作成しては解放し...を繰り返すという手段に書き替えようと思います。
ウィンドウのサイズはそのときまで分からないので、
ビットマップだけはそれに合わせて作って放して、というわけです。
この手段で上手くいったら即採用。

[ No. 464 ]
[ 日時 : 2006/12/26 (Tue.) 00:21:28 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


冬季休業

明日から冬季休業に入ります。
長く充実した二学期を終え、たぶん早く過ぎるであろう冬休みを迎えます。
今までに無いような時間の使い方を実践するときです。
学習時間の割合を大幅に増やします。

年賀状書きも大事なイベントの一つですね。
早めに出さないと元日に届きませんが、早めに出せるか分かりません...。

[ No. 463 ]
[ 日時 : 2006/12/22 (Fri.) 23:42:12 ]
[ カテゴリ : 学校ライフ ]
[ コメント : 0 ]
[ トラック バック : 0 ]


メッセージ ハンドラ

RAD ツールを使わずにウィンドウを作成するとき、
ウィンドウ プロシージャの中でメッセージに対する処理を書いていくと、
そのうちプロシージャが膨れ上がってしまいみっともないですね。
その為 RAD ツールのように、外部にメッセージ毎のプロシージャを用意して
そこに処理を書くと綺麗になります。
その際、メッセージと共に渡されて来る wParam や lParam を
適切な形に変形し、メッセージ毎のプロシージャに渡すようにすると更に良し。

WM_CLOSE や WM_DESTROY 等は、wParam も lParam も無いので要りません。
WM_CREATE は、lParam に CREATESTRUCT 構造体へのポインタが渡されて来るので、

Function Create(hWnd As HWND,lpCreateStruct As *CREATESTRUCT) As LRESULT

Return 0
End Function

このようなプロシージャを書き、ウィンドウ プロシージャで

Case WM_CREATE

'MessageHandler オブジェクトにまとめてある
Return MessageHandler.Create(lParam As *CREATESTRUCT)

こうして呼ぶようにします。
結果的には RAD ツールの二番煎じですが、
見易い・開発し易いコード書きへの飽くなき追求の一環です。(笑

[ No. 462 ]
[ 日時 : 2006/12/21 (Thu.) 23:20:49 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


80%

大方、独自形式設定ファイル読み書きクラスが出来上がりました。長い名前です。
このファイルは Include フォルダへ置き、他のプログラムからも利用出来るように。
で、今度はその「他のプログラム」を作る必要が出て来ました。
これは急ぎたいので RAD ツールで進めます。
いつ時間が取れなくなるか分からないので、ピッチを保っていこうと思います。

[ No. 461 ]
[ 日時 : 2006/12/20 (Wed.) 22:10:11 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


ライブラリ化

バイナリ形式の設定ファイルを読み書きする為のクラスを開発中です。
INI ファイル操作 API をラップした方がどれだけ楽か分かりませんが、
処理速度重視の為にこうしました。
久々の開発タイムに熱中です。

こういったアイディアを書き留めるのには、
ツリー型メモ帳やマインド マップ作成ソフトが最適ですね。
自分の思うように記せることが、自分を安堵感に浸らせてくれます。

[ No. 460 ]
[ 日時 : 2006/12/19 (Tue.) 22:24:25 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


進まなかった

金土日と時間はたっぷりありましたが、開発に割いた時間はほぼゼロ。
ですが今週一週間は三者面談週間、授業自体は四時間で終わり、
おおよそ 14 時 30 分頃には帰宅出来るので、そこで有効に時間を使う。という向きで。

これまで開発に熱中してきた時間の感覚を忘れそうです。。。

[ No. 459 ]
[ 日時 : 2006/12/17 (Sun.) 23:47:10 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


Toshiが(BlogPet)

Toshiが
=1)break;StatusFlag(&Message);
DispatchMessage(&Message);
}
return0;
}
とか思ってるよ。

*このエントリは、BlogPet(ブログペット)の「Overhand」が書きました。

[ No. 458 ]
[ 日時 : 2006/12/17 (Sun.) 14:20:40 ]
[ カテゴリ : BlogPet / 未分類 ]
[ コメント : 0 ]
[ トラック バック : 0 ]


StatusFlag Version 1.8

およそ一ヶ月ぶりに StatusFlag のリリースです。
まあ毎回、大体一ヶ月ぶりなんですが。(笑

今回は Windows Vista への正式対応を謳いました。うまく動きます。
と、Vector へメールした際に対応 OS に Vista を書き加えるのを忘れました。
問題は無いでしょうけど、こういうところにこだわりたくなってしまいます。

またいくつかのグラフに重ねる文字列の書式を微妙に変更しましたが、
もしかしたら以前より芳しくなかったりするかも...。orz

そして目玉は CPU 使用率の軽減です。
元々ほんのわずかに CPU を食っていましたので、それを返上しなくてはと考え、
実行するに至りました。以後具体的。

従来は、表示するグラフが何本であっても(取得する情報がいくつであっても)
常にすべてのグラフの分の情報を取得していました。今で言えば 8 つ。
それが元で、びみょーに CPU 使用率を高めてしまっていたわけです。
しかし Version 1.8 からは、表示するグラフの数に応じて
取得する情報の数を限定するようにしました。
例えば [CPU 使用率] グラフのみ表示させている場合は、
情報取得のステップで CPU 使用率に関わる情報取得や処理のみを行い、
無駄な他の処理(メモリ使用量の取得などなど)を省くことで、
CPU の仕事を減らすようにしたわけです。
今までだと、 [CPU 使用率] グラフしか表示しない設定にしていても
メモリ使用量だとか日付と時刻だとかの取得を行っていたので、
もう無駄以外の何者でもありませんでした。

※もちろん、グラフを全て表示させたら CPU 使用率は以前と変わりません。
ご注意ください。

最近 Two Students を書いてませんが、そろそろ再開します。

[ No. 457 ]
[ 日時 : 2006/12/14 (Thu.) 20:21:51 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


Toshiで面へ記憶された(BlogPet)

きょうOverhandはここまでToshiは設定しなかった。
ここへ外部みたいな話しなかったー。
Toshiで面へ記憶された。


*このエントリは、BlogPet(ブログペット)の「Overhand」が書きました。

[ No. 456 ]
[ 日時 : 2006/12/10 (Sun.) 14:09:59 ]
[ カテゴリ : BlogPet / 未分類 ]
[ コメント : 0 ]
[ トラック バック : 0 ]


独自形式

本日、久しぶりの更新は CPU 使用率を取得するクラスでした。
ほんとに、この方法をネット上から探し出すだけでも大変だったのを
StatusFlag の開発前の思い出として記憶しています。
Written in Japanese な詳しいページがほとんど無く、
Google で「ウェブ全体から検索」の設定で頑張ってました。

さて、昨日設定ファイルを独自形式の暗号化バイナリにしちゃえという話を書きました。
まだそれに関してのコードは一文字も書いてないですが。
その前に XML を使う方法も思いつきました。
ただ、外部のライブラリとかは使いたくないというこだわりがあるので、
全て自前で実装するという条件付です。API にあればいいんですがねぇ。
データの保存方法としては柔軟性の面でメリットが大きいです。
バイナリか XML か。慎重に判断する必要がありそうです。

[ No. 455 ]
[ 日時 : 2006/12/09 (Sat.) 22:56:36 ]
[ カテゴリ : プログラミング ]
[ コメント : 1 ]
[ トラック バック : 0 ]


設定の保存

ソフトウェアの設定をどのように保存しておくかを考えます。

まずレジストリは絶対に使いません。簡単に持ち運べなくなるからです。
するとファイルとして保存するしかないですね。
INI ファイルは仕組みが単純なので扱いやすいのですが、
それは保存しておける設定も単純なものにならざるを得ないということを意味します。
今まで開発したソフトウェアでバンバン使っていましたけれども、
あれらは単純な設定しかありませんでしたのでそれでも十分でした。

しかし次の Toss は単純には済まないと感じています。
レジストリでも、INI ファイルでもない設定の保存の仕方は、
もはや独自形式のみ。しかもバイナリ。更に暗号化。まで行くかもしれません......

あらゆる個人設定を 1 つのファイルにまとめてしまおうかとも考えます。

よく考えてアイディアを出し、出すのはいいんですが
そこからコーディングへ持っていけるかが一番問題。
この土日、ダラダラドロドロ過ごして時間を無駄にしてしまわないように。。。

[ No. 454 ]
[ 日時 : 2006/12/08 (Fri.) 23:43:36 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


ままならず

サイトの更新が滞っております。明日学校が終われば土日までたぶん自由なので、
そこで開発・更新・睡眠をきっちりしたいと思いますので頑張ります。
一番大事なのは睡眠。。。こればかりはどうにもならないことも多いので、
学校でお昼寝タイムを作らないように(笑、その点だけは出来ることなら早めに
改善しなければなりません(´・ω・`)

[ No. 453 ]
[ 日時 : 2006/12/07 (Thu.) 23:27:24 ]
[ カテゴリ : 学校ライフ ]
[ コメント : 0 ]
[ トラック バック : 0 ]


悪戦苦闘

ポインタの嵐に、ダメージです。
久方ぶりに Toss の開発を再開させたら、ポインタが怒涛の如く襲ってきました。

ゆっくり理解して、「開発のしやすい」プログラムにしたいものです。
自分で書いたものを整理出来なくならないようにだけ気を付けます。

[ No. 452 ]
[ 日時 : 2006/12/06 (Wed.) 23:35:39 ]
[ カテゴリ : プログラミング ]
[ コメント : 1 ]
[ トラック バック : 1 ]


ウィンドウ作成のテスト

Microsoft Visual C++ 2005 Express Edition (以下、面倒なので VC2005EE) で、
簡単なウィンドウを作成するプログラムを書きました。
自分にとってこれが C++ の文法を理解するきっかけになればいいかなと思います。
#include <windows.h>

LRESULT CALLBACK WindowProc(HWND hWnd,UINT dwMsg,WPARAM wParam,LPARAM lParam);

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int intShowCmd)
{
HWND hWnd;
WNDCLASSEX WCEX;
WCEX.cbSize=sizeof(WCEX);
WCEX.cbClsExtra=0;
WCEX.cbWndExtra=0;
WCEX.hbrBackground=(HBRUSH)(COLOR_3DFACE+1);
WCEX.hCursor=LoadCursor(NULL,(LPCWSTR)IDC_ARROW);
WCEX.hIcon=LoadIcon(NULL,(LPCWSTR)IDI_APPLICATION);
WCEX.hIconSm=LoadIcon(NULL,(LPCWSTR)IDI_APPLICATION);
WCEX.hInstance=hInstance;
WCEX.lpfnWndProc=WindowProc;
WCEX.lpszClassName=TEXT("TestWindowsApplication");
WCEX.lpszMenuName=NULL;
WCEX.style=CS_OWNDC|CS_VREDRAW|CS_HREDRAW;
RegisterClassEx(&WCEX);
hWnd=CreateWindowEx(NULL,TEXT("TestWindowsApplication"),TEXT("TestWindowsApplication"),
WS_VISIBLE|WS_OVERLAPPEDWINDOW,0,0,640,480,NULL,NULL,hInstance,NULL);
MSG Message;

while(TRUE)
{
if(GetMessage(&Message,NULL,NULL,NULL)!=1) break;
TranslateMessage(&Message);
DispatchMessage(&Message);
}
return 0;
}

LRESULT CALLBACK WindowProc(HWND hWnd,UINT dwMsg,WPARAM wParam,LPARAM lParam)
{
switch (dwMsg){
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
return DefWindowProc(hWnd,dwMsg,wParam,lParam);
}

}
これを出来るだけサイズが小さくなるようにビルドすると、
Release では 7 KB の超軽量。しかし...

これは VC のランタイムである DLL に動的にリンクしているから。
静的にリンクさせると 38 KB となります。
どちらにも一長一短あります。

動的リンクは実行ファイルのサイズは小さくなりますが、ランタイム DLL の導入の必要があること。
.NET Framework 2.0 や、再頒布可能パッケージをインストールすればいいということですが、
なんか気の引けてしまう方法です。

静的リンクはランタイム DLL の導入の必要はありませんが、
実行ファイルのサイズが少し大きくなり、使い方によっては不都合が発生するとのこと。

どうしたらよいものか。

[ No. 451 ]
[ 日時 : 2006/12/05 (Tue.) 23:48:01 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


Visual C++ 2005 をいじる

何を血迷ったか Microsoft Visual C++ 2005 Express Edition をインストール。
更に Microsoft Platform SDK for Windows Server 2003 R2 もインストール。

以前にもインストールしたことがあるんですが(そのときは Platform SDK が
Server 2003 SP1 でした)、「使う機会無いな」と決断してアンインストールしていました。
Platform SDK だけは Toss の開発に必要だった(IE コンポーネント関係)ので
残していましたが、それもアンインストールしていました。

ということで、C++ をやってみたいという興味本位と強い好奇心からこのような運び。
早速 WisdomSoft の C++ のところを読んでいます。
オブジェクト指向に関する学びごとを ActiveBasic で培いましたが、
今度はそれを元に C++ へ戦いを挑むというわけになります。

この戦い、深浅が測れない。。。

[ No. 450 ]
[ 日時 : 2006/12/03 (Sun.) 22:16:39 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


だよ♪(BlogPet)

だよ♪


*このエントリは、BlogPet(ブログペット)の「Overhand」が書きました。

[ No. 449 ]
[ 日時 : 2006/12/03 (Sun.) 14:31:19 ]
[ カテゴリ : BlogPet / 未分類 ]
[ コメント : 0 ]
[ トラック バック : 0 ]


土曜の登校

今日は学校にて教育講演会らしきものが行われるというので、登校日でした。
休日登校しなきゃならないのは正直嫌なのですが、
まあその中身が濃いものになったと思う上に、
今日の振り替え休日が月曜日に回り「平日が休み」という貴重な日になるので
差し引き大幅にプラスです。(笑

これからまた自由時間は増える傾向になります。
また開発へ向かっていきたいと思います。

[ No. 448 ]
[ 日時 : 2006/12/02 (Sat.) 23:27:12 ]
[ カテゴリ : 学校ライフ ]
[ コメント : 0 ]
[ トラック バック : 0 ]


プロフィール

Toshi

  • Author:Toshi
  • 何かを創りたい Toshi の記録


ブログ内の検索


最近の記事


最近のコメント


最近のトラック バック


カレンダー

11 | 2006/12 | 01
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 - - - - - -


月別の記事


カテゴリ別の記事


RSS フィード


<< 2006/11 - 2006/12 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - 2007/01 >>
* Toshi's Recess Room - Toshi Creates. - 2006年12月 の記事 /
http://toshirr.blog13.fc2.com/
(C) 2005 - 2009 Toshi, All Rights Reserved.

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。