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

プログラミングMemo

Windowsのメッセージループを、ゲームのメインループとして使いたい場合、GetMessage()関数を使うとメッセージが来るまでの間、処理が止まってしまうので、PeekMessage()関数を使う。

アイディアメモ

ユーザそれぞれにWEBスペースを取得して貰い、そこに秘密鍵で暗号化したデータを置いて貰う。
こちらが用意したサーバでは、公開鍵の管理のみを行う。

Hybrid-P2Pより、ひとつサバ・クラよりの発想。

壮大な計画

先日友達Mが大学に合格した話を書きましたが、そのMが昨日、面白いアイディアを持ってきました。
今はまだ詳しいことを書くのは控えようと思いますが、それはネットワーク上に作るシステムで、クライアントには芸術的な要素を含んでいます。

これじゃあ全然解りませんね。^^;
けど、芸大と情報で協力できる面白い企画です!
お互いにまだほとんど触れたことのない世界のものなので、完成には時間がかかると思いますが、まずは基礎的で簡単なものから制作し、徐々に理想に近づけていきたいと思います。

早速今日、友達のIを誘い込み、明日3人で話すことになりました。
IとMは会うのも話すのも初めてなんですけど、どちらも出来る人なので会話が楽しみです♪

今日はネットワークプログラミングの練習として、Javaでチャットソフトを作りました。
といってもまだ基礎部分しか作っていませんが、これから作るアプリケーションの基礎となるように、プロトコルはしっかり設計しようと思っています。

Visual C#

最近C♯にお熱です。
VB61に代わる言語を探した時、DelphiやVB.NETという選択肢もあったのですが、DelphiはObjectPascalという言語を元にしているので、新たにその言語を覚えなきゃいけないことと、新しいバージョンでは.NET対応ってことで、ネイティブのEXEが吐けなくなりそうだったので、却下。参考資料も少ないですし。
VB.NETは、完全なオブジェクト指向に対応し、しかも.NET Frameworks上での動作は、今までのランタイム上での動作よりも速いという話でしたが、どうせ.NETするならわざわざBASIC言語で書かなくてもいいんじゃんってことで却下しました。

そんなわけで現在、昔VBで作った音楽プレイヤーをC♯に移植中。
それから、Windows付属のタスクスケジューラー?2が使いにくかったので、それの機能拡張版を自分で作ってみちゃってます。

この2つが完成すれば、ホームページにSoftwareページを復活させられるかな~

  1. VisualBasic6.0 は、中学の頃から使っていた思い入れ深い言語だったりする
  2. プログラム→アクセサリ→システムツール→タスクにあるやつ

P2P勉強会に参加して

昨日の続き、P2P勉強会の感想です。1

P2Pとはpeer-to-peerのことで、今までの特定のサーバが全てのサービスを提供してくれていた形と違って、(サービスに対する)クライアント同士が協力して、ひとつのサービスを実現します。2
このように仕組みの概要自体はそれほど難しいものではなく、言われれば簡単に想像することが出来るのですが、いざ実装するとなると難しい壁がいくつも立ちはだかってきます。

自分以外のクライアントをどうやって捜すか。
情報を誰に持たせるのか。
クライアントの中に悪意を持った人がいた場合どうするか。
どうやって全体の状況を把握するのか。
などなど、他にもいっぱい。

また、まだP2Pという言葉の定義も正確になされておらず、色々な分野で使われているので、偏にP2Pといっても、もの凄く広い分野がこれに含まれることになります。

今回の勉強会では、その広いP2Pの分野の中でも、様々な方面の話を聞くことが出来ました。

  1. 一応Programingに分類したけど、ジャンル分けに迷う内容だな^^;
  2. 違ってたらごめんなさい

P2P勉強会に行ってきました。

数ヶ月前からmixiP2Pのコミュニティ1に参加していたのですが、そこで第二回P2P勉強会を開催すると言う告知があったので、僕も友達誘って参加してみました。

その感想を書きたいと思っていたのですが、その前に今日は、僕とP2Pの出会いというか、P2Pに興味を持つようになった切欠みたいなことを書こうと思います。

  1. mixi会員のみ閲覧可

ガベコレ

Javaのガベコレ1は最初 delete できなくて不安だったけど、一度慣れるともう手放せない。

特に関数から呼び出し元への文字列の引き渡し。
中で new したら外で delete しなくちゃいけないし、バッファを作って引数で渡す方法だと、関数呼び出す前にバッファのサイズを決めなきゃいけない。

なにかいい方法がないだろうか…… ( ̄へ ̄|||) ウーム

■追記

ATLのヘッダファイル2であるatlstr.h をインクルードすると、CStringクラスが使えるらしいです。
これは可変長文字列を扱うためのクラスで、メモリを意識せずに使えるみたい。
ATLのCStringクラスはMFCのCStringクラスとインターフェイスで互換性があり云々って言うけど、MFC使ったことないから解んないや。^^;

  1. GarbageCollection:参照されなくなったメモリ領域を自動的に開放してくれる
  2. の一部?

試験勉強そっちのけ

 今週は、木曜に知識工学、金曜には分散処理の試験があるんですけど、全然勉強する気になれず、前回書いたプロトコル設計の課題に夢中です。^^;

 現在、ここを参考になんとか、サーバ側の認証機能部分まで作りました。
明日ファイルの読み書きと、クライアント側の通信部分&認証を作ろうと思います。
それが出来れば、あとはその応用みたいな感じでなんとかなるかな?

 D言語は意外と使いやすいです。
C用のAPIもそのまま使えるので、これからPhobos1がもっと充実して、Win32APIをくるんだライブラリも出来て2、整った資料が出てくれば、かなり扱いやすい言語になるんじゃないでしょうか。
文字列操作がしやすい3のは嬉しいですね~

  1. D言語の標準ランタイムライブラリ
  2. 現在あるのもは全部のAPIをカバー出来てないらしい
  3. まだ分からない部分も多いですけど

ストレス解消法

今日ふと、今の自分には効果的なストレス発散方法がないことに気付きました。
だからたまにやばいくらい沈むのか。

プログラミングするのは楽しいです。
難しい単語1を覚えなきゃいけない試験は嫌いですけど、今学期は僕の好きなプログラミングのレポートが2つありました。

  1. 覚えにくい単語の例 → STM,SDH,DMT,NRZ,MLT-3,SDU,PDU