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

docker-compose.ymlの内容

version: '3.5'

services:
app:
build:
context: ./
dockerfile: docker/app/Dockerfile
target: build
command: ./main
depends_on:
- db
- tile38
volumes:
- ./:/XXXXXX_ride_hailing_go
db:
image: postgis-pgrouting:latest
build:
context: docker/postgis-pgrouting

expose:
- "5432"
ports:
- "15432:5432"
volumes:
- data
- ./:/XXXXX_ride_hailing_go
data:
image: busybox
volumes:
- "/data/db"
tile38:
image: tile38/tile38:1.17.0
expose:
- "9851"
ports:
- "19851:9851"
volumes:
- tile38_data
tile38_data:
image: busybox
volumes:
- "/data/tile38"
nginx:
image: nginx:1.15-alpine
ports:
- "80:80"
links:
- app:app
volumes:
- "./nginx.conf:/etc/nginx/conf.d/default.conf"

でもって、

XXXXXX_ride_hailing_go/docker/postgis-pgrouting/ の直下の Dockerfileの中身

FROM postgres:11.2
LABEL maintainer="dev@connect.co.jp"

ENV POSTGIS_MAJOR 2.5 →これもコメントアウト
ENV POSTGIS_VERSION 2.5.2+dfsg-1~exp1.pgdg90+1 → これはコロコロ変わるので注意のこと
ENV PGROUTING_MAJOR 2.5 → 最近は"3"になっている
ENV PGROUTING_VERSION 2.5.2
→コメントアウト

社内から使う時には、以下のプロキシの設定がないと動かない
ENV http_proxy http://12.34.56.789:8080
ENV https_proxy http://12.34.56.789:8080 ("http://" なのか "https://"なのかを間違えないように)

RUN apt-get update \
&& apt-cache showpkg postgresql-$PG_MAJOR-postgis-$POSTGIS_MAJOR \
&& apt-get install -y --no-install-recommends \
postgresql-$PG_MAJOR-postgis-$POSTGIS_MAJOR=$POSTGIS_VERSION \
postgresql-$PG_MAJOR-postgis-$POSTGIS_MAJOR-scripts=$POSTGIS_VERSION \
postgis=$POSTGIS_VERSION \
postgresql-$PG_MAJOR-pgrouting \
&& rm -rf /var/lib/apt/lists/*

RUN mkdir -p /docker-entrypoint-initdb.d
COPY ./initdb-postgis.sh /docker-entrypoint-initdb.d/postgis.sh
COPY ./update-postgis.sh /usr/local/bin
COPY ./initdb-pgrouting.sh /docker-entrypoint-initdb.d/routing.sh

VOLUME /XXXXXX_ride_hailing_go
WORKDIR /XXXXXX_ride_hailing_go

の赤字の部分が原因で、以下のようなエラーが出ているらしい、というところまで分かった。

Reverse Provides:
Reading package lists…
Building dependency tree…
Reading state information…
E: Version '2.5.2+dfsg-1~exp1.pgdg90+1' for 'postgresql-11-postgis-2.5' was not found
E: Version '2.5.2+dfsg-1~exp1.pgdg90+1' for 'postgresql-11-postgis-2.5-scripts' was not found
E: Version '2.5.2+dfsg-1~exp1.pgdg90+1' for 'postgis' was not found

Service 'db' failed to build: The command '/bin/sh -c apt-get update && apt-cache showpkg postgresql-$PG_MAJOR-postgis-$POSTGIS_MAJOR && apt-get install -y --no-install-recommends postgresql-$PG_MAJOR-postgis-$POSTGIS_MAJOR=$POSTGIS_VERSION postgresql-$PG_MAJOR-postgis-$POSTGIS_MAJOR-scripts=$POSTGIS_VERSION postgis=$POSTGIS_VERSION postgresql-$PG_MAJOR-pgrouting && rm -rf /var/lib/apt/lists/*' returned a non-zero code: 100

さて、どうも最新バージョンの問題だな、というところまでは分かたけど、何を入れたら良いのか分からず、2時間ほどすったもんだしていた。

このバージョンだが、docker-compose buildの最中に登場するので、見逃さないように

Reverse Depends:
postgresql-12-postgis-3-dbgsym,postgresql-12-postgis-3 3.1.0+dfsg-1.pgdg100+1
postgresql-12-postgis-3-scripts,postgresql-12-postgis-3
postgis-gui,postgresql-12-postgis-3
Dependencies:
3.1.0+dfsg-1.pgdg100+1 - postgresql-12 (0 (null)) postgresql-12-postgis-3-scripts (0 (null)) libc6 (2 2.14) libgcc1 (2 1:3.0) libgdal20 (2 2.0.1) libgeos-c1v5 (2 3.7.0) libjson-c3 (2 0.11) libpcre3 (0 (null)) libproj13 (2 4.9.0) libprotobuf-c1 (2 1.0.1) libsfcgal1 (2 1.3.1) libstdc++6 (2 5) libxml2 (2 2.7.4) postgis (3 1.2.1) postgis (0 (null))
Provides:
3.1.0+dfsg-1.pgdg100+1 - postgresql-postgis (= ) postgresql-12-postgis (= )
Reverse Provides:
Reading package lists…
Building dependency tree…
Reading state information…
E: Version '3.0.2+dfsg-4.pgdg+1' for 'postgresql-12-postgis-3' was not found

そこで、最近構築したPostgreSQLにログインして、色々情報を探ってみたら、

ca_sim-# \dx
List of installed extensions
Name | Version | Schema | Description
-----------+---------+------------+---------------------------------------------------------------------
pgrouting | 3.0.0 | public | pgRouting Extension
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
postgis | 3.0.0 | public | PostGIS geometry, geography, and raster spatial types and functions
(3 rows)

ca_sim-# select postgis_version();
3.0 USE_GEOS=1 USE_PROJ=1 USE_STATS=1
(1 row)

ということが分かり、postgreSQLも、pgroutingも、postgisも、全部'3'になっていることが分った。そこで、docker-compose buildの画面に戻って、調べていたら、こんなメッセージを見つけた。

Reverse Depends:
postgresql-11-postgis-3,postgresql-11-postgis-3-scripts
Dependencies:
3.0.1+dfsg-4.pgdg90+1 - perl:any (0 (null)) postgresql-11-postgis-3 (0 (null)) postgresql-11-postgis-scripts (3 2.2.2+dfsg-3~)
Provides:
3.0.1+dfsg-4.pgdg90+1 - postgresql-postgis-scripts (= ) postgresql-11-postgis-scripts (= )
Reverse Provides:
Package: postgresql-11-postgis-3-dbgsym
Versions:
3.0.1+dfsg-4.pgdg90+1 (/var/lib/apt/lists/apt.postgresql.org_pub_repos_apt_dists_stretch-pgdg_main_binary-amd64_Packages.lz4)

なんか、これがクサいな、と思い、XXXXXX_ride_hailing_go/docker/postgis-pgrouting/ の直下の Dockerfileの中身を以下のように変えてみた。

FROM postgres:12.2
LABEL maintainer="dev@connect.co.jp"

ENV POSTGIS_MAJOR 3
ENV POSTGIS_VERSION 3.0.1+dfsg-4.pgdg100+1

# ENV PGROUTING_MAJOR 2.5
# ENV PGROUTING_VERSION 3.0.0
(上記2つの環境変数は、使われていないようだったのでコメントアウトしておいた)

この変更で、docker-compose build が無事通ることを確認した。

(あいかわらず、docker-compose.yml も Dockerfile も、よく分かっていないが、トライアンドエラーで何とかしている)

以上

=====

C:\Users\ebata\xxxxxxx_ride_hailing_go>docker-compose ps

xxxxxxx_ride_hailing_go_app_1 ./main Exit 1
xxxxxxx_ride_hailing_go_data_1 sh Exit 0
xxxxxxx_ride_hailing_go_db_1 docker-entrypoint.sh postgres Exit 1
xxxxxxx_ride_hailing_go_nginx_1 nginx -g daemon off; Up 0.0.0.0:80->80/tcp
xxxxxxx_ride_hailing_go_tile38_1 tile38-server -d /data Up 0.0.0.0:19851->9851/tcp
xxxxxxx_ride_hailing_go_tile38_data_1 sh Exit 0

となって、DBがどうしても動いてくれない問題発生。手動で起動を試みてみたら、こうなった。

C:\Users\ebata\xxxxxxx_ride_hailing_go>docker start -a xxxxxxx_ride_hailing_go_db_1
Error: Database is uninitialized and superuser password is not specified.
You must specify POSTGRES_PASSWORD to a non-empty value for the
superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run".

You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all
connections without a password. This is not recommended.

See PostgreSQL documentation about "trust":
https://www.postgresql.org/docs/current/auth-trust.html

そこで、PostgresのDockerImageに変更があって起動ができなくなった話 を参照させて頂き、docker-compose.yml に

  POSTGRES_HOST_AUTH_METHOD: 'trust'
  POSTGRES_PASSWORD: 'postgres'

を追加して、

  db:
    image:  postgis-pgrouting:latest
    environment:
      POSTGRES_HOST_AUTH_METHOD: 'trust'
      POSTGRES_PASSWORD: 'postgres'
    build:
      context: docker/postgis-pgrouting
    expose:
      - "5432"
    ports:
      - "15432:5432"
    volumes:
      - data
      - ./:/xxxxxxx_ride_hailing_go
  data:
    image:  busybox
    volumes:
      - "/data/db"

のようにしてみて、再度 docker rmでコンテナ潰しておき、$ docker-compose build $ docker-compose up -d で、(さらに上手く動かない場合は) docker-compose restartを実施してみたら

C:\Users\ebata\xxxxxxx_ride_hailing_go>docker-compose restart
Restarting xxxxxxx_ride_hailing_go_nginx_1       ... done                                                                                                                                                              Restarting xxxxxxx_ride_hailing_go_app_1         ... done                                                                                                                                                              Restarting xxxxxxx_ride_hailing_go_data_1        ... done                                                                                                                                                              Restarting xxxxxxx_ride_hailing_go_tile38_data_1 ... done                                                                                                                                                              Restarting xxxxxxx_ride_hailing_go_db_1          ... done                                                                                                                                                              Restarting xxxxxxx_ride_hailing_go_tile38_1      ... done                                                                                                                                                              
C:\Users\ebata\xxxxxxx_ride_hailing_go>docker-compose ps
                Name                               Command              State             Ports
--------------------------------------------------------------------------------------------------------
xxxxxxx_ride_hailing_go_app_1           ./main                          Exit 1
xxxxxxx_ride_hailing_go_data_1          sh                              Exit 0
xxxxxxx_ride_hailing_go_db_1            docker-entrypoint.sh postgres   Up       0.0.0.0:15432->5432/tcp
xxxxxxx_ride_hailing_go_nginx_1         nginx -g daemon off;            Up       0.0.0.0:80->80/tcp
xxxxxxx_ride_hailing_go_tile38_1        tile38-server -d /data          Up       0.0.0.0:19851->9851/tcp
xxxxxxx_ride_hailing_go_tile38_data_1   sh                              Exit 0

となり、xxxxxxx_ride_hailing_go_db_1 docker-entrypoint.sh postgres Up 0.0.0.0:15432->5432/tcp を確認できるようになるに至った。

docker-compose run db psql -h db -U postgres -d gis -c 'CREATE EXTENSION pgrouting CASCADE; CREATE EXTENSION hstore;' で失敗した

失敗のメッセージはこんな感じ

C:\Users\ebata\xxxxxxx_ride_hailing_go>docker-compose run db psql -h db -U postgres -d gis -c 'CREATE EXTENSION pgrouting CASCADE; CREATE EXTENSION hstore;'
psql: warning: extra command-line argument "EXTENSION" ignored
psql: warning: extra command-line argument "pgrouting" ignored
psql: warning: extra command-line argument "CASCADE;" ignored
psql: warning: extra command-line argument "CREATE" ignored
psql: warning: extra command-line argument "EXTENSION" ignored
psql: warning: extra command-line argument "hstore;'" ignored
ERROR: unterminated quoted string at or near "'CREATE"
LINE 1: 'CREATE

ので、pgAdminで、xxxxxxx_ride_hailing_go のエントリーを作って接続してみたら、一応繋げた。

試しに、C:\Users\ebata\xxxxxxx_ride_hailing_go>docker-compose run db psql -h db -U postgres をやってみたら、ログインできて、こうなった

C:\Users\ebata\xxxxxxx_ride_hailing_go>docker-compose run db psql -h db -U postgres
psql (12.2 (Debian 12.2-2.pgdg100+1))
Type "help" for help.

postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+------------+------------+-----------------------
gis | postgres | UTF8 | en_US.utf8 | en_US.utf8 |
postgres | postgres | UTF8 | en_US.utf8 | en_US.utf8 |
template0 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)

postgres=# \c gis
You are now connected to database "gis" as user "postgres".
gis=# \dt
Did not find any relations.
gis=#

やっぱり何も入っていないか。

ここから直接、

CREATE EXTENSION pgrouting CASCADE;
CREATE EXTENSION hstore;

を実行したら成功した。

次は、

C:\Users\ebata\xxxxxxx_ride_hailing_go>docker-compose run app migrate -database 'postgres://postgres:@db:5432/gis?sslmode=disable' -path ./repository/postgresql/migrations up
Starting xxxxxxx_ride_hailing_go_tile38_1 … done
Starting xxxxxxx_ride_hailing_go_db_1 … done
error: database: parse 'postgres://postgres:@db:5432/gis?sslmode=disable': first path segment in URL cannot contain colon

うーん、「コロンを消せ」と言われているようだけど、まあ、試してみる

C:\Users\ebata\xxxxxxx_ride_hailing_go>docker-compose run app migrate -database postgres://postgres:@db:5432/gis?sslmode=disable -path ./repository/postgresql/migrations up
Starting xxxxxxx_ride_hailing_go_db_1 … done Starting xxxxxxx_ride_hailing_go_tile38_1 … done 1/u create_administrators (43.041999ms)
2/u create_worlds (84.101398ms)
3/u create_passengers (126.189996ms)
4/u create_services (169.342395ms)
5/u create_bus_stops (237.856592ms)
6/u create_service_bus_stops (277.409391ms)
7/u create_waypoints (320.23459ms)
8/u create_trips (386.509487ms)
9/u add_pickuped_at_to_trips (410.829887ms)
10/u add_dissatisfaction_to_trips (437.705386ms)

通った。(ただ、その後、コンテナの再構築したら「コロンを消せ」のメッセージが出てこなくなった)。


その後、何度http://localhost をしても動かないので、試しに、http://localhost/admin/login から、 admin-0/password でログインできた。

「デモ世界の管理」を選択すると

が出てくるので、「地図表示」を選択すると、例の画面が出てきた。

そういえば、データの生成は、以下のコマンドで。

docker-compose run app go run cmd/dummy_data_generator_concurrent_small/main.go

ああ、疲れた。(これで、ようやく眠れる)

==========

$ cd /path/to/hitachi_ride_hailing_go
$ docker-compose build
# 上記部分が完了するまで、はじめての場合はネットワーク環境により数分かかります
$ docker-compose up -d
$ docker-compose run db createdb -h db -U postgres gis
$ docker-compose run db psql -h db -U postgres -d gis -c 'CREATE EXTENSION pgrouting CASCADE; CREATE EXTENSION hstore;'
$ docker-compose run db psql -h db -U postgres gis < repository/postgresql/data/dump.sql
$ docker-compose run db psql -h db -U postgres -d gis -f repository/postgresql/data/postgis-vt-util.sql
$ docker-compose stop
$ docker-compose start
$ docker-compose run app migrate -database 'postgres://postgres:@db:5432/gis?sslmode=disable' -path ./repository/postgresql/migrations up
$ docker-compose run app go run cmd/dummy_data_generator_concurrent_small/main.go
$ docker-compose stop
$ docker-compose start

Windows10のコマンドプロンプトではなく、MinGW64のシェルを使うと調子がいい

==========

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

(昨日の続きです)

(Continuation from yesterday)

研究者やエンジニアにとって、「できるかどうかが分からないもの」を作るのは、物凄いストレスがあります。

For researchers and engineers, it is extremely stressful to make "what you can make or not".

なにしろ「分からない」のですから。

Above all, "we can't know to make".

しかし、「できることが分かっている」ものであれば、そのストレスは、1/100以下まで下がります。

However, if you "know what you can do", the stress will drop to less than 1/100.

なぜなら、「苦労の果てにゴールがあることが分かっている」からです。

Because "I know there is a goal at the end of my hard work."

私にしても、すでに開発されている技術の後追いをしたり、それを活用したりすることはできます。

Even I can follow the technology already developed and used it.

もちろん、そこに至る為には、何十回~何百回にも及びトライアンドエラーがあります。

Of course, there are tens to hundreds of trials and errors to get there.

しかし、それは、本人の努力と時間の問題でなんとかなる(ことが多い)ものです。

However, it is (often) manageable with the effort and time of the individual.

-----

加えて、「できるかどうかが分からないもの」は、間違いなく、世間から、過激でネガティブな批判に晒されます。

In addition, "what we don't know if we can do it" is definitely exposed to radical and negative criticism from the public.

そして、多くの場合、この過激でネガティブな批判は、「できるかどうかが分からないもの」に挑戦する人間を潰します。

And in many cases, this radical and negative criticism kills people who try "what we don't know if we can do it".

我が国の場合、どういう訳か、この「できるかどうかが分からないもの」に対して、「敬意」とか「支援」とかいう概念が出てきません。

In Japan, I don't know the reason, however there is no concept of "respect" or "support" for this "what we don't know if we can do it".

「潰す」の一択です。

It is a choice of "crush".

この「陰湿な均一性を尊ぶ我が国の国民性」が、私を含めた日本人の特性です。

This "national character of Japan that respects insidious uniformity" is a characteristic of Japanese people including myself.

そういう挑戦をしている人間を、私達、多くの凡人は『黙って看過する』ことすらできないのです ―― 自分に、1mmも不利益がないにもかかわらず。

Many ordinary people, like us, cannot even "silently overlook" those who are taking on such challenges --- even though we do not have a disadvantage at all.

-----

天才とは何か ――

What is a genius?

これらの、過激でネガティブな批判に「耐えられる」では足りず、「耳を貸さない」「聞こえない」という、

It's not enough to "bear" these radical, negative criticisms, but to "turn a deaf ear" and "not be heard

『そんじょそこらの「狂い方」では足りない、「人間的な感情を喪失するほどの狂い方」をすることができる者をいう』

"A person who is capable of going 'so mad that they lose their human emotions,' not just some 'madness' is not enough.

と、私には思えます。

I think so.

そして、そのような「人間的な感情を喪失するほどの狂い方」は、「幸せな人生」というフレームワークの枠外です。

And such 'so mad that they lose their human emotions' is outside the framework of the "happy life" framework.

-----

ほとんどの人は、「天才」を見ることすらなく、自分の人生を終えます。

Most people end their lives without even seeing the "genius" in them.

私は、これまで、私の認定する「天才」を2人"も"見ました。

I have "seen" two "geniuses" in my lifetime.

これだけでも、私の人生は、かなりラッキーだったと思います。

I've been pretty lucky in my life for this reason.

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

『天才とそうでない者を分けるものは何か?』

"What separates the geniuses from the non-geniuses?"

私、このネタについては、何度も記載してきました。

I have described this story many times.

■「天才は、自分の天賦の才(天才)に無自覚である」というのが、私の観察結果です。

My observation result is that "Genius is unaware of their genius".

■故に、彼らは、平気で「毎日の練習」だの「継続は力」だの「努力は報われる」だのと言い放ちます。

Therefore, they are confident that they are "everyday practice", "continuation is power" and "effort is rewarded".

■ですので、私は、人に説教垂れる「こと」が嫌いですし、人に説教垂れる「奴」はもっと嫌いです。

So I don't like to give a sermon to others, and don't like a person who give a sermon to me more.

■『致死率"100%"だけど、伝染率"0%"のインフルエンザ病症』

"Influenza disease with a lethal rate of" 100% "and a transmission rate of" 0% ""

-----

基本的には、この考え方、

Basically, this thoght is coming from the topic of

■それは、彼らの一人一人が「狂っている」からです。

Each member of them becomes crazy.

がベースですが、今回は、さらにこの「狂い方」についてお話したいと思います。

Today, I would talk about the "crazy".

-----

(1)原子爆弾は、かなり早い段階で、その基本方式については分っていました。

(1) The basic method of the atomic bomb was known very early on.

(2)しかし、それが実現されるのは、「マンハッタン計画」を待たなければなりませんでした。

(2) However, it had to wait for the "Manhattan Project" to be realized.

(3)そして、広島、長崎への原爆投下後、各国は続々と開発に成功していきました。

(3) After the atomic bombs were dropped on Hiroshima and Nagasaki, each country succeeded in development one after another.

この(1)~(2)の期間と、(2)~(3)の期間に、メチャクチャな差があるのです。

There is a messy difference between this period (1)-(2) and the period (2)-(3).

感じとしては、1/10~1/20の期間です。

As my feeling, it was a period from 1/10 to 1/20.

これは、各国スパイの暗躍や、内通者の存在は確かに大きかったのですが、一番大きいかったことは、

It was true that the spy of each country's spies and the presence of insiders were big reasons, howeer, the biggest thing was

―― 原子爆弾を「作ることができる」という事実

"The fact that we can "make" an atomic bomb"

です。

(続く)

(To be continued)

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

石膏ボード 600円 5+1 枚
4x2フォーム 3000円くらい

吸音ざい 910X910 6 = 4500 x 6 27000 → 18000円くらい

防音シート 5885円
https://item.rakuten.co.jp/pialiving/cz-12/?iasid=07rpp_10095___eh-kcng6x35-2p-d8c44078-682d-426b-96ad-33c9bf2dc05f

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

(昨日の続きです)

(Continuation from yesterday)

我が家では、家族の誰かが嬉しいことがあった場合、その本人が、他の家族に対して

At home, if someone in my family is happy, that person has the right to claim

「(理由を尋ねることなく)本人を褒めること」

"praise her/him" (without asking why)

を請求する権利があります。

to another family member.

また、本人が何か/誰かに怒っている時には、

If someone in my family are angry at something/someone, that person has the right to claim to

「(理由を尋ねることなく)本人に対して『お前が正しい。相手が悪い』と慰めること」

"say 'you are right, your friend is bad"" (without asking why)

を請求する権利もあります。

to another family member.

-----

多くの場合、我々は、正しい分析や評価を欲していません。

In many cases, we don't want the right analysis or assessment.

ただ、"Yes"とだけ言って欲しいだけです。

I just want them to say "Yes".

この権利システムを江端家に導入したのは、何を隠そう、この私です。

It is me who introduced this rights system to the Ebata family.

それはさておき。

That aside.

-----

最近の、"Stay Home"によって、江端家の無線LANの使用率は格段に上っています。

Recently, "Stay Home" has significantly increased the usage rate of Ebata's wireless LAN.

無線LANの不感帯を調べるために、Padにインストールしたアナライザを持って、家中を歩き回って、家族から不満のあるエリアの、通信感度を上げるために、日々、WiFiのリピータの増設を行っています。

In order to investigate the dead zone of wireless LAN, I have an analyzer installed on my Pad, walk around the house. Thanks for my efforts, the number of WiFi repeaters every day are increasing, for deleting areas where my family is dissatisfied.

環境が改善された後、クレームは消えてなくなりますが、感謝の声も聞こえてきません。

After the environment has improved, the claims have disappeared, but no gratitude is heard.

『私への功労に対する、感謝の言葉がない』

"There is no word of gratitude for my service"

というクレームをしたところ、

When I said that,

長女:「この手のインフラは、通信できることが『普通』と思ってしまうので、どうにも感謝の気持ちを忘れがちになって」

Senior daughter: "I feel like being able to communicate is'normal' in this kind of infrastructure, so I tend to forget my appreciation."

彼女はそう言い訳をして、私に一回だけ感謝の言葉を述べました。

She made that excuse and gave me a single thank-you note.

その後は、感謝の言葉を聞いたことはありません。

After that, I never heard the words of gratitude.

-----

皆さん。インフラを守る者に、もっと思いを馳せましょう。

Everyone. Let's think more about those who maintain the infrastructures.

毎日、水を使わせて貰ってありがとう。

Thank you for letting me use water every day.

毎日、電気が使えてありがとう。

Thank you for letting me use electricity every day.

毎日、ガスが使えてありがとう。

Thank you for letting me use gas every day.

毎日、道路/鉄道が使えてありがとう。

Thank you for letting me use the road/railway every day.

朝、起きたら、この感謝の言葉を心の中で唱えましょう。

When you get up in the morning, say this word of thanks in your heart.

もし、これを3日連続して忘れたら ―― 私が、あなたの家の真下にある「活断層」を活性化する"(邪)念"を送りますよ。

If you forget this for three days in a row, I will send you a "(wickedness) trigger" that activates the "Active Fault" in the basement of your house.

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

「奥方の作った料理に対して、美味しい時には黙っていて、不味い時だけ文句を言う男」が、公に批判されるようになったのは、昭和の終わりころだったように思います。

"A man who keeps quiet about his wife's cooking when it's good and only complains about it when it's bad". It seems to me that it was around the end of the Showa era that such a man began to be publicly criticized.

男は寡黙であるべきである ―― という価値観が、まだ残存していた時代であり、少年期から青年期にかけて、私は辛い目にあってきました。

It was a time when the sense of value that "a man should be silent" still remained. From boyhood to adolescence, I had a hard time.

『口から先に産まれた男』

"A man born before the mouth"

という蔑称で、大人から揶揄(やゆ)されていたものです。

I was scorned by an adult with such a derogatory name.

ただ、私が見ている限り、「寡黙な男のほとんどは『低能』」 ―― とまで言わないものの、インプットされている知識量が圧倒的に少ない様に、見えました。

However, as far as I can see, "most of the silent men are "incompetent"". Even if it was overstated, it seemed that the amount of input knowledge was overwhelmingly small.

つまるところ、私には「勉学や好奇心に決定的に欠けているだけの男」に見えました。

After all, it seemed to me "a man who was decisively lacking in study and curiosity".

-----

「部下の優れた成果に対しては黙っていて、失敗した時にだけ文句を言う上司」は、私が見ている限り、我が国ではデフォルトのようです。

"A boss who is silent about his excellent work and complains only when he fails" seems to be the default in our country, as far as I can see.

日本人は、「優れた成果を褒める」という能力に決定的に欠けている、または、我が国には、「褒め方」の教育プロセスがない様にも思えます。

Japanese people are decisively lacking in the ability to "praise excellent results", or it seems that our country does not have an educational process of "praise".

(続く)

(To be continued)

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

「シュタインズゲート」に関する私の日記が、検索エンジンで調べるだけでも77件(重複カウントがあるので、40件以上程度)あります。

Just by looking up my diary about "Steins;Gate" in a search engine, there are 77 case(however, considering duplicate there are about 40+ cases).

他にも、アニメに関する日記を多く書いてきました。

I've also written many other diaries about anime.

ところが、日本を代表するアニメ「新世紀エヴァンゲリオン」に関しては、一つも見つけられませんでした。

However, I couldn't find any of Japan's representative anime "Neon Genesis Evangelion".

私は、「新世紀エヴァンゲリオン」が比類なき素晴しいアニメであることには、異義はありません。

Needless to say, "Neon Genesis Evangelion" is an unrivaled and wonderful anime.

しかし、自分でも驚くほど、私はこのアニメには「はまらなかった」です。

But to my surprise, I was "not crazy" for this anime.

-----

自分でも理由が分かっていて ―― 内容が分からない ―― からです。

I know the reason by myself "I cannot understand the content".

まあ、そこが魅力のアニメではあり、その「分からない」に対して、解説で挑戦されている方もも多くいるようです。

Well, that is an attractive anime. It seems that there are many people who are trying to explain the "I don't know" in the commentary.

しかし、課題と問題解決手段を明確にすることを至上主義とする「エンジニアリングアプローチ」をマインドセットされている私にとっては、

However, for me, being in the mindset of an "engineering approach" that is based on the supremacy of defining the problem and the means of solving it,

―― 「新世紀エヴァンゲリオン」は、ストレスの溜るアニメである

"'Neon Genesis Evangelion' is a stressful anime"

とは言えます。

-----

それでも、地上波の「第6話 決戦、第3新東京市」と、「第13話 使徒、侵入」は好きです。

Still, I like the terrestrial "Episode 6 Final Battle, 3rd New Tokyo City" and "Episode 13 Apostles, Invasion".

■第6話については、以前、日本の全電力エネルギー量について、

As for the sixth episode, I have previously discussed the total amount of electricity energy in Japan.

■第13話については、暗号と、コンピュータのクロック同期の考え方について

For Episode 13, I thought about cryptography and the concept of computer clock synchronization.

強い興味と違和感を同時に感じたことを覚えています。

I remember feeling strong interest and discomfort at the same time.

アニメ等の創作物に対して、現実世界(の数値で)のツッコミをするのは「野暮」、というか「マナー違反」と思いますので、これ以上は言及致しません。

I think that it is "stuff" or "violation of manners" in the real world (in terms of numerical values) for creative works such as anime, so I will not mention it further.

-----

最近、第13話に登場するセリフを思い浮べています。

Recently, I have come up with the words that appear in episode 13.

=====

リツコ:「使徒が進化しつづけるのなら、勝算はあります」

Ritsuko: "If the apostles continue to evolve, there is a chance of winning."

ゲンドウ:「進化の促進かね」

Gendou: "Promotion of evolution?"

リツコ:「はい」

Ritsuko: "Yes. That's it"

ゲンドウ:「進化の終着地点は自滅、死、そのものだ」

Gendou: "The end point of evolution is self-destruction, death itself"

冬月:「ならば、進化をこちらで促進させてやればいいわけか」

Fuyutsuki: "So then, we can facilitate the evolution here?

リツコ:「使徒が死の効率的な回避を考えれば、MAGIとの共生を選択するかもしれません」

Ritsuko: "If the Apostle considers the efficient avoidance of death, the Apostle may choose to live in harmony with MAGI.

=====

上記を「使徒→新型コロナウイスル」「MAGI→人類」と置き換えることで、「新型コロナウイルスの未来の姿」が見えるかもしれない ――

"Replacing the above with "Apostle -> New Coronavirus" and "MAGI -> Humanity" may give us a glimpse into the future of the new coronavirus"

という内容のコラムが、近日中にリリースされる予定です。

The column will be released in the near future.

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

婚活の広告を見てみると、「意識高い系男」と「高収入男を目指す女」の話が多いです。

If I look at marriage ads, I see a lot of talk about "conscious men" and "women who want to be high-income men".

まあ、そういう人もいるかと思いますが、私は、それは少数と、と思っています。

Well, I'm sure there are some people who do, but I think it's a small number.

私がこれまでの人生で見てきた限りでは、圧倒的多数が「なんとかなる系」だと思っています。

From what I've seen in my life, the overwhelming majority of people are of the "manageable" variety.

-----

これとは逆に、私は、「他の人は上手くいっても、私だけは『なんとかならない』だろう」という悲観と共に生きてきました。

Contrary to this, I have lived with the pessimism that, even if If everyone else does well, I'll not "manage",

15歳の時に。

When I was 15 years old.

話すことは苦痛ではありませんでした。

I didn't find the conversation painful.

話術もそこそこできたと思いますし、女子にも嫌われている感じはしませんでした。

I think my speaking skills were pretty good there, and I didn't feel like the girls didn't like me either.

生徒会という(当時としては)華やかな立ち位置にもいました。

I was also in the (then) glamorous position of student council.

----

しかし、体全体で感じる、直感的な「結婚への不向きの性格とインターフェース」を自分の中に感じていました。

But I had an intuitive "personality and interface of unsuitability for marriage" inside me that I felt throughout my body.

具体的に言うのが難しいのですが、「話題がすべる」「共感できるポイトが違う」「現実から乖離した理想」など、「全体から漂う自分への不信感」があったのです。

It's hard to be specific. However, there was a "distrust of myself that drifted from the whole thing for examples, "off topic", "different kind of empathetic poit", and "ideals divorced from reality".

どうやら、それは、私の主観だけでなく、客観的にもそうだったようです。

Apparently, that was not only my subjective view, but also my objective view.

私に結婚を思い留まらせる為に、合宿まで企画された件は、こちらです。

Here's the case that they even organized a camp to discourage me from getting married.

-----

私は、その時から『なんとかしなければ』と思っていたように思います。

I think I was thinking from then on, 'I have to do something about it.

そう考えると、私の婚活のスタートは「15歳」とも言えるかもしれません。

With that in mind, it may be said that my marriage activity started at the age of 15.

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

国会議員には、自分の発言に対しても、責任を持たなくてもいい、という権利(刑事罰、民事罰の対象外)が保証されています(憲法第51条)。

Members of Parliament have the right to not have to be held accountable for what they say (criminal and civil penalties ) is guaranteed (Article 51 of the Constitution).

我が国の最高ランクの意志決定の為の会議「国会」(正確にいうと、法律を制定する為の会議です)は、野次が酷いことで有名です。

Our nation's highest-ranking decision-making council, the "Diet" (or more accurately, the council that makes laws), is notorious for its horrible field trips.

特にセクハラ関係が酷いのはご存知の通りですが、技術者としての私から見た場合、技術に対する誤解(「歴史認識」ならぬ「技術認識」が酷いと思うことがあります。

As you know, the sexual harassment relationship is particularly bad. From my point of view as an engineer, I sometimes think that the misunderstanding of technology (not "historical perception" but "technological perception") is terrible.

とは言え、憲法第51条は、とても大切な決まりであるとは思います。

Nevertheless, I think Article 51 of the Constitution is a very important rule.

-----

ちょっと調べてみただけですが、国会におけるオフィシャルランゲージ(公用言語)の規定は、見つけられませんでした。

I did some research and it seems that there is no provision for official language in parliament.

とすれば、議員は、別に国会で「日本語」でしゃべらなくてもいいわけです。

If this is the case, then members of the Diet do not have to speak "Japanese" in the Diet.

どの国の言葉でも構わないのです。

It doesn't matter what language you speak.

とは言え、日本語でなければ、「我が国」の「義務教育」に取り入れられて、最低6年間、最長12年間は学んできた言語であれば、社会通念からいって、その言葉の使用を許されても良いと思います。

Nevertheless, if it's not Japanese, if it's a language that has been adopted into the "compulsory education" of "our country" and has been studied for at least 6 years and up to 12 years, then from a socially accepted perspective, I think it's okay to be allowed to use that language.

ならば、議長権限で、

Then, by the Chairman's authority,

「ただいまから、言語を、日本語から英語に変更します」

"Right now, I'm going to change the language from Japanese to English"

と宣言できるのではないか、と思っています。

I think they can declare that.

少なくとも、これを違法とする法律もないように思えます。

At the very least, there doesn't seem to be any law that makes this illegal.

野次が酷すぎて、国会の品性が疑われるような状態に陥った時には、議長が「オフィシャルランゲージの変更を宣言できる」ということにしておいたらどうでしょうか。

How about if the yapping is so bad that the Speaker can declare a change in the official language, when the decency of the parliament has deteriorated.

この決まり一つあれば、―― 仮に、その宣言を発動しなくても ―― 野次っている人の野次が激減すると思うのです。

I think that this one rule - even if we don't invoke that declaration - would drastically reduce the number of people yapping in the field.

野次っている人が、いきなり沈黙すれば、そのその人自体も恥しいはずですから。

Because if the person who is yapping is suddenly silent, he or she should be ashamed of themselves.

-----

憲法第51条を遵守し、国会の品位を維持し、しかも、日本人の英語教育への強い動機付けにもなる。

Article 51 of the Constitution shall be observed. The dignity of Parliament would be kept. Moreover, a strong incentive for the Japanese to teach English would be provided.

是非、検討して頂きたくお願い申し上げます。

I would like to ask you to consider this.