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

家族での夕食の時、Amazon Primeで見ていた番組で、「部落問題」という言葉が出てきました。

During a family dinner, we was watching a show on Amazon Prime and the term "Buraku discrimination" came up in a show.

二人の娘に、「ざっくりとは知っているよな」と尋ねたところ、長女は"Yes"といい、次女は"No"といいました。

I asked two daughters "You know this issue don't you?" and the senior daughter said "Yes" and the junior daughter said "No".

この問題の取り扱いは、学校の方針や現場の教師の意識によっても変わるところがあります。

The way this issue is addressed depends in part on school policies and the attitudes of teachers in the field.

私の場合も、"No"でした。

In my case, it was "No" too.

ただ私の場合、大学のころ学生寮に入っている時に、差別闘争の運動を続けている方から話を伺うというレアな機会を得ていまsした。

But in my case, when I was in the dormitory in college, I had the rare opportunity to hear from a person who was continuing to campaign for discrimination.

会社でも、社内で実際に行った事件を使った教育がありました(今はどうなっているか知りませんが)。

There was some education at the company using actual incidents that took place within the company (I don't know what's going on now).

この問題は、「個人情報保護法」にも繋がっています。

This issue is also linked to the Privacy Act.

-----

―― "知らないままでいる"という選択肢もある

"She can choose to remain ignorant"

と、私は思っていたので、次女には、

So I thought and asked her

『もし聞きたければ、10分程度で纏めるけど、どうする?』

"If you want to hear it, I can wrap it up in 10 minutes or so. Which one do you want?"

と尋ねました。 次女が希望したので、私はこの問題の歴史から話しを始めました。

My second daughter wanted to, so I started the story from the history.

私が語り始めると、嫁さんは、テレビのスイッチを切りました。

As I began to speak, my wife switched off the TV.

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

昨日、アマゾンから、荷物が届きました。

Yesterday, I received a package(box) from Amazon.

箱の中には、長い間待っていた新刊のコミックと、音声ケーブルが入っていました。

In the box, there are a new comic book I've been waiting a long time, and an audio cable.

迷わず、音声ケーブルの配線の敷設を開始した私は、

Without hesitation, I began laying down the audio cables, and I think

―― たぶん、何か壊れているのだろう

Maybe there's something broken in me.

と、思いました。

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

c:\Users\ebata\Desktop\codelab-master>set GOOS=js
c:\Users\ebata\Desktop\codelab-master>set GOARCH=wasm
c:\Users\ebata\Desktop\codelab-master>go build -o main.wasm
package main

import (
    "fmt"
    "syscall/js"
)

type Test struct {
    Num int
}

func (t *Test) Print(this js.Value, args []js.Value) interface{} {
    fmt.Println(t)
    return nil
}

func (t *Test) Twice(this js.Value, args []js.Value) interface{} {
    t.Num *= 2
    return nil
}


func (t *Test) Add(this js.Value, args []js.Value) interface{} {
    t.Num += args[0].Int()
    return nil
}

func (t *Test) GetNum(this js.Value, args []js.Value) interface{} {
    return js.ValueOf(t.Num)
}

func registerCallbacks() {
    var test = &Test{
        Num: 1,
    }
    js.Global().Set("test", js.ValueOf(
        map[string]interface{}{
            "Print": js.FuncOf(test.Print),
            "Twice": js.FuncOf(test.Twice),
            "Add":    js.FuncOf(test.Add),
            "GetNum": js.FuncOf(GetNum),
        },
    ))
}

func main() {
    c := make(chan struct{}, 0)
    registerCallbacks()
    <-c
}
<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>Go wasm</title>
</head>

<body>
    <script src="wasm_exec.js"></script>
    <script>
        const go = new Go();
        WebAssembly.instantiateStreaming(fetch("main.wasm"), go.importObject).then((result) => {
            go.run(result.instance);
        });
    </script>
    <script>
        function getNum(){
            console.log(test.getNum())
        }
    </script>
    <button onClick="test.Print();" id="runButton" >print</button><br>
    <button onClick="test.Twice()" id="runButton">twice</button><br>
    <button onClick="test.Add(1)" id="runButton">add</button><br>
    <button onClick="test.GetNum()" id="runButton">get test.Num</button><br>
</body>
</html>

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

(昨日の続きです)

(Continuation from yesterday)

しかし、どうにも故障の原因が分かりません。

However, I could not find the cause of the failure in any way.

"TR-10RDX"が、FMの搬送波を発信していることは確認できたのですが、音声がその波に乗っていないのです。

"I was able to confirm that the TR-10RDX was transmitting an FM carrier wave, but the audio was not riding the wave.

そこで、ケーブルを替えたり、音源を替えたり、各種の実験をしたのですが、どうにも原因が特定できませんでした。

So I changed cables, sound sources, and various experiments, but I couldn't identify the cause of the problem.

そこで、"TR-10RDX"を廃棄することにして、代替機の購入を検討しはじめました。

I decided to dispose of the "TR-10RDX" and began to look into purchasing a replacement machine.

しかし、"TR-10RDX"は、すでに販売が終了していて、ヤフーオークションでは、定価より高い値段でやりとりされていました。

However, the TR-10RDX has already been discontinued. The "TR-10RDX" was exchanged at Yahoo! Auctions for a higher price than the list price.

国内では、類似製品が見つからず、中国の通販に手も出しましたが、「納期1ヶ月」という表示を見て断念しました。

Domestically, I couldn't find a similar product, and I also tried my hand at mail order in China, but I was hesitant when I saw the "one month delivery time" sign. -----

そもそも、我が家には、無線LANのWiFi電波が家の隅々まで行き渡っています。

To begin with, our house has a wireless WiFi signal in every corner of the house.

これを使えないというのも、なんともシャクな話です。

The fact that I can't use this is also very uncomfortable.

「いっそのこと、スマホを受信機とする音声伝送装置が作れないものか」なぁ、と、ラズパイの設計も考えたりしていました。

I wondered if it was possible to make an audio transmission device that uses a smartphone as a receiver, and I thought about designing a Raspi.

しかし、ラズパイの設計をして、スマホのアプリを開発して、と、そのコストを考えると、バカバカしくてやっていられませんでした。

However, when I thought about the cost of designing a Raspi and developing an app for my phone, I couldn't do it because it was ridiculous.

それに、画像の表示と音声のタイムラグが発生することも確実と思われたので、このアイデアは却下しました。

Besides, I rejected this idea because it seemed certain that there would be a time lag between the image display and the audio.

-----

もう、これは、FMを諦めて、信号ケーブルを床下に直接配線するしかないかな(以前やったことがある) と思っていました。

I thought I should give up FM transmission and wire the signal cable directly under the floor (I have done it before).

そんな時、私の部屋の中に設営されていた、2台目の"TR-10RDX"を発見しました。

At that time, I found the second "TR-10RDX" that had been set up in my room.

「よし。これで、問題は解決した」と2台目を設置したところ、故障機と思っていた1台目の"TR-10RDX"と全く同じ問題が発生することが分かりました。

I thought "Okay, I solved the problem", and I installed the second machine. However I confirmed that the exact same problem of the first machine occurred.

『2台の同一装置が、全く同じ症状の故障を起こす確率は、現実世界では0と見なせるくらい小さい』

"The probability of two identical devices failing with exactly the same symptoms is so small in the real world as to be considered zero"

これは、システム学の常道です。

This is the usual way of systems studies.

そこで、装置の周辺を徹底的に調べまくったところ、信号ケーブル接続部に問題があることが判明しました。

After thoroughly inspecting the area around the device, it was discovered that there was a problem with the signal cable connections.

(ただ、私は、3つの信号ケーブルでも追試を行っており、正直、この現象は説明できないのですが、面倒なので忘れることにしました)

(However, I have also done follow-up testing with three signal cables, and to be honest, I can't explain this phenomenon, but I decided to forget about it.)

ともあれ、これによって、私は、"TR-10RDX"が正常稼動する状態に戻すことができました。

Anyway, I was be able to get it back in working order before.

これで、プレミア価値がついている"TR-10RDX"を廃棄せずに済みました。

This saved me from discarding the "TR-10RDX", which has a premium value.

-----

そういえば、今回の作業中に、嫁さんに「このシステムを再構築するのに、いくら予算を出せる?」と聞いたら、

Speaking of which, during this process, I asked my wife how much she could budget to rebuild this system.

一言「任せる」と言われて、この件を丸投げされました。

She said one word, "I'll leave it up to you" and she threw it to me.

まあ、私、ケチで、自作で安くすますことに喜びを感じるタイプです。

Well, I'm a cheapskate, and I'm the type of person who delights in making my own products cheaply.

LANの敷設は勿論、戸棚、本棚、バイク用の車庫に至るまで、全部DIYです。

It's all DIY, from the installation of the LAN to the cupboards, bookcases and bike garage.

-----

ともあれ、『自分の分からないことに対しては、一切口を出さない』という嫁さんの姿勢は、清々しく、美しく感じます。

Anyway, my wife's attitude of 'not speaking out about anything she cannot understand' is refreshing and beautiful.

『何も作り出さず、他人の創作物に口を出すことで、仕事をしているような気になっている奴』に腹を立てている時には、ことさら、嫁さんへの深い敬愛を再確認できます。

When you're angry at they guy who cannot make anything, but feels like they are doing their job by meddling in my creations, even more so, I confirms my deep respect for my wife.

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

我が家のリビングとキッチンの間には仕切りがあります。

There is a partition between the living room and the kitchen in our house.

その壁に空けられた大きな窓から食事を渡すような形になっていますので、リビングとキッチンの間では会話がしにくいです。

The large window in the wall is designed to pass food through, so it is difficult to have a conversation between the living room and the kitchen.

リビングの奥の方にあるテレビからキッチンのシンクまでは5メートルくらいはあり、キッチンで料理をしている時や、洗い片付けをしている時には、テレビの映像は見えても、音声が聞こえません。

The distance from the TV at the back of the living room to the kitchen sink is about 5 meters, so when I'm cooking in the kitchen or washing up, I can see the TV, but not hear the audio.

キッチンで、テレビの音声を聞くためには、最大音量の状況にしなければなりませんが、当然、これはリビングではうるさ過ぎますし、近所迷惑にもなります。

In the kitchen, in order to hear the sound of the TV, I have to be in a maximum volume situation, but of course, this is too loud in the living room and can be a nuisance to the neighbors.

そこで、我が家では、FMトランスミッタを使って、テレビの音をFMラジオに飛しています。

So, we use an FM transmitter to broadcast the TV sound to the FM radio.

----- 我が家では、非常にコスパなFMトランスミッタTR-10RDXを、10年以上も愛用しています。

In our house, we have been using the very affordable FM transmitter TR-10RDX for more than 10 years.

一方、その間、FMラジオは何台も壊れ続けました。

In the meantime, several FM radios kept breaking down.

やはりシンクのような水場で、水に濡れた手でラジオを操作するのは良くなかったようです。

It was not a good idea to operate the radio with wet hands in a watering hole like a sink.

最近、第4世代のラジオとして「豊作ラジオ」を購入しました。

I recently purchased "Bountiful Harvest Radio" as my fourth generation radio.

「壊れにくい」と「ステレオ音源不要。モノラル音源で十分」と、割り切りました。

It is "hard to break" and "No stereo sound source is required. The monaural sound source is enough".

AC電源が使えず電池を使わなければならないのですが、ラジオをどこにでもラクに移動できるようになり(リビングのテーブルの上など)、逆に便利になりました。

Although I can't use AC power and have to use batteries, I can move the radio easily anywhere (such as on the table in the living room) and it has become convenient.

電池であっても、半年以上は軽く持つようです。

Even with batteries, it seems to last a light six months or more.

-----

私は、ソファで落ちついてテレビを見るというのが苦手、というか「嫌い」です。

I don't like, or rather "hate", sitting on the couch and watching TV.

リソースを無駄使いをしているような気分になるからです。

Because it feels like I waste my resources.

私にとっては、調理したり、食器を洗いながら見るNスペ(NHKスペシャル)が、一番楽しいです。

For me, I enjoy watching N-Spe (NHK special) the most while cooking and washing dishes.

こうして、"TR-10RDX"と、"豊作ラジオ"で、テレビを見ながらの、快適な料理&洗い場作業を楽しんでいました。

Thus, I was enjoying comfortable cooking and washing work while watching TV with "TR-10RDX" and "Harvest Radio".

-----

ところが、先日、嫁さんから、「ラジオから音が聞こえない」と言われました。

However, the other day, my wife told me that she couldn't hear any sound from the radio.

私は、全ての作業を中止して、早速対策に乗り出しました。

I stopped all the work and started to take immediate measures.

私にとって、「テレビの音声がラジオから出てこない」ことは、「インターネット」や「江端家LAN」の通信障害と同程度の重要な事件だったからです。

For me, the "no TV sound from the radio" was as important an incident as the "Internet" or "Ebata family LAN" communication failure.

(続く)

(To be continued)

彡貴重品 FMワイヤレスマイク内蔵型 FMトランスミッター Telstar TR ...

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

(昨日の続きです)

(Continuation from yesterday)

「孫子の兵法」でいうところの「敵を知る」ということは ――

In Sun Tzu's Art of War, "knowing the enemy" means...

■ウイルスというものを勉強して、その汎用的な性質を見極め、COVID-19に特有な性質を理解し

Learn about viruses, identify their general properties, and understand the properties specific to COVID-19.

■感染のメカニズムを理解した上で、専門家の数理理論に取り組み

Understand the mechanism of infection and tackle the mathematical theories of experts

■ワクチンの製造プロセスを調べる

Examine the process of making a vaccine

に決まっています。

もちろん、それぞれの人には、それぞれのバックグラウンドがありますが、どんなバックグランドであれ、上記の努力をすることが、「敵を知る」ことの妨げになるとは思えません。

Of course, each person has his or her own background, but I don't think the above efforts, whatever their background, will prevent them from "knowing their enemy".

私だって、感染学や、薬学、その他、沢山のことに対して素人ですが、素人なりに、一生懸命勉強をしています。

I am an amateur in infectious diseases, pharmacy, and many other things, but I am studying hard as an amateur.

そして、自分なりの理解であっても、他の人に開示して、それが、運よくそれが誰かの助けになればいいな、と思っています。

And even if it's my own understanding, I'm going to disclose it to others and hopefully that will help someone else if they're lucky enough to do so.

すくなくとも、このブログの執筆者より、私の方が真面目に「孫子の兵法」を実践していると思います。

At least, I think I'm more serious about practicing "Sun Tzu's Art of War" than the writer of this blog.

-----

「国民や政府がどうあるべきか」などと、高みから批判している暇があるなら、

If he/she have time to criticize the people and the government, looking from the top.

拙くても、専門外であっても、1mmでも1秒でもこの災禍について正面から勉強をして、その結果を自分の行動や、他の人の助けになるべく努めることこそが、「孫子の教え」の本質ではないのか

The essence of "Sun Tzu's teachings are that even if they're not good at it, even if they're out of your field, they study this disaster head-on, even for a millimeter or a second, and strive to help others, aren't it?

と、私には思えてしまうのです。

I think that.

まあ、「専門的なことは、専門家が担うべきだ」「政治のことは、政治家が担うべきだ」というのであれば、まあ、それはそれで、私がとやかく言うことではありません。

Well, if they're saying, "the experts should be in charge of the technicalities" or "the politicians should be in charge of the politics", well, it's not up to me to say.

ただ、私は、そちらには与(くみ)しません。

But I'm not going to participate in that.

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

私、「孫子の兵法」という本、いくつかの翻訳書や解説書で何度か読みました。

I've read the book "Sun Tzu's Art of War" several times in several translations and commentaries.

―― つまり原文は読んでいない、ということです。

"I mean, I haven't read the original text."

抜ける手があるなら、その手を尽す、というのが私のモットーです。

My motto is that I'm willing to make the effort to cut corners.

それはさておき。

Aside from that.

「孫子の兵法」は、色々と学ぶべきことが多い本ですが、それを、仕事や人生に活用しよう、などということは考えたことがありません。

Sun Tzu's Art of War is a book with a lot to learn, but I've never thought of applying it to my work or my life.

何故か。

Why?

この本、徹底的に「経営者視点」だから。

Because this book, thoroughly "management perspective".

下っ端を、徹頭徹尾「道具」として取り扱い、その「道具」に示す愛情すらも勝つための戦略の一つである、という割り切りが、不愉快です。

The book treats our underlings as "tools" all the way through, and even the love they show for that "tool" is one of your winning strategies. I am uncomfortable with the ideas.

特に、「兵士を窮地に陥れて、その力を最大限発揮させよ」という下りは、とてもムカつきます。

In particular, the phrase "put the soldiers in a corner and let them use their strength to the best of his ability" pisses me off.

-----

「孫子の兵法」を引用して、新型コロナ対策を論じているブログとか見ると、笑ってしまいます ―― 大爆笑です。

When I see a blog or something like that, quoting "Sun Tzu's Art of War" and discussing new corona countermeasures, I laugh -- it's a huge laugh.

『彼を知り己を知らば、百戦殆うからず。彼を知らずして己を知らば、一勝一負す。彼を知らず己を知らざれば、戦う毎に必ず殆うし』

"If you know your enemies and allies well, you'll have little to worry about breaking into any battle"

を引用して、国民や政府がどうあるべきか、を、偉そうに語っています。

He quotes this phrase and talks about how the people and the government should be, arrogantly.

「本当におめでたい」と思っています。

I think that "he is really happy".

(続く)

(To be continued)

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

緊急事態宣言の解除によって、夜の繁華街にも客が戻っているようです、

With the lifting of the state of emergency, customers seem to be returning to the downtown area at night, too

しかし、それに伴い、新型コロナウイルスの感染者も増える兆しを見せています。

However, along with this, there are signs that the number of people infected with the new coronavirus is increasing.

-----

私は別に「男性の世論の代表者」という訳ではありません。

I am not a "representative of male public opinion" separately.

「そんなに、夜の歓楽街で遊びたいものなの?」

"Do men really want to play in the downtown at night?"

と、家族が私に問うてくるのですが ―― 私に尋ねるな、と言いたい。

My family questions me, however I want to tell them not to ask me.

この件に関して、私は「男性の世論の代表者」の適格がないのです。

I do not qualify as a "representative of the male public opinion" on this subject.

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

このページをまるまる試しました。

Roaming Geofences - Tile38

Roaming Geofences

Tile38 1.2では、geofencesを動的に使用できる強力な新機能が導入されました。これにより、1つ以上の移動体が近くにある場合のリアルタイム監視が可能になります。

一般的な使用例としては、次のようなものがあります。

  • 車両ピックアップサービス: ピックアップを待っている人が近くにいるとき、または人が車に近づいたとき、または車が近くにいるときに瞬時に通知されます。

  • 近接型ソーシャルアプリ: 常にデータベースを照会しなくても、2人のユーザーが近くにいるかどうかを確認する必要がある場合に非常に便利です。


簡単な例:

NEARBY people FENCE ROAM people * 5000

これは people コレクションのローミングフェンスを開きます。フェンスは、同じコレクション内の他のオブジェクトから5000メートル以内にあるオブジェクトを監視しています。

テストするには、2つの端子を開きます。:

ターミナル1

Tile38サーバーに接続し、fenceコマンドを入力します。

$ tile38-cli

localhost:9851> NEARBY people FENCE ROAM people * 5000

ターミナル2

peopleコレクションに2点を追加します。2つ目のsetコマンドは、もう一方の端末に表示されるフェンスイベントをトリガーします。

$ tile38-cli

localhost:9851> SET people bob POINT 33.01 -115.01

localhost:9851> SET people alice POINT 33.02 -115.02

イベントはターミナル1に表示され、以下のようになります。

{

"command":"set",

"detect":"roam",

"hook":"",

"key":"people",

"id":"alice",

"time":"2016-05-24T09:19:44.08649461-07:00",

"object":{"type":"Point","coordinates":[-115.02,33.02]},

"nearby":{

"key":"people",

"id":"bob",

"meters":1451.138152186708

}

}

アリスが更新されてボブは1,451メートル離れていることがわかります。

他にもいくつかの例があります。

# アリスボブがお互いに100メートル以内にいるかを見張ります。

NEARBY people MATCH alice FENCE ROAM people bob 100

# 'a'で始まるオブジェクトは、友達のコレクション内の任意のオブジェクトの100メートル以内にいるかを見張ります。

NEARBY people MATCH a* FENCE ROAM friends * 100

また、webhooksを使用している場合は、このようなフェンスを割り当てることができます。

SETHOOK myhook http://10.0.1.5/hook NEARBY people FENCE ROAM people * 5000

NODWELL Keyword

副次的な効果としては、2つの場合に近くの通知がたくさん届くことがあります。 オブジェクトがお互いに近くに存在し続けます。これが問題であれば nodwellキーワードを使います

tile38-cli> NEARBY people FENCE NODWELL ROAM people * 5000

これにより、2つの接続オブジェクトに対して、近くの通知と遠くの通知が繰り返されるようになります。

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

これをやられると、コマンドのコピペをする時に、困ったことになるので、対応を探していたら、"WordPress 半角の「"」や「'」が、全角に変換されてしまう件"と同じ対応したら上手くいったので、メモを残しておきます。

remove_filter("the_content", "wptexturize");
remove_filter("the_excerpt", "wptexturize");
remove_filter("the_title", "wptexturize");

の3行をまとめてfunctions.phpに追記したら、上手くいきました。