2023,江端さんの忘備録

私は、小型コンピュータのラズベリーパイ(ラズパイ)を、多く持っていますが、別にこの小型コンピュータが「特別に好き」というわけではないのです。

I have many small Raspberry Pi (Raspi) computers, but I am not "particularly fond" of this tiny computer.

―― 安い、小さい、持ち運べる、クローンの作成が簡単

"Inexpensive, small, portable, easy to clone."

これらが理由です。

These are the reasons.

例えば、小さなデータベースを作るだけなのに、何万円も出してパソコンを購入するなんて、バカらしいです。

For example, spending tens of thousands of yen to buy a computer to create a small database would be foolish.

クラウドは、管理が面倒だし、サイバー攻撃対策が必要ですし、そして、あんまり「安い」とも思えません。

The cloud is cumbersome to manage, requires cyber-attack protection, and doesn't seem very "cheap."

ラズパイは、DIYのノリのサービス構築に、最適です。

The Raspi is ideal for building DIY services.

とは言え、時々、原因不明で壊れます(猛暑の夏に多い)ので、SDカードのバックアップだけは欠かしておりませんが、問題は、どのバックアップだったか忘れてしまう、という問題があります。

However, sometimes they break for unknown reasons (often during the hot summer months), so I do not miss the SD card backups, but the problem is that I forget which backup it was.

-----

ところが最近、この「ラズパイ」が高い。

Recently, however, this "Raspi" is expensive.

ざっくり、以前購入した時の倍の値段になっています。

Roughly double the price of the previous purchase.

私の古いラズパイを、中古で出しても、原価以上で売れそうです。

I can sell my old Raspi for more than the cost, even if I offer it used.

意外なところから、世界的な半導体等の部品不足を、実感しています。

I am experiencing a global shortage of parts for semiconductors and other products from an unexpected source.

■ラズパイ関係の日記

2023,江端さんの忘備録

スマホの普及によって、民間人の様々な日常が撮影され、それがテレビなどで「まとめ番組」として放映されています。

With the widespread use of smartphones, various daily lives of civilians are being filmed, which are then aired as "compilation programs" on television and other media.

これは、コンテンツだけで十分楽しいです。

This is fun enough with content alone.

スタジオのゲストのコメント ―― いりません。

Comments from studio guests -- I don't want any.

クイズ形式のゲストの回答 ―― 全く、いりません。

Quiz-style guest answers -- not at all, no need.

実際に、私、それらの部分は、全部「スキップ」しています。

I "skip" all those parts.

まあ、これは、私の嗜好の問題なので、『ゲストは必要だ』という人もいると思うのです。

Well, this is a matter of my taste, and some people say, 'I need guests.

----

「視聴率」というシステムは、見直す必要があるんじゃないかな、と思います。

I think the "ratings" system needs to be rethought.

最近は、録画した番組の視聴率(タイムシフト視聴率)も測っているようですが、完全自動システムには程遠い感じがします。

Recently, they have also been measuring the ratings of recorded programs (time-shift ratings), but it seems far from a fully automated system.

「CMスキップ」の計測など、比較的簡単にデバイス(テレビやHDDレコーダ)に設置できます。

It is relatively easy to install on a device (TV or HDD recorder), such as measuring "commercial skips."

これを応用すれば、ゲストコメントのスキップなども計測できるはずです。

This could be applied to measure guest comment skips, etc.

でも、今一つ、このシステムは導入されていないようです。

But, this system does not seem to be in place.

まあ、理由は分かります。

Well, I understand why.

「CMスキップ」や「コメントスキップ」が可能になれば、

(1)スポンサーのテレビ番組への投資意欲は激減し、

(2)テレビ局の収入も激減し、

(3)タレントの起用がなくなり、

その結果、

(4)視聴者が選べるコンテンツの数も激減するという ――

If "commercial skipping" and "comment skipping" become available, (1) sponsors' willingness to invest in TV programs will decrease dramatically, (2) TV stations' revenues will also decrease dramatically, (3) TV personalities will no longer be used, and as a result, (4) the number of contents viewers can choose from will also decrease dramatically.

『コモンズの悲劇』やら『囚人のジレンマ』を、リアルに再現するような事態になるからです。

Because it would be a realistic reenactment of the "Tragedy of the Commons" or the "Prisoner's Dilemma."

この枠組みを崩さない最適戦略は、個人的に「CMスキップ」をやり「コメント外し」をやる、ということになるのでしょう。

The optimal strategy that does not break this framework would be personally doing "commercial skipping" and "comment removal."

-----

ちなみに、とある人気テレビドラマで、『最高視聴率40%越え』とか騙っている番組ありましたけど、私は『バカ言え』と呟いていました。

Incidentally, a popular TV drama series was cheating with a "top rating of over 40%," I was muttering to myself, "Talk nonsense.

その時間帯の、公共交通期間の移動人口を調べるだけで、この"40%"がありえないことなど、すぐに分かります。

By examining the number of people traveling during the public transportation period, it is easy to see that this "40%" is impossible.

その"視聴率"とやらの「定義」を知りたいです。

I would like to know the definition of "ratings."

幸せなドラマ

 

未分類

まだ問題山積だけど、golangのCSVパースが通った。

package main

import (
	"encoding/csv"
	"encoding/json"
	"fmt"
	"strings"
)

type Location struct {
	Lat float64 `json:"lat"`
	Lng float64 `json:"lng"`
}

type Record struct {
	ID         int        `json:"id"`
	UserID     int        `json:"user_id"`
	Distance   float64    `json:"distance"`
	Place      []Location `json:"place"`
	Speed      []float64  `json:"speed"`
	Prediction int        `json:"prediction_type"`
	StartAt    string     `json:"start_at"`
	EndAt      string     `json:"end_at"`
}

func main() {
	// 提供されたCSVデータ
	csvData := `50,7,53.04935656638487,"[{""lat"": 34.6653, ""lng"": 135.2241}, {""lat"": 34.6653, ""lng"": 135.2241}, {""lat"": 34.6652, ""lng"": 135.2241}, {""lat"": 34.6652, ""lng"": 135.224}, {""lat"": 34.6651, ""lng"": 135.224}, {""lat"": 34.665, ""lng"": 135.224}, {""lat"": 34.6649, ""lng"": 135.2239}]","[0.0, 0.0001, 0.0002, 0.0002, 0.0004, 0.0004, 0.0004]",1,2023-03-03 07:40:00,2023-03-03 07:43:00`

	// CSVデータを読み込む
	r := csv.NewReader(strings.NewReader(csvData))
	record, err := r.Read()
	if err != nil {
		fmt.Println("CSVデータを読み込めません:", err)
		return
	}

	// CSVデータをパース
	id := record[0]
	userID := record[1]
	distance := record[2]
	placeJSON := record[3]
	speedJSON := record[4]
	prediction := record[5]
	startAt := record[6]
	endAt := record[7]

	// JSONデータをパース
	var place []Location
	if err := json.Unmarshal([]byte(placeJSON), &place); err != nil {
		fmt.Println("Placeデータをパースできません:", err)
		return
	}

	var speed []float64
	if err := json.Unmarshal([]byte(speedJSON), &speed); err != nil {
		fmt.Println("Speedデータをパースできません:", err)
		return
	}

	// パースしたデータを表示
	fmt.Println("ID:", id)
	fmt.Println("User ID:", userID)
	fmt.Println("Distance:", distance)
	fmt.Println("Place:", place)

	// Placeを要素単位で表示
	fmt.Println("Place:")
	for _, loc := range place {
		fmt.Printf("Lat: %.4f, Lng: %.4f\n", loc.Lat, loc.Lng)
	}

	fmt.Println("Speed:", speed)

	// Speedを要素単位で表示
	fmt.Println("\nSpeed:")
	for i, s := range speed {
		fmt.Printf("Index %d: %.4f\n", i, s)
	}

	fmt.Println("Prediction Type:", prediction)
	fmt.Println("Start At:", startAt)
	fmt.Println("End At:", endAt)
}


 

出力結果

ID: 50
User ID: 7
Distance: 53.04935656638487
Place: [{34.6653 135.2241} {34.6653 135.2241} {34.6652 135.2241} {34.6652 135.224} {34.6651 135.224} {34.665 135.224} {34.6649 135.2239}]
Place:
Lat: 34.6653, Lng: 135.2241
Lat: 34.6653, Lng: 135.2241
Lat: 34.6652, Lng: 135.2241
Lat: 34.6652, Lng: 135.2240
Lat: 34.6651, Lng: 135.2240
Lat: 34.6650, Lng: 135.2240
Lat: 34.6649, Lng: 135.2239
Speed: [0 0.0001 0.0002 0.0002 0.0004 0.0004 0.0004]

Speed:
Index 0: 0.0000
Index 1: 0.0001
Index 2: 0.0002
Index 3: 0.0002
Index 4: 0.0004
Index 5: 0.0004
Index 6: 0.0004
Prediction Type: 1
Start At: 2023-03-03 07:40:00
End At: 2023-03-03 07:43:00

2023,江端さんの忘備録

多くの飲食店で、テーブルに備えつけられたタブレットからメニューをオーダーするシステムが、導入されています。

Many restaurants have installed systems allowing customers to order tablet menu items at each table.

今や、そういうシステムがない店舗の方が珍しいくらいです。

Nowadays, finding a restaurant without such a system is so rare.

最低賃金が上がり、人不足が深刻な中、これは当然の流れと言えます。

This is a natural trend, with minimum wages rising and a severe labor shortage.

ただ、言うまでもないのですが、これらのタブレットのインターフェースは、『絶望的なまでに使いにくい』。

But needless to say, the interface of these tablets is 'hopelessly difficult to use.

『このタブレットのインターフェースを設計しているヤツは、バカなのか』と思います ―― かなり本気で。

I think, 'Are the people designing this tablet interface stupid?' -- quite seriously.

しかし、面倒なので、このインターフェースについての批判は割愛します。

However, since it is tedious, I will omit the criticism of this interface.

-----

万人に共通に使いやすい注文システムの究極は ―― 『タブレットを使わない、口頭でのオーダー』、つまり従来通りです。

The ultimate ordering system that is easy for everyone is -- "no tablets, verbal orders," in other words, the same as before.

ですので、現在のタブレット注文システムが、「音声入力」と「生成AI」からなる、音声による自動オーダシステムになっていくことは、ほぼ確実です。

Therefore, it is almost certain that the current tablet ordering system will be replaced by an automated voice-based ordering system consisting of "voice input" and "generated AI.

近い未来、『音声入力生成AIと客が、オーダーの違いで、口論になる』という場面を見られるようになるでしょう。

We will soon see voice input generation AI and customers arguing over different orders.

そして、100%完全録音された会話によって、多くの場合、『客の過失(オーダーのミス)が、簡単に確認される』ということになるでしょう。

And, in many cases, a 100% fully recorded conversation will 'easily confirm the customer's negligence (mistake in ordering).

-----

気になるのは、その開始時期です。

What is of interest is the timing of its service-in.

私は、年内に登場、来年はトライアル期間、再来年あたりには飲食業界では普通になる、という気がしています。

They will appear by the end of the year; next year will be a trial period, and around the year after that, they will become the norm in the food and beverage industry.

『お客様は神様です』の旧態依然の価値観で生きているジジイたちに告ぐ。

2023,江端さんの忘備録

「毎日、料理を作るのが、こんなに大変とは思わなかった」

"I didn't realize how hard it would be to cook a meal daily."

と久々に実家に帰ってきている長女がこぼしています。

My eldest daughter has been home for a long time and is complaining.

実際、『そうだろうなぁ』と思います。

I think, 'I guess so.

私みたいに、思い出した時に、自分が食べたい料理を作るのとは訳が違います。

It differs from cooking a dish you want to eat when you remember it, like I do.

作ってもらった料理に文句を言う人は、『料理を作るタスクの交代を申し出ている』と解釈すべきです。

A person who complains about the food that has been prepared should be interpreted as 'offering to take over the task of preparing the food.

まあ、それはさておき。

Well, let's put that aside.

-----

長女:「もっと、基本的な料理の技術と、料理のバラエティを揃えておくべきだった」

Daughter: "I should have had more basic cooking skills and a better variety of dishes."

私:「いや、それは違うな。料理も含めて全てのタスクは、状況に応じたOJT(On the Job Training)で良いんだよ」

Me: "No, that's not true. All tasks, including cooking, can be done on-the-job training (OJT) depending on the situation."

長女:「でも、基礎力がないと、そこから上がることが難しいんだよ」

Daughter: "But I don't have the basic skills, so moving up from there is hard."

一見、ティーンエイジャの「受験」の話をしているようですが、語っている話題は「料理」です。

At first glance, it seems that we are talking about teenagers' "examinations," but the topic we are talking about is "cooking.

私:「うん、私も、学生のころ『塾』やら『家庭教師』やらのバイトなんぞばかりをやっていたことを、酷く後悔している」

Me: "Yes, I also regret that I had so many part-time jobs, such as "cram school" and "tutoring" when I was a college student.

長女:「?」

Daughter:"?"

私:「小さな定食屋やレストランで、フライパンや鍋を使わせてもらえるようなバイトを、もっと沢山すべきだった。"調理"に関する技術を、もっと学んでおくべきだったと思う」

Me: "I should have had many more part-time jobs in small set menus and restaurants where I was allowed to use pans and pots." I should have learned more about the art of "cooking."

一般的な家庭料理が作れるレベルになっておくことが、いかに重要なことだったか、私のその後の人生で思い知ることになります。

I would later realize how important it was to have a skill level in common home cooking.

『冷蔵庫の中に残っているショボイ食材だけで、一品を作れるかどうか』。男女関係なく、これは重要なことのように思えます。

'Can you make a dish with only the shabby ingredients left in the fridge? This seems to be important regardless of gender.

-----

もっとも、最近は、栄養バランスもよく、美味しく、簡単なパッケージ食(弁当、冷凍食品等)も沢山ありますので、これが、本当に重要なことなのかは、判断が難しいところです。

However, it isn't easy to judge whether this is important since many packaged meals (bento boxes, frozen foods, etc.) are available these days that are delicious and easy to prepare, with good nutritional balance.

ただ、はっきり言えることは、『パッケージ食は、コストが高い』です。

However, what is clear is that 'packaged meals are expensive.

今後の私のリタイアなどを鑑みても、我が家の今後の生活がラクになっていくことは、ありえない話です。

In light of my future retirement, etc., our family's life can't be easier.

『50円で一品作れるか?』という問いに対して、"Yes"と言い続けるための訓練と準備は、怠れないのです。

"Can you make one dish for 50 yen?". We must be trained and prepared to keep saying "Yes.

男子食堂

 

2023,江端さんの技術メモ

Linux でミリ秒まで表示するワンライナー時計

私の場合、コンマ秒までを表示したいので、

while true ; do printf "\r%.10s" `date +%T.%N`; sleep 0.01 ; done

となります。

Ubuntuの端末で文字を大きくするには、以下の方法があります。

端末フォントサイズの変更:
通常、端末のフォントサイズを変更することで文字を大きくできます。以下の手順を実行します:

端末を開きます(通常、Ctrl+Alt+Tで起動します)。
メニューバーから「編集」をクリックし、「プロファイルの設定」を選択します。
「テキスト」タブを選択し、フォントサイズを変更します。

で、まあ、こんな風に簡単に作りました。

ubuntuのGUIでxclockでアナログ時計を表示し、表示し続ける方法

未分類

GNOMEデスクトップ環境でミリ秒を含むデジタル時計を表示するには、カスタムの拡張機能やウィジェットを使用することができます。以下は、GNOME拡張機能を使用してデジタル時計にミリ秒を追加する手順です。

GNOME拡張機能をインストール:
ミリ秒を含むデジタル時計を表示するために、GNOME Shellに拡張機能を追加する必要があります。このためには、GNOME拡張機能をインストールする必要があります。以下の手順でインストールできます。

a. GNOME Extensionsウェブサイトにアクセスします:https://extensions.gnome.org/
b. ウェブサイトで"GNOME Shellに追加"というボタンをクリックして、ブラウザ拡張機能をインストールします。

拡張機能の検索:
拡張機能を検索してインストールする前に、ミリ秒を含むデジタル時計を提供する拡張機能を見つける必要があります。GNOME拡張機能ウェブサイトで「clock」や「time」などのキーワードで検索し、適切な拡張機能を見つけます。例えば、"Digital Clock with Date" などの拡張機能がミリ秒を含むデジタル時計を提供していることがあります。

拡張機能のインストール:
選択した拡張機能を見つけたら、「GNOME Shellに追加」ボタンをクリックしてインストールします。

拡張機能の設定:
GNOME拡張機能アプリを開いて、インストールした拡張機能を有効にします。一般的に、GNOMEメニューの「拡張機能」または「Extensions」セクションから設定できます。

ミリ秒を含むデジタル時計の表示:
インストールした拡張機能を有効にしたら、GNOMEデスクトップ上にミリ秒を含むデジタル時計が表示されるはずです。

これで、GNOMEデスクトップ環境でミリ秒を含むデジタル時計を表示できるようになります。ただし、GNOME拡張機能はGNOMEバージョンに依存することがあるため、バージョンによっては異なる拡張機能が必要かもしれません。お使いのGNOMEバージョンに合った拡張機能を探し、設定してください。

「Linux でミリ秒まで表示するワンライナー時計」を参考にさせていただいています

ubuntuのGUIでxclockでアナログ時計を表示し、表示し続ける方法

2023,江端さんの忘備録

暗号に関するミステリーというのは面白いです。

It is interesting to have a mystery about cryptography.

でも多くのミステリーは、「暗号」の意味を取り違えていると思います ―― もちろん、著者も読者も分かっていることではありますが。

But I think many mysteries misunderstand the meaning of "code" -- something both authors and readers know, of course.

暗号とは、

A cipher is a message that

(1)全世界に公開される方法でしか運ぶことができないメッセージ

(1) can only be carried in a way that is open to the entire world,

であるにも関わらず、

yet

(2)特定の人物にのみが復号できるメッセージ

(2) can only be decrypted by a specific person.

のことです。

上記(1)の公開メッセージ中に、(2)の復号のヒントが含まれていれば、その暗号はその目的を達成することはできません。

The cipher cannot achieve its purpose if the public message in (1) above contains the decryption hint in (2).

また、その人間の資質(能力)によってのみ解読できるものであるなら、それは特定の人物に向けたメッセージではないので、暗号とは言えません。

Also, if it can only be deciphered by the qualities (abilities) of the person, it is not a cipher because it is not a message to a specific person.

そして、それが誰にも復号できないのであれば、それは「暗号」ですらありません。ただの文字列です。

And if no one can decrypt it, it is not even a "cipher." It is just a string of characters.

つまり、厳密な意味では、小説やドラマや映画で登場する暗号は『暗号ではない』のです。

In other words, in a strict sense, the ciphers that appear in novels, dramas, and movies are not 'ciphers.

-----

YouTubeで、ドラマ「ミステリと言う勿れ」のダイジェストを見ています。

I am watching a digest of the drama "Not to Mention Mystery" on YouTube.

私は、『一緒にドラマ見ている人に、こういう話をするべきではない』し、ましてや、『RAS暗号の原理などを得意気に語るべきではない』ということだけは分かっています。

All I know is that 'I shouldn't talk about these things to people I'm watching drama with,' much less 'I shouldn't talk about the principles of the RAS cipher in a way that I'm good at.

―― ママ友は、暗号を使ってメール通信を行っている

2023,江端さんの技術メモ

UbuntuでFTPサーバを停止するには、サーバソフトウェアによって異なります。一般的に、Ubuntuでよく使われるFTPサーバソフトウェアはvsftpd(Very Secure FTP Daemon)です。以下に、vsftpdを停止する方法を説明します。もし他のFTPサーバーソフトウェアを使用している場合は、それに対応した手順を適用してください。

vsftpdを停止する手順:

  1. ターミナルを開きます。
  2. vsftpdサービスを停止します。次のコマンドを使用します:
    sudo systemctl stop vsftpd
  3. vsftpdサービスが停止したことを確認するために、次のコマンドを使用してサービスのステータスを確認します:
    sudo systemctl status vsftpd

    ステータスが「inactive」(非アクティブ)になっているはずです。

  4. vsftpdサービスが自動起動しないように設定したい場合、次のコマンドを使用して自動起動を無効にします:
    sudo systemctl disable vsftpd

これにより、システムの再起動時にvsftpdサービスが起動しないようになります。

以上の手順に従うことで、vsftpd FTPサーバーを停止し、必要に応じて自動起動を無効にできます。