2024,江端さんの忘備録

コラムが書きたい ―― 最近、とても、とても、とても、そう思います。

I want to write a column -- very, very, very much so lately.

書きたいネタが沢山あるんです。

I have a lot of stories to write.

轢断のシバタ先生にも、お願いしていることもあるんです。

I have even asked Dr. Shibata, a "run-over," to help me.

EE Times Japan編集部の編集部(編集長?)が、『最近、あの、江端の膨大な文章を編集しなくて、ラクだな』と思って頂けているなら、それが唯一の救いです(救いか?)。

If the editorial staff (editor-in-chief?) of EE Times Japan thinks, "It's so much easier not to have to edit Ebata's huge amount of writing these days," that's the only relief (or is it?).

-----

私が、「コンピュータの中に街を作る」のと、「コラムを書く」のは、どちらが世界に貢献しているだろうか?

I would contribute more to the world, "building a city inside a computer" or "writing a column"?

―― と考えて、そして、すぐに考えるのをやめました。

-- and then quickly stopped thinking about it.

『うん、どっちも世界に貢献はしないな』と思ったからです ―― 謙遜なんて1mmもありません。

I thought, 'Yeah, neither one of them contributes anything to the world' -- there's not a millimeter of modesty.

どっちも私のエゴの集大成です。

Both are the culmination of my ego.

でも、『コラム書きたい、書きたい、書きたい』が止まりません。

But I can't stop. 'I want to write a column. I like to write a column.

地図DB作りや、時刻表や、シミュレータや、映像転送コードや、生成AI評価や、特許明細書の執筆から、逃げたい訳ではありません。

I do not want to escape from making map databases, timetables, MAS simulators, video transfer codes, generating AI evaluations, or writing patent specifications.

ええ、そうです ―― 多分。

Yes, it is -- probably.

―― 私には、書きたいこと/言いたいことが沢山あるからです

2024,江端さんの技術メモ

Keyword:USB LAN ehternet アダプタ ubuntu  etc netplan

(1)>ip addrで、
8: enx207bd2222d29: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 20:7b:d2:22:2d:29 brd ff:ff:ff:ff:ff:ff
みたいな奴をみつける

(2)/etc/netplan/99_config.yamlで、以下のよう書き替える

network:
  version: 2
renderer: networkd
ethernets:
eth0:
#      dhcp4: false
addresses:
192.168.101.30/24
routes:
- {to: default, via: 192.168.101.1}
#      addresses:
#        - 192.168.0.15/24
enx207bd2222d29:
dhcp4: false
addresses:
192.168.0.15/24
(3) sudo netplan apply でネットワーク再起動

TP-LINK / Archer C2300 を再度設定しなおす

2024,江端さんの忘備録

以前、

Before,

「ブルーピリオド」という漫画の無料版を読んで、『久々に凄いもの読んだ』と思いました。

という話を書きました。

I wrote a story about this.

先程、

Now,

「YOASOBI、ヒット曲『群青』の世界観 マンガから学ぶ」

という記事を読んで、しっくり入ってきました。

I read the article that I could understand nicely.

-----

こういう『ブルーピリオド』の主人公のような生き方は、本当に、美しく、尊く、その内面から溢れる光と力で、世界を豊かに彩ります ―― 赤の他人にとっては。

This kind of life, like the protagonist of "Blue Period," is genuine, beautiful, and precious, and it enriches the world with the light and power that overflows from within -- for a stranger.

しかし、当の本人にとって、このような生き方は、絶望と挫折が無限に繰り返す、煉獄の日々です。

For the persons themselves, however, this way of life is a purgatory of endless cycles of despair and frustration.

『私は、ついに、こういう生き方ができなかったなぁ』と、しみじみと思っています。

I think, 'Finally, I couldn't live like this.

なぜ、"今"、そう言い切れるかというと、私は、残りの人生においても、『ブルーピリオド』の主人公のような生き方をする予定はないからです。

I can say that "now" because I do not plan to live the rest of my life like the protagonist of "Blue Period."

私は、やれることをやり、できないことは諦めます。

I do what I can and give up what I cannot.

そういう今の生き方がいい ―― 煉獄の日々よりはずっといい。

That kind of life now is good -- much better than the days of purgatory.

-----

まあ、それにしても、自分ではない赤の他人に期待する人の、なんと多いことか。

How many people expect others who are not themselves to do so?

将棋でも、野球でも、何でも構わないけど、私は、自分でない他人の偉業を「素晴しい」と思いますが、それ以上でも以下でもありません。

I consider the accomplishments of others, be it chess, baseball, or whatever, to be "great," but nothing more or less than my own.

私は、自分のやりたいことだけで、自分のリソースを100%使い切っています。

I use 100% of my resources to do what I want.

私には、赤の他人を応援するだけの余裕がありません。

I do not have enough time to support a stranger.

『赤の他人を応援できる人は、一体どこに、そんな余裕があるのだろう』と不思議に思うことがあります。

Sometimes I wonder, 'Where in the world does a person who can support a stranger find the time to do so?

ともあれ、私は『自分では達成できない何かを、赤の他人に代替させ、期待すること』ことだけは絶対しない ―― そういう自分であり続けたいと思っています。

Anyway, I will never do anything I can't achieve by myself and expect someone else to do it for me -- I want to keep being that kind of person.

ましてや、『自分以外の他人が、自分の期待通りにならかったことを批判する』―― そういう醜悪な人間の側に属することだけは、死んでもゴメンです。

And I will not be on the side of those ugly people who criticize others for not living up to their expectations, even if someone kills me.

2024,江端さんの技術メモ

まず、この2つの点は、どっちが、私(江端)が追加したノードだったのかを思い出すことにします。

上のノードは、こんな風

id番号が若いから、こっちが私が作った方で、まあ、間違いないでしょう。

念の為、もう一方も確認。

こちもID番号若いけど、以前管理した番号とは違うみたいだから、こっちが既存のノードであろう、とする。

これを私が結線した時に作った道路が、これ。

結線の情報は、source,target, source_osm, target_osmで入っているので、少なくともノード間の結線であれば、ここの加工だけで何とかなるんじゃないかな、と。

で、ここの部分のエントリーを見てみたら、こんな感じでした。(tomioka_db_c_trialの方で確認中)

gid、osm_id →新規の番号を適当に付ける
source, target, source_osm, target_osm は、これから結線するノード番号を記載する。(sourceが、江端が作成したNodeになっている)
と、まあ、ここまではいいとして、tag_idってなんだろう。あと、the_geomをどうしようかなぁ。

QGIS使ってtag_id = 112 だけを表示して調べてみたけど、私が手を入れたところに(も)出てきているようなので、何も分からないまま 112 を使うことにする。

さて、次に問題は、the_geomである。これは面倒くさい。多分デタラメな値を入れても大丈夫だとは思うが、念を入れておきたい。

tomioka_db_c=# select * from ways where gid = 506;
 gid | osm_id | tag_id |        length         |      length_m      | name | source | target | source_osm | target_osm |         cost          |     reverse_cost      |       cost_s       |   reverse_cost_s   | rule | one_way | oneway  |       x1        |      y1       |       x2        |       y2       | maxspeed_forward | maxspeed_backward | priority |                                          the_geom
-----+--------+--------+-----------------------+--------------------+------+--------+--------+------------+------------+-----------------------+-----------------------+--------------------+--------------------+------+---------+---------+-----------------+---------------+-----------------+----------------+------------------+-------------------+----------+--------------------------------------------------------------------------------------------
 506 | 105780 |    112 | 7.110994016919574e-06 | 0.7650124135935403 |      |    277 |    414 |     102352 |     102501 | 7.110994016919574e-06 | 7.110994016919574e-06 | 0.0550808937787349 | 0.0550808937787349 |      |       0 | UNKNOWN | 139.61725559089 | 35.3693678707 | 139.61725862094 | 35.36936143758 |               50 |                50 |      2.5 | 0102000020E610000002000000AA04CC8EC0736140C26C467247AF414090C32695C0736140A2674F3C47AF4140
(1 row)
で、以下のように実行して、 the_geom の内容を調べてみると
tomioka_db_c=# select ST_Astext(the_geom) from ways where gid = 506;
                                st_astext
--------------------------------------------------------------------------
 LINESTRING(139.61725559089 35.3693678707,139.61725862094 35.36936143758)
(1 row)

と、2点の座標を結ぶ直線であることが分かった。

そこで、以下のプログラムを作成してみた。

/*
c:\users\ebata\tomika3b\src\others\main31.go
go run main31.go


*/
package main

import (
	"encoding/hex"
	"fmt"

	"github.com/twpayne/go-geom"
	"github.com/twpayne/go-geom/encoding/wkb"
)

func main() {

	// 2つの緯度経度ポイント
	//coordinates := [][]float64{{139.6917, 35.6895}, {-74.006, 40.7128}}
	coordinates := [][]float64{{139.61725559089, 35.3693678707}, {139.61725862094, 35.36936143758}}
	//coordinates := [][]float64{{139.61725862094, 35.36936143758}, {139.61725559089, 35.3693678707}}

	// Geometryの作成
	lineString := geom.NewLineStringFlat(geom.XY, []float64{coordinates[0][0], coordinates[0][1], coordinates[1][0], coordinates[1][1]})

	// WKB形式に変換
	wkbBytes, err := wkb.Marshal(lineString, wkb.NDR)
	if err != nil {
		fmt.Println("Error:", err)
		return
	}

	// WKB形式を16進数文字列に変換
	wkbHex := hex.EncodeToString(wkbBytes)

	// 出力
	fmt.Println(wkbHex)
}

さて、このプログラムからから、
0102000020E610000002000000AA04CC8EC0736140C26C467247AF414090C32695C0736140A2674F3C47AF4140
を作れるかな?

coordinates := [][]float64{{139.61725559089, 35.3693678707}, {139.61725862094, 35.36936143758}}
としたら、
ベース: 0102000020E610000002000000AA04CC8EC0736140C26C467247AF414090C32695C0736140A2674F3C47AF4140
作成: 01020| |0000002000000aa04cc8ec0736140c26c467247af414090c32695c0736140a2674f3c47af4140
一部欠けているが、一致している。

では、逆転させてみよう。
coordinates := [][]float64{{139.61725862094, 35.36936143758}, {139.61725559089, 35.3693678707}}
としたら、
ベース: 0102000020E610000002000000AA04CC8EC0736140C26C467247AF414090C32695C0736140A2674F3C47AF4140
作成: 000000000200000002406173c08ecc04aa4041af4772466cc2406173c09526c3904041af473c4f67a2
こっちは、不一致が多いようです。

でも geomの長さが違うと思い、ChatGPTに尋ねてみたところ、以下のように言われました。

PostGISで生成されたWKB形式のデータは、ヘッダーを含んでいるため、より長いバイト列となります。一方、Go言語の標準ライブラリを使用して生成されたWKB形式のデータは、ヘッダーを省略しているため、より短いバイト列となります。

両方のWKB形式のデータが同じ構造と座標を持っている場合、データの内容は正しく解釈されます。しかし、データの長さには違いが生じることがあります。この違いは、WKB形式が異なる実装によって生成された場合に一般的です。

WKB形式のデータは、そのバイト列を解釈する際に、ヘッダーの情報を使用してジオメトリの種類と座標の次元を正しく読み取ります。そのため、データの長さの違いは問題ありません。

ということなので、長さについては無視することにしました。まあ、ダイクストラ計算をする分には問題ないでしょう

-----

では、本命。

この2点間を結線する、をやってみます。

    //source 305(×306) {139.62232489, 35.37185132}  target 1401  {139.62233160, 35.37184490} // これが今回のターゲット

    coordinates := [][]float64{{139.62232489, 35.37185132}, {139.62233160, 35.37184490}}

で計算したところ、

0102000000020000002d41e315ea736140ed2ff5d298af41408ea8f523ea7361409a571a9d98af4140
となったので、これはこのまま利用。

今回は、この2点間を繋ぐ、wayのオブジェクトを作れば良いだけなので、基本的にはwayのエントリーを一つ追加するだけで足りるはず。

#gid =506のエントリーがこんな感じなので、これをパクります。
tomioka_db_c=# select * from ways where gid = 506;
 gid | osm_id | tag_id |        length         |      length_m      | name | source | target | source_osm | target_osm |         cost          |     reverse_cost      |       cost_s       |   reverse_cost_s   | rule | one_way | oneway  |       x1        |      y1       |       x2        |       y2       | maxspeed_forward | maxspeed_backward | priority |                                          the_geom
-----+--------+--------+-----------------------+--------------------+------+--------+--------+------------+------------+-----------------------+-----------------------+--------------------+--------------------+------+---------+---------+-----------------+---------------+-----------------+----------------+------------------+-------------------+----------+--------------------------------------------------------------------------------------------
 506 | 105780 |    112 | 7.110994016919574e-06 | 0.7650124135935403 |      |    277 |    414 |     102352 |     102501 | 7.110994016919574e-06 | 7.110994016919574e-06 | 0.0550808937787349 | 0.0550808937787349 |      |       0 | UNKNOWN | 139.61725559089 | 35.3693678707 | 139.61725862094 | 35.36936143758 |               50 |                50 |      2.5 | 0102000020E610000002000000AA04CC8EC0736140C26C467247AF414090C32695C0736140A2674F3C47AF4140

(1 row)

空き番号となっているgidは1984
空き番号となっているosm_idは、現在104088(と同じ桁であれば)、104090あたりが良さそう

x1,y1,x2,y2も比較してみたところ、
source 139.61725559  35.36936787
target 139.61725862 35.36936144
X1 139.61725559089 Y1 35.3693678707
X2 139.61725862094  Y2 35.36936143758となっていたので、とりあえずx1、x1をsource に、x2、y2をtargetにしてみたでは作ってみますか
(他のところは、現在のノード(506)をパクッても大きな問題にはならないだろう、と予測)
gid | osm_id | tag_id |        length         |      length_m      | name | source | target | source_osm | target_osm |         cost          |     reverse_cost      |       cost_s       |   reverse_cost_s   | rule | one_way | oneway  |       x1        |      y1       |       x2        |       y2       | maxspeed_forward | maxspeed_backward | priority |                                          the_geom
1984| 104090 |    112 | 7.110994016919574e-06 | 0.7650124135935403 |      |    305 |    1401 |    102381 |    4095221163 | 7.110994016919574e-06 | 7.110994016919574e-06 | 0.0550808937787349 | 0.0550808937787349 |      |       0 | UNKNOWN | 139.61725559089 | 35.3693678707 | 139.61725862094 | 35.36936143758 |               50 |                50 |      2.5 | 0102000020E610000002000000AA04CC8EC0736140C26C467247AF414090C32695C0736140A2674F3C47AF4140

INSERT INTO ways (gid, osm_id, tag_id, length, length_m, name, source, target, source_osm, target_osm, cost, reverse_cost, cost_s, reverse_cost_s, rule, one_way, oneway, x1, y1, x2, y2, maxspeed_forward, maxspeed_backward, priority, the_geom)
VALUES (1984, 104090, 112, 7.110994016919574e-06, 0.7650124135935403,NULL, 305 , 1401, 102381, 4095221163, 7.110994016919574e-06, 7.110994016919574e-06, 0.0550808937787349, 0.0550808937787349, NULL, 0, 'UNKNOWN', 139.62232489, 35.37185132, 139.62233160, 35.37184490, 50, 50, 2.5, '0102000000020000002d41e315ea736140ed2ff5d298af41408ea8f523ea7361409a571a9d98af4140');

結線されたようです。

では、ちゃんとダイクストラで繋がるのかを確認してみます。

tomioka_db_c_trial=# SELECT seq, source, target, x1, y1, x2, y2 FROM pgr_dijkstra('SELECT gid as id, source, target, cost, reverse_cost FROM ways',699, 304, directed := false) a INNER JOIN ways b ON (a.edge = b.gid) ORDER BY seq;
 seq | source | target |       x1        |       y1       |       x2        |       y2
-----+--------+--------+-----------------+----------------+-----------------+----------------
   1 |    699 |   1401 |      139.622458 |     35.3721429 |     139.6223316 |     35.3718449
   2 |    305 |   1401 |    139.62232489 |    35.37185132 |     139.6223316 |     35.3718449
   3 |    304 |    305 | 139.62216476726 | 35.37185094304 | 139.62232488969 | 35.37185132369
(3 rows)
逆方向はどうかな?
tomioka_db_c_trial=# SELECT seq, source, target, x1, y1, x2, y2 FROM pgr_dijkstra('SELECT gid as id, source, target, cost, reverse_cost FROM ways',304, 699, directed := false) a INNER JOIN ways b ON (a.edge = b.gid) ORDER BY seq;
 seq | source | target |       x1        |       y1       |       x2        |       y2
-----+--------+--------+-----------------+----------------+-----------------+----------------
   1 |    304 |    305 | 139.62216476726 | 35.37185094304 | 139.62232488969 | 35.37185132369
   2 |    305 |   1401 |    139.62232489 |    35.37185132 |     139.6223316 |     35.3718449
   3 |    699 |   1401 |      139.622458 |     35.3721429 |     139.6223316 |     35.3718449
(3 rows)
繋っているを確認できました(ホッとしました)
# 正直、ダイクストラ計算の書式が気になるけど、結線に成功しているなら、まあいいや(もう疲れた)
tomioka_db_cにも、同じエントリをして、tomioka_db_c_trialを消去しました。

未分類

tomioka_db_d.sql,tomioka_db_e.sql,tomioka_db_f.sqlと(新tomioka_db_c.sql)も作成して、\\192.168.0.9\shareに逃しました。
ーーーーー

$ pg_dump -U postgres -h 192.168.0.23 -p 15432 tomioka_db_c > tomioka_db_c.sql
Password:
として、tomioka_db_c のバックアップは\\192.168.0.9\shareに逃してあります。

DBに直接手を入れる処理

マスタDBに手を入れるのは怖すぎるので、とりあえず、こんな感じでテスト用のDBを作成します。
C:\Users\ebata>createdb -U postgres -h 192.168.0.23 -p 15432 tomioka_db_c_trial
Password:

ebata@DESKTOP-P6KREM0 MINGW64 ~(こっちのシェルを使うこと。パイプを使うため)
$ pg_dump -U postgres -h 192.168.0.23 -p 15432 -Ft tomioka_db_c | pg_restore -U postgres -h 192.168.0.23 -p 15432 -d tomioka_db_c_trial

よし、これで、tomioka_db_c_trialの方で、安心して試せる ―― 脳切開手術

2024,江端さんの忘備録

各バス停の時刻表はあります(各バス会社が開示しています)。

There are timetables for each bus stop (disclosed by each bus company).

各バス路線のルートもあります(国土交通省が開示しています)。

There are also routes for each bus line (disclosed by the Ministry of Land, Infrastructure, Transport and Tourism).

でも、それを運行表として開示している行政や会社はレアケースです。

However, it is rare for a government or company to disclose this as an operation chart.

作っているところもありますが、私が欲しいエリアにはありませんでした。

Some organizations are making them, but not in the area where I want them.

なれば、自分で作るしかないのです。

If that is the case, I have no choice but to create my own.

いや、本当に大変でしたよ。

Well, it was annoying work.

昨晩、キレそうになって、少しでもラクしたくて小さいプログラムを書いていました。

I almost lost my temper last night and was writing a small program to make it easier.

バス時刻表を手動でCSVファイルにしてから、バスの運行テーブルに書き換えるプログラム

ただ、これも、完全自動化プログラムを作成しようとすると、面倒な上、必ずバグが発生します(表記方法が違うとか、文字列が入っているとかで、発生する)ので、部分自動化の方が、安心なのです。

However, this, too, is a hassle if you try to create a fully automated program, and bugs are sure to occur (such as different notations or strings in the program), so partial automation is more reliable.

日本全国のバスの運行表を一気に作るというのであれば、完全自動化のプログラムを書いても良いのですが、私のターゲットは6路線のみでしたので、そういうプログラムは、時間コストに見合わないのです。

If I wanted to make bus schedules for all the buses in Japan at once, I could write a fully automated program, but since my target was only six routes, such a program was not worth the time cost.

という理由で、今朝の4時までかけて、この運行テーブルを作っていました。

I spent until 4:00 this morning creating this bus operation table.

-----

で、それが終わった今の私は、以前作った、GISデータベースの一箇所だけを修正したくて苦労しています。

So now that that is done, I am struggling to fix one part of the GIS database I created before.

GISデータベースを、最初から作り直すと、今作っているプログラムのノード番号の不一致が発生して、プログラムの全部が作り直しになるからです。

If the GIS database were to be rebuilt from scratch, there would be a mismatch in node numbers in the current program, and the entire program would have to be rebuilt.

これを例えるのであれば、

If this is an analogy,

―― 脳を切開して、脳の毛細血管の一つを追加するような作業

"Work like making an incision in the brain and adding one of the brain's capillaries."

でしょうか(いや、それほど凄いことではない。人の命かかっていないし)

(No, it's not that great. Because no one's life is at stake.)

-----

そんなに時間がないのに、なぜ私が日記を書いているか?

Why am I keeping my diary when I don't have that much time?

もちろん、その脳手術を目前にして、現実逃避をしているのです。

Of course, they are escaping reality in the face of that brain surgery.

 

2024,江端さんの技術メモ

バス時刻表を手動でCSVファイルにしてから、バスの運行テーブルに書き換えるプログラム(1行分だけだけど)

を、エクセルに貼りつけて、

csvでinput.csvという名前でセーブしてから、go run main30.go で実行すると、

てな感じで、平日、土曜、休日単位のテーブル(の1行)になる。

// バス時刻表を手動でCSVファイルにしてから、バスの運行テーブルに書き換えるプログラム
// c:\users\ebata\tomioka3B\others>go run main30.go

package main

import (
	"encoding/csv"
	"fmt"
	"os"
)

func main() {
	// 入力ファイルと出力ファイルのパス
	inputFile := "input.csv"

	// CSVファイルを読み込む
	csvFile, err := os.Open(inputFile)
	if err != nil {
		fmt.Println("Error:", err)
		return
	}
	defer csvFile.Close()

	reader := csv.NewReader(csvFile)
	records, err := reader.ReadAll()
	if err != nil {
		fmt.Println("Error:", err)
		return
	}

	// 出力するデータを格納するスライス
	var hour string

	for k := 1; k < 4; k++ {
		for _, row := range records {
			if row[0] != "" {
				hour = row[0]
			}
			if row[k] != "" {
				fmt.Printf("%02s:%02s,", hour, row[k])
			}
		}
		fmt.Println()
	}

}

バスの時刻表

2024,江端さんの忘備録

今、私は、「現実の街と同じ街を、コンピュータの中に作りこむ」をやっています。

I am currently working on "creating a city on the computer identical to an actual town.

詳しいことは割愛しますが、これを完成させて動かさないと、大学院を卒業できません。

I will spare you the details, but if I do not complete and move this, I will not graduate from college.

週末はこの作業で、全部の時間が溶けていきます。

This process melts away the entire weekend.

恐しく面倒くさい作業なのに、学術的には語るべき内容がない ―― 苦労談ならいくらでも語れるんですけどね。

It's a horrible and annoying process, but there's no academic content. Even if I could tell you all about the hard work.

面倒なのは、ゲームのように「自由に街を設計する」のではなく、「現実にある街を反映させる」ことです。

What is troublesome is not "freely designing a city" as in a game but "building in" a city that exists in reality.

言うまでもなく、"ワープ"とか"どこでもドア"のような架空の設定は許されません。

Fictitious settings such as "warps" or "doors to anywhere" are prohibited.

『一体、どこの誰が、こんな地図情報 ―― どう考えたって"内部情報"だよなぁ ―― を入手して、OpenStreetMapに展開したんだろう』

-----

会社の仕事でやっていた時は、もっと短期間で試作システムを作ることができたように思うのですが、今は、"亀"のような遅さです。

When I was working for the company, I thought I could create a prototype system in a much shorter time, but now it is as slow as a "turtle.

あらためて『なんで、こんなに時間がかかるんだろう』と考えてみて、当たり前の事実に気がつきました。

I thought again, 'Why is it taking so long?' and realized an obvious fact.

―― 辛い作業を、"他人"に押しつけてきたから

"I've been putting the hard work on "others"."

"他人"とは、例えば、会社の同僚や、ソフト外注さんです。

Others" are, for example, colleagues in the company or software subcontractors.

そういう人たちの圧倒的な支えがあったら、今と比較して、"光の速度"のような構築ができていた。

I had the overwhelming support of such people, so I would have been able to build at the "speed of light" compared to today.

しかし、私が大学でやっている研究対象のシステムの作り手は、私ひとりだけです。

However, I am the sole creator of the system, which is the subject of my research at the university.

そりゃ、"亀"のような速度になるのは、当然です。

Naturally, the speed would be like that of a tortoise.

私、ちょくちょく「一人でがんばっている」ような記述をしていましたが ―― 当たり前ですが ―― 一人でできることなんて、高が知れているんですよね。

I have often described myself as "working hard on my own," but there is only so much one person can do.

-----

バーチャルの街とは言え、これを一人で作るのは、本当に大変です。

Even though it is a virtual city, it is a real challenge to create this all by oneself.

この街、本当に完成するのか ―― そう考えると、怖くて眠れない日があります。

This city, will it be completed -- there are days when I can't sleep because I'm so scared to think about it.

これは、「一人でがんばっている」と思い上がっていた私への「報い」なのかもしれません。

This may be a "retaliation" for my presumption that I was doing my best on my own.

2024,江端さんの忘備録

世の中には、最初から車の運転ができる人と、最初から車の運転ができない人がいるようです。

There seem to be two types of people in the world: those who can drive from the beginning and those who cannot drive from the start.

英語と一緒です。

It is the same with English.

「日本人には、英語の習得において詰まるところ2種類の人間しかいない。それは、『英語に愛される人間』と『英語に愛されない人間』である」であると。

"There are only two kinds of Japanese when it comes to learning English: those who love English and those who don't. There are only two types of Japanese people when it comes to learning English: those who are loved by the English language and those who are not."

-----

私は、「最初から車の運転ができる人」の部類に入ると思います。

I think I fall into the "someone who can drive from the start" category.

運転で苦労したという記憶がないからです。

This is because I don't recall having any difficulty driving.

一方、嫁さんは、「最初から車の運転ができない人」だったようです。

On the other hand, my wife seemed to be "someone who couldn't drive a car from the start.

嫁さんは、

(1)螺旋状の道路を、なぜハンドルの角度を固定したままで運転できるのか、理解できない

(1) She does not understand why she can drive on a spiral road with the steering wheel at a fixed angle.

(2)駐車における、ハンドルの切り替えで、混乱する

(2)She gets confused when she switches steering wheels when parking.

これは、よくある話です。私はミニカーを購入して、あるいは図面を描いてそれを説明しましたが、理解して貰えませんでした。

This is a familiar story. I purchased miniature cars or drawn drawings to explain it to them, but she did not understand.

ですが、これはそれほど深刻は話ではありません。

But this is not so serious.

運転し続けることで、それを体感できるようになりますし、その後、ロジカルにも理解できるようになります。

By continuing to drive, we can experience and understand it logistically.

-----

江端家では、『高校卒業直後に、自動車学校に入学させる』が慣例となっておりましたので、長女も次女も運転免許を、早々に取得しました。

In the Ebata family, it was customary to have students enroll in driving school immediately after high school graduation, so both our oldest and second daughters obtained their driver's licenses as soon as possible.

しかし、運転が解禁される日を、21歳の誕生日の当日としていました。

However, the date when the ban on driving was lifted was set as the day of his 21st birthday.

なぜか ―― 自動車保険の保険料が安くなるからです

Why -- because it will reduce your auto insurance premiums.

いや、本当に、18~21歳前日までの保険料は、本当にバカ高いんですよ。

The premiums from 18 to the day before age 21 are ridiculously high.

そして、私は『ティーンエージャの3年間の無事故』を素直に信じません。

And I don't honestly believe in 'three years of no accidents for teenagers.'

それは、年齢別統計値を見れば明らかですし、保険料は、当然、その統計値に反映されるからです。

This is obvious from the age-specific statistics, and premiums are naturally reflected in those statistics.

―― 運転免許の取得が、TOEIC受験と同程度に『うっとうしい』

-----

で、先日、次女のフェーズに突入しました。

So, we recently entered the phase of our second daughter's development.

どうやら次女は、「最初から車の運転ができない人」のようです。

The second daughter is "the one who can't drive a car from the beginning."

当面の間、嫁さんの時にやったような、講義とか演習が必要になるかもしれません。

For now, I may need a lecture or exercise like I did with my wife.

未分類

以前より、私は、時空間を取り扱う発明などを出願してきました。

I have been applying for inventions dealing with space-time and other matters for some time now.

私の特許発明は、かなり「SF小説/アニメ頼み」のところがあります。

My patented inventions are "science fiction novel/anime dependent."

(ちなみに、『シュタインズゲート』は、私の出願の"後"の放映です)。

(Incidentally, "Steins;Gate" aired "after" my application.)

-----

しかし、最近の、生成AIや、メタバースの出現で、「SF小説/アニメ頼み」も苦しくなってきました。

However, with the recent emergence of generative AI and the metaverse, "relying on science fiction novels/animations" has become difficult.

昨日も、一晩中、グループチャットで、特許ネタの案出で苦しんでおりました。

Yesterday, too, I spent all night in the group chat room struggling with a patent story idea.

「十分に発達した科学技術は、魔法と見分けがつかない」は、SF作家アーサー・C・クラークの定義ですが、

Though "Any sufficiently advanced technology is indistinguishable from magic.," as defined by science fiction author Arthur C. Clarke,

私に言わせれば、

In my opinion,

「十分に発達した汎用技術は、発明創成の阻害要因である」

"Well-developed general-purpose technology is a disincentive to invention.

です。

I believe this to be true.

今の私は、特許法第29条第2項(進歩性)に関する、特許審査官との、頭脳内戦闘(論戦)シミュレーションで、疲れ果てております。

I am now exhausted from simulating an intra-brain battle (argument) with the patent examiner regarding Article 29(2) of the Patent Law (inventive step).

江端さんのひとりごと「それでも貴方は特許出願したいですか?」