Entries from 2006-11-01 to 1 month

DLLエントリポイント

DLLエントリポイントを依存順に call して jmp するコードを書くことにする。

mthread_join廃止

予告どおり、mthread_joinを廃止しました。 そのうち trunk にマージされます。

あれは誰だ? - キマイラの中の人だ

あれは誰だ?に書いたんですが カフェでとなりで作業している人が 白髪混じりの人 学者っぽい ThinkPad X31 Meadow2 TeXで書いている 英語の論文を読んでいる Meadow2に ラムダ計算の参考書という文字が見える なんとキマイラの中の人でした。 カフェでとなり…

音楽プレイヤ

大体できた。 結局 MMLのパーサ Beep API Beep時分割を利用して多チャンネルのコード Thread Helper String Helper include guard見直し BayGUIへの深入り。(コンポーネントをOverrideしまくりでなんとか見た目を変える) マルチスレッド化(ただ再生するだけ…

sudo で次にパスワードを聞かれるまでの時間を調節する

sudo で次にパスワードを聞かれるまでの時間を調節する方法を紹介します。 visudo コマンドで /etc/sudoersを編集します。 Defaults !lecture,tty_tickets,!fqdn,timestamp_timeout=xxtimestamp_timeout=xx のところを追記してください。 デフォルト値は5分…

良いヘッドフォンが欲しいんだけど

最近聞いている戦隊ものソングに必要なのか?でもアニソンを良いヘッドフォンで聞いている人が社内にいそうだからまあ良いか。

上書きにはまる

WindowをClose時に baygui フレームワークで stop() が暗黙的に呼ばれるんですが、プレイヤの停止 stop()で意図せずオーバーライドしていた! はまった。

GIMP

GIMPでアイコンとかをあれこれ加工するってのが出来るようになった。 1からドット絵を描くのはむりぽ。

家計簿

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

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)とは、クラス・インターフェースやクラス・テンプレートのインターフェースを定義するものです。 インターフェースは内…