2020/08,江端さんの忘備録

3年前にリリースした国際学会のカンファペーパーに関して、論文化のオファを受けました。

I received an offer to make a paper on the international conference paper I released three years ago.

調べてみたところ、身元もしっかりしていて、SPAMでも広告詐欺でもないようです。

I looked it up and it appears to be a solid identity and not SPAM or an ad scam.

しかし、一つ疑問なのが、オファされた論文のフィールドです。

One question, however, is the field of the offered paper.

―― 「哲学的取引 (Philosophical Transaction)」

"Philosophical Transaction"

-----

哲学とは、「人生・世界、事物の根源のあり方・原理を、理性によって求めようとする学問、あるいは経験からつくりあげた人生観」であるので、これも「技術」の一態様であるとは思っています。

Philosophy is, "the study of life, the world, and the principles of the origin of things, or a view of life created from experience", so I believe this is another form of "technology".

ですので、私は、哲学に高尚なイメージは持っていませんが、この件については、凄い違和感を感じています。

So I don't have a lofty image of philosophy, but I do feel a terrific sense of discomfort about this offer.

まあ、最近の私の研究「人間の不満(怒り)を数値化して、システム運用に取り込む」という独自アプローチは、「哲学の分野」と言えなくはないのかもしれません。

Well, my recent work on my original approach to "quantifying human dissatisfaction (anger) and incorporating it into system operations" may be a "field of philosophy".

-----

ともあれ、意外なところからの、意外なオファでした。

Anyway, it was an unexpected offer, from an unexpected office.

『なかなか面白いイベントが飛んできたなぁ』と、ちょっと笑いました。

"That's quite an interesting event to fly in"

I was laughing a bit.

2020/08,江端さんの忘備録

そもそも私、会社でも、ひとり実験室に閉じ込もって、特許明細書、報告書、コーディング、システム構築を行っていました。

To begin with, I was locked in a lab by myself, even at the company office, writing patent specifications and reports, coding, building a system.

コロナ禍が始まる前から、私は「会社の中で在宅勤務している」ようなものでした。

Even before the Corona disaster started, I was sort of "working at home in the office".

それでも、会議とか出張などが、私を、実験室の外側へと引き剥していました。

Still, meetings and business trips were pulling me out of the lab.

-----

最近の、在宅勤務のおかげで、労働時間が増加しています。

These days, thanks to telecommuting, working hours are increasing.

とは言え、私の場合、業務と趣味が、"0猫"と"1猫"の量子状態ですので、実質な労働時間を、正確に「観測」することができませんが。

However, in my case, my work and hobbies are in the quantum state of "0 cat" and "1 cat", so I can't "observe" the real working hours with any accuracy.

とにかく、「切れ目」が見つからないので、ぶっつづけで、システム構築をやり続けることができてしまいます。

Anyway, since I can't find a "break point" during working time, I can just keep on building a system.

報告書や特許明細書やカンファレンスペーパーなども、予定通り、遅滞なく提出していました。

Reports, patent specifications and conference papers were also submitted on time and without delay.

これも、私の徹底的な「アンチ・チームプレーの精神」に基づく成果だなぁ、と、しみじみと感じ入っています。

I feel deeply that this is another result of my thoroughgoing "anti-team-playing" spirit,

-----

しかしながら、体調の方も、着実に崩れてきています。

今の私は、

However, my physical condition is falling down certainly.

「ぼっち属性」+「強制的な在宅勤務」+「パソコン3台とディスプレイ5台が同時に起動しているIT環境」

"solitary attributes" + "forced telecommuting" + "IT environment with three computers and five displays running at the same time

is equal to

= 「慢性的な疲労状態」

"chronic fatigue".

という等式の中にいます。

is established now.

2020/08,江端さんの忘備録,江端さんの技術メモ

Go言語は、スレッド化による並列処理が得意という話を聞いていましたので、先日の

の"client.go"を改造して、「とりあえず、動かして、止めることができればいい」という割り切りだけでコードをごそごそを変えてみました。(server.goは変更なしで大丈夫)。 ファイルは、~/go_echo/に置くこととします。

// go run client_multi_agent.go

// Copyright 2015 The Gorilla WebSocket Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// +build ignore

package main

import (
	"flag"
	"log"
	"net/url"
	"os"
	"os/signal"
	"time"

	"github.com/gorilla/websocket"
)

var addr = flag.String("addr", "localhost:8080", "http service address")


var interrupt = make(chan os.Signal, 1) // Go のシグナル通知は、チャネルに os.Signal 値を送信することで行います。
			  	 		   			  	 // これらの通知を受信するためのチャネル (と、プログラムが終了できること
										 // を通知するためのチャネル) を作ります。
var	u = url.URL{Scheme: "ws", Host: *addr, Path: "/echo"} // JSON型の配列記述方法?

func main() {
	flag.Parse()     //引数の読み込み argv, argcと同じ
	log.SetFlags(0)  // ログの出力で時間の情報、この時点で0秒にセット

//	interrupt := make(chan os.Signal, 1) // Go のシグナル通知は、チャネルに os.Signal 値を送信することで行います。
//			  	 		   			  	 // これらの通知を受信するためのチャネル (と、プログラムが終了できること
//										 // を通知するためのチャネル) を作ります。

	signal.Notify(interrupt, os.Interrupt) // 指定されたシグナル通知を受信するために、 与えられたチャネルを登録
							 			   // します。

	log.Printf("connecting to %s", u.String()) // ここは単にプリントしているだけ(だろう)

	///// ここまでは共通 /////

	go sub_main()
	time.Sleep(time.Millisecond * 333)  // 333ミリ秒		

	go sub_main()
	time.Sleep(time.Millisecond * 333)  // 333ミリ秒		

	go sub_main()
	time.Sleep(time.Millisecond * 333)  // 333ミリ秒		

	go sub_main()
	time.Sleep(time.Millisecond * 333)  // 333ミリ秒		

	go sub_main()
	time.Sleep(time.Millisecond * 333)  // 333ミリ秒		

	go sub_main()
	time.Sleep(time.Millisecond * 333)  // 333ミリ秒		

	go sub_main()
	time.Sleep(time.Millisecond * 333)  // 333ミリ秒		

	go sub_main()
	time.Sleep(time.Millisecond * 333)  // 333ミリ秒		

	go sub_main()
	time.Sleep(time.Millisecond * 333)  // 333ミリ秒		

	go sub_main()
	time.Sleep(time.Millisecond * 333)  // 333ミリ秒		

	go sub_main()
	time.Sleep(time.Millisecond * 333)  // 333ミリ秒		
	
	ticker := time.NewTicker(time.Second)  // 1秒おきに通知 (sleepと同じ)		

	for {
		select{
    	   case <-ticker.C: // tickerのチャネルはデフォルトで付いているらしい
		   case <-interrupt:  // こっちは手動割り込みだな検知だな
		        return;
		}
     }
}

func sub_main(){
	c, _, err := websocket.DefaultDialer.Dial(u.String(), nil) // これがコネクションの実施
	if err != nil {
		log.Fatal("dial:", err)
	}
	defer c.Close() // deferは、どこに書かれていようとも、関数から抜ける前に実行される

	done := make(chan struct{}) // 配列といってもいいし、並行処理用のキューといってもいい
                                // 値が入っていないとデッドロックする

	go func() {  // 受信用スレッドを立ち上げる(スレッドの中でスレッド立ち上げているが、大丈夫だろうか)
		defer close(done)
		for {
			_, message, err := c.ReadMessage() // このメソッドの返り値は3つで、最初の返り値は不要
			if err != nil {
				log.Println("read:", err)
				return
			}
			log.Printf("recv: %s", message)  // 受信したら、そのメッセージを表示する
		}
	}()

	ticker := time.NewTicker(time.Second)  // 1秒おきに通知 (sleepと同じ)
	defer ticker.Stop() // このループを抜ける時に終了する

	for {            // 無限ループの宣言かな(C/C++ で言うとろの、whileとかdoとか)
		select {
		case <-done: // doneの中に何かが入っていたら、このルーチンはリターンして終了となる
			 		 // (でも何も入っていないところを見ると、func()ルーチンの消滅で、こっちが起動するんだろう)
			return
		case t := <-ticker.C: // tickerのチャネルはデフォルトで付いているらしい
			   	  			  // 時間が入ってくるまでロックされる	 
			   	  			  // この場合1秒単位でチャネルに時間が放り込まれるのでそこで動き出す。

			err := c.WriteMessage(websocket.TextMessage, []byte(t.String())) // サーバに(時刻の)メッセージを送付する
			if err != nil {
				log.Println("write:", err)
				return
			}
		case <-interrupt:  // こっちは手動割り込みだな検知だな
			log.Println("interrupt")

			// Cleanly close the connection by sending a close message and then
			// waiting (with timeout) for the server to close the connection.

			// close メッセージを送信してから、サーバーが接続を閉じるのを
			// (タイムアウトして)待つことで、接続をきれいに閉じます

			err := c.WriteMessage(websocket.CloseMessage, websocket.FormatCloseMessage(websocket.CloseNormalClosure, ""))
			if err != nil {
				log.Println("write close:", err)
				return
			}
			select {
				case <-done: // これも上記の"done"の説明と同じでいいかな
				case <-time.After(time.Second): // このメソッド凄い time.Secondより未来ならひっかかる
			}
			return
		}
	}
}

まあ、main()と sub_main()で同じ割り込みを使っているので、タイミングによっては、main()を止めることができず、sub_main()を個別に止めていくことになるが、とりあえず動いたので、これで良しとする。

go sub_main() と書くだけで、いきなりスレッド化させることができる手軽さは、かなり驚いた。

こんなんやこんなんで、いろいろ苦労してきたんだけど、これからも、マルチエージェントシミュレーションを自力で書いていくことを考えると、正式にGo言語に移るべきかな、と思っています。

go webassembly experiments をローカルPCで動かす とかも、いろいろやっていきたいことですし。

2020/08,江端さんの忘備録

「命短し、恋せよ乙女」というフレーズには続きがあります。

There is a continuation of the phrase "Life is short, fall in love, maiden"

♪いのち短し、恋せよ乙女、あかき唇、あせぬ間に

"Life is short, fall in love, maiden, before the red lips fade away"

♪いのち短し、恋せよ乙女、黒髪の色、あせぬ間に

"Life is short, fall in love, maiden, before the black hairs fade away"

このフレーズを見てみると、なかなか辛辣なフレーズのようです。

When I look at the phrase, it seems to be quite a harsh phrase.

今なら、セクハラの類(たぐい)に入るかもしれません。

Now, it might be a kind of sexual harassment.

-----

しかし、私の数値解析結果によれば、このフレーズは、

However, according to my numerical analysis, the phrase should be changed with

「命短し、恋せよ男」

"Life is short, fall in love, men"

という方が相応しいように思えます。

定量的には、"乙女"より、"男"の方が、2倍ほど事態が深刻です。

Quantitatively, the situation is twice as serious for a "man" than for a "maiden".

-----

という訳で、ちょっとフレーズを改造してみました。

So I modified the phrase a bit.

♪命短し、恋せよ男、臭き口臭、常ならぬ間に

"Life is short, fall in love, men, before stinky breath becomes a regular"

♪命短し、恋せよ男、少き頭髪、抜けぬ間に

"Life is short, fall in love, men, before a few heads of hair fall out"

-----

男の経年劣化は、女性よりダイナミックに発現します(本当)。

Men's deterioration over time occurs more dynamically than women's (true).

そして、その変化を補う手段は、女性と比べて絶望的に少ないです(事実)。

And the means to compensate for the change are hopelessly less than for women (in fact).

2020/08,江端さんの忘備録

先週、久々に会社に出社しました。

Last week, I came into work for the first time in a long time.

私は、半日、1人実験室に閉じ籠って、資料作成をしていました。

I spent half a day alone in the laboratory, working on materials.

オフィスを少し覗いてみたのですが、照明は全部落ちていて、オフィスの出入口は施錠されていました。

I took a quick peek at the office, but all the lights were off and the doorways to the office were locked.

―― もしかしたら、ずっとこのまま

"Maybe, this situation could stay that way forever"

と感じさせる風景でした。

It was a landscape that made me feel it.

それはさておき。

Aside from that.

-----

久々に、行き付けの中華料理屋で、外食したのですが、「麻婆茄子定食」の美味しさに涙が出そうになりました。

It's been a long time since we ate out at our favorite Chinese restaurant. The deliciousness of the "eggplant set meal" almost brought tears to my eyes.

―― 茄子って、どうしてこんなに美味しいんだろう

"Why is eggplant so delicious?"

と、創造主が「茄子」という食べ物を生み出してくれたことを、感謝しながら食べていました。

We ate with gratitude that the Creator had created the "eggplant".

-----

小学生のころ、自宅に、キリスト教の布教活動をしているおばさんが、

When I was in elementary school, an old lady who was a Christian missionary came to my house.

『リンゴが丸く作られているのは何故でしょうか? それは、神様が食べやすい形状に作ってくれたからです』

"Why are apples made round? That's because God made it into a shape that is easy to eat"

という論法で、神の存在を論じるのを、私は、以下のように論破したことがあります。

She argued for the existence of God by arguing the above phrase, however I argued against her with the followings.

■リンゴを、直方体で作ってくれた方が、パッケージの観点から有効であったはずだし、物流コストも削減できたばずですよね

- It would have been more effective from a packaging point of view if the apples were made in a rectangular shape, which would have reduced logistics costs.

■リンゴが、球形になっているのは、エントロピーの観点からいって当然だし、種の戦略としてコスト最小化にも資しているからですよ

- The reason why the apples are spherical in shape is not only because of their entropy, but also because it helps to minimize costs as a seed strategy

■そもそも果物は、昆虫たちに「果実の種(タネ)」を拡散させるために、高い糖度のものが生き残ってきただけであって、別段、人間の為に作られたものではありません ―― むしろ、人間は、果実の拡散戦略を邪魔していますねえ

In the first place, fruits with high sugar content have only survived to spread their "seeds" to insects, and they have not evolved specifically for humans. Humans are interfering with our fruit dispersal strategy.

■リンゴが丸く作ったのが神様だとしたら、神様って奴は、本当に『使えない』ですね

- If it was God who made the apple round, then God is really 'useless' for a guy.

と言って、ニッコリ笑いました。

with smiling.

で、まあ、私の家には、宗教関係者が全く来なくなってしまったのですが。

And, well, the religious people had stopped coming at all.

-----

まあ、リンゴはともあれ、茄子を作ってくれたのなら ――

Well, aside from the apples, if making the eggplant --

神様は『使える奴』

God is a "useful guy"

と認識を改めていいかな、とか考えていました。

I was wondering if it would be good to change my perception of the situation.

2020/08,江端さんの忘備録

私は、「ディズニーランドに興味がない」と思われているようですが、正しくありません。

You seem to think I'm "not interested in Disneyland" but that's not correct.

ディズニーランドは、待ち時間戦略、最短経路問題、 人流制御問題、とかも含めて、最新鋭の数学が投入されていることでも有名です。

Disneyland is also famous for its state-of-the-art mathematics, including wait time strategy, shortest path problem, human flow control problem, and so on.

しかも、最高レベルの安全工学技術が投入されているのも知っています。

Moreover, I know that the highest level of safety engineering technology has been put in place.

私から見れば、ディズニーランドは、最高レベルの数学とIT技術と、そして、制御工学、機械工学、人間工学、経営工学からなる、巨大トータルシステムです。

From my point of view, Disneyland is a huge total system, consisting of the highest level of mathematics and information technology, and control engineering, mechanical engineering, ergonomics and management engineering.

そして、そのシステムが、私達に仕向ける「行動変容プログラム」を「推測」し「欺く」というトライアルは ―― その勝敗はどうあれ ―― 結構な快感だったりします。

And it's quite pleasant to try to "guess" and "fool" the system's behavioral change program that caters to us, -- whether it's a win or a loss.

だから、ディズニーランドは楽しい ―― 見ているだけでも。

So, Disneyland is fun -- even if it's just to watch.

-----

ただ、疲れるから、わざわざ出かけるのは面倒です。

However, it is tiring to go out because it makes me tired.

テーマパークの"システム"を知る、という観点では、京都アニメーションの「天城ブリリアントパーク」は結構面白いです。

In terms of getting to know the "system" of theme parks, Kyoto Animation's "Amagi Brilliant Park" is quite interesting.

部屋に閉じ込もっていられますし。

I can lock myself in my room.

2020/08,江端さんの技術メモ

いらんことしなければいいのですが、function.phpとかをいじって、何度かWPを壊しかけました。

という訳で、バックアップツールの"All-in-One WP Migration"を入れました。

後は、"ファイル"を選んで、PCに保存できます。

以上

2020/08,江端さんの忘備録

最近のウィークエンドは、私は、ウィークデーより疲れ果てています。

I'm more exhausted at not weekdays but weekend.

ええ、件(くだん)の「量子コンピュータ」の調査です。

Yes, it's for research on this quantum computer.

-----

私、「訳の分からん現象は、実際に計算してみろ」を信条としておりまして、実際にこれまで、

I'm a firm believer in "If I can't understand the phenomenon, try to calculate it".

For example,

■モンティ・ホール問題(ベイズ推定)

- Monty Hall problem (Bayesian estimation)

■米国大統領選挙(3回連続シリーズ)

- U.S. Presidential Election (3-part series)

などの仕組みをコンピュータに突っ込んで、その計算結果から、その理屈を問い詰める、というプロセスを公開してきました。

I have published a working process that involves plugging these mechanisms into a computer and then questioning the logic of the calculations.

-----

昨日も、「解説を完全再現した」と確信している検証用のプログラムを作成したのですが、全く期待した値が出てこなくて、頭を抱えています。

I created a verification program yesterday that I'm sure "fully replicated" the commentary, but I'm still scratching my head because I'm not getting the values I expected at all.

簡単なプログラムであり、その計算結果も私にも妥当と思えました。

It's a simple program and the results of its calculations seemed reasonable to me as well.

(大数の法則では「当然にこうなるだろう」という結果)

(The law of large numbers says that this is the natural result.)

ですので、多分、解説の中に、非常に重要な説明が欠けている(か、私が絶望的に誤解している)のだと思います。

So maybe I'm missing a very important explanation in the commentary(or I'm hopelessly misunderstanding).

誰か、

Someone who

(1)「BELLの不等式(の破れ)」に詳しくて

(1) is familiar with "BELL's Inequality (Breaking of the BELL)

(2)私のコードを読める人(今回はGolangで書いてみました)

(2) can read my code (in Golang this time).

は、何卒、私に暖かい支援の手を差し延べて下さい。

will give me the help hopefully

『江端さん。日常生活で観測可能な事象のシミュレーションでは、局在性/非局在性を立証することはできませんよ』と決めつけて頂いても結構です。

Even if you say "Ebata-san. Localization cannot be proven through simulations of everyday observable events", it is going to help me.

-----

ともあれ、この「量子シリーズ」そろそろ閉じたいと思います。

Anyway, I'd like to close this "Quantum Series" soon.

これ以上は、私の知力と体力、特に「体力」が持ちそうにありません。

It is unlikely that my intellect and stamina will be sustained any longer. Particularly "stamina" is.