幸福さについて

幸福さについて考えると、基本的には、お金を沢山持っている方が幸福だと思う。

お金で買える物には、「A 直接の人のサービス」と「B それ以外のモノとサービス」の2種類があって、Bは大量生産出来るけど、Aは大量生産出来ない(人を増やすと需要も増える)。

Aは相当貴重だと思う。

Aの中でも医療・介護は重要だけど、一人あたりどれくらいのAを必要とするんだろうか。

基本的には、人一人が生み出すのより少ない量でやっていかないといけない。

で、お金を沢山持っている人がAを一人で消費したら困るなぁと思う(Aの供給量が減り、価格がつりあがる)。

Aはお金で買えないようにして、配給制にしたらいいんだろうか(こういう思想って何か名前付いてないかな?)。

あとは、そもそもAがなくてもやっていけるようになれば。

必要なのはロボットかな。

CheckedListBoxのチェック状態を簡単に取得・設定できるクラスを作成

using System.Linq.Expressions;
using System.Windows.Forms;

...

public class CheckedListBoxWrapper<T, Tvm, Tdm>
{
    CheckedListBox c;
    Func<T, Tvm> vmSelector;
    Func<T, Tdm> dmSelector;

    // コンストラクタ
    public CheckedListBoxWrapper(CheckedListBox c)
    {
        this.c = c;
    }

    // データソースの設定
    public void SetDataSource(
        IEnumerable<T> dataSource, 
        Expression<Func<T, Tvm>> vmSelector, 
        Expression<Func<T, Tdm>> dmSelector)
    {
        this.vmSelector = vmSelector.Compile();
        this.dmSelector = dmSelector.Compile();
        c.DataSource = dataSource.ToList();
        c.ValueMember = PocoHelper.GetName(vmSelector);
        c.DisplayMember = PocoHelper.GetName(dmSelector);
    }

    // チェックされた項目の設定と取得
    public IEnumerable<T> CheckedItems
    {
        get
        {
            var tmp = new List<T>();
            foreach (var item in c.CheckedItems)
            {
                tmp.Add((T)item);
            }

            return tmp;
        }
        set
        {
            for (int i = 0; i < c.Items.Count; i++)
            {
                var ret = value.Contains((T)c.Items[i]);
                c.SetItemChecked(i, ret);
            }
        }
    }

    // チェックされた値の設定と取得
    public IEnumerable<Tvm> CheckedValues
    {
        get
        {
            var tmp = new List<Tvm>();
            foreach (T item in c.CheckedItems)
            {
                tmp.Add(vmSelector(item));
            }

            return tmp;
        }
        set
        {
            for (int i = 0; i < c.Items.Count; i++)
            {
                var ret = value.Contains(vmSelector((T)c.Items[i]));
                c.SetItemChecked(i, ret);
            }
        }
    }

    // 全てのチェックをクリア
    public void ClearChecked()
    {
        for (int i = 0; i < c.Items.Count; i++)
        {
            c.SetItemChecked(i, false);
        }
    }

    // 全てチェック
    public void CheckAll()
    {
        for (int i = 0; i < c.Items.Count; i++)
        {
            c.SetItemChecked(i, true);
        }
    }
}

public class PocoHelper
{
    internal static string GetName<T, TKey>(Expression<Func<T, TKey>> e)
    {
        var member = (MemberExpression)e.Body;
        return member.Member.Name;
    }
}

あんまり好きじゃない言葉(仕事)

あんまり好きじゃない言葉

  • 付加価値 - 誤解を生みやすい言葉。複雑怪奇なシステムを作る原因の一つだと思う。
  • 自働化 - 解ってる人は自動化という言葉を使っていても出来てるし、解ってない人は自働化という言葉を使っていても出来てない。
  • MODAPTS - 人が幸せになる方向はこっちじゃないと思う。

それでも重要だなと思う言葉

大事だと思うけど重い腰をあげられない言葉

  • 定量化
  • 計測
  • テスト

パターン

Tester-Doerパターン
TryParseパターン
TAP(Task-based Asynchronous Pattern)