Entries from 2006-01-01 to 1 year

家計簿

給料が出たので家計簿をつけていたらこんな時間に。まずい。

bayguiのEvent

MOUSE_ENTERED/MOUSE_EXITに、対応するにはどうしたら良いだろうか。と思い軽く調べた。 イベント待ち受け処理が Window->run() の中にあって、マウスサーバ(ドライバ)から送られてくるものをそのままEvent化している。 なので MOUSE_PRESSED MOUSE_RELEASED…

Makefileで既にそのtargetが存在しているかで分岐する

Makefileの中で、共通部分を取り出して汎用化し外出しにすることがよくあります。 外出しの部分を Makefile.inc に書いて、いろいろな Makefile をincludeするわけです。 このやりかたは便利なのですが最近1つ困っていました。 以下のようにMakefile.incで h…

続音楽プレイヤ3

見た目が良くないとの指摘を受けて考え中。 とりあえず Frame を自作して非矩形Windowに対応しよう。 深追い楽しいなぁ。

続音楽プレイヤ2

できた!。 曲データはzakkyさんのところからと、http://www.geocities.jp/tifa_adiru/から頂きました。 もし良い曲データがあったら教えてください。 形式はhttp://www.geocities.jp/tifa_adiru/と同じものに対応しています。 時分割機能により、3和音くら…

続音楽プレイヤ

svn remove --force で何故かファイルを消してしまった。 悲しすぎる

音楽プレイヤ

大分形になってきた。 曲終わりでスレッドが死ぬ以外は(ぉ。アニメーションgifサポートとかあるともっと楽だなぁとか思った。(別にgifじゃなくても良いんだけど) ちょっとしたアニメーション効果をいれたいときにThreadを起こすのは敷居が高いかもしれない…

bayguiへの要望

MOUSE_ENTERED MOUSE_EXITED イベントが欲しいな。マウスカーソルを当てると見た目が変わるコンポーネントとか実装するのが楽になる!>id:Baysideさん 参照 MouseEvent (Java 2 プラットフォーム SE v1.4.0)

bayguiのEventにはまる

e->getSource()がおかしいなぁ。 作法を間違えたか? 追記 最小再現コード class Sample : public Frame { private: Button* button_; Label* label_; public: Sample() { setBounds(50, 50, 200, 200); button_ = new Button("test"); button_->setBounds(10…

mthread_joinの廃止提案

mthread_joinの廃止提案をWikiに出した。 気になるところはその場で直すようにする。

あれは誰だ?

カフェでとなりで作業している人が 白髪混じりの人 学者っぽい ThinkPad X31 Meadow2 TeXで書いている 英語の論文を読んでいる Meadow2に ラムダ計算の参考書という文字が見える

作業

音楽プレイヤに開発から派生して以下のことをやった。 mthread_kill を追加。 mthread_create の戻り値(スレッドハンドル) を元にkillできる 今まで syscall_kill_threadを利用していたんだけど、こちらは引数が tid なので不便だった ちなみに mthread_xxx …

集中力とぎれた

今日はここまで。

今日の作業

DLLのエントリポイントのコーディングに集中できるように、まずは音楽プレイヤを完成させようと決意。 目標は今日中だが、明日いっぱいかかるかも。 音楽プレイヤで*.MMLなファイルの一覧が欲しい std::string helperが必要なのでMonAPIに追加しよう inclucd…

Makefileでターゲット上書き時の警告

Makefileでターゲットを上書きすると警告がでるんですが、これをでなくするための何かないかなぁ。 overrideは、違った。

ScrapBook Extension知らなかった

ScrapBook - Firefox Extension何これ便利過ぎる。やばい。 これでカフェでの作業も楽々。

マルチスレッド

音楽プレイヤは再生中に停止とかできるようにしたいので、マルチスレッドにした。 マルチスレッドになると、いろいろ歪になるのは、そもそも自分の実力不足もあるんだろうけど。 がんばります。

PEでのweakシンボルサポートを利用しようとしたが・・・

monapiの crt で extern int init_libc _attribute__((weak)); if (init_libc) { init_libc(); }のように書いておけば、libcがリンクされたときだけ init_libcで libcの初期化コードを実行できます。 weakシンボルを利用して良い方法だ!と盛り上がったのです…

動的略語展開で一工夫

動的略語展開でのひとつの不満点が以下のようなケースでした。 SA_SET_SYM_FSIZEといえばほげほげほげ。 -SA上記のような文章で、はてなやWikiのリスト記法 「-」を頭に付けた後に「SA」と入力後、動的略語展開を試みると dabbrev-expand: No dynamic expans…

PEの weak シンボルを試す

某スレで教えてもらったのですが、gcc 4.1.1では PEで weak シンボルを扱えるらしいです。 これを利用すれば libc がリンクされているときだけ初期化関数を呼べるのではないか?との見通しも。 まずは簡単な実験を。 gcc nobita% /home/taro/bin/i586-mingw3…

1章 1.6 ポリシーの拡張 - Modern C++ Designを読む(2)

C++

Hello World Managerクラスは Create Policy を継承します。 そのとき要求しているのは T* Create()という関数だけですが、特定のPolicy においてあえて拡張することが可能という話。 PrototypeCreatorクラスは Create()以外に、SetPrototype(), GetPrototyp…

1章 1.5 ポリシーとポリシー・クラス - Modern C++ Designを読む(1)

C++

ポリシーやポリシー・クラスは、安全で効率のよい、そしてカスタマイズ性の高い設計用素材の実装を支援するものです。 ポリシー(policy)とは、クラス・インターフェースやクラス・テンプレートのインターフェースを定義するものです。 インターフェースは内…

Beepプレイヤ

BeepプレイヤをGUI化しよう。 フリーの素材で良い感じのアイコンを探した。

monalibc 初期化問題 crt周り

今回の問題の対応方法のまとめ。 weakシンボルを利用する [詳細] monalibcがリンクされているときだけ crt(monapi)において init_libcを呼ぶ [コード]if (init_libc) { init_libc(); } [メリット] monapiがmonalibcに依存しない(init_libc/fini_libcがweak) …

trunkから monalibc 変更点を svn merge

Yumeさんにお願いされた件。 trunk にある最新の monalibc 実装を mona-stdioブランチへ merge した。 nobita% svn merge https://svn.sourceforge.net/svnroot/monaos/branches/mona-stdio/core/monalibc \ https://svn.sourceforge.net/svnroot/monaos/tru…

placment new

C++

#include <new>new を include するのが素敵。</new>

未踏

IPA:未踏ソフトウェア創造事業:2006年下期未踏ソフト 公募結果 →「Mona OSにおける次世代Schemeシェルの開発」 未踏ソフトで採択されました。 私に刺激とアドバイスをくださる皆さんと、計算機プログラムの構造と解釈との出会いがなければ、この結果は…

プール

外は雨、気温は低い。 10日ぶりの水泳。 良く寝たせいか体が軽く、あっという間に1km。 天気が悪いので人が少ないと予想したがいつもと変わらなかった。 水泳はマイペースな運動なので、通う人も天候に左右されないマイペースな人ばかりなのかもしれない。 …

open/seek/read/close に対応

okayu さんのサポートもあり、open/seek/read/close に対応した。 ありがとうございます。>okayuさん さて write はどうするかな。

MML ParserとBeep API

MML ParserとBeep APIができた。 だれかGUIでプレイヤ作りませんか。