TeX。今までグラフ等を Excel から bmp にして印刷していたが,どうも汚い。ネットでいろいろ情報を集めたところ,Excel からポストスクリプト対応のプリンタドライバでファイルに出力することで直接 eps ファイルにできるらしい。実際にやってみるとかなり綺麗に出力できた。

TeX。DVIOUT から大学のプリンタに印刷をするが,BMP の画像が真っ白だったり真っ黒だったりする。はっぱさんに相談すると BMP の色とか言われたので見てみると,BMP の色数がフルカラーだった。これをグレースケール(というか 256)にすると無事印刷された。

VC++ MFC で作ったアプリケーション。Form View でコントロールをはると,Ctrl+C などのショートカットを何故か受け付けてくれない。以下のように自分でメッセージをとばして一応解決はした。

void CXXXView::OnEditCopy() 
{
    GetFocus()->PostMessage(WM_COPY);
}

TeX。コンパイル時に

Too Many unprocessed float

というエラーが出る。これはフロートイメージが多すぎるからだが,適当なところで

clearpage

を入れれば解決する。

TV チューナー & キャプチャ Logotec「オー!舞画 TV(USB)」を買ってみる。早速配線して表示させてみると,動画はまあまあ見られるレベルだったが,音が音にならない。でふと DirectSound の設定を見ると

DirectSound(emulate)

となっていた。普段使っている PC カードのサウンドカード(というか MIDI カード)が DirectSound に対応していなかったようだ。本体から直接音を出したら問題なく聴けるようになった。

キャプチャ機能については,キャプチャ中は再生が追いついてない感じがするが,録画したものはちゃんとできていた。と思う。あんまり試してないけど。

スタートアップの場所

HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionrun

Typing of the dead PC 版。LAN 対戦をしてみる。入力のとりこぼしっぽい現象が見られたが,それ以外は全然問題なくプレーできた。

上記の現象,1 人が入力中に同時にもう 1 人が入力するとかなりの割合で miss になる,という感じ。マジシャンは大苦戦。

Typing of the dead PC 版を買う。なかなかいい感じ。早速ネット対戦を試みるも遅すぎて断念。

少し前から,プロバイダ他から来たメールを携帯(DoCoMo N502i)のリモートメールアドレスへ転送するようにしていたのだが,今日携帯を見ると,本体のメールが一杯でセンターにメールを預かっている,という表示になっていた。

マニュアルで調べてみると,「本体のメールは 100 件まで保存され,未読のメールは削除されない」とあった。なーる。未読が 100 件たまったのね。と,「全て既読」を選択。しようと思ったらそんな機能は(見あたら)なかったので地道に 1 件 1 件既読にしました。


IE5.5 をこの前入れてみた。そしたらなんか存在しないドライブ W が 2 つ増えた。

で,サービスパックが出てるようなので入れてみようかな,と思ってダウンロードして実行。したけど,これは実行中にインターネットからダウンロードするですか。常時接続環境でダウンロードして家でインストールはできないですか。なんか雑誌とかついてないかのう。

brpuzzle Java アプレット・アプリケーション版を公開


ライブラリのリンクで

fatal error LNK1202: "xxxvc60.pdb" には参照モジュールに対するデバッグ情報がありません

と言われる。これはライブラリを作成したときの vc60.pdb を削除していたからだが,ライブラリのプロジェクトの設定で [C/C++]-[デバッグ情報] を「行番号のみ」等 pdb を使わない設定にしておけば vc60.pdb がいらなくなる。

Java で jar ファイルをダブルクリックで起動する方法。

Main-Class: mainclass

のようなファイルを作成し,

jar cvfm app.jar manifest *.class

のように jar ファイルを作成する。

KVM。Graphics.drawBorder で思うように描画されない。いろいろ試してみると,このメソッドの引数の,幅,高さはそれぞれボーダーをいれない大きさらしいことが分かった。


Java。今までコンパイル時に -J-Djavac.pipe.output=true を使ってエラー出力をファイルに出力していたが,JDK1.3 になってできなくなったらしい。別アプリでパイプ入出力を介してやるしかないんですかね。

brpuzzle をとりあえず公開してみる。


J2ME でのコンパイル方法。

set PATH=%PATH%;c:jdk1.3bin;c:j2me_cldcbin
set CLASSPATH=.;c:j2me_cldcbinapiclasses;c:j2me_cldctoolspalmclasses
javac name.java
preverify -d . name
java palm.database.MakePalmApp -bootclasspath c:j2me_cldcbinapiclasses -icon name_32.bmp -smallicon name_16.bmp -creator NAME name

こんな感じ。

15 パズルを Palm + KVM で作る。PalmIIIc に付いてくる 15 パズルでは Brandish で鍛えた私には暇つぶしにもならないので 4~100 パズルを作成したわけだが,やはり C で作るのと違って簡単にできた。

「Palm で動く電卓を作ろう計画」を立ち上げていたのだが,挫折。

  • デストラクタや throw を使うとリンクエラーが出たりする。
  • 構造体にクラスを入れるとリンクエラーが出る。
  • sin,cos などが標準では未サポート。
  • double がきちんと使えない。
  • CW Lite のエディタが変。

などが理由。もちろん単に自分が使い方を知らないだけというのもあるだろうし,いくつかはライブラリを使えば解決するものもあるが,そのライブラリもなんか…ということで。

標準ライブラリなしの C 言語と API だけで開発することもできるが,作ってて全然楽しくない。ということで,はっぱ氏お勧めの KVM もやってみようという感じ。

j-phone。前にある店員さんが「16 和音で人の声が出せる」と言っていた問題だが,なんとなく分かってきた。j-phone では FM 音源とは別に PCM 音源を搭載し,そこでサンプリング音声を出せるようだ。

PCM を搭載しているなら当たり前な話だが,しかし店員さんはしっかりと「16 和音なら出せる」と言っていたのでいずれにしろおかしいのだが。

VS に VSS のプロジェクトを挿入するときに,VSS と関連づけてくれない場合がある。その時はプロジェクトの挿入ダイアログの,「ソースコード管理のプロジェクトを開く」で追加すればいい。

Code Warrior Lite for Palm,デストラクタを作ると delete がない,というリンクエラーが出る。デストラクタを定義しなければいいんだけど…。うーん。

UNIX で “.r” というファイルを作った。ていうかいつの間にかできていた。これは . の後に改行コードが入っているのだが,どうやっても消えない。

今まで j-sky 用の Web ページ(MML)の情報がなかなかなかったような気がするが,いろいろと公開されてきたようだ。特に j-phone の絵文字の仕様がやっと公開されていてよかった。

ちなみに EzWeb には「マイデッキエディター」,「マイデッキエディター Pro」という公式ソフトがある。これはなかなか素晴らしいソフトで(以下略)。


はっぱ氏がある SDK を使っていたが,へッダ内に以下のような記述が。

#define Stop 0xFC
#define Active 0xFE

こんなよく使うものを define するとは,とはっぱ氏はお怒りであった。

はっぱ氏作の Unix/Win 用ソケットラッパーを使う。FTP オープンができずに困ったが,アプリケーションの最初で AfxSocketInit() を行うことで解決。

CCalc をバージョンアップ。


F1 キーでのヘルプを出ないようにする方法。CWinApp::WinHelp() をオーバーライドする。


コンボボックスでの Enter キーを取得する方法。今まで コンボボックス内のエディットボックスをサブクラス化し,WM_USER を発行して以下のように取得していた。

WM_CHAR->WM_USER->処理関数

だが,よく調べてみると,WM_CHAR の部分が呼ばれてなく,何故か 1024 番(=WM_USER)のメッセージが直接とんできて結果的に処理されていただけだった。コンボボックスで Enter が押されたときに MFC が勝手に 1024 番のメッセージをとばしているようだ。

で,気持ちが悪いので改善。CComboBox から派生したクラスを作り,その中の PreCreateWindow メッセージ内で処理するようにした。これでうまくいって,さらに,今まで Ctrl+Shift+H で勝手にバックスペースになってしまう,となっていたのも回避することができるようになった。

Palm を購入。というわけで Palm アプリを開発していきたい。


ある店に携帯を見にいく。その時の店員の話。

「j-フォンは 16 和音なんですよ。これだけあると犬の声とか人間の声も出せますよ。」

…なんか違う気がするんですけど。

i-mode C-HTML。フォームの URL に何も書かないと,IE5.0 ではそのディレクトリのインデックスを表示するが,i-mode ではボタンを押しても反応しない。

STL。ある vector に他の型の vector の要素を insert しようする。

vector<A> a;
vector<B> b;
b.insert(b.end(), a.begin(), a.end());

こんな感じだが,VC++ ではコンパイルエラーになった。これは多分メンバ関数テンプレートを完全にサポートしてないからなワケだが,なんとかならないのか。

ある Web ページで占いをやっていたのでやってみる。生年月を選んでスロットを止め,そしてボタンを押す。すると,見慣れたものが! というか Perl のソースが表示された。なんかの設定が変なんだろうが,これって 1 回でもテストすれば分かるのでは…。

VC で Resource View を追加する方法。

リソースを追加し,.rc を保存。で,[プロジェクト]-[プロジェクトへ追加]-[ファイル] で .rc と resource.h を追加する。

static なコールバック関数を呼ぶ。が,動作がおかしい。いろいろ調べてみたところ,基底クラスと派生クラスで同じ名前のメソッドを作っていた。

XML4C を使う。この中に XMLString をローカルな文字列に変換する関数,transcode というのがあるのだが,この関数は内部で new した文字列を返す。当然後で delete しなくてはならないのだが,ここで問題が発生。XML4C のライブラリは DLL になっているので,DLL で new したメモリを exe 側で delete しなくてはならず,デバッグ版(だけ?)ではメモリ管理の不整合が起きて assertion されてしまう。

結局こんな感じで無理矢理解決。

DOMString dom_str("aaa");
const XMLCh *xml_ch = dom_str.rawBuffer();
char local_str[255];
XMLString::transcode(xml_ch, local_str, dom_str.length());

DiabloII を 3 つ買う。これで 4 つ目だ。

STL。vector::back() でコンパイルエラー。これは begin(),end() と違って iterator じゃなく reference を返すのか。