2021/12,江端さんの忘備録

最近テレビでやっていた「日本沈没 ―― 希望のひと」をNetFlixで視聴しています。

I recently watched "Sinking Japan -- A Man of Hope" on TV on NetFlix.

今、2話分を、スキップしながら、5分間程度でレビューしました。

I've just reviewed two episodes in about five minutes, skipping around.

-----

これを視聴して思っていたことは ――

What I was thinking when I watched this was--

■新型コロナワクチンの接種に、政府の陰謀論を語っている人は、「田所博士」のような反権力の風雲児で、

- The people who are talking about government conspiracy theories with the COVID-19 vaccine are anti-power windbags like "Dr. Tadokoro."

■新型コロナワクチンの接種を「当然」と思っている私は、利益誘導と出世とキャリアに固執した官僚や御用学者なのでしょう。

Since I "deserve" the new coronary vaccine, I guess I am a bureaucrat or a government academic who is obsessed with profit-making, promotion and career.

まあ、否定はしませんが。

Well, I won't deny it.

私、日本沈没の3日前まで『上司や権力に忖度するサラリーマン』であり続ける自信があります。

I am confident that I will continue to be a "business person who obeys his boss and authority" until three days before the sinking of Japan.

-----

田所博士は、自力で震災シミュレーションのコーディングをやっているようです。

Dr. Tadokoro seems to be doing the coding of the disaster simulation on his own.

『他人に計算を任せられない』という気持ち ―― すごく良く分かります。

The feeling of "I can't trust my calculations to someone else" -- I understand very well.

画面をキャプチャしてみたところ、田所博士が使用している言語は、"Visual C++"のようです。

From the screen capture, it seems that the language Dr. Tadokoro is using is "Visual C++".

私、この言語のプログラムを、人生で一番多く量産したので、間違いないと思います。

I am sure of it, because I have mass-produced more programs in this language than any other in my life.

-----

田所博士と対立関係にある御用学者が、「データ改竄」で糾弾される画面が出てきます。

You will see a screen where a government scientist who is in conflict with Dr. Tadokoro is accused of "Data tampering".

「データ改竄」は絶対にダメです。

Data tampering" is an absolute no-no.

科学者として、また技術者としても許されない行為です。

As a scientist and an engineer, this is unacceptable behavior.

どうせやるなら ―― シミュレーションプログラムのアルゴリズムの方を改竄するべきです。

If you're going to do this -- you should tamper with the algorithm of the simulation program.

なぜなら、自分で書いたプログラムの内容を、他人が読みとることは ―― 不可能ではありませんが ―― 相当に難しいからです。

This is because it is very difficult -- though not impossible -- for someone else to read the contents of a program you have written.

さらに、自分で書いたプログラムであっても、自分の都合の良いシミュレーション結果を出力するように、プログラムを改竄するのは、もう、これは、「絶望的に」難しいです。

Furthermore, even if you wrote the program yourself, it is already "hopelessly" difficult to falsify the program so that it outputs simulation results that are convenient for you.

なぜなら、プログラムは、どこかの一部を改竄したら、普通にバグが出ますし、その影響が自分の意図せぬところで現われてきてしまうからです。

This is because a program is usually buggy if some part of it is tampered with, and the effects can appear unintentionally.

完全に問題なく、自分の望む出力結果を、無矛盾で得られるようなプログラムの改竄は、ある種の芸術と言えます。

It is a kind of art to falsify a program in such a way that you can get the output result you want, without any contradiction, with no problems at all.

そういう意味では ―― 私は、『一流の芸術家』であると自負しております。

In that sense -- I am proud to say that I am a "first-rate artist".

2021/12,江端さんの忘備録

昨日、キャラメルボックスの観劇について書きました。

Yesterday, I wrote about watching a play by the "Caramel Box".

で、今、その役者さんのことについて調べたいと思っているのですが、

And now, I'd like to find out about the actors, however,

を見ていても、これが、

このページの役者さんとリンクできなくて、困っています。

I'm having trouble linking to the actors on this page.

-----

で、キャラメルボックスさんにご提案なんですけどね、

So, I have a suggestion for the staff of the "Caramel Box".

■「ポスターに役者名を入れて貰う」っていうのは無理ですかね? 流石にプライド傷つきますかね。

- Is it possible to have the actors' names put on the posters? Would that hurt their pride?

では、

Or,

■「Web上でポスターの人物をクリックすると、その役者さんのページにジャンプするようなリンクを埋めこむ」

- When we click on a person on a poster on the Web, we will be taken to that actor's page.

とか言うのはどうでしょうか。ちょっと技術的に難しいかな。

I think it's a bit technically difficult.

それなら、

If so...

■「ポスターの役者さんの横に、QRコードをそっと書き込む」とかは?

How about "gently drawing QR codes next to the actors on the poster"?

ポスターの品質が台無しになる、と言われるかもしれません。

They might say that it will ruin the quality of your poster.

-----

昨日の舞台では、「内輪ネタで会場が大爆笑」していた中、私だけ笑うことができなくて、ちょっと寂しい思いをしました。

At the stage yesterday, I felt a little sad because I was the only one who couldn't laugh while the audience was "laughing hysterically at the inside jokes".

なので、今からでもフォローアップしたいと思っていまして。

So I wanted to follow up with them now.

劇団紹介のページは、舞台時の衣装の写真のものに差し替えて貰えると、私が役者ご本人を特定できて良いと思うですが ―― いかがでしょうか?

I think it would be better if you replace the introduction page with a photo of the actors in their stage costumes, so that I can identify them -- how about that?

2021/12,江端さんの忘備録

本日、家族全員で、劇団キャラメルボックスの「サンタクロースが歌ってくれた」を観劇してきました。

Today, my whole family went to see the play "Singin' with Santa Claus" by the Caramel Box Theater Company.

2019年5月に活動を休止したと連絡を受けた時には、『これから、我が家のクリスマスイベントはどうすればいいんだ?』と、うろたえたものです。

When I got the call in May 2019 that they had suspended their activities, I was stumped, 'What am I going to do about our family's Christmas events now?'

その後、キャラメルボックスの代替となる劇団が見つけられずに、江端家の冬の観劇イベントも休止を余儀なくされてきました。

Since then, we have been unable to find a replacement for Caramel Box and have been forced to suspend the Ebata family's winter theater events.

2年半ぶりの復活を聞きた時は、喜んだものです。

I was delighted when I heard that it was back after two and a half years.

-----

嫁さんから、今回の観劇の「希望する日時と時間」を尋ねられたのです、

My wife asked me for my "preferred date and time" for this play.

『仕事なんてどうでもいい。チケットが取れた時間が、私のスケジュールだ』

'You don't care about my work. The time we get the ticket is my schedule,'

と言い切りました。

I said.

-----

笑って、泣いて、これまで同様『外れのない』キャラメルボックスの舞台を、十分に堪能させて頂きました。

We laughed, we cried, and we fully enjoyed the stage performance of Caramel Box, which has never failed us.

うん、やっぱり、キャラメルボックスの演劇は最高です。

Yes, after all, Caramel Box plays are the best.

2021/12,江端さんの忘備録

三国志で(基本的には悪役で)登場する「曹操」は、人材マニアとして有名なようです。

Cao Cao", who appears (basically as a villain) in the Romance of the Three Kingdoms, seems to be famous as a human resources enthusiast.

武勇のみならず、芸術、技術に長じた者、そして、軍師なども片っ端から集めていたそうです。

He collected all kinds of people who were skilled in military valor, art, and technology, as well as military strategists.

しかし、私は、

However I think that

―― 軍師なんぞをたくさん集めて、どうするんだ?

"What was he going to do with a bunch of military strategists?"

と思うのです。

-----

軍師とは、軍を指揮する君主や将軍の、戦略指揮に助言を与える者のことです。

A military strategist is a person who advises the monarch or general commanding an army on strategic command.

そんなのがたくさんいて、それが異なった意見を言いあったら、君主や将軍は作戦立案で悩むだけだろう、と思うのです。

I think that if there were many such people, all of whom had different opinions, monarchs and generals would have a hard time planning their strategies.

ノルマンディ上陸作戦を立案したアイゼンハワー将軍は、『"私1人が作戦の最終決定者"という条件でなければ、作戦の指揮は引き受けない』と言ったそうです。

General Eisenhower, who planned the Normandy landings, said, "I will not accept the command of the operation unless I alone am the final decision-maker.

(これは裏を取れていませんが)、MicrosoftのWindowsOSのコアは、基本的に1ケタの人間のチームで作っている、という話も聞きました。

(I haven't been able to find any evidence of this.) I was also told that the core of Microsoft's Windows OS is basically built by a team of a few people.

-----

デスマーチに陥いったチームに人材を投入するのは組織の常道ですが、それは現場にどえらい混乱を与えます。

It is a common practice for organizations to put people into a team that is in a death march, but it causes a lot of confusion in the field.

新メンバの教育コストに、チームのリソースを持っていかれるからです。

This is because the cost of training new members takes up a lot of the team's resources.

私、一度、このような炎上したチームに投入されたことがあるのですが、何も命じられなかったので、何もしませんでした ―― 実に3ヶ月間。

I was put on such a flaming team once, but I didn't do anything because I wasn't ordered to -- for three months, actually.

この3ヶ月間で、私はLinuxカーネルのコードを、じっくりと勉強することができました。

Over the past three months, I have been able to study the Linux kernel code at length.

もちろん、定期報告会では、適当な作り話をでっち上げて、報告していましたが。

Of course, I had to make up some random story to report at the regular briefing.

-----

「曹操」に集められた軍師の大多数も、適当なことをやって 禄を食んでいたんじゃないかなー、と思っています。

I believe that the majority of the military strategists gathered by Cao Cao were also doing random things to earn their stipends.

だって、三国志に登場する曹操の軍師って、結局3人くらいしかおらず、大体その3人が作戦を提案していますから。

Because, after all, there are only about three military strategists for Cao Cao in the Romance of the Three Kingdoms, and those three are usually the ones who propose the strategy.

2021/12,江端さんの忘備録

先日、テレビを見ていたときのことです。

The other day, when I was watching TV, I heard the story.

『学生のころに、人気者だったり、成績が優秀だったり、異性にモテていた奴が、社会的に成功していない』

"The guys who were popular, got good grades, and were popular with the opposite sex in school have not been successful in society.

という話が出ていました。

私もかねてより、そう思っていましたので、『やっぱりそうなのか』と深く納得しました。

I had been thinking that way for a long time, so I was deeply convinced that it was true.

-----

私、この理由について、一つの仮説があります。

I have a hypothesis about the reason for this.

『学生のころに、人気者だったり、成績が優秀だったり、異性にモテていた奴は、学生時代の連続線上に、社会人の人生があると勘違いしてしまうから』

"Those who were popular, got good grades, or were popular with the opposite sex when they were in school will mistakenly believe that their working life is on the same continuum as their school days"

学生の頃のノリと軽さと要領良さは ―― もちろん社会人になっても役に立つことはあります。

Of course, being easy and smart in a college period, can come in handy in the working world.

しかし、社会人の人生は長いので、ノリと軽さと要領良さだけで、対応できる時間は短いのです。

However, the life of a working adult is long, so, being the time for easy and smart becomes short.

つまるところ、真面目、誠実、勤勉、そして粘り強いこととの方が、社会人としては重要です。

At the end of the day, seriousness, honesty, diligence, and persistence are more important for a working person.

なぜか。それは、それらに人間としての価値があるから ―― ではありません。

Why? It's not because they have value as human beings.

ぶっちゃけ、そんなことは、どーでも良いことです。

To be honest, it doesn't really matter.

一言で言えば、社会人は長期戦だからです。

In a nutshell, it is because working people have to fight a long-term battle.

長期戦を闘うパートナーが、ノリの軽さと要領良さだけの奴であれば、私が困るんです。

I'd be in trouble if my partner is just easy and smart in a long-term battle.

これを、私は「戦略としての誠実」と称呼しています。

I call this "integrity as a strategy".

-----

で、何が言いたいかというと、

So, what I'm trying to say is...

ノリの軽さ、要領良さもなく、そして、真面目、誠実、勤勉、粘り強さもない、この私が ――

I'm not easy, I'm not smart, and I'm not serious, honest, diligent, or tenacious.

『社会的に成功していない』というのは、極めて理にかなっているなぁ、と思っているだけです。

I just think that it is natural that "I'm not socially successful".

2021/12,江端さんの技術メモ

何だか分からんけど、動いたのでメモっておきます。

/C/Users/ebata/kese/VSC_C++_test

というディレクトリに、main.cpp とsub.cppを置く。

#include <stdio.h>

int sub(int, int);

int main() {
    int a = sub(2, 3);
    printf("%d\n", a);

    return 0;
}
#include <stdio.h>

int sub(int a, int b) {
    int c;
    c = a + b;

    return c;
}
  • 「Ctrl+Shift+P」 で、コマンドパレットを開く
  • 「C/C++: Edit configurations...」 を選択
  • 「.vscode」 フォルダの中に 「c_cpp_properties.json」 ファイルが作成される

c_cpp_properties.jsonは、以下のようになっている。

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "C:\\msys64\\mingw64\\bin\\gcc.exe",
            "cStandard": "gnu17",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "windows-gcc-x64"
        }
    ],
    "version": 4
}
  • 「Ctrl+Shift+P」 で、コマンドパレットを開く
  • 「Tasks: Configure Task」 を選択する
  • 「テンプレートから tasks.json を生成」 をクリック
  • 「Others 任意の外部コマンドを実行する例」 をクリック
  • 「.vscode」 フォルの中に 「tasks.json」 ファイルが作成される
  • 「tasks.json」 を下記のように変更する
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "sample",
            "type": "shell",
            "command": "g++",
            "args": [
                "-g",
                "main.cpp"
            ],
            "group": "build"
        },
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe アクティブなファイルのビルド",
            "command": "C:\\msys64\\mingw64\\bin\\g++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "sub.cpp" // ←ここがポイント
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "デバッガーによって生成されたタスク。"
        }
    ]
}
  • 「Ctrl+Shift+D」 でデバッグを実行する
  • 環境の選択のドロップダウンで、「C++ (GDB/LLDB)」を選択
  • 「.vscode」 フォルの中に 「launch.json」 ファイルが作成される
{
    // IntelliSense を使用して利用可能な属性を学べます。
    // 既存の属性の説明をホバーして表示します。
    // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++.exe - アクティブ ファイルのビルドとデバッグ",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\msys64\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "gdb の再フォーマットを有効にする",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "逆アセンブリ フレーバーを Intel に設定",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: g++.exe アクティブなファイルのビルド"
        }
    ]
}

こんな感じで出てくる。

現時点では動いたり動かなかったりと、安定していません。

2021/12,江端さんの技術メモ

「ファイル」 → 「フォルダを開く」でフォルダを選択すれば、settings.jsonが出てこなくなる

フォルダの中に、".vscode"のディレクトリがって、その中には、以下のファイルが入っていることも必要(多分)

Visual Studio Code C/C++ 検討中

 

2021/12,江端さんの忘備録

今週末は、コラム原稿締切前の週末 ―― 修羅場週末です。

This weekend is the weekend before the deadline for my column manuscript -- the Weekend of Carnage

次女へのインタビューメモの写真で、ご勘弁下さい。

Please bear with me as I only have pictures of my interview notes for my second daughter.

2021/12,江端さんの忘備録

■スマートシティはなぜ失敗し続けるのか

"Why do smart cities keep failing?"

■スマートシティにおいて、データ収集は悪なのか? トロントとサイドウォーク・ラボが失敗したワケ

"Is data collection a bad thing in smart cities? Why Toronto and Sidewalk Labs Failed"

■スマートシティ計画が“スマート”には進まなかった都市の教訓

"Lessons from cities where smart city plans did not go 'smart'"

などの、刺激的な題目の記事があります。

There are articles with provocative titles as the above.

私の私見ですが、その理由は「ITだから」だと思います。

In my opinion, the reason is "IT".

もっと簡単に言えば「何をやっているか分からないから」です。

To put it more simply, it's because "we don't know what they're doing".

-----

当然ですが、スマートシティをデザインしている人は、上空から都市を眺めるような「神の視点」で都市を把握します。

Naturally, those who design smart cities grasp the city from a "God's perspective," as if looking at it from air

しかし、スマートシティの利用者には、そのようなデザイン―― 文字通りの「トップダウン・デザイン」―― は見えません。

However, smart city users do not see such design - literally "top-down design" - as such.

そういう意味では、ビルとか、施設とか、交通機関とか、あるいは、庁舎・学校・公民館・博物館・テーマパークなどの「ハコモノ」と言われているものの用が、「何をやっているか」は分かります。

In this sense, we can understand what is being done in buildings, facilities, transportation, or "hakomono" such as government buildings, schools, community centers, museums, and theme parks.

さらに、利用者の視点で、それらの「失敗」と「成功」もクリアです。

In addition, those "failures" and "successes" are also clear from the user's perspective.

なにより、「失敗」した場合に、責め立てる相手(個人も法人も)が明確になる点は、大きいです。

Above all, it is important to clarify who to blame (both individuals and corporations) in case of "failure".

-----

スマートシティは、その効果を明確に言えば、利用者の理解も得られると思います。

I believe that smart cities can be understood by users if their effects can be clearly stated.

例えば、

For example.

「私たちの街の利用エネルギーを半分にするけど、移動サービスは現状のまま維持できます」

"We'll cut our city's energy use in half, but we'll still be able to maintain our mobility services."

とか、

or

「この街では、自家用車を持たなくても問題なく生活できる街です」

"In this city, you don't need to have your own car to get by"

とか、「利用者側の言葉」で、ちゃんと言えるモノにすれば良いのです。

It is enough if they can say it properly in the "user's language".

-----

ただ、スマートシティのサービスプロバイダが「行政」になるという点が面倒なのです。

However, the fact that the service provider for smart cities will be the "government" is troublesome.

『市役所の人数を半分にしますが、行政サービスは現状のまま維持できます』

"We will halve the number of people at City Hall, but maintain the current level of government services."

と、市役所の人自身に言わせることができるか。

The question is, can they say the above phrase to the people at city hall themselves?

スマートシティを推進すると、スマートシティを推進する人たちの首を締める ――

Promoting smart cities strangles the people who promote smart cities --

ここに、スマートシティのジレンマがあります。

This is the dilemma of smart cities.

未分類

#include <stdio.h>

int main() {
    printf("Hello World\n");
    return 0;
}

■launch.json

{
    // IntelliSense を使用して利用可能な属性を学べます。
    // 既存の属性の説明をホバーして表示します。
    // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++.exe - アクティブ ファイルのビルドとデバッグ",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\msys64\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "gdb の再フォーマットを有効にする",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "逆アセンブリ フレーバーを Intel に設定",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: g++.exe アクティブなファイルのビルド"
        }
    ]
}

■task.json

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "hello",
            "type": "shell",
            "command": "g++",
            "args": [
                "-g",
                "hello.cpp"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            {
                "type": "cppbuild",
                "label": "C/C++: g++.exe アクティブなファイルのビルド",
                "command": "C:\\msys64\\mingw64\\bin\\g++.exe",
                "args": [
                    "-fdiagnostics-color=always",
                    "-g",
                    "${file}",
                    "-o",
                    "${fileDirname}\\${fileBasenameNoExtension}.exe"
                ],
                "options": {
                    "cwd": "${fileDirname}"
                },
                "problemMatcher": [
                    "$gcc"
                ],
                "group": "build",
                "detail": "コンパイラ: C:\\msys64\\mingw64\\bin\\g++.exe"
            }
        ]
    }

■c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
                "C:\\msys64\\mingw64\\include"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "C:\\msys64\\mingw64\\bin\\gcc.exe",
            "cStandard": "gnu17",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "windows-gcc-x64"
        }
    ],
    "version": 4
}