江端さんの忘備録(2020/05/05分から)

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

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

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

// 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,江端さんの忘備録

(昨日の続きです)

(Continuation from yesterday)

ところが、直接話しかけなくても、COCOAアプリのインストールを調べる方法はあります。

However there is a way to know whether a person has installed COCOA app, without talking. It is to make

―― 「自分の目の前にいる人が『COCOAアプリをインストールしているか』を確認するアプリ」

"An app that checks to see if the person in front of you has the COCOA app installed"

を作れば良いのです(このアプリを便宜的に「COCOA'」と称呼します)。

(I will call this app COCOA' for convenience)

ポイントは、COCOAアプリが、オープンソースで公開されている点にあります。

The point is that the COCOA app is open source and publicly available.

これは、つまり、「時間」と「能力」と「スキル」と「気力」のある人間であれば、COCOAの派生アプリケーションである、COCOA'を自由に開発できる可能性がある、ということです。

This means that anyone with the time, ability, skills and energy can develop COCOA's derivative application, COCOA'.

ただ、正確に言うと、上記の「自分の目の前にいる人」のスマホを検知することはできません。

However, to be precise, this app cannot detect the contents of the phone of the "person in front of you" mentioned above.

COCOA'は、

The COCOA' can only detect

■あなたのスマホから、約半径10メートルの範囲内で、

- Within a radius of about 10 meters from your phone,

■「COCOAアプリがインストールされているスマホ」の「台数」

- Number of "phones with COCOA installed

を調べることができるだけです。

だから、「自分の目の前にいる人」がインストールしているか否かをを特定する為には、

So, in order to identify whether or not the "person in front of you" has COCOA installed. the condition is given:

■約半径10メートル以内には、その人以外には、誰もいない

"There is no one else within a radius of approximately 10 meters except that person.

ことが必要となります。

-----

COCOA'の動作原理は簡単です。

The principle of operation of 'COCOA' is simple.

COCOA'は、COCOAのBluetoothの電波を発射しているスマホを探すだけです。

The COCOA' tries to find a phone that is transmitting COCOA's Bluetooth signal.

それだけしかできません。

That's all the app can do.

しかも、Bluetoothの電波の中の情報は、個人情報(スマホ固体番号等)と紐付いていないので、個人の特定はできません。

What's more, the information in the Bluetooth radio waves is not tied to personal information (such as the phone's solid number), so it cannot be used to identify an individual.

あなたは、街の中で、FreeのWiFiアクセスポイントを探したことがあると思います。

I'm sure you've looked for free WiFi access points around town.

COCOA'も、これと同じことをするだけです。

COCOA' just does the same thing.

-----

もし私(か、あるいは誰か)が、このCOCOA'を開発したら、ちょっと面白いことができます。

If I (or someone else) develops this COCOA', it could be a bit interesting.

『COCOAをインストールしている人 = コロナリテラシーが高い』という仮説を"真"とした上で、以下のようなこと調査や判断ができるようになります。

If the hypothesis that "people who have COCOA installed = high corona literacy" is true, then the following investigations and judgments can be made.

例えば、

For example,

■COCOA'を、居酒屋やラーメン屋の入口で起動する

- Launching 'COCOA' at the entrance of an izakaya or noodle shop

これによって、その店の中で、何人の人間がCOCOAを起動しているか、一目瞭然です。

This allows you to see at a glance how many people in that store are running COCOA.

店舗に入る前に、ざっくりとした、その店舗内の「コロナリテラシー」の高いお客の人数を、店に入る前に調べることができます。

Before entering a store, you can find out, roughly, the number of "high corona literate" customers in that store before you walk in.

(私なら、10人のお客が入っているラーメン屋の入口で、COCOAが起動しているスマホが3台だけなら、そのラーメン屋には、入りません)

(I wouldn't go into a ramen shop with 10 customers if there were only three phones with COCOA running at the entrance of a ramen shop)

■COCOA'を、職場や、飲み会の会場で起動する

- Launching 'COCOA' at your workplace or at a drinking venue.

自分の属する組織やグループの「コロナリテラシー」を、集団として観測することができます。

You can observe the "corona literacy" of your organization or group as a group.

(私としては、『それを言い訳に、飲み会の出席を拒否する』という切り札としても使えると期待しています)

(For me, I'm hoping it can be used as a trump card to "use that as an excuse to refuse to attend a drinking session".)

これによって、今後、

In the future,

■『COCOAをインストールしたスマホをお持ちでない方の入店はお断りします』という張り紙

A sign that says, "we do not allow people who do not have a smartphone with COCOA installed to enter the store".

が、飲食店のみならず、全ての施設(役所、アミューズメント、学校)の入口の前に張られるようになるかもしれません。

The paper could be put up in front of the entrances of all establishments (government offices, amusements, schools), not just restaurants.

-----

ざっとソースコードを見てみたのですが、この新しいアプリ(COCOA')の開発は、私には、少々敷居が高いように思われます。

I took a quick look at the source code and it seems to me that developing this new app (COCOA') is a bit of a challenge.

スキルも時間も足りませんが、特に時間の要素が大きそうです。

I don't have enough skills or time, but the time factor seems to be particularly significant.

従って、当面の私の仕事としては、

Therefore, for the time being, my work is to to write a column that explains easily

『COCOAによって、個人情報を抜き取られる心配はしなくていいよ』

"You don't have to worry about COCOA extracting your personal information"

を、分かりやすく解説するコラムを執筆する ―― こっちなら役に立てるかもしれません。

I might be able to help you with this work.

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

コロナ感染症対策として、マスクが有効か否かついては、こちらで記載しております。

Whether or not masks are effective in fighting corona infection is described here.

また、こちらで記載しているように、感染しているか否かを、"0"と"1"のように考えることができないことも明らかです。

It's also clear that you can't think of being infected or not as a "0" and a "1", as described here.

しかし、その効果がどうであれ、「マスク」が一種のマナーとなっているのは事実です。

But whatever the effect, it is true that "masks" have become a kind of etiquette.

そして、「マスク」は、いわゆる「コロナリテラシー」の初歩の初歩と言えます。

And the "mask" is the first step of steps in so-called "corona literacy".

私としては、このマスクに加えて「COCOA(新型コロナ接触確認アプリ)」を、このマナーに入れることを提言したいと思います。

For me, I would like to suggest that in addition to this mask, the COCOA (new corona contact verification app) be included in this etiquette.

COCOAについては、すでに私、色々書いていますので、参考にして下さい。

I've already written a lot about COCOA, so please refer to it.

■COCOAのインストールは個人の自由ですが、私はインストールをお勧めしたいと思います。

Installing COCOA is a personal choice, but I would recommend that you install it.

■「セキュリティが万全」というよりは、「ハックするコストが全然見合わない」という感じです。

It's not so much "full security" as it is "not at all worth the cost to hack.

私は、「COCOAのインストール」を実施したか/していないかで、その人の「コロナリテラシー」を判断できると思っています。

I believe you can determine a person's "corona literacy" by whether or not they have/don't have implement a "COCOA installation".

-----

やり方は色々あると思いますが、もっとも簡単な方法は、

There are many ways to do this, but the easiest way is to ask a question,

『COCOAインストールしました?』

"Have you installed COCOA?

という質問をすることです。

■「もちろんです」という人は、リテラシー"1"で良いと思います。

If the person says "of course", I think his/her literacy level is "1".

■「ああ、COCOAですね。でも個人情報について不安が・・・」という人は、「リテラシー"0.9"」くらいと判断して良いかと思います。

"Oh, COCOA. But I'm worried about personal information...", I think it's safe to say that he/she have a literacy level of "0.9".

比して、

In comparison to,

■「COCOA? 何ですか、それ?」という人は、「リテラシー"0"」と断定して良いでしょう。

If the person says "COCOA? What's that?", I think his/her literacy level is "0".

いわゆる「自粛警察」をやっている人で、COCOAを知らない人がいたら、あなたは、その「自称警察官」、殴っていいです。

If you're a so-called "self-restraint police" and you don't know COCOA, I will hit you absolutely.

(私は、これに加えて、大声で、"ふざけるな!"と罵ります)。

In addition, I will shout "Do not be silly!" loudly,

(続く)

(To be continued)

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

(昨日の続きです)

(Continuation from yesterday)

私は、コラムを書くのが好きで、イラストを描くのが好きで、コーディングをするのが好きで、そして ――

I like to write columns, I like to illustrate, I like to code, and

その全てが「下手くそ」です。

I am not good at all of them.

だから、これらを他人に任せるのが、もっとも効率的であり、いわゆる『生産性が上がる』のは間違いないでしょう。

So, I think it's most efficient to leave these things to others, and there is no doubt that it will increase so-called "productivity".

だが、それは「楽しいのか?」

But is it "fun"?

自分の作り出したモノ、自分でやった仕事は、他人のモノや仕事より「愛おしくはないか?」

Do you love what you created and worked, more than other people's creations and works ?

と考えると、私には分からなくなるのです。

I don't know that.

それ故に、私は「私を幸せにするアプローチ」として、

Therefore my "approach to making me happy

(1)ひとりでやる

(1) Do it alone.

(2)ずっとやる

(2) Do it for a long time.

(3)会議に出ない(ここはGoogleと同じで、これまでも、これからも)

(3) Don't attend meetings.(It's the same as Google here, from now and to now)

を続けていくことになると思います。

I think I'll continue to do them.

-----

つまるところ、これは人間のスケール感の問題かもしれないなぁ、とも思います。

As a result, I think that this is about a matter of human scale.

私は「技術」が好きで、特に「小技」が好きですが、その技の集大成である「サービス」や「ビジネス」が好きな人にとっては、「Google式仕事術」は正しいアプローチだと思います。

While I like "technology" and especially the "little tricks, for people who like "service" and "business", the "Google Method of Working" is the right approach.

私は、「他の人」を喜ばせることに幸せを感じられます。

I feel happy to please other people.

しかし、私は、「"多く"の他の人」を喜ばせることが、"多くの幸せ"になるとは、感じることはありません。

However I can't feel many happiness to please many other people.

つまるところ、

In conclusion,

『私は、人間としての器が小さい』

"I don't have what it takes"

この結論で、私は異義ありません。

I have no objection to this conclusion.

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

「Google式仕事術」では、生産性を上げる為に、以下を提唱しているそうです(読んでいません)。

The "Google Method of Working" advocates the following to increase productivity (I haven't read it)

(1)ひとりでやらない

(1) Don't do it alone.

(2)ずっとやらない

(2) Don't do it for a long time.

(3)会議に出ない

(3) Don't attend meetings.

なるほど「生産性を上げる為」には、これが正解かもしれません。

Okay, maybe this is the right thing to do "to increase productivity".

しかし、「生産性なんぞ知ったことか」と置き換えるだけで、このメソッドはボロボロと崩れていきます。

But simply replacing it with "I don't care of productivity", the method falls apart in tatters.

-----

私、生産性については、かなり徹底的に勉強しました。

Me, I've studied productivity pretty thoroughly.

その結果、「生産性について、合意が取れている定義が存在しない」ということを発見しました。

As a result, I found that "there is no agreed-upon definition of productivity.

そして、「生産性」と「幸福」の間には、強い相関が存在しないことも知りました。

I also learned that there is no strong correlation between "productivity" and "happiness".

-----

「生産性を上げる = 幸福」と「幸福 = 善」から、「生産性を上げる = 善」という三段論法は成立します。

The triadic argument, "Increase productivity = happiness" and "Happiness = goodness," is established from "Increase productivity = goodness.

しかし、

However, it can also be interpreted as,

―― その"生産性"を上げるのは、"私以外の誰か"で良くね?

"Why can't someone other than me make it more productive?"

という解釈が可能です。

さらに、「Google式仕事術」が、"この私"に「楽しさや喜びを与えているのか?」 という点について、私には分からないのです。

Furthermore, I can't know that "Google Method of Working" gives me joy and pleasure of mine.

■自分でコラムを書かなくても、面白いコラムを書いている人がいるから、そのコラムを読めばいい。

- Even if I don't write your own column, someone else writes an interesting column, so I can read it.

■綺麗なイラストを書ける人は、世の中にゴマンといるから、その人に外注すればいい

- There are many people who can draw beautiful illustrations in the world, so I can outsource to them.

■自分でコーディングしなくても、コーディングのプロに頼めばいい

- I can ask a professional to do the coding for me.

まったく、その通りだと思います。

I think these are absolutely right.

(続く)

(To be continued)

江端さんの忘備録

コンテナに、"ebata_db_1" とか、 "ebata_db_data_1"とかの名前ができているんだけど、一体、誰が命名しているのか全然分からなかったけど、たまたま見つけたので記載しておく。

ディレクトリ名 "casim2020"のところに、以下のdocker-compose.yml を作り、

version: '3.7'

services:
  db:
    image:  postgis-pgrouting:latest
    environment:
      POSTGRES_HOST_AUTH_METHOD: 'trust'
      POSTGRES_PASSWORD: 'postgres'
    expose:
      - 5432
    ports:
    - 15432:5432
    volumes:
      - db_data
      - ./shared:/shared
  db_data:
    image: busybox
    volumes:
      - /data/db

ebata@DESKTOP-P6KREM0 MINGW64 ~/casim2020
$ docker-compose up -d
Creating network "casim2020_default" with the default driver
Creating casim2020_db_1 … done
Creating casim2020_db_data_1 … done

というように、ディレクトリの名前が自動的に付与されるらしい。

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

自動車であれ、バイクであれ、事故に遭遇する確率が、運転時間や運転距離に比例して大きくなることは、当然のことです。

It's natural that the probability of encountering an accident, whether in a car or on a motorcycle, increases in proportion to the amount of time you drive and the distance you drive.

もちろん、運転時間や運転距離に比例して、運転技術が向上することもありますが、その値には上限があります。

Of course, your driving skills may improve in proportion to the amount of time you drive and the distance you drive, but there is an upper limit to that value.

「無限に運転技術が向上し続ける」ということはありません。

There is no such thing as "improving driving technology endlessly".

ですので「交通事故を起こさない為には、運転時間と距離の値をできるだけ小さくすること」が正解です。

Therefore, the correct answer is "to keep driving time and distance as small as possible in order to prevent traffic accidents."

これは、単純に確率の問題です。

It's just a matter of probability.

コロナ禍における感染リスクも、同じことです。

The same is true for the risk of infection in corona disasters.

「感染を防ぐには、マスクや手洗いも重要ではあるが、それ以上に、できるだけ人と接しないこと」が正解です。

The correct answer is "a mask and hand washing are important to prevent infection, but more than that, do not contact people as much as possible."

これも、単純に確率の問題です。

It's just a matter of probability too.

-----

思うように外出できないというだけで、多くの人にはストレスが溜る日々だと思います。

It's a stressful day for many people just because they can't go out as much as they'd like.

人間は社会的存在 ―― つまり、集団として存在することを前提 ―― とされているからです。

This is because humans are supposed to be social beings -- that is, they are supposed to exist as a group.

しかし、今や、「集団」ではなく、「個」として行動することが推奨される状況になっております。

However, we are now encouraged to act as "individual" rather than as a "group".

-----

ところで、私、昔から「個」というか「孤」に抵抗がなかったように思えます。

By the way, I don't think I've always been resistant to "individual" or "loneliness".

小学生の頃から、下校時は、頭の中で色々な(中二病的な)ことを考えながら、一人で歩いて帰るのが好きでした。

Ever since I was in elementary school, I liked to walk home alone when I left school, with all sorts of (pretentious behavior) thoughts in my head.

友人と一緒に帰らなければならない時は、「今日は、(頭の中で)話を作れない」とガッカリしたものです。

When I had to leave with a friend, I was disappointed that I couldn't make up a story (in my head) today.

そもそも「複数の友人と遊ぶ」というのも、あまり得意ではなかったように思います。

I don't think I was very good at "playing with more than one friend" in the first place.

集団を纏めなければならない立場(例:生徒会会長)にあったときでさえ、「自分は一人」という意識が離れることはありませんでした。

Even when I was in a position where I had to organize a group of people (e.g., student council president), the sense of "I am alone" never left me.

デートの後の計画(例:深夜のゼミの研究室に戻ってデータ解析をする)を、デートの最中に考えていました。

I was thinking about a post-dating plan (eg going back to my lab at midnight to do data analysis) during the dating.

そして、コロナ禍が始まる以前から「孤食(ぼっち飯)」「孤読(ぼっち読書)」「孤考(一人ブレスト)」について、日記に書いてきました。

And before the Coronal began, I wrote in my diary about "eating alone", "reading alone", and "thinking alone".

つまるところ、私は「孤」であるということに、他の人よりも高い耐性がありそうだ、ということです。

After all, I am more likely to be more tolerant of being "lonely" than others.

-----

ただ、私は、これまで、その「弧」を自分の意志で選択してきました。

However, until now, I have chosen that "loneliness" at my own will.

「弧」以外の選択肢がなくなったときにも、同じ様に考えることができるのか、全く自信がありません。

I'm not really confident that I will be able to think in the same way when I have no choice but to be "alone".

-----

ともあれ、今や、「「孤」であるということ」が、望ましいこととして、社会から要請されています。

In any case, society is now demanding "to be a lone" as a desirable thing.

―― 私の半生は、このコロナ禍の時代に向けた準備期間であったのかもしれない

"My half-life may have been the preparation period for this coronal era"

と思うと、なんとも言えない皮肉を感じます。

When I think about it, I feel an indescribable irony.

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

すでに、

こちらこちら でも述べましたが、7月から始まった「やはり俺の青春ラブコメはまちがっている。完」は、予想に違わぬ、大変素晴しい作品になっています。

As I've already mentioned (1) here and (2) here, "My Youth Romantic Comedy Is Wrong、As I Expected -- Final" which started in July, and it's turning out to be a great work, as I expected.

大変嬉しいです。

I am very happy.

そして、原作者の方に最大級の賛辞を贈りつつも、やはり悔しいです。

And while I give the biggest compliment to the original author, I'm still jealous.

特に、今週の第4話については、すでに多くの方が絶賛コメントしているので、私から改めて申し上げることはありません。

I don't have anything to say again, especially since many of you have already commented on this week's fourth episode with rave reviews.

-----

私は、番組最後のヒロインの最後の3分の独白の部分を、Youtubeの「英文字幕」で読んでいたのですが、かなり衝撃を受けました。

I was reading the last three minutes of the heroine's final three minute monologue at the end of the show on Youtube with "English subtitles" and I was quite shocked.

―― こういう風に訳すのか

"That's how they translate it"

と。

この作品は、登場人物の心情を、抽象化されたメッセージで吐露させることに特徴があります。

This work is unique in that it makes the characters speak with abstracted messages about their emotions.

当然のことながら、主語や目的語が明確でないセリフが登場します。

Naturally, there will be lines of dialogue that do not have a clear subject or object.

で、今回の、第4話のヒロインのメッセージの英文字幕に表わされた時制の使い方(現在完了、過去完了)、仮定法過去、助動詞の用法が「実に理に叶っている」のです。

So, this time, the use of tenses (present perfect, past perfect), subjunctive past, and auxiliary verbs in the English subtitles of the heroine's message in Episode 4 "really makes sense".

例えば、

For example,

■"I'm glad my tears have stopped"

直前の状況と現在の状況を上手く説明しているフレーズになっています。

The phrase is a good description of the immediate and current situation.

■"I can't be a girl that people feel sorry for"

これはヒロインが「決意」を示す意志として"can't"を使っています。

This is the heroine's use of "can't" as a will to show her "determination".

■"I couldn't ask him he's helping her"

ここで使われている現在進行形は、現在と過去と未来の"彼"の一貫した行動を示しています。

The present progressive tense used here indicates consistent behavior in the present, past and future of "him".

■"But I could never give up, let go, and refuse the way that she did"

これも前半2つの動詞の目的語が、最後の関係代名詞で係り受けされているのが分かります。

This also shows that the objects of the first two verbs are engaged by the last relational pronoun.

■"Now and forever, my teas won't stop"

これは"意訳"も含まれていますが、『うまい!』と唸りました。

This includes "meaning," but it's "good! I shouted.

■I wish my teas hadn't stopped then

このフレーズ、「過去の自分への(取り戻せない)願い」が込められた名文だと思います。

I think this phrase, "a wish for the (unrecoverable) past," is a great sentence.

総じて、文法/時制は、状況を表現できれば良いのであって、教科書取りに使わなければならないというものではありません。

In general, grammar/tense is good if you can express a situation, not if you have to use it as instructed in the textbook.

-----

問題は ―― この英文で(もちろんストーリーの背景等は理解しているという前提で)、

The problem is -- with this English sentence (assuming, of course, that you understand the background of the story, etc.)

―― 何人の日本人が"涙することができるか"

"How many Japanese can "weep"?

ということです。

少なくとも私は、上記の英語のフレーズでは「英語の教科書のキーセテンスに引っ張られて、全く感動できそうにない」と思います。

At least I don't think I'm going to be impressed at all with the above English phrases because I'm "pulled into the key set of English textbooks".

同時に、こういうコンテンツ(アニメ、ラノベ)を利用した英語の勉強は、とても有効ではないかとも思いました。

At the same time, I thought that studying English by using this kind of content (anime and novels) would be very effective.

(ただ、私にはアプローチが思いつけていませんが)。

(I just haven't come up with an approach to it.)

-----

私たち日本人が、"心"のレベルで英文を読み聞きできるようになるには、あと何年必要となるんだろうなぁ ―― などと考えていました。

I wondered how many more years it would take for us Japanese to be able to read and listen to English at a "mental" level.

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

本日は、コラムがリリースされた日なので、日記はお休みです。

Today, new my column is released, so I take a day off.

踊るバズワード ~Behind the Buzzword(4)量子コンピュータ(4):

1量子ビットを制御してみよう

Dancing Buzzword-Behind the Buzzword (3) Quantum Computer (3)

Let's control one qubit.

-----

今回のコラムで、編集担当のMさんが、私の体調を心配されて連絡されてきました。

In this column, my editor, Ms. M., contacted me because she was concerned about my health condition.

今日は、それに対する、私のお返事のメールを開示致します。

Today, I am disclosing my email response to it.

====== ここから =======

====== From here =======

2020年7月30日(木) 4:00 江端智一

Thursday 30 July 2020 4:00 Tomoichi Ebata

(前略)

(Omitted.)

量子コンピュータの勉強はハードですが、まだご心配頂く状況ではありません。

Learning about quantum computers is hard, but it's not a situation you need to worry about yet.

真冬の深夜の大学のキャンパスの自動車の中でデバッグしていた日々を考えれば、この程度の苦労はものの数ではありません。

Considering the days of debugging in a car on a college campus late at night in the middle of winter, this level of hardship is not a big deal.

何をしても動かないシステムを目の前に、迫りくる実験開始の日に怯える日々に比べれば、 時間をかけて勉強すれば、いずれは理解できますし、執筆しつづければ原稿は完成します。

Compared to the days of dreading the impending day of experimentation in front of a system that doesn't work, taking the time to study and understand it, and keeping to write, I will finish the manuscript.

少なくとも、コラム執筆は全然怖くはないです。

At least I'm not afraid of column writing at all.

-----

ただ、話が専門的になるほどに、読者が付いて来ていない感じが強まります。

However, the more specialized the story becomes, the more I feel like the readers are not following me.

後輩とも話していたのですが、

I've been talking it to the junior, and we come to wonder

『量子コンピュータの世界の人間も、量子コンピュータを全体像(数学、デバイス、制御の三位一体)として把握できていなのではないか』

"People in the world of quantum computers may not be able to grasp the quantum computer as a whole (the trinity of mathematics, devices and control).

と、疑い出しています。

いずれにしても、私はまだ大丈夫です(今回は、コロナ第3弾が入ってきたので、ちょっときつかったですが)。限界になったら、ちゃんと休載のお願いをしますので、ご安心下さい。

Anyway, I'm still okay with it (although this time it was a bit tougher because Corona #3 came in). When I get to the end of the line, I'll ask for a proper break, so please don't worry.

-----

"量子"は、次回が事実上の大トリです。

"Quantum" is practically the big trick next time.

「量子テレポーテーション」というかっこいいバズワードを、ボロボロにする予定です。

I am going to deconstruct the cool buzzword "quantum teleportation"

(後略)

(Omitted.)

====== ここまで=======

====== To here =======

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

ブラック企業では、その小売販売を行う者に対して、スペルアウト(書き出し)させることを重視しています。

The pyramid scheme focuses on having those who make that retail sale spelled out (written out).

スペルアウトする内容は、目標(ノルマ)だけではなく、その集団のポリシー

What they spell out is not only the goal (quota), but also the policy of the group

―― 私には価値はありません。私の価値を与えてくれるのは会社です

"I have no value. It's the company that gives me value"

という内容を、何度も唱えさせるだけではなく、紙に書き出しさせて、それを壁に張り付けさせたりします。

The pyramid scheme gimmickers make them chant it over and over again, have them write it out on a piece of paper, and then stick it on the wall.

これ、実に理に叶った「洗脳」です。

This is really a reasonable "brainwashing".

外部から情報を与え続けるだけでは、洗脳の効果は上がりません。

The effectiveness of brainwashing will not increase if giving them information from the outside.

自分の言葉や文字で、情報を発信させることで、効果が上がります。

Brainwashing works by getting people to transmit information in their own words and letters.

それはさておき。

Aside from that.

-----

学会発表は、会社の業務(ノルマ)として行われることが多いです。

Conference presentations are often done as company business (quota).

ノルマですので、自分では「上手くいなかった」「成果に満足していない」と思っている研究成果であっても、発表を行うこともあります。

Since this is a quota, we may present research results even if we think we weren't good at them or weren't satisfied with the results.

しかし、当然のことながら、ペーパーや、プレゼンテーションでは「上手くできなかった」と言うことはできません。

But, of course, we can't just say, "we didn't do well" on a paper or in a presentation.

これを、「(嘘をつかずに)どのような表現で語るか」で、研究員の力量が問われることになります。

The competence of the researcher will be tested by "how to express this (without lying)".

-----

さて、学会発表までに、ペーパーや、発表用資料の作成などで、何度も修正を行い、書き直しをし、そして、発表練習をしなければなりません。

Now, in the run-up to the conference, I have to revise and rewrite my paper and presentation materials many times, and then practice my presentation.

英語で発表するとなれば、できるだけ短文で、完結で、分かりやすい表現を考えなければなりません。

If I am going to present in English, I have to come up with the shortest, most complete and understandable expressions possible.

しかも、論理的に破綻しない、筋の通ったストーリーとして組み上げなければなりません。

Moreover, I have to be make a reasonable story, that is not broken down logically.

これを、何度も繰返します。

This is repeated over and over again.

実はこれ、立派な「洗脳」のプロセスです。

This is actually a great "brainwashing" process.

-----

私の場合、ペーパーの書き直しは10回以上、プレゼンテーション資料は20回以上、そして発表練習(特に、英語の場合は)は30回以上繰返します。

I rewrite papers more than 10 times, presentation materials more than 20 times, and practice presentations (especially if they are in English) more than 30 times.

これだけ繰返すと、

So much for repetition.

―― この研究には価値があります。その機会を与えてくれたのは会社です

"There is value in this research. The company has given me that opportunity."

そういう気持ちを信じられるようになってきます。

I will come to trust that feeling.

こうして、研究員は、自分で自分の洗脳を完了するのです。

Thus, the researcher completes his or her own brainwashing.

-----

まとめますと、学会発表会、研究発表会は、要するに「自己洗脳装置」です。

In summary, conference and research presentations are, in essence, "self-washing machines".