権利を主張するならまず義務を果たせ、という人がよくいるけれど、その素朴な考え方はいつでも正しいわけではないですの。こと、個と国の関係においては。

わらわがいて、あなたがいる。わらわがあなたから100円もらおうとするとき、わらわはあなたに100円分の価値を渡さなければいけない。これが、個と個の間の取引の考え方。

国というのが、大きな権力を持った個、つまり国王と同義だった中世の時代は、この考え方でも間違ってはいなかったと言えますの。でも今は中世ではないのですの。

ちいさな畑を持つ10人が、それぞれいったん自分の畑を持つ権利を放棄して、一つの大きな畑を共同管理することで効率化を図ろうというのが、近代的な国と個の関係。

当然のこととして、もし共同管理することにメリットがないのであれば、ちいさな畑のままやっていればいいわけですの。繰り返しになるけれど、メリットがあるからやっているのですの。

メリットがあるということは、言い換えれば「個が国に渡すものよりも、国が個に返すもののほうが大きくなる」ということですの。国に対して、個は一方的にメリットを受け取っていればよく、逆にそうでなくなった瞬間、存在価値が無くなってしまうのが国ですの。

そして、メリットと引き換えに個が国に渡しているものは何かといえば、最たるものは「何者にも従わない権利」ですの。義務の形に言い換えれば「国に従う義務」であり、法治国家であれば、それはつまり「法を守る義務」ということですの。(ちなみに納税も、法を守る義務の中のひとつですの)

だから、警察や裁判所から逃げ回っているような状態でもなければ、国に対しての義務は十分に果たされていることになりますの。あとは、国がちゃんとやっているかどうかチェックして、問題があれば選挙を通じて正すのが監督者としての義務といえば、義務ですの。

それだけ? と思う人は、突然しらない人が家に入ってきて、あなたは今から私が決めたオレオレ法律に従ってもらいます。従わなければ独自のオレオレ罰則を与えますと言われる状況を想像してみて欲しいですの。

生まれたときからその中にいると意識することが無いけれど「ある法律に従うことを受け入れる」ということは、内容次第ではあるけれど、本質的に、生殺与奪の権利を他人に渡すということ。それは、軽いものでは無いはずですの。

Gotoキャンペーンという業界限定の支援策が不平等だと批判されるとき、反論としてよく見かけるものに、平等な税の使い方なんて存在しない、平等うんぬん言うならたくさん税を納めてる人に優遇がないのはまったくもって不平等じゃないかという論がありますの。

これは「平等」の前提が狂っていますの。

まず平等とは適切に富の再分配がなされている状態のことであって、せっかく再分配のために累進課税している税が、配り方がまずいことで正しく再分配がなされず、富裕層にまた戻っていってしまうことが不平等であり、最大の問題なのですの。

つまり、あえて言葉を借りて返すとすれば、たくさん税を納めている人に過分な優遇が無いことこそが平等な状態なのですの。

極端な話、どんな政策であれ、結果として適切な再分配が達成されたのであれば、その時点では平等な税の使い方であったと評価できますの。なぜなら、政策の結果、あるいは政策によって予想される結果として適切な再分配が達成されるかされないか、税の使い道で平等さについて考えるとき、評価軸はそこしかありえないからですの。

また、高額納税者(?)の謎の被害者意識も疑問ですの。
当たり前の話なのですけれど、現在の税制でたくさん税を納めてる人というのは、より少ない税を納めている人と比べたとき、基本的には納税額を引いても収入は多い。つまり、優遇されているのですの。優遇がないというのは、納税後の収入に差がない状態のことですの。

たとえば、年に1億円稼いだ人と200万円稼いだ人の納税後の収入が同額(180万円とか)になる税制であれば、そこではじめて優遇がないと言えるのですけど、現在そうではないので優遇されている状態と言えますの。

そうではなく、そもそも累進課税がおかしいんだという人は、富の再分配が無い社会がどうなるかということを考えてみてほしいのですの。

本質的に一番問題なのは、富というのが個人の自由(とそれに伴う活動)を保障するものでもあるために、もし富の再分配が無ければ、一握りの富裕層を除いた大多数の人々の自由が脅かされることですの。それは実質的に、自由経済のメリットの大半を殺しますの。(*1)

とくに、高度で知的な領域について人的リソースをフルに使えなくなることや、科学や産業の世代交代の速度が鈍るデメリットが大きいですの。

毎日を生きるのに精一杯という人々の中で知的活動は盛り上がりにくく、個々人に対して、生きるために必須ではない活動が出来る余裕をどれだけ与えられるかが、その社会の長期的な強さに直結しますの。

世代交代が鈍るのはどういうことかというと、昔の成功者がいつまでも富を持ち続けて、次世代の誰に(または何に)投資するかについてもその意向が強く反映されることで、旧世代の人間の常識を越えた革新的な試みにリソースが割かれづらくなるということですの。
こうなると例えば、移動手段なら、いつまでも馬の品種や馬車の改良といったマイナーアップデートから抜け出せず、なかなか自動車が現れないということになりますの。

また、消費活動という意味でも、一部の富裕層だけが商品を買って消費する状態は好ましくないですの。言ってみれば、市場経済とは商品たちの選挙であり、お金は投票券であり、購入とは投票であるからですの。

支持を集めた商品の値は上がり、生産は拡大していきますの。支持を得られなかった商品は逆の結果を辿り、淘汰されていきますの。もし技術面などで優れた商品であっても、この選挙に通らないことには生き残れないので、これはとても重要なチェック機能であると言えますの。

このとき、富の再分配が不十分だと、実質的に一部の富裕層の間だけで商品の良し悪しを決めるような状態になって、より大勢の人間が参加した場合と比べてチェックの質が落ちることになりますの。つまり、優れた商品が見落とされたり、凡庸な商品が惰性で支持を集め続けたりということが起こりやすくなりますの。

ほかにも挙げれば色々あると思うのですけれど、例えば、もちろん治安は悪くなって、それを抑え込むためのコストも激増したりで、原則、最大多数の最低幸福を地で行く世の中になるので、短期的にも長期的にもメリットがほぼ無いですの。

まあ、累進課税や富の再分配を否定すればタックスヘイブンにはなるので、海外から富裕層を集めてそこに依存する方向はあるかもですけれど、それはそれで中世の封建社会のリバイバルみたいな感じになりそうですの。しかも王様達のほとんどは言葉も文化も違うという。。


*1) 格差を放置した自由経済の行く末には、自由の無いなにかが待っている

UnityでUIといえば、おなじみのuGUIですの。
ただ、最近のUnityでは新しいUIElementsというものと、それを作成するためのUIBuilderというものがあるそうで、uGUIは使えなくなってしまうのですの?って不安になったので調べてみたのですの。

結論から言えば、UIElements/UIBuilderは、いまのところはまだエディタ拡張向けの存在だけれど、ゆくゆくはゲーム内のUIもuGUIから置き換えられることを狙っている存在、ということらしいですの。

いまの最新版の2020.2のUIについてのページ
https://docs.unity3d.com/2020.2/Documentation/Manual/UIToolkits.html
 
「まだ」ゲーム内のUIに使うものでは無いという反面、ゆくゆくはそちらでもメインになる予定の機能ということで、いつから採用していくかの判断に困るところですの。まだ早いと言って見送って忘れているうちに、気がついたらuGUI廃止とかあるあるですの。

ただ、UIElements/UIBuilderの面白いのは、Unityでは今までゲーム内のUIを作る機能と、エディタ拡張のUIを作る機能が分かれていたのに対して、(ゆくゆくは)これらを一つの機能で賄えるようにしようとしているところですの。

あと、uGUIはゲーム画面内で直接UIの編集をするせいで、UI以外のゲーム内要素と混ざってごちゃごちゃになりやすいのが気になっていたのですけれど、UIBuilderだとUIの編集を完全に別画面でやるように見えるので、本当にそうならすっきりしていいなと思いますの。

ちなみに本題からは逸れるのですけど、最近のUnityでは、まさかのGameObjectもごそっと新しい仕組み「DOTS」に置き換えが図られているようで、まだしっかり見れていないのですけれど、これも早めに慣れていったほうが良さそうですの。(さすがにGameObjectが廃止になるとしたら、それはかなり先の話になるとは思うのですけれど)

最近話題の日本学術会議ですの。

任命拒否がニュースになってふむふむと思っていたら、最近ネット上では、なんだか日本学術会議そのものへのバッシングが渦巻いていて、中には「日本学術会議?聞いたこともない、何やってるかもわからないうさんくさそうな団体!」みたいなことを言ってる方までいて困惑ですの。

超有名な団体だと思うのですけど、もしかしていま話題になってるのって、わらわが知ってるのと違う団体なのですの? と思って調べてみると、やっぱりあの日本学術会議で合ってるようですの。

○○が学会で発表された、みたいなニュースをたまに見ると思うのですけど、こういうときのいわゆる「学会」は、基本的には単に学会を自称している団体ではなくて、一定の要件の基に公的に学会として認められた団体で、それを指定したりしているのが日本学術会議なのですの。

この自称なのか公認なのか、一般の人にはどうでもいいと思われるかもしれないのですけど、意外とそうでもなくて。よく、真偽不明の健康食品の宣伝で「学会が認めた(○○学会)」とか「専門家の○○博士も推奨(○○学会所属)」とかうたってるものがあると思うのですけど、これが本当に意味のある記載なのかどうかは、まずその学会の名前で調べて「日本学術会議から指定を受けているか」を確認するだけで、あやしいものの大部分は弾けるのですの。

指定を受けていない場合、まともな研究実態が無かったり、単純にその商品の販売会社が作って学会を自称しているだけの団体だったりする可能性が高いのですの。

もちろん、実在の公認学会を騙るタイプのより悪質な宣伝もたまにあるのですけど、これは明らかに犯罪として取り締まれるのに対して、自称学会に推奨させるのは基本的には取り締まれなくて、だからこそ多用もされやすいので、ここの違いはけっこう大事なのですの。

 

簡単に紹介をしたところで、本題ですの。

昔、公選制だった日本学術会議を、いまの推薦+任命制に法改正しようとしたときの国会の内容ですの。

国会会議録検索システム
第98回国会 参議院 文教委員会 第8号 昭和58年5月12日
https://kokkai.ndl.go.jp/#/detail?minId=109815077X00819830512

ニュースにも取り上げられていて有名なのは、当時の中曽根総理が「形式的な任命」だと断言している308とかなのですけど、他にも、いま言われているような批判の多くにちょっと認識違いがあることがわかる内容だと思いますの。

そしてこれは大事なことなのに、あまり明記していない記事が多いのですけど、国会でのこのやりとりは

・法改正の前に、これから法改正する内容についての話し合いで
・想定される問題点について確認されて
・そうはならないから大丈夫。だからこの内容でいかせて欲しい

というものなので、こういうやり取りを無視することが許されてしまうと、今後のあらゆる立法、法改正で「あえてあいまいな書き方をした法案を出して、具体的な内容を確認されたら嘘の回答をして、とにかく国会さえ乗り切って成立させてしまえばなんでもあり」ということが通ることになりますの。

たとえば、パンに麺を挟んだ料理を「やきそばパン」と呼ぶという法案を出して、「その法案だと、焼きうどんやナポリタンを挟んだパンもやきそばパンになってしまいませんか?」と聞かれて「そういうことは考えてません。あくまでちょっとした手続きや、表記上の問題であって、ここでいう麺には焼きうどんやナポリタンなど、やきそば以外のものは含まないと考えています」という回答の末に、この法律が成立したあとで、全ての「パンに麺を挟んだ料理」(焼きうどんやナポリタンを含む)は「やきそばパン」であるとして、「そりゃ法律にそう書いてありますからねえ、うどんもナポリタンも麺である以上、法的に当然です」と言い張るのは極めておかしいことだけれど、国会でのやり取りを無視していいのであれば「あり」になってしまいますの。

そして、それが「あり」だとすれば、立法、法改正にあたって、国会で内容について確認する意味というのはなくなって、究極的には国会自体がもう議論というより、みんなでじっと法案の記載だけを見つめて、いかに穴を潰すかという作業がメインの場になってしまうことを意味しますの。

なぜなら、いくら大枠や方向性について議論を深めても、法案への落とし方が甘ければいつでも簡単に真逆の法律にさえなってしまうのなら、おちおち大きな話に時間を割いていられないからですの。

(法案の穴埋めの実務は官僚に任せるとしても、その穴埋めの重要度が跳ね上がる以上、内容は今以上に国会議員が厳重にチェックしなければいけないし、当然、法案の純粋な文量も指数関数的に増えるので、ささいな部分で意見が分かれて本題が進まないという状態も増えますの)

ただ、そういう状況はさすがに非生産的だと思いますの。やはり国会議員には、枝葉より幹の話に力を割いてほしいとおもいますの。

結局のところ、現在の人語で書かれた法律というのはそれ単体での表現力には限界があるので、立法趣旨や、それを裏付けるこういった公的な回答、やりとりもきちんと踏まえた上で、運用していくというのが合理的だと思いますの。(本当に、焼きうどんパンがやきそばパンになりかねないので、、)

ましてや、これまでそういう運用をしてきて、その前提で法律を含むルールが決まっているという状態で、「前例にとらわれない」を免罪符に、急に法律以外はぜんぶ無視!というのは許されないことですの。

もしそういう形にしたいのであれば、それはそれで、まず既存の全ての法律についてそれでも問題がないかを精査して、記載が足りていないところがあれば、それを補う法改正をして準備を整えて、きちんと合意をとった上で「これからは法律の文面以外の、立法趣旨を含むすべての事情は法解釈の際に使わないことにする」ということを宣言して、根本的な国会のあり方から変えていく必要がありますの。

民主主義では手続きが大事。
それを省略したければ独裁国家になるしかないですの。

をしようと思ったのですの。

前に書いたように、ラムダというか匿名関数自体は使えるし、それを投げることも出来るのですの。なのでいけるかなと思ったのですの。

でも、クラスメソッドとして書いた関数は、匿名関数のように投げ回すことが出来ないようなのですの。ふべん。

代わりにこう↓かけたらいいなと、

class Foo{
 $bar = function (){
  return ~~~;
 };
}

思ったのですけどダメで、、

PHP:プロパティ
http://php.net/manual/ja/language.oop5.properties.php
宣言時に初期値を設定することもできますが、初期値は定数値でなければなりません。
ということで、
こう↓するしかないみたいですの。

class Foo{
 public $bar;
 function __construct(){
  $bar =  function (){
   return ~~~;
  };
 }
}

でもこの方法だと、関数をたくさん並べたときに宣言と定義の位置が離れて見づらくなるので嫌なのですの、、

なんとか良い感じに書ける方法があればいいのですけど、、


--2018/12/24 追記
メンバ変数の宣言時に関数を代入出来ないのなら、メンバ変数の宣言をコンストラクタ内に持ってくればいいじゃないですの!

class Foo{
 function __construct(){
  $this->bar = function (){
   return ~~~;
  };
 }
}

一応これは成功しましたの。さすがPHPですの。
ただ、ここでもう一つ問題がわかって。メンバ変数に関数を入れた場合、それを呼び出すときに普通のクラスメソッドのようには呼び出せないそうなのですの。

【PHP】プロパティに格納されたクロージャを呼び出す方法まとめ
https://qiita.com/rhap/items/1701247844772c3c92f0

なぜそんな意地悪を。。

ということで、ここで心が折れましたの。
自由に投げられるクラスメソッドが欲しくて調べはじめたので、普通のクラスメソッドとして扱えなくなってしまうようだと厳しいですの。

しかも、一番簡単そうな「括弧でくくる」方法は、PHP5.4では使えないようですの。いったんローカル変数に入れて呼び出す方法なら出来たのですけど、これはちょっと嫌ですの。

↓これはNGで
    /*
     * @dataProvider forNantoka
     */

↓これだと動くみたいですの
    /**
     * @dataProvider forNantoka
     */

上段のアスタリスクに注目ですの。

/*~*/は通常のブロックコメントで、
/**~*/はドキュメンテーションブロックという、アノテーションを書くための特殊なブロックだそうですの。

@dataProvider もアノテーションの一つなので、ドキュメンテーションブロックで書かないと動かないということですの。


PHPUnit data provider error
https://stackoverflow.com/questions/14426208/phpunit-data-provider-error

2. アノテーション
https://phpunit.readthedocs.io/ja/latest/annotations.html

2日ほど頭を抱えていたのがやっと動いたのでメモですの。

Windows環境
NetBeans8.2(PHP用)
XAMPP1.8.2(PHP5.4.31)

・ツール>オプション>一般 の設定
 PHP5インタプリタ
  xampp/php/php.exe

・ツール>オプション>フレームワークおよびツール>PHPUnit の設定
 PHPUnitスクリプト
  xampp/php/phpunit.bat

 スケルトン・ジェネレータ・スクリプト
  DLしたpharファイルをおいた場所を指定(たぶんどこでも良い)

・プロジェクト・プロパティ(プロジェクトを右クリック>プロパティ) の設定
 テスト>PHPUnit
  ブートストラップの使用 にチェックを入れ、「生成」ボタンを押す

・xDebugの設定(コードカバレッジを取るのに必要)
 xamppのphp.iniの最後のほうの[XDebug]の欄のコメントアウトをすべて外して、xamppのapacheを再起動する