Packの更新も行っておいた。更新内容は少し前に書いた映像圧縮の性能バグの修正と接続/切断方式の変更と、ブロックスキャンの改良だ。(0)小気味良いMirror-DTCのC++版の変更作業は、まだ、特殊状況でクラッシュする場合があるため、安定度的には、もう少しなのだが、性能的には十分になった。Java版は実用的な速度で動作させるために色々と細工したのだが、その細工はC++版では操作の小気味よさに繋がった。(0)性能が逆転したかも昨日書いたように、広帯域のネットワーク環境でブロックスキャンを使うと、結構なCPU負荷がかかるため、色々な詳細部分を最適化してみたのだが、中々ブロックスキャンは軽くならない。映像圧縮の負荷はデスクトップ圧縮よりも軽くなったかもしれない。(0)圧縮率かCPU性能か今日は昨日書いていたように、C++版のMirror-DTCの変更作業を続けていた。デスクトップ圧縮については、コードの最適化を少し行えたのだが、ブロックスキャンについてはどうしたものか、と、思っている。CPU負荷は減らせるが、そうすると圧縮率は少し低下するからだ。(0)流石に軽い今日はMirror-DTCのC++版の変更を一応終わらせ、少し使い込んでみたのだが、流石にJava版よりも軽い。MX/33でもクライアント/サーバー共に普通に使えた。クライアント動作時には、領域指定すれば動画視聴にも十分だ。今日はMirror-DTCのC++版サーバーの変更作業の続きを行っていたのだが、映像圧縮を選択すると自動デグレードが効かなかった。原因を調べてみた所、データ量が規定値を超えていなかった。Java版では超えていたので、調べてみると、Java版に性能バグを見つけた。(0)とりあえず動き始めた今日はMirror-DTCのC++版サーバーの変更を始めた。昨日書いたように、クライアントよりは作業は楽なのだが、変更箇所が分散しているため、ある程度の変更が終わらなければ動かしてみる事が出来なかった。作業は退屈だったのだが、とりあえずは動き始めた。今日はMirror-DTCのC++版クライアントにスクリーンキーボード機能を追加し、大体はJava版と同等の機能を実装し終わったため、明日からはサーバーの変更に入る。サーバーはクライアントとは違ってユーザーインタフェースが殆ど無関係なので、作業はすぐに終わる筈だ。(0)結局、大幅に変更した昨日書いたように、Mirror-DTCを切断後、再度接続しようとしてもできなくなる環境があるのだが、色々な異常状況を想定して現状のコードをテストしてみたところ、Mirror-DTCにも耐えられない状況があった。このため、結局は、接続/切断シーケンスを大幅変更した。(0)どうしたもんだろう?今日、Mirror-DTCでの接続終了後に再度接続しようとすると接続できないので解析してほしい、という旨のメールが来た。解析はやってられないので、ネットワークドライバかスイッチングハブのバッグっぽいとだけ返事したのだが、バグ回避をするかどうかが問題だ。(0)一時的に再逆転Mirror-DTCのC++版改造は、順調に進んでいるのだが、Java版の開発期間が長かったため、微妙な挙動に違いが出ている。全てを合わせるつもりは無いのだが、今は気になった所を変更している。Mirror-DTCのHPカウンターはAmuseGraphicsを再逆転した。今はMirror-DTCのC++版を、Java版と同様の機能を持つように変更しているのだが、変更項目の中には、マウスポインターの表示方法の変更なんかも含まれている。表示方法の変更は、実用上は殆ど意味は無いのだが、微妙に使用感は向上するかもしれない。(0)一粒で二度おいしい?Mirror-DTCのC++版改造はクライアントについては、残すところスクリーンキーボードの実装のみなのだが、いずれにしても、単なる作業なので、ブログネタにはならない。時事ネタにするのだが、最近は確信犯的な不具合付き製品の出荷が増えたような気がする。(0)全画面メニューに手間取った今日は、昨日に引き続いて、C++版のMirror-DTCクライアントの変更作業を行っていたのだが、次バージョンからはJava版と同様に、全画面表示中にもメニューを使えるようにする事にしているため、それを実現する作業を行ったのだが、少し手間取ってしまった。(0)まずはクライアントからMirror-DTCのJava版については、とりあえず、正式リリース版の候補になる1.2.0βが出来上がったため、今度はC++版の変更に着手し始めたのだが、まずはクライアントの変更を行っている。大体はJava版と同じ機能と操作性を持たせるのだが、微妙に違うところもある。Ver1.2.0βをアップした。前回の公開分と比べると、差分はCross-Platformとはあまり関係なくて、Mirror-DTC全般の使い勝手や基本機能の向上のような形になっている。(0)さらに改良したので次バージョンのMirror-DTCでは、数日前に書いたように、基本エンコード方式を変更したのだが、さらに改良してみると、動画視聴時にも従来方式と同等程度の性能が出るようになった。従来方式のエンコードルーチンは接続互換性の維持のためだけに残す形にした。次期Mirror-DTCの雛形になるJava版の改造は大体は終わっているのだが、そろそろ正式リリースに向けての作業になるので、微調整なんかも行っている。次期Mirror-DTCは従来のリモートデスクトップソフトからリモートアプリ環境に近づくため、タイトルバー表示も変える。次バージョンのMirror-DTCでは、色々な変更を行っているため、現行バージョンとの接続互換性を保つのは面倒なのだが、出来ない話でもないため、一応、確保する方向だ。当然の事ながら、新機能の利用には、次回バージョン同士の接続が必要になるのだが。(0)ついでなのでMirror-DTCのJava版サーバーに対する領域指定機能の実装は出来たのだが、現状16の倍数以外のデスクトップサイズは強制的に16の倍数にしているため、最高15ピクセル分、望んでいない領域も表示される。ついでなので、16の倍数以外の領域にも対応可能にする。(0)便利かもしれない今日は、Mirror-DTCのJava版クライアントにマウスジェスチャー機能を実装していたのだが、やはり、ちょくちょく誤認識はする。大体は思った通りに認識されるので、便利かもしれない。ジェスチャーは4つしかないので、操作方法が判らなくなる事も無い。(0)圧縮メニューに纏めた昨日書いたように、次回バージョンのMirror-DTCでは、デフォルトのエンコード方式を変更したのだが、従来のエンコードモードも残している。映像圧縮も可能なため、設定が判りづらくなりそうだったので、圧縮設定は全て「圧縮」メニューに纏めた。次バージョンのMirror-DTCは、低速ネットワーク環境での使い勝手の向上が大きな改良点になるのだが、そもそものエンコード方式が高速ネットワーク環境での利用を想定した作りになっていたためエンコード方式も変更する事にした。従来方式もオプションとして残す。次回バージョンのMirror-DTCでは、詳細機能が追加されるため、メニュー項目数も増えるので、クライアントのメインメニューを変更し、サブメニューは無くした。「画像転送」/「音声転送」/「操作対象」なんかはトップに持って来たのだが、試しに使っていてバグを発見した。次回版のMirror-DTCには、表示領域の指定機能も追加することにした。この機能は、AG-デスクトップレコーダー等には付けている領域指定と同じようなモノなのだが、Mirror-DTCの場合、領域はサーバー側で設定するため、デスクトップサイズの変更みなしになる。(0)フリー版の扱いここのところ、Mirror-DTCのPremium版を作ってきているのだが、C++版に今回の変更を適用するにあたり、問題になるのは現行のフリー版の扱いだ。今回の変更のどこまでをフリー版に適用するかなのだが、基本的には性能向上用の改良は適用する方針だ。今日は、数日前に書いた自動モードをMirror-DTCのPremium版に実装していたのだが、「自動モード」では意味が判らないので、「自動デグレード」という名前にした。デグレードという言葉には悪い印象もあるのだが、意味的には正しく、何となく、カッコイイ気がしないでもない。(0)OSXが耐えられないようだ今日は、Mirror-DTCのJava版サーバーに、低速ネットワーク対応機能を組み込んでみたのだが、UDP転送を行うと、ネットワーク速度がそれなりにあると、MacOSXがパケット数の増加に耐えられないようで、チョクチョク、ネットワークがリセットされた。XPだと無問題なのだが。(0)やるしかないか三日前にPremium版の存在意義という記事を書いてから、開発作業は殆ど進展していない。その理由は、Windows環境でのプレミア度が足りない気がするからだ。動画再生アプリは作らなければならないか、と、思っているのだが、ちょっと気が遠くなる。(0)仮想デスクトップとか今日はMirror-DTCのPremium版とは直接関係は無いのだが、Windows7の仮想デスクトップについて調べたりしていた。ネットで調べてみても、実現方法について書かれたモノは殆どないのだが、「Desktops」というのが他と違う、という事から間接的に何となくは理解できた。Adsense)サービスを利用しています。使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。パートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。収集された情報がGoogleによってどの様に使用されるか、収集される情報をユーザーが管理する方法については、以下のリンクを参照下さい。