2025,江端さんの技術メモ

OBSの録画時にCPU負荷が増大し、操作が困難になる場合、以下の設定を調整することで負荷を軽減できます。


1. 録画のエンコーダを変更

設定 → 出力 → 録画 → エンコーダ

  • 「ハードウェアエンコード (NVENC, QuickSync, AMF)」を使用する
    • NVIDIANVENC (H.264)
    • Intel CPU内蔵GPUQuickSync H.264
    • AMD GPUAMF
    • ハードウェアエンコードがない場合x264のプリセットを変更(後述)

      私の場合、エンコードするハードウェアがにないからスキップ


2. 録画の品質を下げる

設定 → 出力 → 録画

  • 録画品質:低品質、ファイルサイズ優先
  • 録画フォーマット: mp4(またはflv)
  • エンコーダ設定: CBR (固定ビットレート)
    • ビットレート: 1500~2500kbps(画質が多少荒くなるが負荷が下がる)
    • キーフレーム間隔: 2秒
    • CPUプリセット: 「ultrafast」(x264使用時のみ)

      録画の方には、上記メニューに該当するものがなかったので、こちらもスキップ

3. 解像度とフレームレートを下げる

設定 → 映像

    • 基本 (キャンバス) 解像度: 1280×720
    • 出力 (スケーリング) 解像度: 640×360 または 854×480
    • FPS: 30 FPS または 24 FPS

      出力は最低値に、FPSは手動で10fps位まで落した→ 動作が軽くなって、マウス操作ができるようになった

2025,江端さんの技術メモ

OBSでブラウザ全体が表示されず、一部が大きく拡大されてしまう場合、以下の点を確認してください。

1. ソースのプロパティを確認

  • OBSの「ソース」リストでブラウザをキャプチャしているソースを右クリック → 「変換」→「画面にフィット」 を選択
  • これで画面全体がOBSのプレビューに収まるか確認

    # 私は、ここで解決したので、以下省略

2025,江端さんの技術メモ

VSCodeでCSVファイルの文字エンコーディングを Shift_JIS(SJIS) にする方法はいくつかあります。


① VSCodeの「文字コードの変更」機能を使う

  1. CSVファイルを開く
  2. 画面の右下に エンコーディング(例: UTF-8, UTF-16など) が表示されているのでクリック
  3. 「エンコーディングの変更」 を選択
  4. 「Shift_JIS」または「Japanese (Shift_JIS)」を選択
  5. 「エンコードされた内容を保存」 をクリックし、Shift_JIS形式で保存

2025,江端さんの技術メモ

VSCodeからCSVファイルをExcelで開く方法

VSCodeから直接 Excel を起動してCSVファイルを開く方法はいくつかあります。


① ターミナルからExcelを起動する(Windows)

方法 1: start コマンドを使用

VSCodeのターミナル(PowerShell または コマンドプロンプト)で以下を実行

start excel output.csv
  • output.csv は開きたいCSVファイルの名前
  • これでExcelが起動し、CSVファイルが開かれる

2025,江端さんの技術メモ

Windows 11 に WSL2 をインストールし、Ubuntu をデフォルトOSに設定し、Docker をインストールする手順を説明します。

1. 背景

Docker for Windowsが、有償化されて、(現場が)困ったことになっています。

ChatGPTにDocker for Windows と Docker Desktop の違いについて教えてもらいました

で、これを回避する方法として、「WSLのLinuxを利用して、Dockerを利用する方法」がある、という話を聞き『あ、盲点』と思い、さっそく環境構築をノートPCでやってみました(本番PCでコケるのは怖かったので)。


2. WSL2 のインストール

2.1. WSL の有効化

管理者権限で PowerShell または コマンドプロンプトを開き、以下のコマンドを実行します。

wsl --install

これにより、WSL2 とともに Ubuntu が自動でインストールされます。

WSL のバージョンを確認するには

wsl --list --verbose

もし、既に WSL1 になっている場合、以下のコマンドで WSL2 に変更できます:

wsl --set-version Ubuntu 2


3. Ubuntu をデフォルトOSに設定

インストールされている WSL のディストリビューションを確認:

wsl --list --verbose
デフォルトを Ubuntu にする:
wsl --set-default Ubuntu

4. Docker のインストール

WSL2 上の Ubuntu に Docker をインストールします。

4.1. パッケージの更新更新

sudo apt update && sudo apt upgrade -y

4.2. Docker のインストール

sudo apt install -y docker.io

4.3. Docker のサービスを開始

sudo systemctl enable --now docker

4.4. Docker グループへのユーザー追加

sudo usermod -aG docker $USER

適用するには、一度ログアウトするか、以下を実行:

newgrp docker

4.5. Docker の動作確認

docker run hello-world

「Hello from Docker!」と表示されれば成功です。


5. Docker Compose のインストール

sudo apt install -y docker-compose

6. Docker デーモンを WSL2 内で実行

通常、Windows 上で Docker Desktop を使う方法もありますが、WSL2 内で直接 Docker を動かしたい場合は systemd を有効にします。

6.1. WSL2 で systemd を有効化

sudo nano /etc/wsl.conf

以下の内容を追加:

[boot] systemd=true

保存して WSL を再起動:

wsl --shutdown

再度 WSL を起動して systemctl が使えることを確認:

systemctl list-units --type=service

6.2. Docker の自動起動

sudo systemctl enable --now docker

これで、WSL2 + Ubuntu + Docker の環境構築が完了しました。

7. Docker for Windowsのコンテナイメージをtarで固めて展開する

これは、以下を参考にして下さい。

Dockerコンテナのイメージをセーブして先方に送る方法

$ sudo docker load < 20240828_shajyo.tar

のあたりから続けます。

これをwslで実行すると、docker imageができます。

8. ちょっと変なことが起っている話

ところで、この段階で、ちょっと不思議なことが起こりました。

docker for windowsを起動すると、WSL内のdocker imageの名称が変わります(理由不明で、変なのですが、動くなら、まあ構いません)。

で、それだけでなく、docker imagesで、Docker for windowsのイメージが全部登場してきます。

なんだか良く分かりませんが、これが出てくるのであれば、「Docker for Windowsのコンテナイメージをtarで固めて展開する」をサボれるかもしれません(誰か確認したら教えて下さい)。

で、あとは、Docker for Windowsで作成した時と、同じディレクトリに移動して、

docker-compose restart

をすると、無事に動き出しました。

9. 総括

なんだか良く分かりませんが、Docker for Windowsを使っている環境であれば、それを残した状態で、この作業すると、随分手を抜けるかもしれません

移行した後に、Docker for Windowsをアンインストールすれば良いでしょう。

お試しあれ。

言うまでもありませんが、無保証です。


「ちょっと変なことが起っている話」の理由

Docker for Windows を起動すると、WSL 内で動作している Docker イメージの内容が変化する可能性があります。以下の理由が考えられます。


1. Docker for Windows は WSL 2 をデフォルトで使用

Docker for Windows(Docker Desktop)は、デフォルトで WSL 2 ベースのエンジン を使用します。
これにより、WSL 2 で管理されている Docker のデーモン(dockerd)が Docker Desktop の管理下に入る ため、起動時に設定や状態が変更されることがあります。


2. Docker デーモンの変更

Docker for Windows を起動すると、WSL 内の Docker の設定が次のように変わる可能性があります。

  1. Docker デーモンが変わる
    • もともと wsl -d Ubuntu などで WSL 2 内の dockerd を起動していた場合、Docker for Windows を起動すると Docker Desktop が管理するデーモンに切り替わる
    • これにより、ローカルの Docker デーモンが停止 する可能性がある。
  2. デフォルトのデータストアが変更
    • Docker for Windows を起動すると、デフォルトの docker データストアの場所が C:\ProgramData\DockerDesktop\ に変更されることがある。
    • それまで ~/.docker/var/lib/docker に保存されていたイメージやコンテナが正しく認識されなくなる場合がある。

3. ネットワークやストレージの影響

Docker Desktop は Windows 側のネットワーク設定やストレージマウントを変更するため、WSL 側の Docker コンテナに影響を与えることがあります。

  • ネットワークの影響
    • docker0 ブリッジの再設定や、NAT の適用によって WSL 内の Docker コンテナの通信方法が変わることがある。
    • WSL の IP アドレスが変化し、WSL 側で設定していたネットワーク設定が無効になる可能性がある。
  • ボリュームマウントの影響
    • WSL で /mnt/c のようにマウントしていたボリュームが、Docker Desktop の管理下で //wsl$/Ubuntu 経由でマウントされることがある。
    • これにより、Docker 内で期待していたファイルパスが変わる可能性がある。

4. WSL 2 のデフォルト設定が変更される

Docker for Windows の SettingsResourcesWSL Integration「Enable integration with my default WSL distro」 を有効にすると、
Docker のデフォルトデーモンが WSL 2 の docker-desktop ディストリビューションを経由 するように変更されます。

これにより、Docker Desktop を起動すると、docker images の一覧が変わることがあります。


5. 解決策

もし WSL 内の Docker 環境を変えたくない 場合は、次の方法を試してください。

  1. Docker Desktop を無効化
    • wsl --set-version Ubuntu 1 にして、WSL 2 ではなく WSL 1 を使う(WSL 1 では Docker Desktop 連携がない)。
    • Docker Desktop の WSL Integration 設定を無効化する。
  2. WSL 内で独立した Docker 環境を使う
    • Docker Desktop を使わず、WSL 内で dockerd を手動で起動し、独立した環境を維持する。
    • sudo service docker start で WSL 内で Docker デーモンを起動。
  3. Docker の context を使い分ける
    • docker context コマンドを使用し、Docker Desktop のデーモンと WSL 内のデーモンを使い分ける。
    docker context create wsl-docker --docker "host=unix:///var/run/docker.sock"
    docker context use wsl-docker

結論

Docker for Windows を起動すると、WSL で動作している Docker の デーモン・ネットワーク・ストレージ設定 などが変更され、docker images の結果が変わる可能性がある
WSL 内で独立した Docker 環境を維持したい場合は、Docker Desktop の WSL 統合を無効化するか、docker context を適切に設定すると良い。

ただ、これだと、Docker for Windowsをアンインストールできないんだよなぁ。

さらに検討.....

結局のところ、WSLのDockerから、Docker for Windowsで作ったディレクトリから、docker-compose down して、docker-compose up -d して作り直すのが一番てっとり早かった、というオチでした(私の場合)。

2025,江端さんの技術メモ

WindowsにGnuplotをインストールする手順を以下に説明します。


1. Gnuplotのインストールファイルをダウンロード

  1. 公式サイトにアクセス
    Gnuplotの公式サイト http://www.gnuplot.info/ にアクセスします。
  2. ダウンロードページを開く
    ページ内の「Download」セクションを見つけ、Windows用のインストーラを探します。
  3. Windows版のインストーラをダウンロード
    推奨されるダウンロードリンク(例: SourceForgeのWindows用バイナリ)から最新の安定版を選択し、インストールファイル(例: gnuplot-x.x.x-win64.exe)をダウンロードします。

2. Gnuplotのインストール

  1. インストーラを実行
    ダウンロードした .exe ファイルをダブルクリックして実行します。
  2. セットアップウィザード
    セットアップウィザードが開いたら、以下の手順で進めます:

    • 「Next」をクリック。
    • ライセンス条項を確認して「I Agree」をクリック。
    • インストール先フォルダを指定(デフォルトのままで問題ありません)。
    • 必要なコンポーネントを選択(デフォルト設定でOK)。
    • 「Install」をクリックしてインストールを開始。
  3. インストール完了
    インストールが完了したら「Finish」をクリックします。

2.1. PATH環境変数の設定(オプション)

コマンドプロンプトやPowerShellで簡単にGnuplotを実行するには、PATH環境変数にGnuplotのインストールディレクトリを追加します。

  1. 環境変数の設定を開く
    • 「スタート」メニューで「環境変数」と検索し、「システム環境変数の編集」を選択。
    • 「環境変数」をクリック。
  2. PATH変数を編集
    • 「システム環境変数」または「ユーザー環境変数」の Path を選択し、「編集」をクリック。
    • Gnuplotをインストールしたディレクトリ(例: C:\Program Files\gnuplot\bin)を追加。
  3. 保存して閉じる
    「OK」をクリックして変更を保存します。

2.2. インストール確認

  1. コマンドプロンプトを開く
    Win + R を押して「cmd」と入力し、Enterキーを押します。
  2. Gnuplotを起動
    以下のコマンドを入力して、Gnuplotが起動するか確認します。

    gnuplot

  3. バージョン確認
    Gnuplotのプロンプト(gnuplot>)が表示されるので、以下を入力してバージョンを確認します。
show version

 

2.3. 動作確認

インストールが成功している場合、以下のコマンドで簡単なプロットが表示されます。

plot sin(x)

これでGnuplotのインストールは完了です。

3. PTファイル(73.csv)の表示方法

以下の手順で Gnuplot スクリプトを保存し、73.csvを表示する方法を説明します(73.csvはファイルの一つにすぎません)


3.1. スクリプトをファイルに保存する

  1. 任意のテキストエディタを使用して、以下の内容をファイルにコピーします。
  2. ファイル名を plot_73.gnu など、わかりやすい名前で保存してください。

3.1.1. スクリプト内容 (plot_73.gnu)`)

# Gnuplot Script for 3D Plot# X, Y, Z 軸の範囲を設定
set xrange [130.3296537290101:130.56028128619576]
set yrange [33.49812295428995:33.67972606282988]
set zrange [0:1440]
# 軸ラベル
set xlabel "Longitude"
set ylabel "Latitude"
set zlabel "Time (Minutes)"

# タイトル set title "3D Plot of GPS Data"

# CSVのヘッダー行をスキップする設定
set datafile separator "," # カンマ区切りを指定
set key autotitle columnhead # ヘッダーをタイトルに使用(必要に応じて)

# データの3Dプロット
splot "73.csv" every ::1 using 9:8:($6*60+$7) with points pointtype 7 pointsize 1 lc rgb "blue" title "GPS Points"

 

3.2. スクリプトの実行方法

  1. スクリプトファイルの保存場所
    保存した plot_73.gnu ファイルと 73.csv ファイルを同じディレクトリに配置してください。
  2. Gnuplot の起動
    ターミナルを開き、Gnuplot を起動します。

    gnuplot

     

  3. スクリプトの実行
    Gnuplot のプロンプト (gnuplot>) 上で以下のコマンドを実行します。

    load 'plot_73.gnu'

     

  4. スクリプトが読み込まれ、プロットが表示されます。

3.3. 実行の自動化 (オプション)

ターミナルから直接スクリプトを実行できるようにするには、以下のコマンドを使用します。

gnuplot plot_73.gnu

これにより、Gnuplot を起動せずにスクリプトを実行できます。


3.4. 注意点

  • スクリプトで指定したファイル名 (73.csv) が正しいことを確認してください。
  • CSV ファイルの形式がスクリプトと一致している必要があります。
  • 必要に応じて 73.csv のパスをフルパスで指定することで、スクリプトと CSV が別のディレクトリにある場合でも動作します。

例:

splot "/path/to/73.csv" every ::1 using 9:8:($6*60+$7) ...

3.5. "73.csv"のサンプル

dailyid,year,month,day,dayofweek,hour,minute,latitude,longitude,gender,age
73,2023,4,9,7,8,40,33.307463,130.511456,,
73,2023,4,9,7,8,41,33.307477,130.512114,,
73,2023,4,9,7,8,41,33.305819,130.514793,,
73,2023,4,9,7,8,41,33.307467,130.511813,,
73,2023,4,9,7,8,45,33.306084,130.515009,,
73,2023,4,9,7,8,45,33.306151,130.515051,,
73,2023,4,9,7,8,54,33.309299,130.518183,,
73,2023,4,9,7,8,54,33.308469,130.517488,,

江端さんの忘備録,江端さんの技術メモ

私が、今大学で取り組んでいる研究についての論理付けをするため、心理学の既往研究を調べています。

I am researching previous psychological studies to provide a rationale for my research at university.

その一つが、「単純接触効果」です。

One of these is the “Mere Exposure Effect”.

単純接触効果

恋愛、結婚にいたるケースで結構な比率を占めるのが、半径2メートル程度以内に自分と相手の席があったケース―― というのは、誰もが聞いた話だと思います。

I think everyone has heard the story that a significant proportion of cases that lead to romance and marriage involve the couple sitting within a radius of about 2 meters of each other.

同じクラスに所属する人同士の方が、異なるクラスに所属する人同士よりも親近感を抱きやすいというのは事実のようです。「クラス対抗リレー」のようなイベントで、全く知らない他人同士が同じクラスに所属しているという理由だけで応援し合うのは、単純接触効果の一例です。

It seems true that people who belong to the same class tend to feel closer to each other than those who belong to different classes. In events like the “class relay race”, where people who don't know each other at all support each other just because they belong to the same class, this is an example of “Mere Exposure Effect”.

-----

上記のページの単純接触効果の実験で、思わず私が笑ってしまった内容が、2枚目の図の1つめの実験です。

The first experiment in the second diagram in the above page's “Mere Exposure Effect” experiment made me laugh.

要するに、「大学の講義にキチンと出席している女子学生」に対して、男子学生は「魅力」と「シンパシー」を感じやすい、という実験結果です。

In short, the experiment showed that male students are likelier to feel “attraction” and “sympathy” towards female students who regularly attend university lectures.

この実験では、単に『男は単純でバカである』と言ってもいいのかもしれませんが、これが人間の特性であるなら、それを無視するのは得策ではありません。

In this experiment, it may be okay to say that “men are simple and stupid simply,” but if this is a characteristic of human beings, it would not be a good idea to ignore it.

この実験では、4人の女性は、講義に出席する頻度を変えているだけですが、たったそれだけのことで「魅力」と「シンパシー」を向上させる効果が発生した、というのは、貴重な知見です。

In this experiment, the four women only varied the frequency with which they attended lectures. Still, the fact that this simple change increased their 'attractiveness' and 'sympathy' is a valuable finding.

これは、恋愛や結婚において、「出逢いの日常化」が、強力な戦略になりえる、と私は考えました。

I thought “making dating a daily routine” could be a powerful strategy in relationships and marriage.

-----

で、ふと思ったのですが、「単純接触効果」をもっとも発揮させるもっとも有効な方法とは ―― 結婚してしまうことですね。強制的な毎日の「単純接触効果」が発生することになりますから。

Then, I suddenly thought that getting married would be the most effective way to maximize the “Mere Exposure Effect.” This would create a compulsory daily “Mere Exposure Effect.”

まあ、この話では、「タマゴとニワトリ」の話になってしまいますので、結婚や同棲の前段階としては、とりあえず「通学/通勤時間(登校、出社、下校、退社)を調整する」とか、「一日一回はその人に声をかけてみる」とか、そういう、ベタですけど、単純な手法を「意味がないと切り捨てない方がいい」とは言えそうです。

Well, this story is about “eggs and chickens,” so as a preliminary step before marriage or cohabitation, it seems that it's better not to dismiss simple methods that may seem a bit corny, such as “adjusting your commuting time (going to school, going to work, leaving school, leaving work)” or “talking to that person at least once a day.”

私の場合、独身時代に、特段これといった用事もないけど、1週間に1回は電話するというノルマを自分に課して、今の嫁さんに「単純接触」戦略を数年間続けていました。

When I was single, I set a quota of calling my now-wife at least once a week, even if I didn't have anything to discuss. I continued this “Mere Exposure Effect” strategy for several years.

あれは、意外に効果があったのかもしれません ―― と、何十年後の自分の研究で、自分の振舞いをレビューすることになるとは、思いませんでしたが。

I didn't think I would be reviewing my own behavior in my research decades later, but that may have had an unexpected effect.

-----

私、この「単純接触効果」を発生させる社会システムについて考えています。今、このネタで、論文一本上げる為に、今、必死に調査と執筆を頑張っています。

I am considering the social systems that generate this “Mere Exposure Effect.” I am working hard on research and writing to publish a paper on this topic.

2025,江端さんの技術メモ

今で言う投稿サイトに"fj"というものがありました。

There was a posting site called “fj” back then.

かつて、そこでは、『「ナンバーディスプレイ通知」の是非』について、熱い議論が交されていました。

In the past, there were heated debates about the pros and cons of “number display notification.”

「ナンバーディスプレイ通知」とは、相手先の電話番号がスマホに表示されることです。

'Number display notification' is when the other party's phone number is displayed on your smartphone.

今となっては、『何のために、そんな議論をしていたんだろう』と思われるかもしれません。

Now, you may be thinking, 'What was the point of all that discussion?

ですので、当時のことを思い出しながら書いてみます。

So, I'll try to write about it while remembering what happened back then.

-----

(1)プライバシー保護: 発信者の番号通知がプライバシー侵害につながる可能性が懸念された。

(1) Privacy protection: There were concerns that caller ID could violate privacy.

(2)受信者の権利: 受信者の利便性と発信者の匿名性の対立が議論された。

(2) Recipient's rights: The conflict between the recipient's convenience and the sender's anonymity was discussed.

(3)迷惑電話対策: 迷惑電話抑止の利点と偽装番号などの新たな問題が指摘された。

(3) Measures against nuisance calls: The benefits of discouraging nuisance calls and new problems, such as spoofed numbers, were pointed out.

(4)法的・技術的課題: 技術や料金、法整備が利用者の選択肢に影響を与えるとされた。

(4) Legal and technical issues: Technology, fees, and legal developments are said to affect users' choices.

(5)社会的影響: ナンバーディスプレイ普及によるコミュニケーションの変化が懸念された。

(5) Social impact: There were concerns about changes in communication due to the spread of number display.

-----

今となっては、「相手先の電話番号が表示されない」ということ自体、意味が分からないと思うのですが、当時は、『発信者のプライバシーを保護する』という、考え方があったのです。

Nowadays, I find it incomprehensible that the other party's phone number is not displayed, but at the time, there was a concept of 'protecting the privacy of the caller.'

この議論は、「ナンバーディスプレイ通知サービス = 是」とする側が優位だったように記憶しております。

I remember that the side that said “Number Display Notification Service = Good” was in the majority.

理屈はシンプルでして「ナンバーディスプレイ通知 = 非」とする人は、ナンバーディスプレイ通知サービスを使わなければ、それで足るだろう、という理由でした。

The logic is simple: if you don't use the number display notification service, it should be sufficient to set “number display notification = bad.”

ただ、これを個人の自由選択の問題に矮小化してしまえば、『発信者のプライバシーを保護する』という考え方そもののが消滅することが公共の利益に反する、という主張もあり、私は、それはそれで一理あったと思います。

However, suppose this is reduced to personal freedom of choice. In that case, there is also the argument that the idea of 'protecting the privacy of the sender' itself will disappear, which is contrary to the public interest, and I think that has a point.

この問題は「SNSの匿名性」の問題と形を変えて、引き継がれているように思います。

This problem has been passed on differently as the “anonymity of SNS” problem.

今は、(1)完全キャッシュレス決済、(2)現金決済との併存、という意見の論争があるようです。

There seems to be a debate between the opinions of (1) utterly cashless payment and (2) coexistence with cash payment.

これについては、調べて頂ければ、双方、説得力のある論が展開されていますので、興味のある人は調べて下さい。

If you investigate this, you will find that both sides have developed persuasive arguments. Please do so if you are interested.

-----

私が思い出すのは「地上デジタル放送」への切替の時の話です。

I remember the story of the switch to terrestrial digital broadcasting.

政府は10年も前から、切替を宣言していました(地上デジタル放送への完全移行を2011年7月24日に実施しましたが、この切替計画については約10年前の 2001年 から公知し、その10年間を移行期間としていました)。

The government had been announcing the switchover for 10 years (the complete switchover to terrestrial digital broadcasting was carried out on July 24th, 2011, but the switchover plan had been publicized about 10 years ago in 2001, and the 10 years was set aside as a transition period).

で、いざ「地上デジタル放送」への切替を行う1月前くらいから、マスコミは「高齢者や貧困者」を盾にした「地上デジタル放送反対キャンペーン」を実施はじめました。

So, about a month before the switch to terrestrial digital broadcasting, the media began to run a campaign against terrestrial digital broadcasting, using older people and people with low incomes as a shield.

当然、政府はそれに応じませんでした。

Naturally, the government did not respond.

さすがに、この件に関しては、私は『政府は悪くない』と思いましたよ。

As expected, I thought the government was not to blame.

だって、10年間も移行期間があったんですよ。こればかりは『いざとなったらゴネればなんとかなる』は、通用しないと思いました。

After all, there was a 10-year transition period. In this case, the saying “if push comes to shove, you can make do by complaining” wouldn't work.

私が覚えている限り、この騒ぎは、切替から1~2週間後にはニュースにも出てこなくなりました。

As far as I can remember, this commotion stopped appearing in the news after the switchover, which took place a week or two ago.

大した手間ではなかったからでしょう(あるいは、テレビがなくても何とかなることが、分かったのかもしれません)。

It probably wasn't much trouble (or maybe they realized they could manage without a TV).

-----

今年は「マイナンバーカード」で、一悶着おきそうな感じがしますが、多分、これも「地上デジタル放送」と同じような結末になるだろうと予想しています。

This year, there has been much fuss about the My Number Card, but I think it will probably be like terrestrial digital broadcasting.

2025,江端さんの技術メモ

以下は現在TCをインストールして設定したラズパイのifconfigです。

pi@raspberrypi:~$ ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.88 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::ba27:ebff:fe69:5b65 prefixlen 64 scopeid 0x20<link>
inet6 240f:30:a9ce:1:ba27:ebff:fe69:5b65 prefixlen 64 scopeid 0x0<global>
ether b8:27:eb:69:5b:65 txqueuelen 1000 (Ethernet)
RX packets 10040 bytes 750155 (732.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1326 bytes 166549 (162.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether b8:27:eb:69:5b:65 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether f4:4d:ad:04:49:d5 txqueuelen 1000 (Ethernet)
RX packets 11626 bytes 1414469 (1.3 MiB)
RX errors 0 dropped 4 overruns 0 frame 0
TX packets 1326 bytes 166549 (162.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 6 bytes 234 (234.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6 bytes 234 (234.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::ba27:ebff:fe3c:e30 prefixlen 64 scopeid 0x20<link>
ether b8:27:eb:3c:0e:30 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 23 bytes 3164 (3.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth0 → eth1 の方向に bitrateを500
eht1 → eth0の方向にbitrateを300
で設定したい時、入力するコマンドを、 既存の設定をクリアにするところから教えて下さい

以下の手順で、既存の設定をクリアし、eth0からeth1の方向にビットレート500kbps、eth1からeth0の方向にビットレート300kbpsを設定できます。


1. 既存のtc設定をクリアする

まず、eth0eth1tc設定を削除します。

sudo tc qdisc del dev eth0 root 2>/dev/null
sudo tc qdisc del dev eth1 root 2>/dev/null

2. eth0 → eth1 のビットレートを500kbpsに制限する

eth0tcを設定します。

sudo tc qdisc add dev eth0 root handle 1: htb default 1
sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 500kbit ceil 500kbit

3. eth1 → eth0 のビットレートを300kbpsに制限する

eth1tcを設定します。

sudo tc qdisc add dev eth1 root handle 1: htb default 1
sudo tc class add dev eth1 parent 1: classid 1:1 htb rate 300kbit ceil 300kbit

4. 設定確認

以下のコマンドで設定を確認できます。

sudo tc -s qdisc show dev eth0
sudo tc -s qdisc show dev eth1

5. オプション: 遅延やパケットロスを追加する場合

例えば、遅延やパケットロスを追加したい場合は、以下のように設定します。

eth0 → eth1 に遅延を追加(例: 50ms)

sudo tc qdisc add dev eth0 parent 1:1 handle 10: netem delay 50ms

eth1 → eth0 にパケットロスを追加(例: 10%)

sudo tc qdisc add dev eth1 parent 1:1 handle 10: netem loss 10%

この設定により、双方向の帯域制御が行われます。必要に応じて、burstlatencyのオプションを追加してください。