2023,江端さんの忘備録

若い頃は、議論して勝つことは気持ちの良いことの一つだったですけど、今、私は、そういうことには興味はありません。

When I was younger, arguing and winning were some things that felt good, but now, I am not interested in that kind of thing.

そもそも、私は、自分の知識や理解が『不十分』である、という前提から出発します。

訓練されたエンジニア/研究員は、自分が「間違っていること」を前提に行動します。

To begin with, I start from the premise that my knowledge and understanding are 'insufficient.'

だから勉強をして、人の話を聞いて、自分に納得できるのであれば、自分の中に取り込みます。

So I study, I listen to others, and if it makes sense to me, I take it in.

「論破」という言葉は、私には、もの凄く下品な言葉に思えます。

"Argumentation" seems to me to be a vulgar word.

-----

私のようなエンジニアには、「論破」という考え方は、それほど必要ではないのです。

For an engineer like me, " argumentation" is not so necessary.

私の思考形態は、大体こんな感じです。

My thought form is roughly like this.

(1)考えて何かを作る、

(1) Think and make something,

(2)それが動けば「正しい」、動かなければ「間違っている」、

(2) If it works, it is "right"; if not, it is "wrong",

(3)間違っていれば、正しく動くように直す、

(3) If it is wrong, fix it so that it works correctly,

(4)それが正しいかどうか、今日分からないのであれば、明日以降に分かるかもしれない

(4) If I don't know whether it is right today, I may find out tomorrow or later.

-----

もちろん、その考え方(上記の(1))が完全にニュートラル(中立)から始まることはありません。

Of course, the idea ((1) above) does not start completely neutral.

基本的には感情(主に"怒り")から出発することは否定しません。

I do not deny that I begin from emotions (mainly "anger").

それがなかったら、取り組みを開始することすらできません。

Without it, I cannot even begin to think.

-----

以前もお話しましたが、エンジニアや研究員は「負け続ける」ことが仕事です。

As I have told you before, engineers and researchers must "keep losing."

「続ける」以上、次の勝負に出られなくなるような「大きな負け」は回避しなければなりません。

As long as I "keep losing," I must avoid "big losses" that prevent me from playing the next game.

「小さく」負け続け、まれに勝った時にも、あまり目立たないように「小さく勝つ」ようにすることが肝要です。

It is essential to keep losing "small" and, on the rare occasions when I win, try to "win small" in a less conspicuous way.

エンジニアや研究員の勝利条件というものがあるとすれば、勝敗がどうあれ、それを「小さく見せる」ことだと、私は思っています。

I believe that if there is such a thing as a winning condition for engineers and researchers, it is to "make it look small," no matter what the winners and losers are.

これは、しばしば「謙虚」というものに、『勘違い』されることが多いようです。

This is often 'mistaken' for 'humility.'

-----

私にとって、「謙虚」は、美徳ではなく、生存戦略です。

For me, "humility" is not a virtue but a survival strategy.

「誠実」が戦略であるように。

Just as "integrity" is a strategy.

ただ、最近は、このような「謙虚」という生存戦略が、近年の日本の技術進歩を妨げている要因かもしれない、と思うことが多いです。

Recently, however, I have often wondered if this survival strategy of "humility" might have hindered Japan's technological progress in recent years.

その件については、また後日。

I'll get back to you on that.

2023,江端さんの技術メモ

データベース(DB)のデータのインポートを開始して、すでに3時間が経過しようとしています。このインポートが、これまで作ってきたDBのテーブル全部を吹き飛ばすことがなかろうかと、とても心配しています。

User

dockerを使ってPostgresqlでDBを作っています。特にパラメタのセットとかはしていません。このような場合、DB容量の上限値をざっくりとで結構ですので、教えて下さい。

ChatGPT
Dockerコンテナ内でPostgreSQLをデフォルトの設定で実行する場合、データベースのサイズに特別な制限は設定されません。制限はDockerコンテナ自体のディスク容量に依存し、PostgreSQL自体は通常制限を設けません。

Dockerコンテナのディスク容量は、ホストマシンのディスク容量に依存し、Dockerコンテナが実行されているディスク領域によって決まります。したがって、デフォルトの設定であれば、PostgreSQLデータベースの容量制限はホストマシンのディスク容量に影響されます。

したがって、特定の容量制限を設定していない場合、PostgreSQLデータベースの上限容量は、ホストマシンのディスク容量に依存し、通常は制約を受けません。ホストマシンのディスク容量に制約がある場合、それが制限となります。

PostgreSQL自体にはデータベースサイズの制約を設定する設定がありますが、通常はデフォルトの設定で制限を設けることはありません。したがって、Dockerコンテナ内で特別な設定を行っていない場合、PostgreSQLデータベースのサイズは通常はホストマシンのディスク容量によって制約されます。


このような回答を得て、先ずは安堵していますが、それでもやっぱり怖いです。
Dockerコンテナの丸ごとバックアップを試みるべきでしょうか。
以前やったときは、データ本体がスッポリ抜けていたような、嫌な記憶があります。

 

 

2023,江端さんの技術メモ

Q: 緯度、軽度の点からなる鉄道路線のCSVデータがあるのですが、これが線の順番に並んでおらず、バラバラの順番になっています。このcsvファイルを線の順番に並び替えるGo言語プログラムを作成して下さい。

点画にすれば、こんな感じ

でも、線画にすると、こんな感じになる

で、このcsvのファイル名を、"your_csv_file.csv"として、以下のプログラムに放り込む

package main

import (
	"bufio"
	"encoding/csv"
	"fmt"
	"io"
	"math"
	"os"
	"strconv"
)

// 座標を表す構造体
type Coordinate struct {
	Latitude  float64
	Longitude float64
}

func main() {
	// CSVファイルのパス
	filePath := "your_csv_file.csv"

	// CSVファイルを読み込む
	coordinates, err := readCoordinatesFromFile(filePath)
	if err != nil {
		fmt.Println("Error reading CSV file:", err)
		return
	}

	// 座標を線の順番に並び替え
	sortedCoordinates := sortCoordinates(coordinates)

	// 結果を表示
	for _, coord := range sortedCoordinates {
		fmt.Printf("%f, %f\n", coord.Latitude, coord.Longitude)
	}
}

// CSVファイルから座標を読み込む関数
func readCoordinatesFromFile(filePath string) ([]Coordinate, error) {
	var coordinates []Coordinate

	file, err := os.Open(filePath)
	if err != nil {
		return nil, err
	}
	defer file.Close()

	reader := csv.NewReader(bufio.NewReader(file))
	for {
		line, err := reader.Read()
		if err == io.EOF {
			break
		} else if err != nil {
			return nil, err
		}

		// CSVの各行から緯度と経度を抽出
		latitude, err := strconv.ParseFloat(line[0], 64)
		if err != nil {
			return nil, err
		}
		longitude, err := strconv.ParseFloat(line[1], 64)
		if err != nil {
			return nil, err
		}

		coordinates = append(coordinates, Coordinate{Latitude: latitude, Longitude: longitude})
	}

	return coordinates, nil
}

// 座標を線の順番に並び替える関数
func sortCoordinates(coordinates []Coordinate) []Coordinate {
	// 最初の座標をスタート地点として選択
	startIndex := 0
	sortedCoordinates := []Coordinate{coordinates[startIndex]}
	coordinates = append(coordinates[:startIndex], coordinates[startIndex+1:]...)

	// 座標を距離に基づいてソート
	for len(coordinates) > 0 {
		minIndex := findNearestCoordinateIndex(coordinates, sortedCoordinates[len(sortedCoordinates)-1])
		sortedCoordinates = append(sortedCoordinates, coordinates[minIndex])
		coordinates = append(coordinates[:minIndex], coordinates[minIndex+1:]...)
	}

	return sortedCoordinates
}

// 最も距離の近い座標のインデックスを検索する関数
func findNearestCoordinateIndex(coordinates []Coordinate, reference Coordinate) int {
	minDistance := math.MaxFloat64
	minIndex := 0

	for i, coord := range coordinates {
		distance := calculateDistance(coord, reference)
		if distance < minDistance {
			minDistance = distance
			minIndex = i
		}
	}

	return minIndex
}

// Haversine式を使用して座標間の距離を計算する関数
func calculateDistance(coord1, coord2 Coordinate) float64 {
	earthRadius := 6371.0 // 地球の半径(キロメートル)

	// 度数法からラジアンに変換
	lat1 := degToRad(coord1.Latitude)
	lon1 := degToRad(coord1.Longitude)
	lat2 := degToRad(coord2.Latitude)
	lon2 := degToRad(coord2.Longitude)

	// Haversine式による距離計算
	dlon := lon2 - lon1
	dlat := lat2 - lat1
	a := math.Pow(math.Sin(dlat/2), 2) + math.Cos(lat1)*math.Cos(lat2)*math.Pow(math.Sin(dlon/2), 2)
	c := 2 * math.Atan2(math.Sqrt(a), math.Sqrt(1-a))
	distance := earthRadius * c

	return distance
}

// 度数法をラジアンに変換する関数
func degToRad(deg float64) float64 {
	return deg * (math.Pi / 180)
}

でてきたcsvをファイルにして表示すると、こんな感じになった。

だいぶ良くなったんだけど、変な直線が一本引かれている。

考察した結果、このプログラムは、
(Step.1) 出発点に一番近いノードを探す。
(Step.2)そのノードを次の出発点にして(Step.1)を行う
という処理をしているため、使われていないノードが、候補として残ってしまうという問題が生じる。

で、終端に至ったノードは使われていないノードの中から、一番近いノードを探してくるため、このような問題が発生してしまう、ということだろう。

対策は結構簡単で、ノード距離が異様に大きい場合は、そこで打ち切る、という処理を入れれば足る
(面倒なので、今回は、手動で削除した)

以上

2023,江端さんの忘備録

「世界中を敵に回しても」・・・? 世界中って、米軍も?

「世界中を敵に回しても」・・・? 世界中って、みたいに?

で、書いてきたように、私は「たとえ世界を敵に回しても」というセリフが嫌いです。

As I have written, I dislike the line "even if I make me against the world."

しかし、それを「国是」とする政府、国民が実在します。

However, there are absolute governments and people who make it their "national policy."

-----

ところで、我が国の若者が(もちろん全ての若者ではないが)、パレスチナ支援(当然、反イスラエル)で連帯していた時代があったのです。

By the way, there was a time when the youth of our country (not all youth, of course) were in solidarity in support of Palestine (anti-Israel, of course).

1970年代の日本の学生運動におけるパレスチナ支援は、その後の年代にも続き、パレスチナの独立と権利の追求を支える一翼を担いました。

Support for Palestine in the Japanese student movement of the 1970s continued into later years and played a role in supporting Palestine's quest for independence and rights.

抗議運動、デモンストレーション、パレスチナ解放機構(PLO)への支援、加えて、ベトナム反戦運動、など、はっきりいって、当時の大学キャンパスは、無法地帯 ―― もとい「開放区」だったのです。

Protests, demonstrations, support for the Palestine Liberation Organization (PLO), and the anti-Vietnam war movement, to name a few, the university campus at the time was a lawless zone, or rather, an 'open zone.'

残念ながら、私は、15年ほど生まれるのが遅れて、この「開放区」に立つチャンスを逸しましたが、その残滓には付き合ってきた、と思っています。

Unfortunately, I was born about 15 years too late and missed the chance to stand in this "open zone," but I believe I have kept up with the residue.

例えば、こんなやり方で。

For example, in this way.

-----

私、今、大学生をやっているのですが、私の在籍している大学は、1960~70年代に、かなり過激な活動母体として有名な大学だったらしいです。

I am a college student now, and it seems my university was a famous mother of radical activities in the 1960s and 1970s.

しかし、私が見ている限り、大学キャンパスで「パレスチナ連帯」を叫んでいる学生は、一人もいません。

However, as far as I can see, not a single student is shouting "Palestine solidarity" on college campuses.

まあ、当然ですが。

Well, naturally.

今の大学キャンパスで「パレスチナ問題」を知っている学生がいたら、私はビックリするでしょう。

I would be surprised if any student on a college campus today knew about the "Palestinian issue."

2023,江端さんの技術メモ

で「エクスポートをクリック」 → map.osmがダウンロードされる

JOSMで表示する

フィルタを選択

Ctrl-aで選択

「編集」→「座標をコピー」で、座標コピー

ここで、エディター等に(test.csvなどとして)コピーする。

【QGIS】緯度・経度をもつCSVデータを読み込み、地図に表示する

を参照して、test.csvをQGISで表示する。

このように座標が取得できているのが確認できました。

根岸線を削除する場合、JOSMで場所を指定して丹念に削除していく

で、この座標さえ取れれば、

Go言語で、BusRouteの点で繋がれた線とみなして、trackingDataの各点から、その線からの最短距離を算出するようなプログラムの改造をお願いできますか?

が使えるようになる。

ダメ。これで取得した座標は、出現順番がバラバラになっているので、補正処理が必要となる。
今回の場合、南北方向にのみ伸びているので、緯度で並べかえれば良いが、そうでない場合は、別途処理が必要となると思うが(今回は必要ないので、これは省略)

この後であれば、上記のプログラムが使えるはず。

 

ちなみに、
osmosis --read-xml map.osm --tf accept-nodes railway=* --write-xml railway_nodes.osm
osmosis --read-xml map.osm --tf accept-relations railway=* --used-way --write-xml railway_data.osm

は、上手く動かせませんでした。

 

 

2023,江端さんの忘備録

学校の強い部活動の運営管理者に対して、校長のガバナンスが全く効かない ―― というのを、私は良く知っています。

I know the principal's governance is ineffective against the school's strong club operations manager.

特に全国大会レベルの実力を持つ部活動については、現場の教師とか監督は、やり放題です。

Especially about club activities that can compete at the national tournament level, teachers and supervisors in the field can do whatever they want.

以前、私、娘を守る為に、学校と闘ったことがあります。

I, myself, have fought the school before to protect my daughter.

その事実確認について、校長と教師に供述書に署名をさせた書類を、今も自宅の金庫に保管しています。

I still have the documents that I had the principal and the teacher sign in a deposition confirming that fact in my home safe.

その学校で、再び同じ問題が発生したら、その書類を全部、世間にぶちまけまける予定です。

If the same problem occurs again at that school, I plan to blurt out the entire dossier.

-----

江端:「校長先生。あの学校に派手に飾られている『祝 全国大会出場』などと書かれている垂れ幕は、私の娘や他の子どもたちの心身を破壊し尽して得たもの ―― そういう理解でいいんですよね」

Ebata: "Principal. The banners that are flamboyantly displayed in that school that say 'Congratulations on your participation in the national tournament' were obtained by destroying the bodies and minds of my daughter and other children--is that my understanding?

校長先生:「そういう訳では・・・」

Principal: "That's not why..."

江端:「子どもたちを潰してまでして、出場する全国大会なんぞに、どんな価値があるんですか?」

Ebata: "What value is there in a national tournament that you have to destroy the children to enter?"

校長先生:「・・・」

Principal: "..."

-----

という訳で、私は、日大アメフト部の大麻使用問題についても、『理事長のガバナンスが全く効いていない』という状況がよく理解できます。

Therefore, I can understand the situation of 'the Chancellor's governance is not working at all' about the issue of marijuana use by the Nihon University football team.

ですから、「法律に抵触する行為」の発覚時点で、「理事長のガバナンスの範囲を越えた」と判断して、後は法執行機関(警察)と司法(法廷、裁判所)に丸投げですれば、いいんじゃないでしょうか。

Therefore, at the time of discovery of "acts in conflict with the law," it should be determined that "this trouble exceeded the scope of the school governance," and the rest should be left to law enforcement (police) and the judiciary (courts and tribunals).

以前、いじめの問題も、「現場(教師)が解決できないなら、とっとと諦めて、警察と裁判所に任せろ」という話をしたことがあります(が、今、この日記を探しているのですが見つけられません)。

I have said before that if the field (teachers) can't solve the problem of bullying, then give it up and let the police and courts handle it (but I'm looking for this diary now and can't find it).

-----

この機会に、一言申し上げたい。

I want to take this opportunity to say a few words.

『自分の子どもを守る為であれば、あらゆる手段をとって、全てを敵に回して、見苦しく無様に闘え。お前、その子の"親"なんだろう?』

"To protect your child, you must fight in every way possible, against everything and everyone, in an ugly and disgraceful manner. You are the child's parent, aren't you?"

将来の明るい社会の為に「あなたの『犠牲』が必要なのです」

2023,江端さんの忘備録

Q1: 自民党の政治団体のキックバックが話題になっています。このキックバックはどのような問題が発生するのか教えて下さい

Q1: There has been a lot of talk about kickbacks from LDP political groups. Please tell me what kind of problems these kickbacks can cause.

Q2: このキックバックの行為は、どの法律に抵触することになりますか

Q2: Which law would this kickback activity violate?

Q3: 我が国の法律に限定して、可能であれば条文も指定して下さい。

Q3: Please specify only the laws of our country and, if possible, also the text of the articles.

Q4: 政治資金規正法に限定して、抵触する条文を推定して下さい。

Q4: Please estimate the conflicting articles, limited to the Political Funds Control Law.

Q5: キックバックで得られた資金は、本来課税対象になるものでしょうか

Q5: Are kickback funds taxable in nature?

Q6: つまり、キックバックで得られた資金について報告がない、ということは脱税が行われたという理解で良いでしょうか

Q6: In other words, is it correct to say that there is no report on the funds obtained through kickbacks, meaning that tax evasion has occurred?

-----

私が知りたかったのは、つまるところ、この最後の質問(Q6)の回答です。

What I wanted to know, at the bottom, is the answer to this last question (Q6).

ChatGPT:「はい、キックバックで得られた資金について報告せず、かつ税務当局に課税対象として申告しない場合、それは脱税行為とみなされる可能性があります」

ChatGPT: "Yes, if you do not report the funds obtained from kickbacks and do not declare them taxable to the tax authorities, it may be considered an act of tax evasion."

ChatGPT:「脱税は、法的に重大な違法行為であり、税法に違反することです」

ChatGPT: "Tax evasion is a serious legal offense and a violation of tax law."

ChatGPT:「税金を正しく申告せず、納税を回避することは、多くの国で刑事罰の対象となります」

ChatGPT: "Failure to properly report taxes and avoid paying them is a criminal offense in many countries."

-----

ChatGPTから答えを導くには、こういう問答を繰り返して、答を引き出す必要があります。

To derive an answer from ChatGPT, we must repeat these questions and answers to elicit the answer.

ちょっと面倒ですが、掲示板やSNSなんぞより、よっぽど役に立っていると思います。

It is a bit tedious but much more helpful than bulletin boards and social networking sites.

それはさておき。

That aside.

------

最近の私は執筆活動を制限しているので、確定申告しないですが、それでも20万円を1円でも越えたら、ちゃんと自己申告して、追加納税してきたんですけどぉ~

Recently, I have been limiting my writing activities, so I don't file tax returns, but even so, if the amount exceeds 200,000 yen, I file a self-report and pay the additional tax.

ふーん、20万円どころか、1000万円を越えても、納税しないでいいんだぁ~

Hmmm...they don't have to pay taxes even if it's over 10 million yen, let alone 200,000 yen...

そういうことが、できるんだぁ~

They can do that kind of thing.

で、そういう人が、我が国の国会議員なんだぁ~

And such persons are members of our country's parliament.

国会議員って、ステキな職業だなぁ~

Being a Member of Parliament is wonderful.

(キックバックの解釈について、私が誤解しているのであれば、どなたでもご指摘下さい。頂いたご指摘は、江端ファイアウォールを通じて、公開いたします)。

(If I have misunderstood the interpretation of the kickback, anyone is welcome to point it out. I will publish your remarks through the Ebata Firewall.)

「江端ファイアウォール」とは

 

2023,江端さんの技術メモ

特別なネットワークツールを使わずに、ネットワークのトラフィックを計測する方法。
(WinDumpもWireSharkも面倒だなーと)

PowerShellから、これをコピペ(xxxx.batにする必要なし)すると、network_data.logというファイルができる

while ($true) {
    $NetworkInterfaces = Get-NetAdapter | Where-Object { $_.Status -eq 'Up' }
 
    foreach ($NetworkInterface in $NetworkInterfaces) {
        $Statistics = Get-NetAdapterStatistics -Name $NetworkInterface.Name
        $ReceivedBytes = $Statistics.ReceivedBytes
        $SentBytes = $Statistics.SentBytes
 
        $TimeStamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
        $Record = "$TimeStamp, Interface: $($NetworkInterface.Name), Received Bytes: $ReceivedBytes bytes, Sent Bytes: $SentBytes bytes"
 
        Add-Content -Path "network_data.log" -Value $Record
    }
 
    Start-Sleep -Seconds 10  # 10秒待機
}

で、network_data.logの内容は、以下の通り

PS C:\Users\azureuser> more .\network_data.log
2023-12-07 10:02:07, Interface: Ethernet 7, Received Bytes: 182088626 bytes, Sent Bytes: 1971150950 bytes
2023-12-07 10:02:07, Interface: Ethernet, Received Bytes: 183155088 bytes, Sent Bytes: 1882163584 bytes
2023-12-07 10:02:17, Interface: Ethernet 7, Received Bytes: 182107502 bytes, Sent Bytes: 1971187408 bytes
2023-12-07 10:02:17, Interface: Ethernet, Received Bytes: 183176035 bytes, Sent Bytes: 1882198919 bytes
2023-12-07 10:02:27, Interface: Ethernet 7, Received Bytes: 182141183 bytes, Sent Bytes: 1971266248 bytes
2023-12-07 10:02:27, Interface: Ethernet, Received Bytes: 183207355 bytes, Sent Bytes: 1882275443 bytes

で、ここで、"Ethernet 7"と、"Ethernet"の2つのインターフェースがあることが分かるので、

$NetworkInterfaces = Get-NetAdapter | Where-Object { $_.Status -eq 'Up' -and $_.Name -eq 'Ethernet' }

とすると、'Ethernet' とか 'Ethernet 7'のどちらかを選ぶことができる。

未分類

会社から、セキュリティ対策の指示がでると心底うんざりします。

I am genuinely sick and tired of receiving instructions from the company about security measures.

(1)まず、資料の内容が分からない。一体何を目的に何がしたいのかがさっぱり分かりません。

(1) First of all, I don't understand what the material is about. I have no idea what they want to do for what purpose.

(2)一発で、マニュアル通りに上手く設定できた試しがない。

(2) According to the manual, I have never been able to set it up successfully in one shot.

(3)設定後に、パソコンを再起動を試みると、かなり高い確率で失敗し、最悪の場合、システムが全部壊れることもある。元の状態に戻すことすらできない。

(3) After setting up, attempts to restart the computer fail pretty, and in the worst case, the entire system can be destroyed. It is not even possible to restore the system to its original state.

ちなみに、これは『ITエンジニア』である私の話です。

By the way, this is my story as an 'IT engineer.'

そうでない人にとっては、このような指示は『悪夢』そのものでしょう。

Such instructions would be a 'nightmare' for those who do not.

-----

このような複雑な設定作業を、エンドユーザに押し付ける ―― これは、『エンジニア集団の会社』だからでしょうか?

Is it because this is a "company of engineers" that forces the end user to go through such a complicated setup process?

それなら諦めるしかないと思いますが ―― それでも、私は本当に怖いです。

Then I guess I'll have to give up, but I'm still really scared.

というか、セキュリティ対策のオペレーションに失敗した場合、その日の仕事は止まりますし、下手すると数日から一週間くらい、何もできなくなる可能性があります。

Or rather, if a security operation fails, work stops for the day, and if it is not good, you may not be able to do anything for a few days or a week.

サイバー攻撃より、酷い。

It is worse than a cyber attack.

実際、私、何度か、そういう目に遭遇しています。

Several times, I have encountered that kind of thing.

-----

今後、さらに、サイバー攻撃は巧妙かつ高度になります。そして、多分、私達はそれについて行けなくなります。

In the future, cyber attacks will become even more sophisticated and advanced. And maybe we will not be able to keep up.

攻撃者は、攻撃だけに集中できますが、私たちは、防御だけに一日を費すことは許されません。

An attacker can focus only on the attack, but we cannot allow our day to be spent only on defense.

通常業務に加えて防御もやる、というのは、相当に過酷な労働環境です。

It is a very demanding work environment, doing defense and regular work.

-----

今後、この状態を続き、セキュリティ対策がさらに難しくなり、私たちがそれについていけなくなれば、

If this continues and security measures become even more difficult for us to keep up with in the future,

―― ハッカー(クラッカー)側の一人勝ちとなる世界が到来する

-- A world in which hackers (crackers) will be the sole winners.

ような気がします。

I feel so.

-----

で、対策なんですが、

So, the countermeasure is,

■パソコン、スマホ、インターネットを全て放棄する

- Abandon all computers, smartphones, and the Internet.

というのは無理としても、

Even if it is impossible to say,

■ダイヤルアップ接続の時代まで、時間を遡る

- Tracing back time to the days of dial-up connections

ところまで退行するのは、どうかなぁ、と、かなり真面目に考えています。

I am seriously thinking that we should regress to this point.

これは、密告が奨励されたかつての社会主義国家や現在の独裁国の様ですし

 

2023,江端さんの技術メモ

ラズパイ4 + USBカメラ Webカメラ C270n HD 720P で、SRTストリームに変換してライブ映像を転送する方法(色々やってきたんだけど、この組み合わせだけがスポッと抜けていて、探すのに苦労した)

送信側
cam@cam-desktop:~$ gst-launch-1.0 v4l2src ! video/x-raw,format=YUY2,width=640,height=480,framerate=30/1 ! videoconvert ! x264enc tune=zerolatency ! mpegtsmux ! srtserversink uri=srt://:8888

受信側
cam@cam-desktop:~$ ffplay -i srt://localhost:8888