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

「入門WebAssembly」と言う本が出版されるようです。

It seems that a book called "Introduction to WebAssembly" is being published.

もの凄く読みたいのですが ―― 高い。

I want to read it so badly, but -- it's expensive.

(WebAssemblyの日本語の本、まだ3冊くらいしかないみたいです)

(It seems that there are still only about three books on WebAssembly in Japanese)

私、技術書の値段は概ね適正だと思っていますが、問題は、技術書の提供してくる内容と、私が欲する知識の内容がマッチしないことがあるのです。

I believe that the price of technical books is generally fair, but the problem is that sometimes the content of the technical book does not match the content of the knowledge that I want.

(1)本の内容が「難しすぎる」か「簡単すぎる」、または

(1) The content of the book is "too difficult" or "too easy," or

(2)「本が提供する情報」と「私が知りたい情報」がマッチングしない

(2) "Information provided by the book" and "Information I want to know" do not match.

ということが多いからです。

are often the case.

そういえば、私、ビットコインについては、現時点で出版されている本のほとんどに目を通したと思うのですが ――

Speaking of which, I think I've read through most of the books published on Bitcoin at this point -- and I'm not sure I've ever read anything else.

私が知りかった「ビットコインの信用」について記載されている本は、1冊しかありませんでした。

There was only one book describing "Bitcoin trust" that I could find.

その1冊であっても、マッチングは15%程度だったかなぁ、と思います。

Even for that one book, I think the matching was about 15%.

まあ、それはさておき。

Well, that's beside the point.

-----

それにつけても、WebAssembly、勉強したいです。

I would like to learn WebAssembly.

師匠のSさんに教えてもらったこのデモを見てから、この技術をGISのビューアに転用したいとずっと考えています。

Ever since I saw this demo that my mentor, Mr. S, taught me, I have been thinking of converting this technology into a GIS viewer.

自分でも、色々やってきました。

I've done a lot of work on my own.

問題は、今は、これよりも優先してやらなければならばならないこととがあることと、その本が「当たり」か「はずれ」か、分からないことです。

The problem is that now I have to prioritize what I have to do over this, and I don't know if the book is a "hit" or a "miss".

うーん、どうしようかなぁ。

Hmm, I wonder what I should do.

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

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

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

踊るバズワード ~Behind the Buzzword(16)STEM教育(4)

GIGAスクール構想だけでは足りない、「IT×OT×リーガルマインド」のすすめ

Dancing Buzzword-Behind the Buzzword(16) STEM education(4)

The GIGA school concept is not enough, "IT x OT x Legal Mind" is recommended

 

-----

中国(大陸の方)では、高齢者がスマホを使い倒しているらしいです。

In China (the mainland), I heard that the elderly are using their smartphones to the fullest.

理由は単純で、

The reason is simple.

『政府は行政サービスをスマホで提供している。使う/使わないは、お前たちの勝手だ』

The government is providing government services through smartphones. It's up to you to use it or not."

と言い切って、スマホを使わない人をバッサリと切り捨てているそうです。

They seem to be cutting off people who don't use smartphones by saying the above.

スマホを使えなければ、生きていくことができない ―― そりゃ、だれだって、命懸けでスマホの操作を覚えるでしょう。

If they can't use a smartphone, they can't live -- anyone would risk their life to learn how to use a smartphone.

-----

この話、結構、残酷なこと言っていると思いますが ―― 私も会社の中では同じような目にあっています。

I think this story is pretty brutal -- however, I've been through the same thing in my company.

会社は、社員の意見など聞くことなく、勝手に業務システムを変更してしまいます。

Companies change their business systems at will, without listening to the opinions of their employees.

それまで、蓄積してきたオペレーションの知識は、その瞬間、ドブに捨てられます。

At that moment, all the operational knowledge I have accumulated will be thrown away.

また1から、いや、ゼロから、学び始めなければなりません。

I have to start learning again from even scratch.

そして、どんなに恥しくても、大声で『助けて下さい!』と叫べない奴は ―― (社内で)死にます。

And those who can't shout out loud, no matter how embarrassing, "Please help me! (within the company) " will die.

面子もプライドもあったもんじゃありません。

There is no honor, no pride.

『無様に泣き叫ぶシニアたち』―― これが、ITシステムを使わされている世界の現状です。

"Senior citizens crying out in vain." This is the state of the world in which we are forced to use IT systems.

-----

という訳で、(今回のコラム以外の方法では)「デジタル競争力世界第28位」から挽回する為には、

So, in order to recover from being "the 28th most digitally competitive in the world" (in ways other than this column), we need to make citizens who

■大声で『助けて下さい!』と叫べぶことができるようになり、

- are able to shout out, "Please help me! in a loud voice, and

■そこに手を差し延べることができるになる

- are able to reach out to the voice.

国民の育成だと思うのです。

だから ―― 私を含めて、高齢者の皆さんは諦めて下さい。

So -- please give up, all you elderly people, including me.

「『無様に泣き叫ぶシニア』になる勇気」 ―― これが、私たちに残された老後戦略なのです。

"To be a wailing old man". This is the only retirement strategy we have left.

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

「政治資金収支報告書のオンライン提出を怠っている政治団体を全部開示する件」で書いた通り、先程、郵便局から、行政文章開示請求書を送付してきました。

政治資金収支報告書のオンライン提出を怠っている政治団体を全部開示する件

As I wrote in my article "Disclosure of All Political Organizations Failing to Submit Political Fund Balance Reports Online," I went to the post office and submitted the Administrative Text Disclosure Request Form to Ministry of Internal Affairs and Communications (formerly Ministry of Public Management, Home Affairs, Posts and Telecommunications).

きっと記載不備を指摘されて、何回か再提出することになると思いますが ―― 完全正確な書類を作成する時間よりは、そっちの方が時間が短い(ことが多い)です。

I'm sure I'll be pointed out as incomplete and I'll have to resubmit several times -- that's less time (and often more) than it takes to create a completely accurate document.

私は、これを"ping処理"と読んでいます。

I call this "pinging".

Ping(ピンガー)とは、潜水艦が、敵潜水艦、または、駆逐艦等の洋上戦艦の位置を特定するために使われる、アクティブソナーの発する音波のことです。

A Pinger is a sound wave emitted by an active sonar used by a submarine to locate an enemy submarine or an offshore warship such as a destroyer.

ネットワークの世界では、ターゲットのマシンの稼動を確認する為に、">ping (相手のIPアドレス等)"というコマンドインターフェースで使われています。

In the network world, the command interface ">ping (e.g. IP address of the other machine)" is used to check the operation of the target machine.

要するに「メッセージを投げつけられたら、応答せざるを得ない」という性質を利用したコミュニケーションです。

In essence, it is communication that takes advantage of the nature of "when a message is thrown at you, you have no choice but to respond.

まあ、相手側にとっては、甚だ迷惑なコミュニケーションであることは ―― 潜水艦であろうが、コンピュータであろうが、そして行政手続であろうが ―― 共通していると思います。

Well, I think we can all agree that it's a very annoying communication for the other side -- whether it's a submarine, a computer, or an administrative procedure.

-----

"ping処理"の濫用形態が、電話やメールやSNSでのストーカー行為ですが、

Well, abusive forms of "pinging" is stalking through phone calls, emails, and social networking sites, however I think

『まあ、行政機関に対するストーカーなら、国民の権利だろう ―― 適正な運用の範囲であれば』

"Well, if I am stalking a government agency, it's our right -- as long as it's done properly."

と思っています。

-----

私の知る限り、国土交通省、厚生労働省は、電話で親切に対応してくれました。

As far as I know, the Ministry of Land, Infrastructure, Transport and Tourism and the Ministry of Health, Labor and Welfare were kind enough to help me over the phone.

文部科学省は1回だけWebのコメント欄で質問したことがありますが、その時は、無視されました。

I had only asked a question to The Ministry of Education, Culture, Sports, Science and Technology (MEXT) in the comments section of the web once, but at that time, I was ignored.

さて、総務省は、どうかな?

Now, how will the Ministry of Internal Affairs and Communications respond?

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

我が家のダイニングテーブルは、4人用なので、家族全員が着席できる ―― はずなのですが、

Our dining table is designed for four people, so the whole family can be seated, however,

感染予防用の2つのパーティションを購入後、そのパーティションに書類を貼りつけるようになり、

After purchasing two partitions for infection prevention, we started attaching documents to the partitions.

娘たちが、読書したり、スマホでアニメ見たり、レポート作成したり、製図を書いたり、リモート授業を受講したり、

My daughters are reading, watching cartoons on their phones, writing reports, drawing, taking remote classes, etc. on the table,

テーブルの上は、ノートパソコン、各種資料、請求書、書籍等が散乱している状態となっており、

with being cluttered with laptops, various documents, invoices, books, etc.

テーブルの定員は、今や『2名』が上限となっています。

The maximum number of people at a table is now just "two".

-----

先程、パンケーキとスクランブルエッグを作り、皿に盛って着席しようとしたのですが、すでに、嫁さんと次女によって、テーブル席が占拠されていました。

I had just made pancakes and scrambled eggs, put them on plates and was about to be seated, but the table was already occupied by my wife and second daughter.

仕方がないので、トレイに皿を置いて、

I had no choice but to put my plate on the tray.

『部屋で食べてくる』

"I'll eat in my room."

と言って、階段を上がり始めました。

I said, and started up the stairs.

次女:「二階席は、比較的、空席がございますーー」

Daughter: "The seats on the second floor are relatively empty.

私:「ないわ! 二階席のテーブル(私の机)も、プログラムリスト、参考資料と書籍で、満席だ!!」

I: "No! Even the upstairs table (my desk) is full, with program lists, reference materials and books!"

と、愚痴を言いつつ、自分の部屋に向かいました。

I complained and went to my room.

未分類

もう、腹を立てるのも面倒になってきたので、情報開示請求をして、オンライン提出しない政治団体を、全部、実名開示してやろうと思います。

この書類を、300円分の印紙を張って、ここに提出すれば良いみたい

以前、国土交通省に「飛び込み自殺」の人数、時間などについて請求したのですが、すっかり忘れてしまいました。

まあ、書式不備があれば、連絡がくるでしょう。

腹を立てているだけでは、健康衛生上もよろしくないでしょうし。

 

 

 

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

  • Go言語のコーディングしている最中に、バグを指摘してくる(お前はツンデレ彼女か)
  • 適当なメソッドを書き込むと、自動的にimport関数を付け加えてくるところ(お前はお袋か)
  • バグではないけど、不効率なコーディングをしていると、もっと良いやり方を提案してくる(お前は構いたがりのメンターか)

―― なんか、ちょっと怖い

 

 

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

https://teratail.com/questions/370090?nli=619ad631-d4fc-405f-a649-44670a040506#reply-502318

もの凄く助かりました。

nobonoboさんに心からの感謝を

C:\Users\ebata\goga\3-10

/*
いっせいブロードキャストをするのに一般的に使われているのはPubSubと呼ばれる方式です。
サブスクライブを複数あらかじめおこなっておき、パブリッシュでメッセージを送ると
複数のサブスクライブ先に同じメッセージを配信するというものです。
おそらくこの方式は発見済みで、想像するに複数のサブスクライブ先をループで巡って
複数回送信することでブロードキャスト相当を実現するのではなく、もっと真に
ブロードキャストしたいということが質問者さんの意図なのかなと。

そういうものを実現するのに「sync.Cond」という標準ライブラリ機能があります。
これの活用方法は実はちゃんとした実例が見つけにくいです。たいてい前者のやり方で済まして
しまっているのと、sync.Condの挙動は若干わかりづらいです。

すこし解説は端折りますが、以下のように記述することで実現できると思います。

ポイントは

タイミングだけをsync.CondのBroadcastで伝える
複数のタスクには共有メモリを通して渡したいメッセージを伝えます
送る方も受ける方も排他ロックを併用するのがCondの使い方でロック期間であれば
共有メモリをコンフリクトなくアクセスできます

この方法はPubSubにくらべ、共有メモリをすべてのgoroutineタスクに伝播したか
どうかを保証する仕組みがないです
つまり、この方法は「低頻度のイベントを大量のタスクに配信」するか、もしくは
「最新の値さえ受け取れればOK」という用途向けです。
*/

package main

import (
	"fmt"
	"log"
	"sync"
	"time"
)

type BroadCaster struct {
	cond *sync.Cond
	id   int64
	msg  string
}

func (bc *BroadCaster) Send(msg string) {
	bc.cond.L.Lock()
	defer bc.cond.L.Unlock()
	bc.id++
	bc.msg = msg
	bc.cond.Broadcast()
}

func (bc *BroadCaster) Recv(last int64) (int64, string) {
	bc.cond.L.Lock()
	defer bc.cond.L.Unlock()
	for bc.id == last {
		bc.cond.Wait()
	}
	return bc.id, bc.msg
}

var (
	broadcaster = &BroadCaster{
		cond: sync.NewCond(&sync.Mutex{}),
	}
)

func task(i int) {
	log.Println("task:", i, " start")
	defer log.Println("task:", i, " stop")
	last := int64(0)
	for {
		id, msg := broadcaster.Recv(last)
		last = id
		log.Println("task:", i, msg)
	}
}

func main() {
	for i := 0; i < 3; i++ {
		go task(i)
	}
	for i := 0; i < 3; i++ {
		time.Sleep(1 * time.Second)
		broadcaster.Send(fmt.Sprintf("hello, world: %d", i))
	}
	time.Sleep(1 * time.Second)
}

Keyword sync.Cond, sync.Broadcast,

参考文献: sync.Cond/コンディション変数についての解説

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

私たち、日本人は『日本人だけが英語が苦手である』と思いがちです。

We Japanese tend to think that "only Japanese people are bad at English".

しかし、『英語に愛されない外国人』はいます ―― 恐らく、山のようにいます。

However, there are foreigners who are not loved by English language -- probably a lot of them.

-----

今年の9月に、リモートで国際学会での発表と聴講をしていました。

In September of this year, I was remotely presenting and auditing at an international conference.

日本時間でスタート18:00、終了が02:00という、洒落にならない時間になりましたが ――

The event started at 18:00 Japan time and ended at 02:00, which is an unbelievable time, however,

それでも、飛行機に乗って、ホテルに宿泊して、レストランでメニューに困り、時差ボケで最低の体調で聴講することを考えれば、

Still, considering that I had to get on a plane, stay in a hotel, have trouble with the menu at a restaurant, and listen to a lecture in my worst condition due to jet lag..., this is a

『天国』

"Paradise"

です。

開催後のアンケートで、『今後もリモートでの開催を希望するか』という項目のアンケートには、5段階の評価で"5"を付けました。コメント欄にもその旨を記載しておきました

In the questionnaire after the conference, I gave a rating of "5" on a 5-point scale when asked if I would like the conference to be held remotely in the future. I also mentioned this in the comments section.

ま、それはさておき。

Well, that's beside the point.

-----

学会発表で、東欧の若い研究者(女性)の発表を聴講していたのですが、自信なさげで、声が小さく、論旨も良く分からない ―― という、発表がありました。

At the conference, I was listening to a presentation by a young researcher (female) from Eastern Europe, who seemed unsure of herself, her voice was quiet, and her argument was not clear.

『あ、これ、大学生だ。しかも、多分、教授にごり押しされて、発表させられたタイプだ』

"Oh, this is a college student. And she's probably the type of guy who was pushed into doing a presentation by her professor.

と、看破しました。

I've seen it through.

で、予想どおり、彼女は、座長(セッションの議長)からの質問に対して、全く答えられませんでした。

So, as expected, she could not answer any of the questions from the chairperson (the chair of the session).

答えられないプレゼンテータに対して、"evaluate"の言葉の意味を、座長が教えているのを聞いて、『・・・く、空気が重い』という苦痛の時間を体験しました。

I experienced a painful time when I heard the chairperson telling the presenters who couldn't answer the question what the word "evaluate" meant, and the air was heavy.

この質問時間は時間切れで終了したのですが、なんとも後味が悪いものでした。

This question period ended when time ran out, but it was a very bad aftertaste.

-----

この場合の正解は、

The correct answer in this case is

『質問の内容が分からないくても、沈黙せずに、でたらめな英語ででたらめな回答を一方的に喋るまくる』

"Even if I don't understand the question, I don't stay silent, I just go on and on with my bullshit answers in bullshit English"

です。

これは、実質「沈黙」と同じことです。

This is practically the same thing as "silence".

しかし、聴衆が「失笑」と「嘲笑」と「生あたたかい優しい目」で見てくれる、という効果があります。

However, the effect is that the audience will look at me with "guffaws", "ridicule" and "warm, kind eyes".

また、私と同じような「英語に愛されないエンジニア」には、その戦略(でたらめな英語で、でたらめな回答を押し通す)を理解して貰えます。

Also, "engineers who don't love English" like me can understand my strategy (use bullshit English, push through bullshit answers).

上手く行くと、そのセッションが盛り上がります。

If it goes well, the session will be a lot of fun.

―― こんなに英語がダメダメな奴が、こんなもしょーもない質問しているなら、私も質問してみようかな

"Let me try a question, if the guy whose English is this bad is asking such dumb questions"

という気持ちになるようです。

Such feeling seems to coming to the audience, I think.

結果として、私の参加したセッションは大いに盛り上がって、喜んだ座長がリモートで記念写真を取っていたくらいです。

As a result, the session I attended was so exciting that the delighted chairperson even took a commemorative photo remotely.

-----

「英語に愛されないエンジニア」は、インターナショナルで役に立ちます。

The Engineer Who is not Loved by English" is useful internationally.

『場』のしきい値を思いっきり下げて、みんなをリラックスさせます。

Lower the threshold of the "field" as much as possible to make everyone relax.

もちろん、公の場で『道化』になる覚悟は必要ですが ―― まあ、肚を括れば、なんとかなります。

Of course, you have to be prepared to be a clown in public, but if you have the courage, you can do it.

どうせ、その時を過ぎれば、誰もあなたのことなど覚えていません。

After that time, no one will remember you.

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

「どこから手をつけたらいいのか分からない」ってこと、結構ありますよね。

"I don't know where to start" is pretty common.

私の場合、毎月のコラム原稿がそれです。

In my case, it's my monthly column manuscript.

とりあえず、思いつく図表を適当な枚数描いて、それを並べて、その図表に間に文章を流し込みます。

For now, draw as many charts and tables as I can think of, arrange them in a row, and pour text in between them.

ぶっちゃけますけど、

Let me be frank.

―― 完成のイメージなんか、全然持たずに、文章作成しています

I'm working on the text without having any idea of how it will turn out.

-----

ところが、

However,

『図表や文章の位置を変えたりしながら調整していくと、なんか、ちゃんとしたコラムになっている(ように見える)』

"It comes to be like a proper column when I adjust it by changing the position of figures and sentences"

のです。

これが、パソコン時代の、文章作成作業のミラクルです。

This is the miracle of the writing process in the computer age.

『パソコンがない時代の人は、どうやって資料や作品を作成していたのだろうか』と考えるだけで、尊敬できてしまいます。

"How did people create materials and works of art when there were no computers?" Just thinking about it makes me respect them more.

-----

文章を書くのが苦手という人に、私ができるアドバイスがあるとすれば、

If there's one piece of advice I can give to someone who has trouble with writing, I say to them,

『荒唐無稽で、デタラメで、論理破綻している文章を、まず、ザーっと100行くらい書いてみろ』

"First, write a hundred lines of ridiculous, bullshit, logic-defying text"

と言います。

その後で、その文章をバラバラにして再構成します。

After that, take the text apart and reconstruct it.

そして、これが大切なのですが、『未完成でもいいからネット等で公開する』ことです。

The most important thing is to publish your work on the Internet, even if it is not completed.

『ネットの向こう側で、嘲笑、失笑されている』と実感することが、大切です。

It is important to realize that you are being ridiculed and laughed at on the other side of the Internet.

実際にこの日記も、「最初の1行」を書いた後は、だらだらと適当に文章を書いて、それを並びかえたものです。

In fact, in this diary, after I wrote the "first line," I just wrote random sentences and rearranged them.

-----

『江端のことは知らんが、私は最初から理路整然と文章を書けるぞ』と主張をする人がいても、私はその人の言うことを信じませんし、もし、それが本当であったとしたら ―― 私は、その人、嫌いです。

If someone claims, "I don't know about Ebata, but I can write in an orderly fashion from the beginning," I don't believe them, and if that were true -- I hate that person.