ポエニー

poeny 20060305

@ 前回からの変更点 GUIへの要望追加(リストソート、ダウンロード完了後もリストに残す、など) ノード最大保持数を1200から600へ減らす キャッシュ変換時の負荷を減らす(変換は遅くなった) GCの状態、キー数、ノード数の表示 バグ修正(GUIのタイマー、通信…

メモリが増える件 + α

いちおう見た感じで、ダウンローダーがDLに失敗したときに、64KBのクラスインスタンスを明示的に開放していないので、それがどこかから参照受けててGCが回収しないのかなとは思った。 そこは直した。ちょっと様子み。 Dは、ちょっと大きめ配列を使ったら、…

50ノードでのファイル配布実験

ローカルで、50ノードのポエニーネットワークを組んでダウンロードとアップロードがうまく動くが試してみました。 結果的には、環境的な問題で中断。流れ↓ ポエニーはNo0〜No49 各ポエニーの速度はランダムに決定した(設定ファイルを自動で作った) 各ポエニ…

Pyny

新月のfuktommy氏がポエニーをPythonに移植しようとしてくれているらしいです。 (UNIXライクなOSでの実装になるのかな?) ポエニーというより、Winnyプロトコルの移植ということになるのかなと思っています。ここから、Gnutellaのようになってくれると面白い…

週末

とりあえず、スレッドで気になるところを直して夜にでもソースごと出します。 0228ソースは、DFL側を直接触っていてコンパイルすると、タブの日本語が化けるようなので、触らなくていいようにTabControlを継承してポエニー側で云々しておこうと思います。 そ…

poeny 20060304_exe

検索とキャッシュにカラムのソートつけました。 実行ファイルのみ(別途20050226が必要)。ソースコードは明日まとめて出します。 poeny_20060304 それと、キャッシュで変になるのを"とりあえず対応"で直したつもりなので、同じブロックをぐるぐる回ることはな…

20060228のバグ修正 exe

@ ConnectionTask: control: ArrayBoundsError connection(399) 足し算が違っていました。 自分の環境では通らないルートだったようです。 (一度で複数の大きなパケットを受信すると通る)@ キャッシュファイル名が消える件 初めてダウンロードするときに…

今後やりたいこととか

ポエニーのみのネットワークである程度動かせると確信がもてたら、別プロトコルでBBSがやりたいです。 そのあとラジオ配信がやりたい。

GUI

DWTを使ってみようと思う。 GUIに関する処理は、guitaskに全てあるので、それだけ置き換えて、現バージョンと平行して進める。

バグ

今後スレで意見を聞いたところ、予想以上にまずいもよう。@ WindowsXP以外でGUIがまともに動かないかも たぶん、DFLがまずそう。 GUIライブラリを変えるか、DFLを改造するか、WindowsXPでしか動くわけNEEEEE!!と叫ぶか。これを機会にDWTかwxDへ手を出すか・・…

poeny 20060228

まだ少し思うことがあるので、αはやめておいて、とりあえず進捗報告用の日付バージョンを一度出しておきます。@ 前回(20060117)から変更点 UIをウェブベースからWindows GUIへ変更 ダウンロード/アップロード機能追加 条件付拡散クエリの対応(これでWinnyの…

自分で使いながら作る開発方法について

細いAirH"回線でジャッカルをDLしつつ、気になる点に手を入れていくという開発方法を試し始めました。@ 使いながら作るよい点 めんどくさ!とか、なんでこんなこともできないんだ!と思ったら、すぐその機能を追加できる。機能追加後は、その部分については…

バージョン

バージョンは、[ver0.2 α1]→[ver0.2 α2]...[ver0.2 β1]...[ver0.2]としようと思います。いきなり、ver1.0α1でもいいかと思っちゃっていますが、一応0.2。 0.1は、ウェブベースだった日付バージョンのころという位置づけで・・。でも、あまり長い間やろうとは思…

ポエニーのソースコード

なんとなく、行数を数えてみたら、全体で約20000行でした。 こうしてみると、かなりちっさいプログラムだなと。 画面もちっさいし。 とりかかる前は、膨大に見えたけど、実際やってみるとそうたいした量じゃない。質は別にして。

条件付拡散クエリ

今まで実装していなかった条件付拡散クエリを実装したところ、下流ノードがつながったときに、予想以上の効果がありました。 上流にキーを吸い上げていく仕組み的に、当然といえば当然なのですが、通常の下降検索とぜんぜん違います・・。合法ファイルをたくさ…

 ノンブロッキングソケットでの送信エラー

ポエニーでは、ノンブロッキングソケットを使って、接続時、受信時にタイムアウトを設けているのですが、送信に関しては、なにも考えていませんでした。 どうやら、ノンブロッキングソケットでのsend()は、送信完了前に戻ってくるので、送信可能状態になるま…

帯域制限

どーも気になったので、通信板で訊いてみたら、ADSLだと上がり(あがり)と下り(くだり)は別リソースとのこと。 LANでもそうだし、基本的にはダウンロード帯域がアップロード帯域を圧迫することはナイと考えてもいいのかな。そうなると、検索クエリや検索結果…

操作性

操作性が悪すぎなので、ちょっと1週間ほど触ります。 Windowsを勉強してみようかと。ついでに設定ファイルのほうもどうにかしたい。

スタンバイ状態

ダウンロード、ダウンロード完了後のキャッシュ変換で、メモリ使用量が増える問題は、例のごとく大きい配列をdeleteするように修正すると解決しました。 4時間ほどジャッカルをダウンロードし続けても、メモリ使用量は20MBほどです。しかーし、PCからはなれ…

ダウンロード制限

ポエニーは、エアーエッジ回線でも、なかなか快調。(エアーエッジ回線でしか好調でないかもしない) 既に自主制作映画ジャッカルが10本以上になった。「第 0068 話 ロサンゼルス消滅ほか 3 本」ってのが面白かった。で、気になるのは、これは金子氏が嫌がって…

Winnyへ影響を与えないプロトコルバージョンの変更方法

通信開始時のバージョン交換で、Winnyかポエニーかを判断したいなーと思ったのでちょっと調べてみた結果、Winnyへ影響をあえない変更方法が分かったのでメモ。@ バージョン形式 アプリ名(?) [文字列] バージョン [uint16 (little endian)] @ Winnyb7.1の場…

ダウンロード機能を作ってみた

ダウンロード機能を作りました。とりあえず、DL成功第一号は、 【愛国者のためのP2P】【MIDI】【合法】タンチャメ 沖縄県民謡.mid というファイル。 1ブロック(64KB以内)なら問題なくDLできています。よって、ポエムだけならOKっぽいです。今は、大き目のフ…

中継の話

今後スレで話題に出ていた中継の話。 とりあえず、αでは実装しない。よって匿名性ない。 ただし、Winnyネットワークに混じって、Winnyかポエニーか分からないならある程度の匿名性があるはず。(実際はポエニーかどうかすぐ分かります。) ポエニーだけでネッ…

安定した

落ちなくなったっぽい。 最終的には、Dの連想ハッシュを使っても大丈夫になったので、aaAを信じて全部書き換えた。@ 反省点 確かな証拠がないものは疑いすぎない プログラムは各箇所でどう動くべきか明確にしておく。それがライブラリで汎用的に作っている…

条件付拡散クエリ

あぶない。これ実装するの忘れていた。 今は、下流には、一時下降クエリを投げてる・・。下の反省で、コマンドを振り分けているswitchのdefaultラベルで、処理していないコマンドを画面出力するようにしてみたら、いきなり発覚。 もうひとつ、BBSポート通知コ…

アクセス違反で落ちるバグが直った

直った!今日会社で暇だったので、脳内にあるポエニーのソースでどこがバグっているのかずーと考えてて、めちゃ怪しい部分を発見したので、家に帰ってから罠(assert)を仕掛けておいたんですよ。 そして、ずーと起動しておいたら、たった今、罠にかかりました…

Winnyのダウンロード要求

今更ですがメモ。 Winnyは、ダウンロード要求を32ブロック単位で投げているもよう。 (1ブロック64KB)ここ、どうしようかと思っています。

全体的に

全体的にまじめに取り掛かり始めました。今週中に一度α版を出せるようにしたいです。 GUIにはだいぶなれましたが、画面の座標を手書きで指定しているのがきついです。リソースエディタのようなものがあるにはあるのですが、どうも気に入らない感じです。とい…

ポエニーのネットワーク図

ポエニーのネットワークをgraphvizで書いてみました。(私の思うWinnyネットワーク) unstructuredなP2Pのネットワークは、ある程度のランダムな要素で構成されるので、パワーポイントやワード図で手書きするとリアリティに欠けます。 そこで、前に熱く語って…

ダウンロード機能、その他

今日からダウンロードをやっとまじめに作り始めました。ダウンロード機能は、P2Pの場合とserver/clientモデルの場合では、全く違ったものになるなーと思いました。 アップロードに関しては、P2Pだろうが、server/clientだろうが、要求がきたらそれに答えるべ…