2022/10,江端さんの忘備録

先日リリースされたコラムで、

In my column which is released yesterday, I wrote

―― 私が教祖になるには、まず、私が「天啓」を受けている、というストーリーが必要です

"To become a guru, I must first have a story that I am "enlightened"!"

と書きました。

日常生活においても、過激なダイエット等で、比較的簡単に「天啓」を得ることができることは事実です。

It is true that it is relatively easy to obtain "revelations" in daily life, e.g., through extreme dieting.

それは、私の体を張ったダイエットで、実証済みです。

This has been proven by my own physical diet.

加えて、実際に、私、これまで、何度も神を降ろしています(本当)。

In addition, I have, in fact, brought God down many times (really).

(↑のクリックで記事に飛びます)

(↑click to jump to the article)

つまり、世界三大宗教を含め、経典に記載されている「教祖の天啓」ってやつは、かなり「眉唾(まゆつば)もの」である、ということです。

In other words, the "revelations of founder of religion" in the scriptures, including those of the world's three major religions, are quite 'dubious tale'.

-----

ちなみに、私の宗教勧誘の撃退方法の一つに、

Incidentally, one of my methods of repelling religious solicitations is to

『あなた、神様を見たことがあるの? 私はあるよ。2000年9月11日、米国ユタ州の国立公園の巨大な砂岩のアーチの下で。クリアに見えたよ』

"Have you ever seen God? I have, on September 11, 2000, under a huge sandstone arch in a national park in Utah, USA. I saw them clear."

『あなた、神様の声を聞いたり、姿を見たりしたことあるの? え? ないの? ないのに"この私"に布教をしているの?』

"Have you ever heard or seen God? What? No? And you're proselytizing to me?"

『ちょっと思い上がってんじゃないのかなぁ』

"I think you are a little presumptuous are't you?"

と、「格の違いを見せつける」というメソッドがあります。

is a method to 'show the difference in class'.

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

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

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

「お金に愛されないエンジニア」のための新行動論(7)

老後を生き残る戦略として「教祖(仮)」になってみた

"A New Theory of Action for Engineers Who Are Not Loved by Money(7)"

I became a "guru (temporary)" as a strategy to survive in old age

-----

ぶっちゃけて言いますが、前回のコラムは、あまり好評ではなかったようです ―― Twitterとランク(順位)からの、私の、主観的な見解ですが。

Frankly speaking, the last column was not very well accepted -- from my viewpoint based on Twitter or rankings.

修正もしましたが、かなり力(リキ)を入れて書いたので、正直ガッカリしました。

I made some revisions, but to be honest, I was disappointed because I put a lot of effort into writing it.

-----

後輩:「江端さん。それ、多分、世代の違いですよ」

Junior: "Ebata-san. That's probably a generational gap"

江端:「?」

Ebata: "?"

後輩:「私たちの世代は、"カルト宗教"は本当に危険な存在として、認識されていましたよね ―― 統一教会、創価学会、オウム、幸福の科学、エホバの証人・・・。これらの存在を知らない大学生はいませんでしたし、世間も一定の知識がありました」

Junior: "In our generation, "cults" were recognized as really dangerous -- Unification Church, Soka Gakkai, Aum, Happy Science, Jehovah's Witnesses... There was no college student who didn't know about them, and the public had a certain level of knowledge about them. There wasn't a college student who didn't know these things existed, and the public had a certain amount of knowledge about them.

江端:「うん。そう思う。以前、ニュースで自民党・福田達夫総務会長が『(元・統一教会の)何が問題かわからない』との発言をしているのを見たけど、思わず、『あんた、これまで、一体何を学んできたんだ?』と、思わずテレビに向かって、説教してしまったよ」

Ebata: "Yes. I think so. I saw LDP General Affairs Chairman Tatsuo Fukuda on the news once saying, 'I don't know what the problem (about the Unification Church) is,' and I involuntarily lectured him on TV, saying, 'What the hell have you learned so far?' "

後輩:「・・・あの自民党の議員、本当に『分かっていなかった』のかもしれませんよ」

Junior: "...that LDP member, maybe he really 'didn't get it'."

江端:「ええ! いくらなんでもそれは"ない"だろう。そんな国会議員が我が国に存在するか?」

Ebata: "Yes! That's "no" in any case. Is there such a member of parliament in our country?"

後輩:「知識くらいはあったかもしれませんが、そのインパクト(霊感商法や過剰献金などの反社会的活動)を、肌で感じとっていない、という可能性はあります」

Junior: "It is possible that he had at least some knowledge, but he did not feel the impact (anti-social activities such as psychic sales and excessive donations) firsthand.

江端:「そうなの? 私が大学キャンパスを歩いている時は、『油断していれば、やられる』という緊張感が常にあったように思うけどなぁ」

Ebata: "Really? When I was walking around college campuses, there always seemed to be a sense of tension that if I wasn't careful, I would get hit."

後輩:「あと、カルト宗教側のアクティビティが低下している可能性もあります」

Junior: "Also, it's possible that activity on the cult side is declining."

江端:「というと?」

Ebata: "What do you mean?"

後輩:「信徒勧誘アプローチに改良が加えられていない ―― 既存のメソッドを使い回しているだけで、アプローチの改良をしていない、ということです。で、カルト宗教側も、ジリ貧のまま消滅に向かっている、と」

Junior: "There has been no improvement in the congregational recruitment approach -- they are just using existing methods and not improving their approach. And so the cult side is on the verge of extinction"

江端:「消滅に向かっているなら、めでたいことだけど・・・、私がコラムの中で提案している『ワンオペ布教』とか、取り得るアプローチは、まだ色々あるだろう?」

Ebata: "If it's on its way to extinction, that's great... but there are still a lot of approaches that could be taken, like the 'one-op missionary' that I proposed in my column, right?"

後輩:「そういう'ITリテラシーを持った人間を信徒にできないことも、カルト宗教団体の問題なんじゃないですかね」

Junior: "I think the problem with cult groups is that they can't make such 'IT literate' people into believers."

江端:「なるほど。『宗教』と『IT』は、とことん相性悪そうだもんなぁ・・・」

Ebata: "I see. Religion and IT don't seem to go well together..."

-----

今回のコラムでも、皆さんの「カルト宗教への関心」を観測していきたいと思います。

Now, in this column, I would like to look at your "interest in cults".

なお、前回のコラムの修正前版も、個人的にリリースしていますので、興味のある方はご連絡下さい。

Please note that I am also personally releasing an unmodified version of my previous column to anyone who is interested.

―― 『とある宗教団体』を直撃する内容

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

先日、証明写真機(スピード写真)で、写真を取ってきました。

The other day, I took a photo from a photo machine (speed photo).

人生で初めて、『メガネ(老眼鏡)』をかけて写真撮影をしました。

For the first time in my life, I wore "glasses (reading glasses)" to take pictures.

―― メガネをつけると、目付きの悪さが緩和される

"Wearing glasses eases my unpleasant look"

という、事実を発見したからです。

I noticed that.

以前、パスポート更新用にとった写真を見て、ぞっとしました。

I was horrified when I saw the photo for my passport renewal.

もし、私が事故や事件に巻き込まれた時、この写真がニュースに出たら、ニュースの内容を確認されないまま、「加害者」「犯人」であると決めつけられる、と思いました。

I thought that if I were involved in an accident or incident and this photo appeared on the news, I would be assumed to be the "perpetrator" or "culprit" without having the news story confirmed.

-----

「国葬」の日、私は、終日、自宅に閉じ籠って仕事していました。

On the day of the "State Funeral," I spent the entire day confined to my home and worked.

―― 私、結構な頻度で、『職務質問』されるんですけど、良い対策方法ってありますか?

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

先日、

The other day, I was asked from my reader,

『江端さんの記事って有料になったのですか』

"Did you start charging for your articles?"

との質問を受けて、ビックリしました。

and I was really surprised.

そういえば、スマホは、EE Times Japanへのユーザ登録が、ワンアクション入るようになっていたなぁ、と思い出しました。

I remembered that for smartphone, user registration to EE Times Japan has been needed as one-action process.

パソコンのブラウザでは、このようなアクションは不要なようです。

However, you don't need to register from the web browser of PC

いずれにしても、江端の記事は今も無料で読めるようです ―― というか、私は、この件に関してコントロールできません。

Anyway, reading my columns are free of charge even now. I mean, I have no control over this.

あしからずご了承下さい。

I apologize for any inconvenience.

-----

最近、この手のユーザ登録の要請が多くなったような気がします。

I think that there are more requests for this type of user registration recently.

私も、こういうのが、どうにも苦手で、「登録」よりも「購読断念」を選んでしまいます。

I am not good at the actions like this either. so I happen to sto

これは、日経XXのポータルサイトに多いのですが、この登録後に必要となるアンケートシートに「うんざり」するからです。

This cases are apt to happen on Nikkei-XXX site. This is because I am "fed up" with the survey sheets that are required after this registration.

年収とか、家族構成とか、職位とか、既婚や未婚など ―― これらのプライバシーを書かされる『不快』さを、日経XXのサイト運営者は理解すべきです。

The Nikkei XX website operators should understand the "discomfort" of being asked to write these privacy details -- income, family structure, job title, marital status, unmarried status, etc.

原則、私は10項目以上あるアンケートには、答えないことにしています。面倒くさいからです。

As a general rule, I do not answer surveys that have more than 10 items. It is because it is too much trouble.

-----

先日、筋トレを目的としたスポーツジムの見学に行ってきたのですが、その前に記載されるアンケート用紙(両面ビッシリと、細かい文字で記載されている)を見た瞬間、

The other day, I went to visit a gym for muscle training, and the moment I saw the questionnaire form (double-sided, with super small characters) that I had to fill out before the visit, I said

『あ、もういいです』

"Sorry, I give up"

とだけ行って、そのまま立ち去りました。

and left the gym.

私は、ジムの設備を見学したかっただけなので、このアンケートに応えるコストに見合わない、と判断しました。

I decided that it was not worth the cost of responding to this survey, as I only wanted to tour the gym facilities.

-----

で、多分、多くの施設やポータルサイトは、ユーザの『不快』や『面倒』で、私のような潜在顧客を見逃しているハズです。

And maybe many facilities and portals are missing out on potential customers like me because of the 'discomfort' and 'hassle' of users.

それに気がついていないなら「バカだなぁ」と思うし、

If they don't realize that, I think that they are "stupid."

それに気がついているなら、「救い難いバカだなぁ」と思います。

If they realize that, I think that they are "unhelpful stupid."

2022/09,江端さんの技術メモ

以前、pgr_dijkstra()で、ダイクストラの順番が壊れる という内容で悩んでいて、最終的に、

utsu_tram_db3=# SELECT seq, source, edge, x1, y1 FROM pgr_dijkstra('SELECT gid as id, source, target, cost FROM ways', 2, 59, directed:=false) a INNER JOIN ways b ON (a.edge = b.gid) ORDER BY seq;

で、順列を壊さないで、ダイクストラの表示ができる、ということを書きました。

pgr_dijkstra()で算出したノードの座標を得る方法

ところが、まだ、これでも問題が発生することが分かりました。

ノード1799からノード3342のルート計算を以下のようにやってみました。

kitaya_db=# SELECT seq, source, target, x1, y1,x2,y2, agg_cost FROM pgr_dijkstra('SELECT gid as id, source, target, length_m as cost FROM ways', 3342, 1799, directed:=false) a INNER JOIN ways b ON (a.edge = b.gid) ORDER BY seq;

まあ、こんな感じで、sourceとx1,x2を追っていって、ラストのtargetとx2,y2を拾えば、いいと分かりましたので、これで大丈夫だろう、と思ってコーディングしていました。

ところが、このノード1799からノード3342を逆転させて、ノード3342からノード1799のルート計算を以下のようにやってみました。

kitaya_db=# SELECT seq, source, target, x1, y1,x2,y2, agg_cost FROM pgr_dijkstra('SELECT gid as id, source, target, length_m as cost FROM ways', 1799, 3342, directed:=false) a INNER JOIN ways b ON (a.edge = b.gid) ORDER BY seq;

と、こんな感じで、sourceが出発点にならずに、targetの方が正しい並びとなってしまっています。つまり、こんな感じ。

で、これがどっちで出てくるのか分からないので、以下のようにしました。

(1)最初のノードがsourceに出てきたら、sourceベースで読み出し、
(2)最初のノードがtargetに出てきたら、targetベースで読み出す

実装はこんな感じにしました。

type LocInfo struct {
	Lon    float64
	Lat    float64
	Source int
}

 

// 江端修正版
func getDijkstraPath(dbMap *sql.DB, locInfoStart, locInfoGoal ldarp.LocInfo) ([]ldarp.LocInfo, float64) {
	log.Println("getDijkstraPath", locInfoStart, locInfoGoal)

	var path []ldarp.LocInfo // 経路 (返り値の一つ目)
	var totalDistanceKm float64

	rowsDijkstra, errDijkstra := dbMap.Query(
		"SELECT seq,source, target, x1, y1, x2, y2, agg_cost FROM pgr_dijkstra('SELECT gid as id, source, target, length_m as cost FROM ways', $1::bigint , $2::bigint , directed:=false) a INNER JOIN ways b ON (a.edge = b.gid) ORDER BY seq",
		locInfoStart.Source,
		locInfoGoal.Source)

	if errDijkstra != nil {
		log.Fatal(errDijkstra)
	}
	defer rowsDijkstra.Close()

	var agg_cost float64

	isFirstCheck := true
	isSourceCheck := true

	for rowsDijkstra.Next() {

		var x1, y1, x2, y2 float64

		var seq int
		var target int

		// まずnodeを読む
		if err := rowsDijkstra.Scan(&seq, &source, &target, &x1, &y1, &x2, &y2, &agg_cost); err != nil {
			fmt.Println(err)
		}

		// 最初の1回だけ入る
		if isFirstCheck {
			if source == locInfoStart.Source {
				isSourceCheck = true
			} else {
				isSourceCheck = false
			}
			isFirstCheck = false
		}

		var loc ldarp.LocInfo

		if isSourceCheck {
			loc.Source = source
			loc.Lon = x1
			loc.Lat = y1
		} else {
			loc.Source = target
			loc.Lon = x2
			loc.Lat = y2
		}

		loc.Source = target

		path = append(path, loc)
	}

	// ラストノードだけは手入力
	path = append(path, locInfoGoal)

	totalDistanceKm = agg_cost / 1000.0
	return path, totalDistanceKm
}

もっとクールな方法があるかもしれませんが、面倒なので、戦うのはやめました。

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

社内のチームメンバに、この資料を使って、エージェントシミュレーションの概要を説明していました。

I used this document to provide an overview of the agent simulation to our internal team members.

メンバA:「ところで、このイラストは、江端さんが描いているのですか?」

Member A: "By the way, are these illustrations by Ebata-san?"

江端:「私が"作って"います。特許発明と同じです。『構成要件1と構成要件2と構成要件3からなることを特徴とする本イラスト』です」

Ebata: "I "make" them. It is the same as a patented invention. It is "this illustration characterized by the composition 1, composition 2, and composition 3.

メンバA:「・・・分かりました」

Member A: "... I understand."

-----

メンバB:「コンセプトは、"SG"ですね?」

Member B: "The concept is "SG," right?"

江端:「もちろん、"SG"です。"SG"以外は、ありえません」

Ebata: "Of course, "SG". Nothing but "SG" is possible."

メンバC:「あの、江端さん。"SG"って何ですか?」

Member C: "Um, Ebata-san. May I ask you about "SG?""

江端:「"SG"とは、当然、"シュタインズ・ゲート"のことです・・・え、ご存知ない?本当に??」

Ebata: "'SG' is, of course, 'Steins;Gate'... Oh, you don't know? Really?

-----

―― 弊社のエンジニアが、シュタインズ・ゲートを知らないというのは、由々しき事態だ

"It is a serious matter that our engineers do not know Steins;Gate""

―― シュタインズ・ゲートは、他の人はさておき、エンジニアと研究員の必修科目だ

"Stein's Gate, aside from others, is a required course for engineers and researchers"

―― シュタインズ・ゲートを見ずして、未来の街を設計する仕事をするなど、信じられないことだ

"It would be incredible to work designing the city of the future without seeing Steins;Gate"

―― 当然、『ゼロ』まで完遂しなければならない

"Of course, we must complete to 'Zero'"

と、長々と、まくしたててしまいました。

I've made them a mess for a long time.

-----

チームメンバには、『ドン引き』されていたようですが ―― 構いません。

The team members were put off by what he said, however I don't care of it.

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

To 日本国総理大臣殿

To Mr. Prime Minister of Japan

私、新人の時に、先輩から

When I was a rookie, I was told by a senior, and scoled

「江端! 『丁寧な説明』っていうのは、『同じ内容を、ゆっくりとしゃべり直すこと』じゃねえぞ!!」

"Ebata! "Careful explanation" does not mean "to talk about the same thing over again slowly!"

と、叱られたことがあります。

御参考まで。

For your information.

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

私が入社したころは、コンピュータのリソース不足が慢性的な悩みでした。

When I joined the company, the lack of computer resources was a chronic problem.

3桁の2次元配列を作るだけで、プログラムが実行できなくなり、メモリの効率的な利用が、最大の課題でした。

Efficient use of memory was the biggest challenge, as creating a three-digit two-dimensional array alone would not allow the program to run.

職場で、ワークステーションの奪い合いなどもやっていました。

At work, I was fighting for workstations.

しかし、PCが潤沢なリソースを持つようになり、このような問題に直面することはなくなりました。

However, PCs no longer face this problem as they now have ample resources.

並行処理に強いプログラム言語(Go言語等)の登場により、100万オーダのオブジェクトも普通に扱えるようになりました。

With the advent of programming languages (such as Go) that are strong in concurrency processing, objects of the order of one million can now be handled as usual.

ですが、無茶したら駄目ですね。

However, I should not be reckless.

"pq: sorry, too many clients already"

pq: sorry, too many clients already

このようなデータベースの悲鳴に対して、各種の対応を試してきたのですが、リソースマネージャーをみたら、ディスク(書き込み)使用率99%越え、という状況が発生していました。

I have tried various responses to the database screams, but when I checked the resource manager, I found that the disk (write) usage was over 99%.

まあ、dockerの中に作ったDBに、1秒間に30回も100人分のエージェント情報の書き込みをやったら、そりゃ、データベースも悲鳴を上げるだろうなぁ、と、思いました。

Well, I thought, writing 100 agents' information 30 times per second to a database created in docker, the database would scream.

ここ十何年も、リソース不足問題と無縁で生きてきましたので、自分の無茶に気がつなかったようです。

I have been living without resource shortage problems for more than a decade, so I guess I did not realize how reckless I was.

-----

そういえば、嫁さんと会話していた時、

I was having a conversation with my wife.

江端:「データベースがダウンしちゃって・・・」

Ebata: "My database went down..."

嫁さん:「え! それ大変じゃん!! 大丈夫なの?」

Wife: "What! That's an accident! Are you okay?"

と、『何言ってんの?』という感じで、お互いに首をかしげることになりました。

We were both nodding our heads like 'What are you talking about?'

一般の人が「データベース」という言葉から一般の人が連想するのは、行政管理システムとか、電力配送システムとか、アマゾンなどのようなEコマースシステムでしょう。

What the general public associates with the word "database" would be an administrative management system, an electricity delivery system, or an e-commerce system such as Amazon.

その手のデータベースがダウンしたら、社会生活に甚大な影響が出ます。

If that type of database were to go down, it would have an enormous impact on social life.

嫁さんの中では、『私が自分のプログラムの為だけにローカルに作った実験用の小規模データベース』は、データベースに含まれていないようです ――

In my wife's mind, 'a small experimental database that I created locally just for my own programs' is not included in the database.

それが、一般人の感覚である、というのは、私にも分かります。

I think that is the feeling of ordinal persons.

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

コラムの執筆に時間がかかるのは当然なのですが、最近、最近はイラスト作成にも時間がかかっています。

It is natrual that I pay for time to write my column, however, I have to waste time to make a illustration.

漫画を見ながら、「これ、どうやったら書けるんだろう?」と思いながら、自分なりに、その絵をマネる方法を試行錯誤しています。

Watching manga-books, I woder "how can I draw this", and I try to figure out how to imitate the drawing in my own way,

神の啓示を描いてみた件

毎度同じことを言っていますが、

I say same things again,

―― 絵を描く能力がある人って、やっぱり凄い

"People who have the ability to draw are still great"

と、本当に尊敬してしまいます。

The drawing make me respect them.

2022/09,江端さんの技術メモ

パワポで、バックグランド黒、白い線を複数コピペを繰り返す

SAIで、エラブラシで発光を付ける

線をぼかして、完成