Programming」カテゴリーアーカイブ

mixi station

ちょっと前にmixiで、mixiミュージックという新しいサービスが始まりました。
自分が普段聴いている音楽の情報を公開し、それを通じて好きなアーティストの情報を共有1したり、交流を広げたりしましょうというものです。2

mixi ミュージック (1) mixi ミュージック (2)

mixiのページに新しく2つのリンクが追加され、左の画像の丸いリンクをクリックすると、mixi参加者全員の統計が表示され、左の画像のリンクの方をクリックすると、現在開いている人3が聴いた曲のデータを見ることができます。

  1. Wikiのように誰でも編集できる形で情報共有するみたいです。
  2. mixi内の解説ページはここ
  3. 例えばBさんの日記を開いているときにこのリンクを開いた場合は、Bさんが聴いた曲のデータ

作品紹介 1

のコピペ。

開発中のサウンドプレイヤー

自分で作ったサウンドプレイヤー。
たしか高校くらいの時から作り始めて、今でも愛用してるし、拡張し続けてるソフト。
Wyvernという同種のソフトの影響を強く受けており、リストの扱いやすさに力を入れている。

僕がオブジェクト指向を覚える切っ掛けとなったのは、このソフトを作っているときで、関数よりももっと大きい単位で構造化がしたくなったからだ。

もともとVB6で書いてたのだが、オブジェクト指向がし難いことからC#に移植。現在はC# 2.0で書いている。
音楽の再生にはvbmp3.dllを使っているが、いずれWMP SDKを使うかDirectShowを使うか等して、扱えるファイルの種類を増やしたい。

列挙型

Win32APIのCreateFileとReadFile/WriteFileが引数が多くて面倒くさいので、C#のFileStreamっぽくラッパーして簡単に使えるようにしようと思ったんですけど、これがなかなかC#のようには上手くいきませんでした。:'(

プログラミング演習

僕の通う学科では、1,2年時にプログラミングの演習の授業があります。
授業は昼開講と夜開講の2種類用意されていて、好きな方を選べるのですが、夜の方を友達が再履しているので、そのお手伝いをすることになりました。12

授業で使っているのはC言語で、前半は文法を解説する講義、後半は先生が作った問題をそれぞれが解いていき、終わったら提出、終わらなかったら次回提出というような形になっています。

では、問題を見てみましょう。

  1. つまり課題を代わりにやって説明する、と。^^;
  2. 僕も本人に理解して貰いたいと思ってやっていますので誤解無きように。

SkypeAPI格闘日記 vol.2

Skype A2A1を使ったリバーシのサンプルが公開されたそうなので、中身を覗いてみました。

一応はすべての行にコメントをつけておきました。

というので期待してみたのですが、全部英語でちょっと凹む。^^;
けど前に解析したソースよりかは、だいぶ見やすかったです。

早速リバーシ部分を切り取って、自前のデータを流そうとしてみたのですが、Socketを扱おうとしてどんどん煩雑になっていくソースコードに挫折。
そこで、時代はやっぱC#だよなってことで、C#に移植してみることにしました。2

そしてなんとかだいたいの移植に成功したのですが、肝心のSkypeとの通信が上手くいかない。
SkypeAPIを使うときに最初に送るCREATE APPLICATIONメッセージは受理されてるみたいなのですが、その後のメッセージが失敗続き。
メッセージの送信は結果しか見えないので、デバッグには苦労しそうです。

■ 参考
  1. Application to Applicationの略で、Skype 1.4から実装された。
  2. ただの気分転換。

Regnessem Plugin作成

Regnessem1のウィンドウがSamurize2の表示を隠していて不便だったので、Regnessemのコンタクトリストの内容をSamurizeで表示出来るように、コンタクトリストの内容をテキストファイルに吐き出すプラグイン3を作ってみました。

list_to_file.lzh

コンタクトリストのメンバーを、状態別にPluginsフォルダの中のlist_to_fileというフォルダに、プロトコル別でテキストファイル4で出力します。
設定できる項目は何もありません。5
RegnessemもSamurizeも使い慣れてる人は、使ってみればすぐ分かると思います。

初めて作ったDLLファイルですが、テンプレートがあったので意外と簡単に出来ました。
気が向いたら今後改良したり、他の何かを作るかもしれません。:p

■ 9/8 追記

ちょっぴりバグ修正。
エラー処理のとこを直したのと、newした配列のdeleteに[]付け忘れてました。OTL

  1. MSN互換メッセンジャー
  2. デスクトップに色んな情報を表示するソフト
  3. AddIn型
  4. Simurize用に文字コードをShift-JISに変換しているので、特殊な文字は化けます。
  5. 設定ファイル作ったりするのが面倒だったので。:p

SkypeAPI格闘日記

予告通り今日は1日SkypeAPIと戦っておりました。

まずは関連ブックマーク。

  • Skype
  • ここで配布されているSkypeをインストールすると、APIも一緒にインストールされるようです。

  • Japanese Skype Developers Forum
  • 日本人開発者向けの日本語のフォーラムです。まだ出来たてなので情報は少ないですが、これからに期待です。

  • s@s
  • Skype社員である岩田さんのブログです。彼はSkypeの開発者とSkypeAPIを使う側の開発者との橋渡しをしてくれている人です。

  • Share Skype : Documentation
  • ここにSkypeAPIリファレンス(PDF)とサンプルプログラムがあります。今日はこのサンプルと格闘していました。

  • SkypeAPI入門(日本語)
  • SkypeAPIの使い方を日本語で丁寧に説明してあるPDFファイルです。SkypeAPIを使おうと思ったらまず一読しましょう。

  • KhaosLabs
  • COM Wrapperを配布されているサイトらしいのですが、今回僕は使っていません。

WndProc@C#

目が覚めたから日記。1

前回.NETのコントロールでOnPaintメソッドをoverrideして遊んだりしてたけど、いつ呼び出されるのかよく分からない!
前回やった、OnPaintをoverrideしてそこで枠を描画する方法だと、ウィンドウサイズを変更したときに上手く再描画されず汚くなってしまいました。

そこで色々見ていたら・・・

  1. 現在午前4時半