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

こちらにも書きましたように、

As I wrote here,

「VOYAGER~日付のない墓標」

"VOYAGER: Tombstone Without a Date"

を聞きたい一心で、先程、Amazon Primeで、シンエヴァンゲリオン劇場版を見ました。

I just watched the Shin-Evangelion movie version on Amazon Prime because I wanted to hear the song.

(コーディングしながらの流し視聴だったのですが、2つほどコードの懸案点をクリアできました)

(I watched the video while coding, but I was able to clear up a couple of code concerns.)

まあ、結局ところ、私には、この世界的マスターピースのアニメを、最後の最後に至るまで、1mmも理解できないままでした。

Well, as it turns out, I didn't understand a single millimeter of this global masterpiece of animation until the very end.

私に理解する受容体がないのは残念なことですけど、まあ、仕方ないですよね。

It's a shame that I don't have the receptors to understand, but I can't help it.

-----

似たような話 ―― という訳でもないのですが、最近、私は、小松左京先生の「果てしなき流れの果に」の、十何年かぶりの、何十回目かの再読をしました。

On a similar note, I recently re-read Sakyo Komatsu's "The End of the Endless Stream" for the umpteenth time in as many years.

最終章に登場してくる、主人公の執筆した『時間と認識』のメモの一節が登場してきて、あまりもの懐しさに、うずくまりそうになりました。

When a section of notes from Time and Awareness, written by the main character, appeared in the last chapter of the book, I felt so nostalgic that I almost swooned.

私は、この一節を、大学の自治寮の自室の壁に書き殴ったのでした。

I scribbled this passage on the wall of my room in the university dormitory.

思えば、あれが、私の「時空間」への傾倒の原点でした。

Looking back, that was the starting point of my devotion to "time and space.

そして、それが、最近の量子力学に関するコラムの内容に繋っているかと思うと、しみじみと感じ入るものがあります。

And when I think of how this is connected to the content of my recent column on quantum mechanics, I am deeply moved.

-----

そして、エピローグの「50年間眠り続けた正体不明の遭難者が、2016年に目覚める」というシーンで、虚を突かれた思いがしました。

Then, in the epilogue scene, "An unidentified person in distress who has been asleep for 50 years awakens in 2016," I felt like I had been struck dumb.

―― 「果てしなき流れの果に」の初稿が、私の生前であったということ。

-- the first draft of "The End of an Endless Stream" was written before I was born

―― この本を最初に読み終えたのが、高校2年生の1人ツーリングのテントから出た時の、東の地平線から直撃する態様の光線と、私の足元に広がる雲の絨毯の中であったこと。

-- The first time I finished this book was when I left my tent as a high school sophomore touring alone, with rays of light in the form of a direct hit from the eastern horizon and a carpet of clouds spread out at my feet.

―― そして、当時は想像もし得なかった『2016年』という"途方もない"未来の時空を、越えて、今、私が存在し続けていること

-- And that I continue to exist now, beyond the "tremendous" future time and space of "2016," which was unimaginable at the time.

その事実に、戸惑い、狼狽えています。

I am confused and bewildered by this fact.

-----

「果てしなき流れの果に」の映像化は、して欲しいとは思うのですが、私のなかの『ルキッフ《あらゆる変化のベクトルに対する抵抗力の形象化・・・》』が、それを止めようとしています。

I'd like to watch "The End of the Endless Stream" made into a film, but the "Lukif" in me is trying to stop me from doing so, that is the embodiment of resistance to all vectors of change...

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

先日の実家の帰省で、実に1年ぶりの庭の除草作業をしました。

During a recent visit to my parents' house, I weeded the garden for the first time in a year.

1年前に、庭全体に防草シートを敷設したのですが、防草シートの間隙を狙って、あるいは、防草シートを破って草が生えていました。

A year ago, we installed weed control sheets over the entire garden, but grass was growing in the gaps between the sheets or even through them.

この環境の中で生えてきた草は、樹木のような太さのようになっていました。実際、チェーンソーを使わなければ、切断できないような、凄い草が生えていました。

The grass that grew in this environment was like the thickness of a tree. In fact, there was such awesome grass that we had to use a chainsaw to cut it.

帰省した日の夕方から、チェーンソーを振り回していたのですが、突然背後から、不気味な音が聞こえてきて、一目散に逃走しました。

I had been wielding a chainsaw since the evening of the day I returned home, when suddenly, from behind me, I heard an eerie sound and fled at once.

―― 蜂、アシナガバチ

"bees, polistes wasp"

今回の帰省前に、すでに姉が、このスプレーを使って、2つの巣を撃退したと聞いていたので、やつらの登場は予想外だったのです。

I had heard that my sister had already repelled two nests using this spray before I returned home this time, so I was not expecting their appearance.

よく探したら、軒下に掌(てのひら)サイズの蜂の巣が見えました。

I looked carefully and found a palm-sized beehive under the eaves.

これは危険だ、と思ったので、その日は、軒下に蚊取り線香を2つ突っ込んで、撤収しました ―― そして、これが大失敗でした。

I thought this was dangerous, so that day I put two mosquito coils under the eaves and left -- and this was a big mistake.

-----

翌日の早朝、上記のスプレーの20秒程度の連続噴射によって「全滅」を確信して、その後、一眠りして、朝の10時から作業を開始しました。

Early in the morning of the next day, I was convinced that I had been "annihilated" by the 20-second continuous spray of the above-mentioned spray gun, then slept a wink and started work at 10:00 in the morning.

そして、私が作業を開始すると、庭に10匹以上の蜂が、空中に留まって、私を攻撃する体制に入っていました。

And as I started to work, there were more than 10 bees in the garden, staying in the air and ready to attack me.

これは、前日の蚊取り線香によって、主力の蜂を巣の外に待機状態にさせてしまった、私の失態でした。

This was my fault, as the mosquito coils of the previous day had left the main bees in a waiting state outside the hive.

で、どうしたかというと ―― 左手で草取りの作業をしながら、右手でスプレーガンを保持して、襲ってくる蜂を、空中で迎撃するという、「対蜂決戦型の草取り」という、経験したこともないバトルモードの草取りを行いました。

So, what I did was -- while weeding with my left hand, I held the spray gun with my right hand and intercepted the attacking bees in the air, a battle mode of weeding that I had never experienced before, "bee fighting weeding".

作業効率、悪いったらありゃしませんでした。

The work efficiency was not good at all.

アフガニスタンに駐留していた米軍が、誤って友軍の自動車を、機関銃で蜂の巣にした事件のことを思い出しました。

-----

It reminded me of the incident where the U.S. troops stationed in Afghanistan accidentally turned a friend's car into a beehive with their machine gun.

さらに、その後、草をゴミ袋に詰めている最中に、別の蜂の巣を見つけました。

And later, while packing the grass into a garbage bag, I found another beehive.

今度は、私、同じ愚は犯しませんでした。

This time, I didn't make the same mistake.

一気にスプレーガンを噴射し、反撃の気配がないことを確認したのち、蜂の巣の下に、火を付けた新聞紙を投入し、そこに再度、スプレーガンを噴射し、即席の火炎放射器で、蜂と蜂の巣を一瞬で灰にしました(*)。

I sprayed the spray gun at once and made sure there was no sign of a counterattack. After that, I threw some lit newspaper under the hive and sprayed it again with the spray gun. With this improvised flamethrower, I reduced the bees and the hive to ashes in an instant (*).

(*)素人さんは絶対にマネしないで下さい。私は、小学生の頃から、各種の薬品を使った燃焼や爆破を繰返してきた「火遊び」のエキスパートです。

(*) Amateurs, please do not try this. I am an expert in "playing with fire," having repeatedly burned and blown up things with various chemicals since I was in elementary school.

この攻撃を最後に、庭に蜂は見当らなくなりました。

After this attack, there were no more bees in the garden.

-----

コロナウイルスも、テロリストも、そして、蜂も ―― 時間を与えず一つたりとも残さずに一気に殲滅する。

The coronavirus, the terrorists, and the bees -- all to be eradicated in an instant.

この重要性を、今回の庭のメンテナンスで再確認しました。

The importance of this was reconfirmed during this garden maintenance.

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

背理法という考え方があります

There is a method of proof called "reductio ad absurdum."

ある命題 P を証明したいときに、P が偽であることを仮定して、そこから矛盾を導くことによって、P が偽であるという仮定が誤り、つまり P は真であると結論付けることです。

When you want to prove a proposition P, you assume that "P is false", and by deriving a contradiction from it, you conclude that the assumption that "P is false is false", i.e. "P is true".

さて、ここで、

Now, here we go,

(1)「新型コロナウイルスは存在し、COVID-19という病気がある」を偽であると仮定します。

(1) Assume that "new coronaviruses exist and there is a disease called COVID-19" is false.

と、ここまで書いて・・・もう、疲れたのでやめます。

And now, after writing all this... I'm tired, so I'll stop.

そもそも、背理法を知っている人なら、こんなアホな話をする必要もないからです。

The reason is that if you know the "reductio ad absurdum" in the first place, I don't need to talk about this stupid stuff.

話を替えます。

Let me change the subject.

-----

私、権力(警察)が陰謀で犯人をでっちあげた事件の関係者であったことがあります。

I was once involved in a case where the authorities (police) conspired to make up a criminal.

政府が ―― 恣意的か、あるいは無知(この場合「情報不足」も含む) ―― デタラメな情報を流して国民を危険にさらした事件も知っています。

I also know of incidents where the government has put people in danger by spreading bullshit information -- either arbitrary or ignorant (including "lack of information" in this case).

そもそも、私たちは、80年前の太平洋戦争の「大本営発表」という名の、国家の陰謀を知り尽して(教育されて)来ています。

In the first place, we are all familiar with (and have been educated about) the national conspiracy of the Pacific War of 80 years ago, called the "Great Headquarters Announcement.

それ故に『国家を信じるなら、半分くらい』という我が国の国民のスタンスは、上記の経緯を鑑みると「やむをえない」と思っています。

Therefore, I believe that the stance of the people of our country to 'half trust the state' is 'unavoidable' in light of the above history.

ただ、『残りの半分は、自力で調べる(勉強する)』という人が、もの凄く少ないことも知っています。

However, I also know that there are very few people who "do the other half of the research (study) on their own."

-----

私は、『陰謀』とか『謀略』とかのマネージメントが、かなり難しいことも知っています。

I also know that the management of 'conspiracies' and 'plots' is quite difficult.

関係者の数や層にも因りますが、少数で、狭い組織(会社とか政府とか)に属していないと、簡単に秘密が漏洩してしまうからです。

Depending on the number and demographics of the people involved, it is easy for secrets to be leaked if they are few and do not belong to a narrow organization (such as a company or government).

これは、簡単な計算で出せます。

This can be produced by a simple calculation.

例えば、10人、100人、1000人のグループにおいて、「陰謀の秘匿の困難性が、それぞれ10倍になる」と思っている人 ―― もう一度、中学の数学(確率、指数)をやり直して下さい。

For example, if you think that the difficulty of concealing a conspiracy is 10 times greater in a group of 10, 100, or 1,000 people, you need to go back and redo your math (probability, exponents).

ましてや、全国民(全世界)の全ての世代に対して、大規模な『陰謀』とか『謀略』は、絶望的に難しいです。

In addition, it is hopelessly difficult to have a large-scale "conspiracy" or "plot" against all generations of all people (all over the world).

感染症に関して言えば、「一つの村」を封鎖して、全員を殺害して焼却処分する、というような話なら、私は信じる余地があります ―― これなら、権力によって隠蔽できる範囲だと思えるからです。

As far as infectious diseases are concerned, I can believe in something like sealing off "one village" and killing and incinerating everyone. Because this seems to be a range that can be covered up by power.

日本国民全員に係わる事項について ―― 例えば、感染者数とか、病床数数とか、感染死亡者数とかを、隠蔽したり改竄したりするのは「超絶に難しい」、というか、はっきり言って「無理」。

It is "extremely difficult" or, to put it bluntly, "impossible" to conceal or falsify the number of infected people, the number of hospital beds, or the number of infected deaths, for example, in matters that concern all Japanese citizens.

もし、できたとしても、もの凄い人間が係わって、膨大な金がかかるでしょう。

Even if it could be done, it would take a lot of people and a lot of money.

で、その人と金は、どこから出てくるのか、そして、何より「何の為に、そんなことをするのか」という合理的な仮説すら立てられません。

So where do the people and money come from, and most importantly, I can't even make a rational hypothesis as to why they would do such a thing.

-----

結論としては、

In conclusion, I think that

『陰謀』が"ない"とは言わないが(というか普通に"ある"と思うが)、このCOVID-19に関する事項に限っては、『陰謀』を企てる"理由がない"し、理由があったとしても"コストが見合わない"

I'm not saying there aren't conspiracies (I'm sure there are), but in the case of this infectious disease, there is no reason to conspire, and even if there were, the cost would not be worth it.

が、私の答えです。

まあ、「背理法」の解説するより、こっちの方がラクかな、と思いまして。

Well, I thought this would be easier than explaining the "reductio ad absurdum."

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

実家の亡き父の自動車の廃車に伴って、今回の帰省からレンタカーを借りることにしました。

With the scrapping of my late father's automobile, I decided to rent a car from this trip home.

2200円/日、という格安のレンタカーです。保険フル対応にしても、2日で7700円なので、かなり安いです。

This is a cheap rental car that costs 2200 yen/day. Even with full insurance, the price is 7700 yen for two days, which is quite cheap.

ただ、レンタルした軽自動車は、喫煙車(そっちの方が安かったので)で、ヤニの匂いはしましたが、私は、煙の匂いが嫌いなだけですので、問題はありませんでした。

However, the mini-car I rented was a smoking car (because it was cheaper) and it smelled of nicotine, but I just don't like the smell of smoke, so it was not a problem.

外装の傷も、そこらにあり、説明の際にも「まあ、ちょっとくらい傷つけても構いません」とまで言われました。

There were also a number of exterior scratches on the body of the car, and when explaining the situation, he even said, "Well, we don't mind if you damage it a little bit.

乗り心地は、『今、カブールで走っている日本車って、こんな感じかもしれんなあ』というくらいでした ―― が、別段文句はありません。

I thought the ride was about the same as a Japanese car driving in Kabul right now -- but I have no complaints.

熱射病にならずに、買い物したり、病院に行けるのであれば、何の文句もありません。エアコンもついていましたしね。

If I could go shopping or to the hospital without getting heatstroke, I would have no complaints. It even had air conditioning.

先程、レンタカーの返却に行ってきたのですが、事務所に鍵がかかっていました。

I just went to return the rental car, but the office was locked.

ドアに『ここに電話してくれ』と記載されていたので、連絡して、暫く待っていたら、コールバックがきて、言われました。

The sign on the door said, 'Call me here,' so I called, waited a while, got a callback, and was told.

―― 鍵を自動車に差したままにして、立ち去って下さい

"Please leave the keys in the car"

と言われて、びっくりしました。

I was surprised to hear that.

『本当にいいんですか』(盗難されてもしらんぞ)

"Are you sure you want to do this?" (I don't care if it gets stolen.)

と返したのですが、

I said that, however he also said to me

『構いません』

"No problem."

と言われたので、言うがまま、立ち去ってきました。

So, I did as he told me and walked away.

-----

ただ、これは、ビジネスモデルとしては、なかなか良いところを攻めている、と思いました。

However, I thought that this was a good business model that was attacking a good point.

「カーブルで走っている」ランクの車が盗まれる可能性と、

The possibility that a car with the rank of "running on kerbals" could be stolen,

事務所を不定期にクローズするオペレーションを勘案すれば、

with the irregularity of the office closing operations,

損益分岐点は、意外なところにあるのかもしれない、と思いました。

the break-even point might be in an unexpected place, I thought.

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

(昨日の続きです)

(Continuation from yesterday)

全世界70億人全員参加の世界大戦 ――

A world war involving all 7 billion people in the world.

僅か1年間で"mRNAワクチン"を生み出した人類(米国の医薬会社)に対して、わずか1年で、感染力を数倍以上にして反攻を試みてきたウイルス。

In just one year, the virus has multiplied its infectious power several times over in an attempt to counterattack humanity (a U.S. pharmaceutical company), which has created an "mRNA vaccine" in just one year.

私達は、今、まさに、人類史上例のない、大規模な戦争の真っ只中にいる訳です。

We are in the midst of a war of unprecedented scale in human history.

そして、やつら(ウイルス)が、さらなる強毒化する変異株を作り出す前に、人類は、隔離予防ととワクチン接種で、やつらを殲滅しなければならないのですが ――

And humanity must eradicate them with quarantine precautions and vaccinations before they (the whistles) create even more virulent mutants.

そんな中にあって、

In the midst of all this,

ウイスル側の強毒化をサポートする人類も、一定数いる訳ですよ。それが、『感染予防を行わず、ウイルス接種を拒否する人間』です。

There are also a certain number of humans who support the virus in becoming more poisonous. That is the person who does not take precautions against infection and refuses to be vaccinated against the virus.

ワクチン接種がされていない人間の体は、変異株を作る最高の実験環境です。

The unvaccinated human body is the perfect laboratory environment for creating mutant strains.

それをウイルス側に差し出している訳ですから、彼ら(ウイルス)にとっては「素晴しい献体の提供」です。

Since they are offering their bodies to the virus, they are "wonderful donations" for them (the virus).

で、その「素晴しい献体」のおかげで、ついに、変異株は「子どもを殺す」フェーズに突入しつつあります(多分、時間の問題かと思います)。

Thanks to that "wonderful donation", the mutant strain is finally entering the "kill children" phase (maybe it's just a matter of time).

-----

ワクチン接種を拒否する人には、その人たちなりの理由ががあるでしょう。

People who refuse to be vaccinated have their own reasons for doing so.

「接種後の高熱等の副反応が辛そうだ」というのは、もっともだと思います。

"I think it's fair to say that "adverse reactions such as high fever after inoculation may be painful.

「科学的根拠のないフェイクニュースを信じる」のも結構です。

It's also fine to "believe fake news with no scientific basis."

また「健康に自信がある」といいって、インフルエンザンの1500倍の感染力と40倍以上の死亡率に立ち向うのも自由です ―― 私は、嗤っちゃいますけどね。

You are also free to claim to be "confident in your health" and stand up to a flu that is 1,500 times more contagious and 40 times more deadly. -- I'm going to laugh at you, though.

それどころか、もしかしたら、数年後に、mRNAワクチンに凄い副反応が発生して、接種した人の殆どが死亡して、70億人の人類が10億人になっているかもしれません。

On the contrary, maybe a few years from now, there will be a huge adverse reaction to the mRNA vaccine, and most of the people vaccinated will die, and the 7 billion human population will be reduced to 1 billion.

『誰もいなくなった新宿歌舞伎町の中で、一人高笑いする』という終末は、(私にとっても)見てみたい未来の一つです。

The end of the world, "I can laugh alone in the empty streets of Shinjuku Kabukicho" is one of the futures that I would like to see.

-----

確定できない未来を『盾』に取られれば(理由にされてしまうのであれば)、「ワクチン接種を拒否した人が正しかった」という未来は来ないとは、言えないでしょう ――

If an indeterminate future is used as a shield (or reason), it is hard to say that a future in which "those who refused to be vaccinated were right" will not come.

『人工知能が、人類を破滅させる』と信じている人を、私がどんなに事実と論理と実例で説得しても無駄だったように。

Just as no amount of facts, logic, and examples could persuade those who believe that artificial intelligence will destroy the human race.

個人的な信念(というか感情)に対して、ロジックや理論は、その受容体を持たない人には、全く無力です。

Logic and theory are completely powerless against personal beliefs (or rather, emotions) to those who do not have the receptors for them.

-----

ただ、それらを全て考慮したとしても、「隔離予防ととワクチン接種」を行わない人間の人体が、新型コロナウイスルの変異株の製造培養となっている ――

However, even if all of these factors are taken into account, the human body without "quarantine prophylaxis and vaccination" has become the manufacturing culture for the mutant strain of the new coronavirus.

これだけは、否定できない絶対的な事実です。

This much is an absolute fact that cannot be denied.

どのような未来が来ようとも、『その批判からは、絶対に逃げられない』ことだけは、覚悟しておいて下さい。

No matter what the future brings, just be prepared that you will never be able to escape the criticism.

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

母の施術の付き添いの為、本日から帰省中です。

I'm back home today to accompany my mother for her treatment.

今年は、正月も、GWも、夏季休暇も帰省できなかったので、今回の実家のメンテナンス(主に、庭の草取り)は凄いことになりそうです。

This year, I couldn't go back home for New Year's, Golden Week, or summer vacation, so this maintenance of my parents' house (mainly weeding the garden) is going to be a big deal.

昨年の夏、十二分な熱中症対策をして、なお、熱中症の初期症状になりかけたのを思い出しました。

Last summer, I took more than enough measures to prevent heat stroke, and yet, I still had the early symptoms of heat stroke.

今回は、風呂桶に水が入っているのを確認して、庭のメンテにかかろうと思います。

This time, I'll make sure the bath tub is filled with water and get on with the garden maintenance.

-----

昨年と同様、首都圏在住の住民は、どの地域でも、歓迎されていないと思います。

As with last year, residents of the Tokyo metropolitan area are not welcome in any part of the country.

ただ、現在においては、首都圏以外への移動も、正直「怖い」です。

However, at present, I am honestly "scared" to move outside of the Tokyo metropolitan area.

変異株(デルタ株)の感染力が凄過ぎて、怯えています。

The infectious power of the mutant strain (Delta strain) is so great that I am frightened.

少数の人間を除き、国民の大半は、新型コロナウイスルに関する基本的対応を実施していると思いますが、

I think the majority of the population, with the exception of a few people, has implemented a basic response to the new coronavirus.

私のざっくり計算では、初期の新型コロナウイルスの感染力は、インフルエンザの、1500倍(2020年のインフルエンザ発症率が、1/1000だったから)です。

According to my rough calculation, the infectivity of the initial new coronavirus is 1500 times higher than that of influenza (since the incidence of influenza in 2020 was 1/1000).

インフルエンザと比較した場合の死亡率は40倍以上です(100倍という試算結果もあります)。

The mortality rate compared to influenza is more than 40 times higher (some estimates put it at 100 times higher).

ところが、デルタ株の感染率は、初期の新型コロナウイルスの感染力の2倍以上(4.5倍以上という計算も可能です)。

However, the infection rate of the delta strain is more than twice as high as that of the initial new coronavirus (it can be calculated to be 4.5 times higher).

加えて、ワクチン接種(ファイザー社)でも、感染防御率43%しか効果がないという報告もあります。

In addition, there are reports that vaccination (Pfizer) is only 43% effective in protecting against infection.

-----

私、すでに2回のワクチン接種を終えていますが、去年よりも警戒度は高いです。

I have already completed two vaccinations, but my alertness is higher than last year.

今回の帰省では、親戚は勿論、姉や母とも会話する予定がありません。

I don't plan to talk to my sister or mother, let alone my relatives, during this trip home.

完全無欠の『たった一人の実家メンテナンス + 母の施術介助』に徹する予定です。

I'm planning to devote myself completely to "the maintenance of my parents' house by myself + my mother's treatment assistance".

-----

以前、私のコラムの中で「いずれは弱毒化」という記載をしましたが ―― もちろん、それは間違っていないはずですが ―― 1年という超短期タームにおいては、「恐しい強毒化」が進んでいます。

In my previous column, I mentioned that "eventually it will weaken" -- and of course, I'm sure I'm not wrong -- but in the very short term of one year, it is becoming "horribly poisonous.

このウイルスの強毒化の原因は、人間側からの「ワクチン攻勢」も一因に上げられると思います。

I believe that one of the reasons for the increasing virulence of this virus is the "vaccine offensive" from the human side.

「感染防御率95%」という、人類史上例のない高効率のワクチンが、世界中で何十億の人間に接種されている ―― これは、ウイルス側からは、史上例のない敵対勢力による殲滅戦が展開されている、と、見えるでしょう。

"Billions of people around the world are being inoculated with a vaccine that has a 95% protection rate against infection, an unprecedented level of efficiency in human history. From the viral side, this would appear to be an unprecedented war of annihilation by hostile forces.

新型コロナウイルスは、「弱毒化」による人類との共存戦略を断念し、「強毒化」戦略に舵を切った、と見なすべきでしょう。

The new coronavirus should be regarded as having given up its strategy of coexisting with human beings through "weakening" and has turned to a "strengthening" strategy.

(続く)

(To be continued)

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

Windows10のgolangのバージョンを上げる為に、古いバージョンをアンインストールして最新版(go version go1.17 windows/amd64)をインストールしました。

ところが、

// client.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")

で、こんなエラーが出てきます。

$ go run client.go
client.go:19:2: no required module provides package github.com/gorilla/websocket
: go.mod file not found in current directory or any parent directory; see 'go he
lp modules'

で、まあ、これは、いつものアレだな、と思い、

$go get github.com/gorilla/websocket

を対応したのですが、どういう訳か、このエラーが取れません。

ebata@DESKTOP-P6KREM0 MINGW64 ~/dummy/go_echo
$ go mod init go_echo  ← "go_echo"という名前にしたのは、ディレクトリ名に合わせただけ
go: creating new go.mod: module go_echo
go: to add module requirements and sums:
go mod tidy

で、

ebata@DESKTOP-P6KREM0 MINGW64 ~/dummy/go_echo
$ go get github.com/gorilla/websocket
go get: added github.com/gorilla/websocket v1.4.2

として、中を調べてみたら、こんな感じになっていました。

ebata@DESKTOP-P6KREM0 MINGW64 ~/dummy/go_echo
$ more go.mod
module go_echo

go 1.17

require github.com/gorilla/websocket v1.4.2 // indirect

で、まあ、以下のように動作を確認できました。

ebata@DESKTOP-P6KREM0 MINGW64 ~/dummy/go_echo
$ go run client.go
connecting to ws://localhost:8080/echo

よく分かりませんが、どうやら動かし方が変ったようです ―― 面倒くさいですけどね

さて、加えて、Visual Studio Code で、Golangのプログラムのデバッグですが、こっちも上手く動かなくなっていて、困っています。

で、今あきらかなことは、(1)上記のgo.modを作ることと、(2)1つのディレクトリに中には1goファイルを1つだけ入れること、そして、(3)setting.jsonを作ることです。

ebata@DESKTOP-P6KREM0 MINGW64 ~/dummy/go_test
$ more setting.json

{
    "go.gopath" : "C/go"
}

私の場合、C:\goにインストールしているので、上記のように記載しています。

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

私は、あらゆる、専制的、独裁的な国家が嫌い(×批判)です。

I hate (not "criticize") any, tyrannical, autocratic state.

その中でも、ポルポト、チャウチェスク、毛沢東、ナチス、が突出して嫌いです。

Among them, I dislike Pol Pot, Ceau Chesco, Mao Zedong, and the Nazis.

こいつらは、全部「子どもを利用した」からです。

Because these guys took advantage of the children.

ポルポトは、家族を引き裂いて、子どもを国家の施設にまとめて突っ込みましたし、チェウチェスクも同様のことをしました。

Pol Pot tore families apart and thrust their children together into state institutions, and Ceau Chesco did the same.

毛沢東は、文化大革命という「狂った内乱」を作り出し、思想的に未成熟な若者を暴徒(革命戦士(?))にすることで、自己の権力を保持しようとしました。

Mao Zedong tried to maintain his power by creating a "crazy civil war" called the Cultural Revolution and turning ideologically immature young people into mobs (revolutionary fighters?).

ナチスは、国内の子どもの洗脳によって、ヒトラーユーゲントという狂信的な少年兵を作り出しました。

By brainwashing children in Germany, the Nazis created a fanatical boy soldier named Hitlerjugend.

-----

家族とは、子どもを保護して、成人にさせるまでの養育プロセスを、金銭的利害とはかけ離れた観念『愛情』で行う実施主体です。

The family is the entity that carries out the process of protecting and nurturing a child to adulthood with a concept of "love" that is far removed from financial interests.

国家ごときに、ましてや、権力闘争に明け暮れる腐った為政者の手に、子どもを渡してなるものか ―― と、そう思っています。

I don't want my child to be in the hands of the state, much less corrupt politicians who spend all their time fighting for power.

-----

そう思ってはいるのですが ―― 『家族が子どもを殺している』という事実の前に、呆然と立ち竦みます。

I'm thinking it, however I'm stunned by the fact that family is killing their children.

児童虐待 昨年度“20万件超” 過去最多 厚労省まとめ

"Ministry of Health, Labor and Welfare reports record number of child abuse cases, over 200,000 last fiscal year"

「虐待死57人、約半数が0歳児」の前に声を失います。

I was stunned that "57 abusive deaths, about half of them of 0-year-olds.

-----

「育児のストレス」、特に「子どもに対する怒り」というのは、理解できます。

"I understand the stress of raising children, especially the anger towards them.

正直に言って、あれは『愛情』なんぞを100倍の係数で軽く越える『憎悪』です。

Honestly speaking, that is "hatred" that surpasses "love" by a factor of 100.

―― この子を殺して、ぐっすり眠りたい

"I want to kill my baby, and get a good night's sleep"

と、一度も思ったことがない親がいたとしたら、是非お目にかかりたいものです。

If there are any parents who have never thought about such things, I would like to meet them.

『育児は拷問である』は、『介護は地獄である』と同様に真実です。

"Parenting is torture" is as true as "Caregiving is hell".

ただ「育児拷問(睡眠系に限れば)」は、時限付きです。どんなに長くても2年。

However, "childcare torture (as long as it is sleep-related)" is timed. Two years at the most.

その日は、突然、靄(もや)が晴れるようにやってくきます。それは、お約束できると思います。

That day will come like a sudden clearing of the haze. I can promise you that.

どうか、その日を信じて、自分の子どもを殺す(あるいは虐待する)のは、留まって下さい。

Please believe in that day, and stay away from killing (or abusing) your own children.

-----

閉じられた密室の中で、子どもが殺されたり、虐待されている日常と比べれば

Compared to the daily life where children are killed or abused in a closed, locked room.

『まだ、ポルポトの方がマシなのか』

"Was Pol Pot still better?

などと、私に、一瞬でも思わせるようなことは、どうか勘弁して下さい。

Please don't make me think, even for a moment.

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

最近、次女がバイト先から持ち返ってくる、食料(パン、おにぎり、弁当)が、一人で自宅勤務を続ける私の食事(昼食)となっています。

Lately, the food (bread, rice balls, and lunch boxes) that my junior daughter brings back from her part-time job has become my meal (lunch) as I continue to work alone at home.

―― もう気分は、被介護人

"I'm already in the mood to be a  care-receiver"

私は、簡単な軽食なら、サクッと作ってしまいます。

I can make a light meal if it's simple.

江端:「で、持ち返らない弁当はどうなるんだ」

Ebata: "And what happens to the lunches that you don't bring back?"

次女:「ん? 普通に廃棄でしょ?」

Daughter:"The lunch will be discarded"

という一言が、決め手でした。

That's what made up my mind.

-----

「食材を捨てる」というのが、私は、どうにもダメでして。

I just can't get over the whole "throwing away food" thing.

最近は、フードロスのブームもありまして、野菜の皮を剥く作業も省略するようにしております。

Recently, there has been a boom in food loss, and I am trying to skip the process of peeling vegetables.

というか、そもそも「野菜の皮」は、本質的に『旨い』です。

I mean, to begin with, "vegetable skins" are essentially "delicious".

最近の私のブームは、じゃがいもやニンジンの皮を剥かずに、カレーに突っ込んでいますし、ネギやほうれんそうも、ヘタっている部分以外は、全部使い切ります。

My latest craze is to shove potatoes and carrots into curry without peeling them, and to use up all the leeks and spinach except for the sticky parts.

りんごは皮の部分が美味しいので、丸ごと食べますし、最近は、長女に、梨の丸かじりがイケていることを教えて貰いました。

I eat apples whole because the skin part is delicious, and recently, my senior daughter taught me that biting into a whole pear is a good idea.

料理の手が抜けて、かつ、美味しい。

The food is both easy to cook and delicious.

皮付き野菜、皮付き果物、是非お試し下さい ―― そもそも、「皮を向いて食べる」などという風習は、ごく最近(数百年間程度)の、ちょっとした「意識高い系」のトレンドです。

Vegetables with skins, fruits with skins, please try them -- to begin with, the custom of "eating with the skin on" is a very recent (a few hundred years or so) and somewhat "conscious" trend.

そのような軽佻浮薄(けいちょうふはく)な風俗は、今世紀中に終えてしまいましょう。

Let's end such frivolous customs in this century.

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

// position_log_sample.go

// position_logから座標情報を読み出すサンプル (要pq)

// go get github.com/lib/pq

package main

import (
	"fmt"
	"os"

	"database/sql"

	_ "github.com/lib/pq"
)

const port int = 8910 // DBコンテナが公開しているポート番号

func trackUser(db *sql.DB, userID int, dateIndex int) {
	// SQLステートメント
	sql := "SELECT id, to_char(time, 'HH24:MI:SS'), x, y, satisfaction FROM position_log "
	sql += " WHERE date_index = $1 AND user_or_bus = 'USER' AND id = $2;"
	prepared, err := db.Prepare(sql)
	rows, err := prepared.Query(dateIndex, userID)

	if err != nil {
		fmt.Printf("error : %v", err)
		os.Exit(1)
	}

	fmt.Printf("time, x, y, satisfaction (userID: %v)\n", userID)
	for rows.Next() {
		var id int
		var timestr string
		var x float64
		var y float64
		var satisfaction float64 // 満足度・現実装では、リクエスト発行直後に変化する
		rows.Scan(&id, &timestr, &x, &y, &satisfaction)
		fmt.Println("-", timestr, x, y, satisfaction)
	}
}

func trackBus(db *sql.DB, busID int, dateIndex int) {
	// SQLステートメント
	sql := "SELECT id, to_char(time, 'HH24:MI:SS'), x, y FROM position_log "
	sql += " WHERE date_index = $1 AND user_or_bus = 'BUS' AND id = $2;"
	prepared, err := db.Prepare(sql)
	rows, err := prepared.Query(dateIndex, busID)

	if err != nil {
		fmt.Printf("error : %v", err)
		os.Exit(1)
	}

	fmt.Printf("time, x, y (busID: %v)\n", busID)
	for rows.Next() {
		var id int
		var timestr string
		var x float64
		var y float64
		// var satisfaction float64  バスの満足度はNULL
		rows.Scan(&id, &timestr, &x, &y)
		fmt.Println("-", timestr, x, y)
	}
}

func main() {
	// db: データベースに接続するためのハンドラ
	var db *sql.DB
	// Dbの初期化
	dbParam := fmt.Sprintf("host=localhost port=%d user=postgres password=ca_sim dbname=ca_sim sslmode=disable", port)
	db, err := sql.Open("postgres", dbParam)
	if err != nil {
		fmt.Println("cannot open db")
		os.Exit(1)
	}
	dateIndex := 1 // 1日目
	busID := 8     // バス番号
	userID := 11   // ユーザ番号
	trackBus(db, busID, dateIndex)
	trackUser(db, userID, dateIndex)
}