一人一党党

一人一人の、一人一人による、一人一人のための政治制度を!

諸君、私を首相に選んだ責任は国民にある。

昨日、私は夢をみた。みたような気がする。
以下、その内容。

---

諸君、私を首相に選んだ責任は国民にある。
諸君、私を首相に選んだ責任は国民にある。
諸君、被選挙権者7000万人の中から私を首相に選んだ責任は全て、日本国民にある。

我々を与党に選んだ責任は国民にある。
集団的自衛権採用の責任は国民にある。
特定秘密保護法制定の責任は国民にある。
テロ等準備罪(共謀罪)制定の責任は国民にある。
特定複合観光施設区域の整備の推進に関する法律(カジノ法)制定の責任は国民にある。
盗聴法制定の責任は国民にある。
森友学園に破格の安値で国有地が払い下げられた責任は国民にある。
国家戦略特区での獣医学部新設を認められたのが加計学園である責任は国民にある。
PKO派遣部隊の日報が開示対象から外されている責任は国民にある。
ホワイトカラーエグゼンプション(残業代ゼロ法)制定の責任は国民にある。
自衛隊憲法9条に加憲された責任は国民にある。

関東平野奥州街道
黒部峡谷で 笠野原台地で
大雪山鳥取砂丘
辺野古沖で 富士山で
諫早湾釧路湿原

この国の領域で行われるありとあらゆる国政の責任は国民にある。

出口調査結果をならべた各社の一斉当確発表が午後8時の時報を待たねば報道できない責任は国民にある。
選挙情勢を勘違いした無党派層が票割れでバラバラになった時など心が躍る。

走行中の選挙カーでは候補者名の連呼しか許されない責任は国民にある。
「騒音被害で訴えてやる!」と飛び出してきた国民に公職選挙法を解説した時など胸のすくような気持ちだった。

空気を読むのに長けた人材をそろえた官僚組織が私の意向を忖度する責任は国民にある。
責任を問われた官房長官文科省事務次官が既に処分されたメモを巡って何度も何度も水掛け論を交わしている様など感動すら覚える。

内部告発」を気取る情報漏洩者達の氏名・所属を内閣府発表で記者クラブに吊るし上げていく様などはもうたまらない。
泣き叫ぶ原告達が私の振り下ろした内閣法制局の見解とともに判決文を読み上げる裁判官にばたばたと敗訴していくのも国民の責任だ。

哀れな泡沫候補達が手弁当で健気にも立候補してきたのを
「独自の戦い」報道が立候補者本人の一票まで主要政党に流したのは
単記非移譲式投票を選んだ国民の責任だ。

批判票の受け皿になるためだけに集まった烏合の衆に政権を奪われるのは国民の責任だ。
必死に守るはずだった既得権益が蹂躙され外交機密が暴かれ破棄されていく様はとてもとても悲しいものだ。
「風」の勢いに押し潰されて殲滅されるのは国民の責任だ。
陳情しに来た支援者達に追い回されることもなく害虫の様に霞ヶ関から締め出される野党暮らしは屈辱の極みだ。

諸君、私は政権を、地獄のような政権を望んでいる。
諸君、私に付き従う党員党友諸君
君達は一体何を望んでいる?

更なる政権を望むか?
情け容赦のない糞の様な政権を望むか?
鉄風雷火の限りを尽くし三千世界の鴉を殺す嵐の様な政権を望むか?

「政権! 政権! 政権!」

よろしい、ならば政権だ。

我々は渾身の力をこめて今まさに振り降ろさんとする握り拳だ。
だがこの暗い闇の底で半世紀もの間堪え続けてきた我々にただの政権ではもはや足りない!!

憲法改正を!! 一心不乱の憲法改正を!!」

我らは唯一無二の巨大与党 参議院が反旗を翻したとしても衆議院の2/3再議決で押し潰す。
だが諸君は所詮各選挙区の国民の代表に過ぎないと私は信仰している。
ならば我らは諸君と私で千人に満たぬ国民のごく一部に過ぎない。

我々を忘却の彼方へと追いやり眠りこけている国民を叩き起こそう。
髪の毛をつかんで引きずり出し眼を開けさせ思い出させよう。
国民に主権の味を思い出させてやる。
国民に自身が招いた軍靴の音を思い出させてやる。

天と地のはざまには奴らの哲学が目を背けていた事があることを思い出させてやる。
一千人の吸血鬼で国会議席を埋め尽くしてやる。

蓮舫が辞意を表明した! 民進党崩壊だ!」

そうだ。
アレが我々が待ちに望んだ政治不信だ。

私は諸君らを約束通り連れて帰ったぞ。
あの懐かしの政権へ。
あの懐かしの体制へ。

「首相殿! 首相! 代行! 代行殿! 天皇陛下代行殿!」
「首相殿! 首相! 代行! 代行殿! 天皇陛下代行殿!」

そして、日本国民は白票のみを投じ続け、私は白紙委任され続ける。

「ミレニアム党各員へ伝達! 陛下の御命令であるッ!」

さあ、諸君…美しい国を造るぞ。
責任は全て国民にある。

--- ネタ元 ---
よろしい、ならば戦争だ (よろしいならばくりーくだ)とは【ピクシブ百科事典】
https://dic.pixiv.net/a/%E3%82%88%E3%82%8D%E3%81%97%E3%81%84%E3%80%81%E3%81%AA%E3%82%89%E3%81%B0%E6%88%A6%E4%BA%89%E3%81%A0
[動画]少佐演説ドイツ語版(日本語+中文繁体字字幕)
https://www.youtube.com/watch?v=E9Gw-4uW7pw

冒頭の「夢をみた。みたような気がする」のネタ元は
百億の昼と千億の夜
https://ja.wikipedia.org/wiki/%E7%99%BE%E5%84%84%E3%81%AE%E6%98%BC%E3%81%A8%E5%8D%83%E5%84%84%E3%81%AE%E5%A4%9C
の終盤。

師を継ぐ者 - オープンソースを避けるべき、たった一つの理由

あるいは、マイクロソフトに貢ぐべき、たった一つの理由。

オープンソースのOSであるLinuxを自分のパソコンのメインOSにして10年以上、「タコ」を「初心者」の意味だと、私は勘違いしていた。
前書き - 賢い質問のしかた
http://www.ranvis.com/articles/smart-questions.ja.html#intro

悪びれずに言うならば、私達は質問をする前に、自分で考えたり下調べしたがらない人達に敵意を持っているのだ。そういう人達は時間を無駄にする ―― 彼らは一方的に質問を行い、そして他のより興味深い質問や答えるに足る人に対して費やせた時間を無駄にする。このような人を私達は「敗者(losers, ルーザー / タコ)」と呼ぶ(そして歴史的な経緯でたまに「lusers」と綴る)。


オープンソース開発者達のいうところの「タコ/敗者」と「勝者」を分けるものは何か?
あるいは、「勝者」はどのように振る舞うはずだと、オープンソース開発者達は考えているのか?
上記URLより

それどころか私達の大部分は、あなた方が必要な努力を行うならば、あなた方を公平に扱い、私達の文化へ迎え入れることを何よりも好む。

彼ら開発者の文化を身につけ、自らも開発者(の一員)になろうと欲するのが「勝者」なのだ。
ハッカーになろう (How To Become A Hacker)
http://cruel.org/freeware/hacker.html

あるいは現代の禅詩が言うように:

道をたどり
師をあおげ
師にしたがえ
師とともに歩け
師を見通せ
師となれ

だからハッカーになりたいなら、以下の内容を何度も唱えて、それを信じ込むこと:

この条件はかなり厳しい。
ソフトウェアを使いたい大部分の人は、自らそのソフトの開発者になろうとは思わないはずだ。
ちょうど、自動車に乗りたい人が、エンジンの組み立て方やハンドル・シフトレバーの設計を学ぼうとは思わないように。
それらは自動車メーカーや整備工場の技術者がやることだ。
ユーザーはそれらの対価さえ払えばいい。
その対価が、WindowsシリーズやRed Hat Enterprise linuxなどではお金であり、オープンソースでは開発への参加になる。
Windowsと同様に、オープンソースフリーソフトではない。
対価を支払わなければ、サポートは受けられないのだ。

すなわち、ソフト開発者になる気のない大抵の人は、Windowsの代わりとして無料のLinuxディストリを使うべきではない。
開発者になる気のない「敗者」に対して、オープンソースはサポートを一切提供しないも同然だからだ。
オープンソースは無料で高性能でコスパ凄いよ!」
という謳い文句が真実であることを、Gentoo Linuxを10年使っている私は決して否定できない。
だからといって同時に、この文句は対価=開発者を得るためのコマーシャル以外の何物でもないのも確かだ。
近年のWindowsのサポートはどれほど酷いか知らないが、サポート無しよりはマシだろう。

--- 題名の由来 ---

ホッ、師を継ぐ者 - Wikipedia
https://ja.wikipedia.org/wiki/%E6%98%9F%E3%82%92%E7%B6%99%E3%81%90%E8%80%85

マルチソケット用OSがAMD ryzen7には求められる

ryzen7は8つのCPUコアを持ちL3キャッシュ容量は16Mバイトと唱われている。
ダイ写真をみるとCPU4コアとL3キャッシュ8Mバイトをまとめたグループが二つ載っている。
ならば、この二つのグループ間での通信は遅い恐れがある。

例えば、片方のグループのCPUコアが同グループのL3キャッシュにアクセスするのと、他方のグルーブのL3キャッシュにアクセスするのには、差が出る恐れがある。
すでにryzen7を調べている人がデータを載せているので拝借。
RYZEN 7 1800X徹底検証 - ついに登場した新世代CPUは「AMD反撃の狼煙」となるか - マイナビニュース
http://news.mynavi.jp/articles/2017/03/02/ryzen/029.html
L3キャッシュを8Mバイトしか持たないcorei7-7700Kと同じサイズで、ryzen7のメモリアクセスが悪化する。

従って、OSとしては、あたかもマルチソケットシステムであるかのように扱う必要がありそうだ。
メモリ空間を共有しているマルチスレッドでは、4スレッド(~8スレッド、SMTが効果的な場合。)までは同一CPUグループに割り当てることになるだろう。
新CPUのサポートをマイクロソフトがやめているwindows7や8では、このようなスケジューラの更新はしないかもしれない。
また、ubuntupuppy linuxなど個人向けlinuxでは、マルチソケット向けスケジューラの実装を省いているものが多いだろう。

1個しかCPUグループを載せない製品を待ちたいところだが、自分はgentoo linuxを使っているので、kernel compile設定を見直すことで対応できる。
windows10を使っている人も問題ないだろう。

Variable length instruction ISA has almost no benefit

When you build a micro-processor which achives good code density, you tend to choose a ISA(instruction set architecture) which instruction length is short. Likewise, you want to make each instruction have same length which demands less amount of circuit. Small circuit also allows high clock cycle. Hitachi's SuperH RISC engine chose 16bit fixed length and ISA, then showed high code density while keep small and fast circuit of RISC.
J Cores | Open Processor Foundation
http://0pf.org/j-core.html
But such a short instruction set pays a price. To shrink length, each instruction of SuperH holds only 2 operand fields. The register specified one of the 2 fields is accumulator, used both input and output, and loses value for input. So, extra instruction is required to do same job which a 3-operand instruction (like MIPS ISA) does.

For example, to calcurate "$1 + $2 = $3":

2-operand ISA like SuperH:
mov $1 $3 (16bit length)
add $2 $3 (16bit length)

3-operand ISA like MIPS:
add $1 $2 $3 (32bit length)

Thus, 2-operand one needs one more instruction than 3-operand one, eating one more clock cycles. Since increasing instruction count offsets high clock cycle, RISC-V ISA uses instruction length 32bit and 16bit mixed.

 But, if you decide to implement a instruction decoder which deals multiple instruction length, some 2-operand instruction sequence as above example can be treated as one 3-operand instruction. Where you want a 3-operand instruction, use "mov A C; calculate B C" sequence, then the decoder treats this two 16bit = one 32bit pattern as a "calculate A B C" and the 3-operand RISC engine executes this two 16bit pattern at one clock cycle. In this example, there is almost no benefit for adding new 32bit 3-operand instructions to 16bit 2-operand ISA.

Thus, I conclude fixed short length instruction ISA can be executed as fast as variable length instruction ISA. I discussed 2-operand case above, but if you are interested in more code density and simplicity, "0-operand" stack machine ISA is left.
ZPU - the worlds smallest 32 bit CPU with GCC toolchain :: Overview :: OpenCores
http://opencores.org/project,zpu

-- postscript --
Even though there is a research applying Tomasulo out-of-order execution:
BOOST: Berkeley's Out-of-Order Stack Thingy
http://www.researchgate.net/publication/228556746_BOOST_Berkeley's_Out-of-Order_Stack_Thingy
in-order single issue micro-processor has interesting niche - Soft_microprocessor on FPGA. Both Out-of-Order and super-scalar require multi-ports RAM, but building a "fast" multi-ports RAM on FPGA is a hard work.

-- 2017-02-07 more postscript --
According to the paper of BOOST, applying this technique to stack ISA is called "instruction folding" which is already implemented on some processor such as "picoJava-II".

政治団体「支持政党なし」の狙いは無党派層ではない

中小企業だ。

こんな名前あり?『支持政党なし』の党首がかなり真っ当だった - しらべぇ | 気になるアレを大調査ニュース!
http://sirabee.com/2016/06/17/134750/
佐野氏「
私たちの提案は、政策ではなく「ネット投票を利用した直接民主主義」というシステム。

と党首自ら宣う通り、この党の肝はネット投票システムにある。
そして、ネット投票システムの鬼門は、「一人一票」の原則を破る多重投票だ。
「一アカウント一票」までなら、コンピュータシステム内の問題であり、実現は簡単だ。
しかし「一人一アカウント」からは、そうはいかない。

例えば、多くのサイトでは個人情報とアカウントを紐付けることで、一人の人間がアカウントを複数持つことを防ごうとしている。
複数のアカウントが同じ個人情報と紐付けられているなら、それは同一の人間による多重アカウントというわけだ。
なら、嘘の個人情報でアカウントを取得すればいい。
嘘の個人情報を入力されたかどうか判断するのは、戸籍にアクセスするとか、免許証と保険証を確認するとか、法的事務の問題だ。
個人情報保護が激しい近年の世の中、この方法での党員登録は、佐野氏にとっても党員にとっても経済的に安くはない。
免許証のスキャン画像がフォトショップで加工されてないか、いちいち確認するのは現実的ではない。

我が党の運営している予測市場
予言者への掲示
http://www7.tok2.com/home/aaaaaaaaaaa/index.html
では、これとは異なる方法で多重アカウント対策をしている。
当サイトの特徴(予言者への掲示板)
http://www7.tok2.com/home/aaaaaaaaaaa/character.html
で詳しく述べた。
しかし、佐野氏がこの方法(「共有地の悲劇」)を採る気がないのは明らかだ。
この方法は登録者を集めるのに時間がかかるのに、2014年で旗揚げしてから未だに、佐野氏は党員登録を始めていないからだ。

身分証明書も「共有地の悲劇」も使わない「一人一アカウント」の方法は他にもあるかもしれないが、私はしらない。
もし他に方法がないなら、佐野氏は「一人一アカウント」を目指していない事になる。
すなわち、「支持政党なし」の党員アカウント数は、党への献金に比例して発行される。
「一円一アカウント」ということだ(さすがに、一円単位はないだろうが…)。

こんな金権党に、大抵の無党派は閉口するだろう。
大金持ちじゃないから、経団連など大企業御用達の自民党に投票しないのだから。
裏を返せば、経団連に入れない程度の半端な中小金持ちな層にとっては、大企業のいない金権党は理想的だ。
そういえば、党首佐野氏は中小企業の社長でもある。

おそらく、他の既存政党と同様に「支持政党なし」も無党派層の取り込みに失敗するだろう。
だが「支持政党なし」は伸びる。
それまで自民党の票田だった中小企業・個人事業主を切り崩すのだ。

民主主義を貫く虐殺所(の試案)

すでに捕虜5000名のいる収容所に、新たに捕虜5000名が送り込まれた。
収容房3020号室には、既に捕虜が一人収容されている。
この房に新しく捕虜がひとり放り込まれた。
最初に目を合わせた瞬間だけ、既にいる方の捕虜(以下「先人」)の視線から冷酷な印象を新しい方の捕虜(以下「新人」)は受けた。
しかし悲惨な境遇を共有する所為か、次に看守が現れる頃には、先の印象を新人は忘れて先人と打ち解けていた。
看守「
我が国の名に恥じぬよう、将軍様は民主主義を大切になさる。
捕虜の処遇は捕虜自身10000名による多数決で決めよとの御命令だ。

新人「
なら、俺たちをここから出せ!

看守「
3020号室新入りの公約は『俺たちをここからだせ!』と。
了解した。

新人「!?」
看守「
立候補に当たって一財産要求することが合法化されている、お前たちの似非民主主義国家と一緒にするなよ。
被選挙権については、MAGIシステムだとか初○ミクだとか他県の人間だとかすら真面目に考える者もいるんだ。
今日の私の任務はお前たちの要求の立候補受付だ。
そっちのお前は何かあるか?

先人「
俺は立候補しないでおくよ。
…疑問に思っているようだな、新入り。
明日になれば、俺のやらなかった意味がわかるさ。

予告していた通りに次の日、収容所内の看守総出で投票手続きが始まった。
看守「
候補は以下の4013件。
0号室新入り『新たな捕虜5000名は「将軍様への忠誠の儀」を行う。古い捕虜は捕虜のまま。』
0号室古い方『古い捕虜5000名は「将軍様への忠誠の儀」を行う。新しい捕虜は捕虜のまま。』

新人「
将軍様への忠誠の儀』?

先人「
命令に命懸けで従う証として、豚に拳銃を自分の額へ押し付けてもら…、グヘッ!

看守「将軍様の悪口を言うなー!」
折檻される先人。
看守「
おっと、貴様にも選挙権を認めねばならんから、死んでは困る。
将軍様への忠誠の儀』については私から説明してやろう。
敵国への諜報活動など、功績を挙げた者なら、以後の栄達を約束される。
神聖なる民主主義を似非で愚弄する穢らわしい貴様等の脳髄でも、将軍様の目の前で散華すれば娯楽にはなる。

新人「
先の選択肢二つは、捕虜に紛れ込んだスパイの仕業か。
でも、他の選択肢が選ばれれば問題ないよな。
少なくとも俺が昨日提案した選択肢『ここからだせ!』があるはずだ。
…待てよ?
4013件だと?

看守「
さて、残り4011件を説明せねば。
1号室新入り提案『よろこびグミをよこせ』
2号室新入り提案『俺たちをここからだせ』
3号室古株提案『俺たちを釈放しろ』

ゼィ、ゼィ。
4999号室古株提案『俺たちを国に帰せ』
どれに投票するか、この投票用紙に書け。

新人「
やっぱり、釈放要求の立候補が沢山ある。
俺たち捕虜10000の票でも2000の候補に分散したら、スパイが5人以下でないと負けるかもしれない。
…神様・仏様・看守様、捕虜の間で話し合う時間を頂けますか?

看守「
我々も忙しいんだ。
明後日までには、更なる捕虜のために空室を用意せねばならん。

先人「
迷うな新入り。
俺達のできる範囲で票を集中させるんだ。
俺はお前の、3020号室新入りの候補に投票するぞ!

こうして投票手続きは終わり、次の日になった。
この日も看守全員で任務が行われた。
看守「
多数決の結果を通告する。
0号室新入り、2012票。
0号室古い方、2290票。

3020号室新入り、0票。


3020号室の前を、看守たちに引きずられながら、喚く捕虜が一人通り過ぎる。
通り過ぎる捕虜「
この裏切り者!
俺の票を儚い候補に捨てさせやがって。
お前が『今日処刑されるのは古い方』に投票したように、俺も『今日処刑されるのは新入り』に投票すれば、俺は今日死なずに済んだんだ。

いつの間にか、3020号室の前にいる看守の人数が増えている。
看守「

4999号室古い方、1票。
ゼィゼィ。
将軍様、もう少しお待ち下さい。
生贄を今、お送りします。
おい、古い方、出ろ。

先人は何も言わず、両脇に看守を従えて何処かに行った。
それを見送る新人の視線には、冷酷なものが宿っていた。

Try Implementing threaded code interpreters by C language without tail-merging

When we want to write a fast interpreter,
Threaded code
http://en.wikipedia.org/wiki/Threaded_code
is a important technic.
As Mike Pall(auther of
Luajit
http://luajit.org
) said, implementing threaded code is difficult when we use a C language.
http://article.gmane.org/gmane.comp.lang.lua.general/75426
"
* Tail-merging and CSE will happily join all these common tails of
  each instruction and generate a single dispatch point. Ick. You
  can try to disable some optimizations for this piece of code,
  but this will negatively impact all paths.
"

But I might reach a way.

Tail-merging optimization is opposite to inlining optimization.
while inlining replicates common codes, tail-merging gathers common codes.
The border line is determined by the code size.
So, if the common code is small, compilers tend to select inlining than tail-merging.
Especially, if each code block has their own instruction close to tail, only the last "goto label" is left as common code.
Now, I can write such a code for GNU C compiler(gcc).

op_foo:
  do_foo(pc, inst);
  pc++;
  inst = memory[pc];
  asm("#foo");
  goto *next_op_label;
op_bar:
  pc = do_bar(pc, inst);
  inst = memory[pc];
  asm("#bar");
  goto *next_op_label;

Contents in each "asm()" don't have meaning than comments for assembler.
But comments are for human beings completely.
So computers can never understand them and can't determine whether can merge them or not.

Unfortunately, results are vary.
Looking at generated assembler code, there are some register move instructions inserted between "asm("#bar")" and "goto *next_op_label".

.L2: /* op_foo */
... /* operation for op_foo */
#APP
# 142 "test.c" 1
        #foo
# 0 "" 2
#NO_APP
        movl    %eax, %ecx
        .p2align 4,,10
        .p2align 3
.L25: /* merged tail */
        movl    %r9d, %edx
        movl    %r10d, %r9d
        jmp     *%r8
...
.L4: /* op_bar */
... /* operation for op_bar */
#APP
# 95 "test.c" 1
        #bar
# 0 "" 2
#NO_APP
        movl    %eax, %ecx
        jmp     .L25 /* goto merged tail! */

These instructions bloat the tail code.
I doubt this is the reason why inlining don't occur.
To remove these moves, I added register usage extention.

resister int pc asm("ebx"), inst asm("ecx");
  ...
op_bar:
  pc = do_bar(pc, inst);
  inst = memory[pc];
  asm("#bar");
  goto *next_op_label;

Register usage extension needs machine specific register names, so hurts portability.
Or, anyway I have to check whether tail-merging occur or not, which require me some machine specific knowledges.
But gcc takes over rest knowledges from me - select and schedule machine instructions.
For linear code such as each block of threaded code, compilers still make almost best codes.

With explicit register allocation for some local variables and "asm(#unique_comment)" followed immediately by computed gotos, C compliler can make a good threaded code.
Maybe Make still beat them, but I can't with assembler.

<see also>
nominolo's Blog: Implementing Fast Interpreters: Discussion & Further Reading
http://nominolo.blogspot.jp/2012/07/implementing-fast-interpreters_31.html