ボイラーのチラシ裏

テクノロジーやフィギュア、ゲームに関すること

フィギュア届きました(2024/4/18)

あみあみさんから注文していたフィギュアが届きましたー

アズールレーン 大鳳 春の暁に鳳歌うVer. 1/7 完成品フィギュア[アルター]

https://www.amiami.jp/top/detail/detail?scode=FIGURE-156596

胸が零れ落ちそうに見えます。大丈夫かなこれ。

ファーストインプレッションとしては、結構重量のあるフィギュアだなと思います。 いやいや、大鳳さんのことが重いと言っているわけではなく、大鳳さんが乗っていらっしゃる盆栽を思わせるような木の台座がきっと重いのでしょう😅

理想的ないわゆるボン・キュッ・ボンのスタイル。 こういうの好き。

なるほど、提灯パーツはボタン電池で光るようです。

まあ、ボタン電池買ってないので、提灯パーツの電源はセットアップしなくてもいいか。

下のチャック付きビニール袋に入っている金属パーツと両面シールを使って提灯を光らせるようです。私は使わないのでそのままにしておきます。

↓各種パーツセットアップ後

胸にも視線を運びたくなりますが、どちらかというとチャイナ服のスリットから大胆に露出された腰からふとももにかけての白い素肌がグッときますね。 網目状のニーハイソックスも心をくすぐられます。

アズールレーン棚はお胸の大きなフィギュアばかりになっています。 なぜでしょうね? 私の注文傾向として、胸の大きなキャラのフィギュアばかりを選んでしまうのでしょうか。。。 そこは否定したいところではあるのですがね。

アルター製のすさまじいクオリティのフィギュアでしたー。

フィギュアなど届きました(2024/4/5)

こんばんは。

あみあみさんからフィギュア等が届いたので報告しますー。

3点ありまして、まず1点目。

原神 「呑天の鯨」シリーズ BIGぬいぐるみ抱き枕(再販)[miHoYo]《在庫切れ》

https://www.amiami.jp/top/detail/detail?scode=GOODS-04186404-S007

写真からわかるようにそこそこ大きくて、リモートワークで着座時に膝の上に置くことでアームレストになりそう??? 肌触りはすごく良く、特に角を思わずサワサワしてしまいますね。

2つ目。

Mika Pikazo「猫メイド」 完成品フィギュア(再販)[ユニオンクリエイティブ]《発売済・在庫品》

https://www.amiami.jp/top/detail/detail?scode=FIGURE-154207

原画は拝見したことがなかったのですが、絵の方は若干色味が強くて肌色が褐色気味?(印刷が濃いだけかもしれません)

実物のフィギュアを見ればそんなことなく。

身体の部位にいちいちコメントする必要はなさそうと思いました。 すべてセクシーに作られています。

特にこの長い髪の毛がウツクシー。 色合いがステキー。

こういうジト目の可愛らしい女性がメイド喫茶(風俗店?)で働いていたら通ってしまいますよね。 まあ、私は行ったことないので現実がわからないのですが。

3点目。

原神 浮世の一瞥シリーズ フィルム風しおりセット モンド城モデル[miHoYo]《発売済・在庫品》

https://www.amiami.jp/top/detail/detail?scode=GOODS-04299227

おっ、結構大きめのしおりだぞ!?

しかもたくさん入っています。

クレーちゃんかわいい。

これはたくさん本を読むしかないですねー!

以上、現場から報告でしたー。

体系的なWPF学習記事のネタを考える

おはようございます。

今日はタイトルの通り、「体系的なWPF学習記事」のネタを考えます。

前提

他サイトで紹介されているWPF記事を剽窃(ひょうせつ)しない

これは当然ですね。剽窃したらアカン。 というか他の人の解釈を鵜呑みにせず、自分自身が十分WPFについて理解しているつもりなので(自信過剰かもしれません)自分で言葉を紡ぐ方が効率よく説明できるのではと思います。

可能な限り図説する(特にクラス階層)

これはもしこのブログのWPF学習記事を薄い本化するときに予め図示しておいた方がコンテンツの水増しができるのでは?と思ったからです。 まあ、WPFは水増ししなくても十分なコンテンツ量になると思います。 特にUMLダイアグラム(クラス図、シーケンス図)を使いたいと思っているので、astah professionalを購入すべき時なのかもしれません。

前提としてはこんなところでしょうか。

本題

章立て

さて、章立てを考えてみましょう。。。 ちなみにこの章立ては Pro WPF in C# 2010 の章立てをベースに順序を改変し、さらにWPFアプリをMVVMにするために必須な項目を追加しています。 この記事を書いた後にこの章立てを変更することがあります。予めご了承ください。

1. XAML

 1-1. 基本的な書き方
    1-2. Style

2. レイアウト

    2-1.  StackPanel

    2-2.  WrapPanel

    2-3.  DockPanel

    2-4.  Grid

    2-5.  Canvas

3. コントロール

 3-1. ContentControl

        3-1-1. Window

        3-1-2. Label

        3-1-3. Button

        3-1-4. Tooltip

   3-2. 特殊なコンテナー

        3-2-1. ScrollViewer

   3-3. ヘッダー付きコントロール

        3-3-1. GroupBox

        3-3-2. TabItem

        3-3-3. Expander

   3-4. テキストコントロール

        3-4-1. TextBox

        3-4-2. RichTextBox

        3-4-3. PasswordBox

   3-5. リストコントロール

        3-5-1. ListBox

        3-5-2. ComboBox

   3-6. 範囲のコントロール

        3-6-1. Slider

        3-6-2. ProgressBar

   3-7. 日付コントロール

        3-7-1. Calendar

        3-7-2. DatePicker

コラム1. プロジェクト初期状態

4.  DependencyProperty

5. ElementBinding

   5-1. BindingMode

       5-1-1. OneWay

       5-1-2. TwoWay

       5-1-3. OneTime

       5-1-4. OneWayToSource

       5-1-5. Default

   5-2. Binding Updates

       5-2-1. PropertyChanged

       5-2-2. LostFocus

       5-2-3. Explicit

       5-2-4. Default

   5-3. 要素でないオブジェクトにバインドする場合

       5-3-1. Source

       5-3-2. RelativeSource

           5-3-2-1. Self

           5-3-2-2. FindAncestor

           5-3-2-3. PreviousData

           5-3-2-4. TemplatedParent

       5-3-3. DataContext

コラム 2. ReactiveProperty

6.  RoutedEvent

    6-1. イベントルーティング

    6-2. WPFのイベント

    6-3. キーボード入力

    6-4. マウス入力

    6-5. マルチタッチ入力

7. コマンド

   7-1. WPFのコマンドモデル

       7-1-1. Command

       7-1-2. Command Binding

       7-1-3. Command Source

       7-1-4. Command Target

  7-2. ICommand Interface

  7-3. RoutedCommand

  7-4. Command Library

      7-4-1. ApplicationCommands

      7-4-2. NavigationCommands

      7-4-3. EditingCommands

      7-4-4. ComponentCommands

      7-4-5. MediaCommands

  7-5. コマンド実行

      7-5-1. Command Source

      7-5-2. Command Binding

コラム3. ReactiveCommand

8. アプリケーション

9. リソース

10. ビヘイビア

11. Shape, ブラシ, Transform

12. アプリ開発戦略

    12.1. Dependency Injection

イメージとしては、1, 2, 3を学んで実際にWPFGUIを作ってみます。その後、コラム1でPrismを導入します。 4,5でデータバインディングを学び、コラム2でReactivePropertyを導入します。 6, 7でWPFのイベントやコマンドを学び、コラム3でReactiveCommandを使ってみます。 あと細かいことを学んで、最後にアプリ開発戦略としてDIを学んでもらう形でフィニッシュとする予定。

とりあえずこんな感じでしょうか。

WPFのクラスを図に網羅してみた

こんばんは。

久々の投稿です。

今回はWPFのクラス図を作ってみました。

全部は網羅できていないのですが、主要なクラスは大体描けたかな。

足りないクラスがあったら随時追加していきたい所存です。

GoogleドライブのPDFビューアーでは十分に拡大できないので、ダウンロードしてご利用いただくとよさげです。

drive.google.com

次回予告

次回はこのWPFクラス図を材料に、WPFを学ぼうとする開発者への教材の構成を考えてみようかな。

なぐり書きになる予定です。

フィギュア届いた(2024/3/7)

あみあみさんから予約してたフィギュアが届いたー

POP UP PARADE ブルーアーカイブ -Blue Archive- ユウカ イタズラ☆ストレート Ver. 完成品フィギュア[グッドスマイルカンパニー]

https://www.amiami.jp/top/detail/detail?scode=FIGURE-158836

こじんまりとした段ボール箱で届きました。

あどけない笑顔がかわいい。

お隣の一ノ瀬アスナさん、でかすぎます。。。

このユウカさんは飾りやすいし何せお手頃でした。(4800円)

【C#】Numpy✕CuPyのハイブリッド.NETライブラリを作った(仮)

こんばんは。

最近作業の進捗が悪いというか、

いやね、作業はしているんですが

スムーズに事を運ぶことができなくて

悶々としている日々を送っています。

今週のテーマ

先週CuPyをラップした.NET版ライブラリ「CuPy.NET」を軽く紹介しました。

ここにSciSharpさんのNumpy.NET と CuPy.NET が揃ったので

スイッチひとつでどちらを使用するか切り替えられるライブラリを作りたくなりました。

で、作ったわけなんですが、ちゃんとパッケージングできていなくて

現在開発中のDeZero.NETパッケージに成果物を含めてしまっています。

まあ、これは完全に私の都合でなんですが、将来的には分蜂したいですね。

というわけで、今回はDeZero.NETパッケージに居候しているxp静的クラスについてご紹介。

xpってなんだ...?と思われた方。

ぜひ「ゼロから作るDeepLearning③ フレームワーク編」を読んでみてください。

C#におけるxp静的クラスはNumpyのnp静的クラスとCuPyのcp静的クラスをハイブリッドした表現です。

実際にコードを見てみましょう。

using Python.Runtime;

namespace DeZero.NET.Tests
{
    public class AddTests
    {
        [OneTimeSetUp]
        public void OneTimeSetUp()
        {
            Runtime.PythonDLL = @"C:\Users\boiler\AppData\Local\Programs\Python\Python311\python311.dll";
            PythonEngine.Initialize();
            Core.UseGpu = true;
        }

        [Test]
        public void Test_Forward1()
        {
            var x0 = xp.array([1, 2, 3]);
            var x1 = new Variable(xp.array([1, 2, 3]));
            var y = x0 + x1;
            var res = y.Data;
            var expected = xp.array([2, 4, 6]);
            Assert.That(res, Is.EqualTo(expected));
        }

        [Test]
        public void Test_DataType()
        {
            var x = new Variable(xp.array(2.0));
            var y = x.pow(2);
            Assert.That(xp.isscalar(y.Data.Array), Is.False);
        }

        //続きは作成中...
    }
}

前提として、以上のテストコードはすべて成功します。

xpクラスはnpクラスやcpクラスのようにほぼ互換のある書き方で使用できます。

(まあ正確にいうと、CuPyはNumpyの機能をすべてサポートしているわけではないので、そのへんはxpクラスで調整していますが。詳しくは以下リンクをご覧ください。)

docs.cupy.dev

OneTimeSetUpで Core.UseGpu = true; みたいな書き方をすれば、npクラスを使用するデフォルトの振る舞いをcpクラスを使用するように変更できます。

次回予告

xpクラスは一応一通り実装は済んでいて、

次のステップ「xpクラスを使用してDeZeroを.NETコードで作る」ステップに移っています。

来週末は本業がちょっと忙しいので、記事執筆はおやすみします。

再来週までにDeZero.NETを作れたら、私は天才です。

ですが、それを達成するのは現実的ではなく、たぶん間に合わないでしょう。

再来週の記事はDeZero.NETの開発途中経過報告回とでもしましょうか。