忍者ブログ
ロボット、千葉ロッテマリーンズについていいかげんなことを書きます。
[561]  [560]  [559]  [558]  [557]  [556]  [555]  [554]  [553]  [552]  [551
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

RTCはマネージャで動的ライブラリをロードしてRTCを起動する事を基本としています。
この場合、関数やクラス内で使用したグローバル変数は共有されているので複数のRTCを起動すると都合が悪いです。

なので極力使わない事をお勧めします。


初歩的な事ですけど、

#include <stdlib.h>
#include <iostream>
class testClass
{
public:
        testClass(int v)
        {
                testValue = v;
        };
        void testPrint()
        {
                std::cout << testValue << std::endl;
        }
        int testValue;
};
int main()
{
        testClass A(10);
        testClass B(20);
        A.testPrint();
        B.testPrint();
        return 0;
}



#include <stdlib.h>
#include <iostream>
int testValue;
class testClass
{
public:
        testClass(int v)
        {
                testValue = v;
        };
        void testPrint()
        {
                std::cout << testValue << std::endl;
        }
};
int main()
{
        testClass A(10);
        testClass B(20);
        A.testPrint();
        B.testPrint();
        return 0;
}

では動作が違います。

静的メンバ変数やシングルトンも同じです。
確かに使った方が便利な場合も多いのですが、使いどころは考えてください。


先ほどの例だと、静的メンバ変数は以下のようになります。

#include <stdlib.h>
#include <iostream>
class testClass
{
public:
        testClass(int v)
        {
                testValue = v;
        };
        void testPrint()
        {
                std::cout << testValue << std::endl;
        }
        static int testValue;
};
int testClass::testValue;
int main()
{
        testClass A(10);
        testClass B(20);
        A.testPrint();
        B.testPrint();
        return 0;
}

つまりこの場合も変数testValueの実体は1つしかないので後から初期化したクラスで上書きされます。
シングルトンの場合は以下のようになります。


#include <stdlib.h>
#include <iostream>
class testClass
{
private:
        testClass(int v)
        {
                testValue = v;
        };
public:
        static testClass& get_instance(int v) {
                static testClass inst(v);
                return inst;
        }
        void testPrint()
        {
                std::cout << testValue << std::endl;
        }
        int testValue;
};
int main()
{
        testClass A = testClass::get_instance(10);
        testClass B = testClass::get_instance(20);
        A.testPrint();
        B.testPrint();
        return 0;
}
この場合はクラスの実体が1つしか生成されません。


Pythonの場合少し分かりづらいのですが、

# -*- coding: utf-8 -*-
class testClass:
    def __init__(self, v):
        self.testValue = v
    def testPrint(self):
        print self.testValue
        
def main():
    A = testClass(10)
    B = testClass(20)
    A.testPrint()
    B.testPrint()
if __name__ == "__main__":
    main()


と、
# -*- coding: utf-8 -*-
class testClass:
    testValue = 0
    def __init__(self, v):
        testClass.testValue = v
    def testPrint(self):
        print self.testValue
        
def main():
    A = testClass(10)
    B = testClass(20)
    A.testPrint()
    B.testPrint()
if __name__ == "__main__":
    main()

では動作が違います。
下のコードはtestValueが静的な変数になっています。




つまりrtcdでRTCを起動する場合にグローバル変数を使うと、別々のRTCから同じ変数が操作される可能性があります。

int testValue;

(中略)

RTC::ReturnCode_t testRTC::onExecute(RTC::UniqueId ec_id)
{
     testValue += 1;
}

(以下略)


この場合、testRTC0とtestRTC1を起動したとすると変数testValueは共有されています。


バグの温床になる可能性が高いので注意してください。
















やはり盗用の件を放置するのはまずいです。
過去にこういう問題があったにも拘らず充分な対策をしていなかったという事なので、もう一度同じ問題が起きた時の印象が悪いです。
流石に責任を取れと言う事にはならないと思いますけど、印象としては最悪です。

既に今年の作品が公開されてしまっている時点でいつこうなってもおかしくはありません。
しかも盗用をした作者と同じ大学院の人が応募していますね。
それも例の作品の共著者の一部と研究室が同じだったと思います。
まだソースコードは公開されていないみたいですが、問題が発生する可能性が極めて高くなりました。
と言うか去年あんな事があったら普通は参加するのを躊躇うと思うのですが、一体どういう心境なのかを聞いてみたいです。何の処分もなかったので味を占めたという事でしょうか?


仮に例の作品と関係のある研究室だとすれば何の謝罪もなしに参加する事自体が大問題です。
このままRTM自体と関わらないのであればどう責任を取ろうとどうでもよかったのですが、これは癪に障ります。

言い過ぎかもしれませんが、この作品を審査する必要はないとすら思っています。
僕もこの作品のソースコードは読まないつもりです。なのでこの作品に盗用があったとしても僕は知りません。

そもそもあれは作者個人の問題ではありません。
ソースコードを公開する前に確認しなかった管理責任の問題です。
盗用したソースコードが9割近くを占めているのに盗用元の著者が指摘するまで1年近くも気付かなかったというのは常軌を逸しています。
普通は著作権に問題がないかどうかぐらいは確認するわけで、ソースコードのほとんどに問題があるのに気づかないのはただの怠慢です。
なので作者が違ったから盗用はないだろうと考える事はできません。

だいたい、数十人単位の人間に迷惑をかけたという事を理解しているのでしょうか?






コンテスト運営側にしても盗用した作品と関連する研究室にしても、いつ爆発するかわからない爆弾を抱えてしまっている状態です。
ちなみに爆発したらHSPプログラムコンテスト2013みたいになります。


他人事ですけど、こんなことになったら大変ですね。










にほんブログ村 科学ブログ ロボットへ
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・

人気ブログランキングへ
PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
フリーエリア
最新CM
[08/31 ysuga]
[08/31 Nobu]
[08/31 ysuga]
[12/11 Nobu]
[12/11 Kanamura]
最新TB
プロフィール
HN:
Nobu
年齢:
35
性別:
男性
誕生日:
1988/09/22
職業:
あれ
趣味:
妄想、自堕落
バーコード
ブログ内検索
P R
カウンター
忍者ブログ [PR]