「DMD」を含む日記 RSS

はてなキーワード: DMDとは

2022-11-21

この、やり場のない想いを抱えて

昨日、Middleman's Loveの変更後の新キャストが発表された。DomundiとしてMii2の後輩におけるTutorYim。

役を降りるといってから覚悟をしていたつもりだったけども、正直心の整理は今でもまだついてない。新しいキャストを探す、と言っているのを見て「まぁそう言いながら良くてもDMDと縁があるところからくるんだろうな」「DMD内でくるとしたらTutorYimしかいないけど、年齢設定がな…」とは前々から思っていた。

作品が再び動き出すのは本当に良いことだ。TutorYimの責任はとても重たいし、頑張って欲しいとは思う。でも応援はしばらくの間出来そうもない。恐る恐る写真を見てみたけど、何を言っても嫌味になってしまいそうだからすぐ見るのをやめた。キャスティングされた本人達には本当に一切悪意なんて一欠片もないのだけど。一瞬見ただけでも「Mii2の時は撮影開始するのにあんなにかかって、撮影時にアップされる写真も少なかったのにもうそんなに撮ってるんだへーそう」とか「Mii2の時は全然宣伝する気なさそうだったのに、なんか急にやる気だして頑張ってるね?あれはなんだったの?」とか呟いてしまいそうだから、ここで吐き出す。ただ昔からMii2の売り出し方や扱いに不満が積もりに積もってるからちょっとした公式の態度の変化にすら腹が立ってしまうんだ。本当にTutorYimには頑張って欲しいし、今は見れないけど応援はしてる。

でも、Middleman's Loveという作品は本当にYahomにとって特別作品希望だったから、気持ちを切り替えるのは思いが深ければ深いほど難しい。私にとっては発表を知ってから、この世で一番楽しみなシリーズだった。キャスト降板発表があった時より前から昨日キャスト発表があった間までもスマホ壁紙はTommyくんのP'Jadeだった(あまりに辛いから見てすぐに変更した)。

そもそもMiddleman's Loveは、YahomがP'Aofに「Mii2にぴったりな原作があるの!」と話をしてきた経緯があると、噂に聞いている。その方にとって、キャスト降板と変更はどれだけショックなんだろうなと思うと想像すら難しい。

でも多分、Mii2が解散するのではと思うくらいもう一緒にいることもなくSNSで絡んで楽しい姿見せることもなくなったことが、よりYahomの辛い気持ち助長させてる気がする。多分JimmyくんのメンタルがどうとかTommyくんの仕事がどうだとか、Mii2が表向きでも順調に、一緒に笑い合うイメージが残っていたらキャスト変更で現実を見ても多分ダメージは少なかった。本人達が「新しいキャスト応援して欲しい」と言っても素直に全部飲み込めることができた。

Tommyくんの仕事情報全然更新されないことやMii2の今後についてしっかり知らせてほしいと、皆常に思っている。Jimmyくんの病状に関しては知らせて欲しいけども難しいことだと思うから、それに関しては個人的はいい。

ただ、本当に苦しいんだ。どこに感情を持っていけばいいかからない。ポジティブ気持ちを保ってられなくて、波のように悲しさ辛い気持ちがきて引いてまたきての繰り返し。良い意味でも悪い意味でも早くこのただぐるぐる考えながら黒い感情に囚われて待つだけの時間を終わらせてくれと願っている。

読めば分かる通り私は生粋のYahomだけども、前のままソウルメイトと言えるような仲に完全に戻って欲しいとは言わない。カップルとしてじゃなく、友達としてただ2人一緒に笑い合う姿や微笑ましいSNSのやり取りが見れたら本当にそれで良い。前のようにずっと一緒に隣にいてくれとは言わない。DMDボーイズの仲間としてだけでも、普通に接してくれたらそれだけでこの苦しい数ヶ月間(特に苦しくなったのは9月からだけども)が少しは報われるし、これからポジティブ感情を持てる気がする。まぁ、もう苦しい辛いとファンをやめていった方々を結構見てきたけれど…。

昨日これをまとめている間に、JimmyくんがTommyくんの呟きをいいねしているのを見て、また泣いている。実に何ヶ月ぶりか分からないほどの「いいね」。これだけでも泣けるぐらい、もうとっくに限界迎えてるんだな。

上手くまとまってない、ぐちゃぐちゃなままな気もするけども、とにかくこれが今の気持ちの全て。少しだけスッキリした。

2019-02-05

ゲームが好きだけど下手くそ人間

上手にクリアしたときのご褒美を一生手に入れることができないまま死んでいくんだよな

デビルメイクライDMDモードバイオ無限ロケランもスマブラレジェンドスピリッツもできない

ゲーム側にお前は下手くそだと馬鹿にされたうえ購入したゲームのすべての要素を味わえないんだよね

1000円ぐらい返してくれねーかな

2008-10-30

http://anond.hatelabo.jp/20081025202001

いまさらだがFizzBuzz

1から100まで、3の倍数5の倍数云々って、全部定数の計算じゃね?

というところに気付き、自称メタプログラマー(略してメタグラマー)俺の血が騒いだ。

定数計算なら、それは実行時ではなくコンパイル時に行なわれるべきだ……。

というわけでC++テンプレートメタプログラミング召喚。

#include <iostream>

const int FIZZ_NUM = 3;
const int BUZZ_NUM = 5;
const int BEGIN_NUM = 1;
const int END_NUM = 101;

template<int N> struct Fizz {
    enum {PRINT = 0, NEXT = N + 1};
    static void print() {}
};

template<int N> struct Buzz {
    enum {PRINT = 0, NEXT = N + 1};
    static void print() {}
};

template<int N, bool ForB> struct Number {static void print() {std::cout << N;}};

template<> struct Fizz<FIZZ_NUM> {
    enum {PRINT = 1, NEXT = 1};
    static void print() {std::cout << "Fizz";}
};

template<> struct Buzz<BUZZ_NUM> {
    enum {PRINT = 1, NEXT = 1};
    static void print() {std::cout << "Buzz";}
};

template<int N> struct Number<N, true> {static void print() {}};

template<int N, int F, int B> struct FizzBuzz {
    static void print() {
        typedef ::Fizz<F> Fizz;
        typedef ::Buzz<B> Buzz;
        
        Fizz::print();
        Buzz::print();
        Number<N, Fizz::PRINT || Buzz::PRINT>::print();
        std::cout << std::endl;
        
        FizzBuzz<N + 1, Fizz::NEXT, Buzz::NEXT>::print();
    }
};

template<int F, int B> struct FizzBuzz<END_NUM, F, B> {static void print() {}};

int main(int argc, char **argv)
{
    FizzBuzz<BEGIN_NUM, 1, 1>::print();
    return 0;
}

ifなし%なしループ系なし、しかも実行時オーバーヘッドなし!(多分)

あ、これを見て理解する人間オーバーヘッドは無視ね。

ああ、久しぶりにC++を触ったけど、やっぱC++テンプレートってダメダメだな。20世紀の遺物といわざるを得ない。

君がもし21世紀モテイケメンメタグラマーなら、21世紀プログラミング言語D言語を使うべきだ!

驚くべきことに、D言語コンパイル時に関数が実行でき、その結果をソースコードとして取り込める!

ただし実行できるのは簡単な関数だけだけど……。

以下、それを使ったD言語によるメタプログラミング的実装。

import std.stdio;

// これでFizzBuzzを全部出力するコードを作るぜ!
string makeFizzBuzzCode() {
    string code;
    for(int i = 1; i <= 100; ++i) {
        // 効率? コンパイル時にそんな配慮は要らん!
        if(i % 3 == 0 &amp;&amp; i % 5 == 0) {
            code ~= "writefln(\"FizzBuzz\");\n";
        } else if(i % 3 == 0) {
            code ~= "writefln(\"Fizz\");\n";
        } else if(i % 5 == 0) {
            code ~= "writefln(\"Buzz\");\n";
        } else {
            code ~= "writefln(" ~ static_itoa(i) ~ ");\n";
        }
    }
    return code;
}

int main(string[] args) {
    // おまけで生成されたコードも見せるよ。
    pragma(msg, makeFizzBuzzCode());
    
    // 生成したコードを埋め込む。コピペみたいな感覚
    mixin(makeFizzBuzzCode);
    return 0;
}

// 以下ユーティリティ。このぐらい標準で欲しいな……。

/// 整数文字列変換(コンパイル時)
string static_itoa(int n) {
    if(n == 0) {
        return "0";
    }
    
    // 10で割りながら余りを文字にして追加。桁が逆転した文字列になる。
    string s;
    for(; n; n /= 10) {
        s ~= ("0123456789")[n % 10];
    }
    
    // 桁位置を正常にする。相変わらず効率無視。
    return static_reverse(s);
}

/// 配列リバースコンパイル時)
/// 実行時ならarray.reverseが使えるんだけどね……。
T[] static_reverse(T)(T[] s) {
    T[] result;
    foreach_reverse(c; s) {
        result ~= c;
    }
    return result;
}

// 心配なので静的ユニットテスト(笑)
unittest {
    static assert(static_itoa(0) == "0");
    static assert(static_itoa(10) == "10");
    static assert(static_itoa(999) == "999");
    static assert(static_itoa(9999) == "9999");
    static assert(static_itoa(12345) == "12345");
    static assert(static_itoa(314159265) == "314159265");
}

コンパイル結果

$ dmd -unittest fizz_buzz.d
writefln(1);
writefln(2);
writefln("Fizz");
writefln(4);
writefln("Buzz");
writefln("Fizz");
writefln(7);
writefln(8);
writefln("Fizz");
writefln("Buzz");
writefln(11);
writefln("Fizz");
writefln(13);
writefln(14);
writefln("FizzBu(ry

出力結果は略。

さすがD言語C++JavaC#にできない事を平然とやってのけるッ

そこにシビれる!あこがれるゥ!

というか、

writefln(1);
writefln(2);
writefln("Fizz");
writefln(4);

もうwritefln(出力関数)要らなくね?

修正。

// これでFizzBuzzを全部出力するぜ!
string makeFizzBuzzCode() {
    string code;
    for(int i = 1; i <= 100; ++i) {
        // 効率? コンパイル時にそんな配慮は要らん!
        if(i % 3 == 0 &amp;&amp; i % 5 == 0) {
            code ~= "FizzBuzz\n";
        } else if(i % 3 == 0) {
            code ~= "Fizz\n";
        } else if(i % 5 == 0) {
            code ~= "Buzz\n";
        } else {
            code ~= static_itoa(i) ~ "\n";
        }
    }
    return code;
}

int main(string[] args) {
    // もうコンパイル時のメッセージしか出さない。(笑)
    pragma(msg, makeFizzBuzzCode());
    return 0;
}

コンパイル結果。

$ dmd -unittest fizz_buzz.d
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBu(ry

実行するまでもなく結果が出力された。つまり実行時間ゼロ、ということは……

世 界 最 速

以上、世界最速なD言語宣伝でした。

みんな使おうD言語

D言語リファレンス日本語

http://www.kmonos.net/alang/d/1.0/index.html(1.0。こっちの方が安定してる?)

http://www.kmonos.net/alang/d/2.0/index.html(もっと凄い2.0)

D言語本家配布元(無料コンパイラが入手できます)

http://www.digitalmars.com/

それにしても、ちゃんとD言語シンタックスハイライトを実装しているはてなは偉い。(笑)

 
ログイン ユーザー登録
ようこそ ゲスト さん