未分類

次女の大学の卒業式に出席してきました。

I attended my younger daughter's university graduation ceremony.

中学の入学式以来、約10年ぶりに娘の学校行事に出席することになりました。これが娘に関わる最後のイベントとなるため、きっちり年休を取得して臨みました。

It was the first time in ten years that I participated in one of her school events—since her junior high school entrance ceremony, to be exact. Since this would be the final event in her student life, I took a day off from work to be there.

卒業生は約3000人。保護者は大学内の別教室(10教室以上が開放されていた)に分かれ、リモートで式を視聴する形式でした。複数のカメラ映像が指令室の判断でスムーズに切り替わり、セリフも字幕で表示されるなど、そのシステム運用の効率の良さには感心しました。

With nearly 3,000 graduates, parents were directed to remote classrooms (more than ten open rooms) to watch the ceremony via livestream. The video feed was smoothly directed from a control room with multiple camera angles, included speech subtitles, and operated effectively. I was genuinely impressed by how well the system was run.

ですが、

However,

―― 学長、主賓、OB代表らによるスピーチの内容が、実に退屈だった

"The speeches by the university president, the guest of honor, and the alumni representative were disappointingly dull."

私は今回の卒業式で、なにか“ネタ”になるような話を拾えるかと期待していたので、正直ガッカリしました。

I had hoped to pick up a good story from the ceremony, so I was honestly disappointed.

もしかすると、この大学には「退屈なスピーチをする」という“伝統的な様式美”のようなものがあるのだろうか?と思い、娘に尋ねてみたところ、「そんな話は聞いたことがない」と一蹴されました。

I even wondered if this university had a “traditional aesthetic” that required speakers to give deliberately dull speeches. But when I asked my daughter, she said she'd never heard of such a thing.

もちろん、以下のような名スピーチ級を求めているわけではありません。とはいえ、それに“追いつこうとする努力”くらいは見せてもらいたいものです。

Of course, I wasn’t expecting anything on the level of this famous speech. Still, I would have liked to see at least some effort to reach that level.

卒業生も保護者も、公の場で他の人のスピーチを批判することは難しいです(私も、誰かを特定するような記述は避けている)。とはいえ、せっかく人前で話すのであれば、「あの人のスピーチは覚えている」と言ってもらえるくらいのインパクトは残してほしいものです。

For graduates and their families, it’s hard to criticize these kinds of speakers in public openly (and I’ve made sure not to write anything that would identify anyone specifically). That said, if you’re going to give a speech at a major event like an entrance or graduation ceremony, I’d like you to deliver something memorable that makes people say, “I remember that speech.”

この私が、年度末の多忙な時期に、まる一日年休を使って出席したのですから、「出席して良かった」と思えるくらいの内容は期待していました。

I attended this event on an entire day off during a hectic end-of-fiscal-year period, so I expected content that would at least make me feel it was worth it.

ですので、正直に言えば、がっかりしたという気持ちを抑えきれません。

Honestly, I was disappointed.

-----

まあ、我が国の「偉い人」のスピーチについては、これまでも述べてきた通りです。

As I’ve mentioned, the speeches of Japan’s so-called “important people” have often left much to be desired.

今後も期待できないかもしれませんが。

I doubt that will change any time soon.

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

未分類

旧統一教会に対する解散請求に対して、東京地裁が請求を認める判決をしました。これに対して、旧統一教会は「誤った法解釈による命令である」との抗弁をしています。旧統一教会の主張を簡潔に纒めて下さい。

旧統一教会(世界平和統一家庭連合)は、東京地裁の解散命令について、以下のように主張しています:

  • 判決は宗教法人法の「法令に違反する著しい行為」の解釈を誤っており、信教の自由を侵害するものだ。

  • 信者による不適切な勧誘や献金があったとしても、法人全体としての責任や組織的関与は認められない。

  • 解散命令は信教の自由に対する不当な介入であり、違憲の可能性がある。

このように旧統一教会は、判決の法解釈に誤りがあると主張し、組織的な違法性を否定しています。

この旧統一教会の抗弁に対する、裁判所の判断根拠を一覧表にして記述して下さい


■ 旧統一教会の抗弁と東京地裁の判断対照表

旧統一教会の抗弁内容 裁判所の判断根拠・反論
1. 法令違反に該当しない。組織的関与はない。 長期間にわたって全国規模で多数の信者が同様の手法(霊感商法、献金強要等)を用いていた事実を認定。これらは法人の統制のもとで行われたと判断。
2. 信者個人の行為であり、法人としての違法性はない。 個人の行為としては説明できない統一的な行動パターンやマニュアル、指導体制の存在を証拠として認定。法人としての「組織的違法性」があると判断。
3. 信教の自由の侵害であり違憲の可能性がある。 解散命令は「信教の自由」自体を否定するものではなく、社会秩序を守るための必要かつ合理的な制限であり、憲法の枠内で適法と判断。
4. 被害の評価が恣意的・一部事例に偏っている。 被害は長期かつ多数にわたり、経済的・精神的に深刻な影響があったと認定。特定の事例に限らず、多数の供述・証拠から総体として判断。
5. 改善の取り組み(ガイドライン整備など)を行ってきた。 形式的な改善策であり、実効性が不十分。ガイドライン後も被害が続いている事例が確認されており、抜本的な改善と認められない。
6. 政治的圧力が背景にある。手続きが公平でない。 本件の判断は、収集された多数の証拠と証言、法的評価に基づくものであり、外部の政治的影響や世論とは無関係に、司法として独立して行われたと明言。

東京地裁は、違法行為の反復・継続性、組織的関与の有無、被害の深刻性などから、宗教法人法第81条1号の要件(「法令に違反する著しい行為」)を満たすと認定し、解散命令を相当としました。

未分類

なるほど、なるほど、 ―― 「侍タイムスリッパー」を見た感想です。

Amazon Primeに、昨日から来ているのを見ました。

多分、ここから始まる地獄の半年の最後の休憩時間と考えて、部屋の暗くして、嫁さんと二人でリビングのテレビでソファーで観賞しました。

-----

今、宣伝用のページを見ているのですけど、『ああ、ここには書かれていないんだ』と分かりました。

私の記憶している限り、2回、驚かされるストーリー展開(転換)があります(ネタバレになるので書きませんが)。

自信をもって、お勧めできる映画です。

少なくとも、単なる「笑い」の映画ではなく、私には、本当に、真剣に、真面目に、『良い映画』でした。

未分類

「その着せ替え人形は恋をする」を読了して、コスプレという文化と技術とコスプレに傾倒する人たちの熱意とかを知ることができました。このようにコミックによって、サブカルそのものを理解できなくても、サブカルを『分かったような気にはなれる』と思いました。
サブカルに限らず、このような表現文化に関するマンガ、その他のメディアについて、ピックアックして頂き、その文化と技術と傾倒する人たちの熱意について、一覧で纒めて頂きたいです。

承知しました。以下に、先ほどの表現文化系に加えて「スポーツ」を描いたマンガを含めた一覧をアップデートしました。野球・サッカーはそれぞれ1作品のみに絞り、あまり知られていない競技(相撲・アーチェリー・スケートなど)を中心にピックアップしています。


表現文化・スポーツを描いたマンガ・メディア一覧

(文化・技術・情熱に注目)

作品名 扱っている文化/競技 技術的要素 登場人物たちの熱意・姿勢
その着せ替え人形は恋をする コスプレ、衣装制作 裁縫、メイク、造形、ウィッグ 創作を通じた自分らしさの追求と他者尊重
アクタージュ act-age 演技、舞台・映画 感情表現、演技法、舞台理解 自己内面と演技を繋げる研ぎ澄まされた集中
映像研には手を出すな! アニメ制作 絵コンテ、演出設計、世界観構築 想像力を具現化することへの純粋な渇望
重版出来! 出版・編集 取材、企画力、マンガ制作進行 マンガという文化を世に届ける使命感
げんしけん オタク文化全般 同人誌、イベント、考察 サブカルに対する深い知識と共有の喜び
バクマン。 マンガ制作 ネーム、作画、プロ意識 少年の夢を現実にするための試行錯誤と覚悟
ちはやふる 競技かるた 和歌暗記、反射、心理戦 伝統文化を「勝負」に昇華させる集中力
ランウェイで笑って モデル・服飾 ファッション構成、表現力 身体的ハードルを越える努力と夢への執念
ボールルームへようこそ 社交ダンス ステップ技術、ペアの呼吸、審査基準 表現と競技の融合を極める覚悟
火ノ丸相撲 相撲 組み手、体重コントロール、精神修行 小兵が巨漢に挑む意志と日本文化の継承
弓道士魂 弓玄(きゅうげん) 弓道 射法八節、集中、姿勢の美しさ 無心の精神と精度への執念
スピナマラダ! アイスホッケー スケート技術、パス、戦術 東北を舞台にした熱血かつ泥臭い成長劇
ノーコン・キッド 卓球 サーブ、ラリー、台上技術 地味な競技に魂を燃やす高校生たちの青春
BAMBOO BLADE 剣道 構え、打突、間合い チームとの絆と勝利への葛藤
あさひなぐ 薙刀 構え、打突、礼節 女子ならではの精神的・技術的成長物語
群青にサイレン 野球 バッテリー、心理戦 心の葛藤を抱えながらも頂点を目指す兄弟
DAYS サッカー ドリブル、連携、気持ち 才能よりも“努力”で這い上がる物語
銀盤カレイドスコープ フィギュアスケート ジャンプ、表現力、演技構成点 表現と技術の両立に悩む選手の成長譚
ツルモク独身寮 家具職人 木工加工、設計、美的センス 若者たちの手仕事への矜持と熱意(番外的だが技術職マンガとして)

ご覧のとおり、スポーツといっても「競技」だけでなく、「表現」や「精神性」が求められるものが多く、文化と地続きです。相撲や弓道、薙刀のような日本伝統の身体文化にも熱い想いが描かれています。

今回の私の質問の意図は、「サブカルであれマイナーなスポーツであれ、それを知ろうという行動を起こすことなく、批判しているヤツは『バカ』と断言して良い」、ということです。

未分類

VSCodeでC言語のインデントをGo言語のようにTABキーで自動的に整える方法を説明します。

1. C/C++拡張機能をインストール

まず、MicrosoftのC/C++拡張機能がインストールされているか確認してください。

  • VSCodeの「拡張機能」 (Ctrl+Shift+X) で「C/C++」を検索
  • ms-vscode.cpptools をインストール

2. settings.json を作成

.vscode フォルダの中に settings.json を作成します。

方法1: VSCodeのGUIを使う

  1. .vscode フォルダ内で 右クリック → 新しいファイル
  2. ファイル名を settings.json にする

3. settings.json に設定を追加

作成した settings.json を開いて、以下の内容を記述します。

{
  "editor.formatOnType": true,  // セミコロンや波括弧入力時に自動フォーマット
  "editor.formatOnSave": true,  // 保存時に自動フォーマット
  "editor.tabSize": 4,          // タブ幅を4に設定
  "editor.insertSpaces": false,  // タブをスペースに変換しない
  "C_Cpp.clang_format_fallbackStyle": "Google", 
  "C_Cpp.clang_format_style": "{ BasedOnStyle: Google, IndentWidth: 4, UseTab: Always }"
}

4. Emacsキーバインドを使いつつTABの動作を変更

Emacsのキーバインドを保持したままTABの動作だけ修正したい場合、keybindings.json でTABキーの挙動を変更できます。

設定方法

  1. Ctrl+Shift+P「Preferences: Open Keyboard Shortcuts (JSON)」 を検索
  2. keybindings.json を開く
  3. 以下の設定を追加:
    [
      {
        "key": "tab",
        "command": "editor.action.reindentlines",
        "when": "editorTextFocus"
      }
    ]
    
    

    これで、私の環境の方では何とか動いたようです。

[.vscode/c_cpp_properties.json]

{
	"configurations": [
		{
			"name": "Win32",
			"includePath": [
				"${workspaceFolder}/**",
				"C:/msys64/mingw64/include"
			],
			"defines": [
				"_DEBUG",
				"UNICODE",
				"_UNICODE"
			],
			"windowsSdkVersion": "10.0.22621.0",
			"compilerPath": "C:/msys64/mingw64/bin/gcc.exe",
			"cStandard": "c17",
			"cppStandard": "c++17",
			"intelliSenseMode": "windows-gcc-x64"
		}
	],
	"version": 4
}

[.vscode/launch.json]

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Cデバッグ (MinGW64)",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "gdb を有効化",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "miDebuggerPath": "C:/msys64/mingw64/bin/gdb.exe"
        }
    ]
}

[.vscode/settings.json]

{
	"editor.formatOnType": true, // セミコロンや波括弧入力時に自動フォーマット
	"editor.formatOnSave": true, // 保存時に自動フォーマット
	"editor.tabSize": 4, // タブ幅を4に設定
	"editor.insertSpaces": false, // タブをスペースに変換しない
	"C_Cpp.clang_format_fallbackStyle": "Google",
	"C_Cpp.clang_format_style": "{ BasedOnStyle: Google, IndentWidth: 4, UseTab: Always }"
}

[.vscode/tasks.json]

{
	"version": "2.0.0",
	"tasks": [
		{
			"label": "Cコンパイル (MinGW64)",
			"type": "shell",
			"command": "C:/msys64/mingw64/bin/gcc",
			"args": [
				"-g",
				"${file}",
				"-o",
				"${fileDirname}/${fileBasenameNoExtension}.exe"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			},
			"problemMatcher": [
				"$gcc"
			],
			"detail": "MSYS2 MinGW64 の GCC を使用して C をコンパイル"
		}
	]
}

作成したCファイルをアクティブにし、Ctrl + Shift + B を押してビルドタスクを実行したあと、vscodeのデバッグができるようです。

未分類

「なんでC言語のスレッドとする関数の引数は、構造体渡しにしなければならないのでしょうか?」と泣き言を言ってみました。

すでに他のサブシステムでがんじがらめになったCのプログラムでは、トレースが使えないので、デバッグはログに吐き出しながらの作業になります。

これが、結構な地獄で、つい先刻、改造したスレッドの稼動を確認できたのですが、愚痴がいいたくなりました(例えば、GO言語のGoroutineなんか、めちゃくちゃ簡単にスレッド作れる)。

ーーーーー ChatGPTの回答ここから ーーーーー

C言語のスレッド関数 (pthread_create() で実行する関数) の引数として 構造体を渡すのが一般的 なのは、以下の 4つの理由 によります。


1. pthread_create() の仕様

pthread_create() のスレッド関数(スレッドのエントリポイント)には、単一の void* 型の引数 を受け取る関数を渡す必要があります。

pthread_create() のプロトタイプ

int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
void *(*start_routine)(void *), void *arg);
  • start_routinevoid *arg という 単一の引数 を受け取る関数。
  • arg に渡せるのは ポインタのみ

つまり、スレッドに複数のデータを渡したい場合、
1つの void* にまとめる必要がある構造体で渡すのが一般的 ということになります。


2. 複数のデータを渡したい

スレッド関数で処理するのに 複数の引数(変数)を渡したい ことがよくあります。

例えば:

void *my_thread_func(void *arg) {
int *num = (int *)arg;
printf("Received number: %d\n", *num);
return NULL;
}

では、int の値しか渡せません。

もし 複数の値を渡したい場合

typedef struct {
int id;
double value;
} ThreadArgs;
void *my_thread_func(void *arg) {
ThreadArgs *args = (ThreadArgs *)arg;
printf("ID: %d, Value: %f\n", args->id, args->value);
return NULL;
}

このように、構造体を使えば複数の値をまとめて渡せる ので便利です。


3. スレッドの実行中に変数が消えないようにする

スレッド関数に渡す引数は、スレッドが終了するまで有効 でなければなりません。

例えば:

int num = 42;
pthread_create(&thread, NULL, my_thread_func, &num);

この場合、もし num がローカル変数で main() の実行が終了すると、
そのメモリが解放されてしまい、スレッド関数内で num を使うと 未定義動作 になります。

解決策

  • malloc() で確保して pthread_create() に渡す。
  • 構造体にして必要なデータを安全に渡す
ThreadArgs *args = malloc(sizeof(ThreadArgs));
args->id = 1;
args->value = 3.14;
pthread_create(&thread, NULL, my_thread_func, (void *)args);

こうすれば、スレッドが終了するまで args は有効になります。


4. スレッドごとに異なるデータを渡せる

スレッドを複数作成する場合、それぞれ異なるデータを渡すことが多い。

例えば、複数のスレッドに異なる ID を渡す場合:

ThreadArgs args[3];

for (int i = 0; i < 3; i++) {
args[i].id = i;
args[i].value = i * 1.1;
pthread_create(&threads[i], NULL, my_thread_func, &args[i]);
}

構造体なら、スレッドごとに異なるデータを安全に管理できる


結論

  • pthread_create()1つの void* しか渡せない複数の値を渡すには構造体が便利
  • スレッド実行中に変数が消えると 未定義動作ヒープ領域に確保すれば安全
  • 複数のスレッドに異なるデータを渡すのに構造体が適している

C言語のスレッドの引数は、構造体を渡すのが基本になる

ーーーーー ChatGPTの回答ここまで ーーーーー

まあ、そりゃそうなんだろうけどさ(そして、私としても、今さら仕様を変えられても困るんだけどさ)。でも構造体の引数に構造体が入ってくる場合、ポインタの記載方法で大混乱するんだよね。スレッド内部で構造体の分解も必要になるし。

-----

ところで、今なお、「プログラマーが好むプログラム言語」などという見出しの記事が散見されます。

開発するソフトウェアの内容によって、選ばれるプログラム言語は変ります。

ダムの掘削するのに「シャベル」を選ぶことはできませんし、家庭菜園をするのに「シャベルカー」を持ち込むことはできません。

プロのプログラマーなら、「シャベル」も「シャベルカー」も使えなければなりません。必要なら新しいプログラム言語を勉強して、仕事をしなければならないんです。

「プログラマーが好むプログラム言語」という考え方が、一体どこからやってくるのか、私は今でも分からないです。

「プログラマーが好むプログラム言語」などという、アホな内容の記事が散見されるのは何故でしょうか。見解を聞かせて下さい

ーーーーー ChatGPTの回答ここから ーーーーー

「プログラマーが好むプログラム言語」系の記事が散見される理由は、以下のような要因が考えられます。

  1. 簡単にウケるネタだから
    プログラム言語の人気ランキングや「初心者向け」「稼げる言語」といったテーマは、プログラマーだけでなく、これから学ぼうとする人や経営層にも関心を持たれやすい。専門知識がなくても理解しやすいため、記事として書きやすく、アクセスを稼ぎやすい。

  2. 宗教戦争を煽ると盛り上がる
    プログラマーには、それぞれ慣れ親しんだ言語やこだわりがあるため、「○○言語が最強!」といった記事を出せば議論が活発になり、SNSや掲示板で拡散される。結果として、PV(ページビュー)やエンゲージメントが向上し、メディア側の利益につながる。

  3. 技術を知らない人でも書けるから
    プログラミングの実務に詳しくないライターでも、「流行りの言語ランキング」「人気の言語トップ10」といった記事なら、調査や寄せ集めで簡単に書ける。しかも、明確な正解がないため、適当にデータを並べるだけでも成立する。

  4. 初心者や未経験者向けの情報が求められている
    現場のエンジニアにとっては無意味な話でも、これからプログラミングを学ぼうとする人には「どの言語を学べばいいか」という関心がある。需要がある以上、供給され続ける。

  5. 技術選定の本質を理解していない層が多い
    本来、プログラム言語は開発するソフトウェアの要件や環境、チームのスキルセットに応じて選ばれるべきもの。しかし、「言語そのものの優劣」や「人気」だけで語ろうとする風潮が根強く、それに迎合した記事が多くなる。

結局のところ、**「簡単に書けて、簡単にウケて、簡単に拡散される」**から、この手の記事が量産されるわけです。

ーーーーー ChatGPTの回答ここまで ーーーーー

ChatGPTも、なかなか語りますね。

 

未分類

「上級国民」という言葉の意味が分からなかったので、ChatGPTに聞いてみました。

「上級国民」という言葉の意味が分かりません。定義して下さい

「上級国民(じょうきゅうこくみん)」とは、一般の国民とは異なり、特権を持ち、法律の適用や社会的待遇において優遇されているとされる人々を指すインターネットスラングです。

私は、特権を持たず、法律の適用や社会的待遇において優遇されていないです。私は「上級国民」という言葉に対して、何国民と称呼されるでしょうか(もちろん真面目な回答ではなく、皮肉な回答をお願いします)

それなら、「一般国民」とか「下級国民」なんて呼ばれるかもしれませんね(笑)。ネットの皮肉っぽい表現を使うなら、

  • 「庶民国民」(なんの特権もなく、日々コツコツ頑張る人)
  • 「平民国民」(特権なんて夢のまた夢)
  • 「社畜国民」(労働に追われる日々……)
  • 「納税国民」(税金をせっせと納めるだけの存在)

なんてのもありそうですね。
まあ、「上級国民」って言葉自体が皮肉なので、それに対する呼び方もだいたい自虐的なニュアンスになりますね

未分類

■カードリーダーが使えなくなっていた

SCR3310-NTTCom は既に販売終了しており、公式のドライバ提供も終了しているため、新規の利用や再インストールは実質的に不可能
→ 同じWindowsで、その途中からハードウェアが使えなくなる、というケースを考えたことがなかったので、これに気がつくのに、随分時間を使ってしまった。

■カードリーダーの購入検討と購入

比較表

製品名 価格 (目安) 主要特徴 対応OS 推奨用途
SCR3310v2.0 約2,300~3,000円 NTTコミュニケーションズ製、業務用途でも使用実績あり Windows, macOS 業務用途や安定性重視
アイ・オー・データ USB-ICCRW2 約2,000円 ドライバ不要、マイナンバー対応 Windows, macOS 家庭用で手軽に使いたい
ゴッパ GP-ICCR 約1,500円 最安クラス、コンパクトサイズ Windows, macOS コスト最重視
サンワサプライ ADR-MNICU2 約1,800円 ドライバ不要、USBバスパワー駆動 Windows, macOS 簡単に使いたいが安定性も求める

Amazonで即日入荷で、ドライバ不要 という観点から、サンワサプライ ADR-MNICU2 に決定。

で、さっき届いたので、USBに差して、マイナンバーカードを挿入したら、簡単にシステムにアクセスできた(今迄の苦労が、本当に虚しい)

■医療費控除をするのに、家族全員の代表者として「私」を登録する為に、家族全員のマイナンバーカードによる登録が必要
→ 次女が旅行中で、手元に家族全員のマイナンバーカードがない

#昨年まで、こういう『代表者登録』しなくてよかったんだけどな

#まあ、こういう代表者を悪用する「バカ」が不正な医療費控除を受けようとした、などの事件が発生したんだろう、と思う。

-----

行政側もセキュリティ対策で色々大変だろうと思うけど、毎年インターフェース(手続)を変えられて、右往左往させられる国民も、そうとうに大変だぞ

この、インターフェース変更は、これからも、毎年ずっと続いていくのだろう、と思うと ――

正直、(システムエンジニアである、私でさえも)『デジタル化、もういい』という気持ちになります

 

 

未分類

今週の「坂の上の雲(再放送)」の、この部分を20回ほど見直して、ようやく分かってきました。

Step 1 : 日本海軍の戦艦が、大きなUターンをするこによって、ロシア艦隊が「一列」になって攻撃を開始(この間、日本側は回頭中のため、一切反撃できず)
Step 2: 一列になってしまったロシア艦隊の目の前に、日本艦隊が集結
Step 3: 日本艦隊が一斉砲撃で、一列になったロシア艦隊を先頭から一つづつ潰していく

下図は、NHKのテレビ画面のキャプチャに、江端が図を追記したもの

 

ポイントは3点

(1)ロシア艦隊を1列にする必要があり、その為に、あえて直前での大Uターンを実施
(2)1列になったロシア艦隊の直前に、できるだけ早く日本艦隊を結集させる
(3)一列になったロシア艦隊を、ひとつづつを、一斉砲撃で潰す

YouTubeとか見れば、正解が分かるかもしれませんが、まずこの図面(とそこに記載された時刻だけ)から、上記を導いてみました。
答合わせは、後でやってみます。

未分類

BIOS画面をいじるのは怖いので、Ryzen Controllerを使おうとう思うのですが、良いでしょうか

Ryzen Controller を使って TDP を制限するのは安全な方法なので、問題ありません。
BIOS設定を変更するよりリスクが低く、手軽にTDP制限を適用できるのでおすすめ です。


✅ Ryzen Controller の使用手順

1. Ryzen Controller をダウンロード

公式サイトから最新版を取得: 👉 Ryzen Controller公式サイト

  1. 「Download」ボタンをクリック
  2. インストールファイル (Ryzen Controller.exe) をダウンロード
  3. インストール後、管理者権限で実行

2. TDP制限の設定

(1) 「Power and Temperature」 タブを開く

  • 「PPT (Package Power Tracking)」を 35W に変更
  • 「TDC (Thermal Design Current)」を 25A に変更
  • 「EDC (Electrical Design Current)」を 50A に変更
  • 「Temperature Limit」を 85℃以下 に設定(温度制限)

(2) 「Apply」ボタンを押す

  • すぐに適用され、PCの発熱が抑えられる。

(3) 自動適用設定

Ryzen ControllerはデフォルトではPC再起動時に設定がリセットされるため、自動適用の設定を行う。

  1. 「Auto-start」機能を有効にする
    • 「Enable Auto-Start」オプションをON
    • Windows起動時に自動で設定を適用。

3. TDP制限が適用されたか確認

設定が適用されたかどうかをチェックする。

(1) HWiNFOで確認

  1. HWiNFO をダウンロード・起動
    👉 HWiNFO公式サイト
  2. 「CPU Package Power (PPT)」 の値が 35W前後になっているか 確認

(2) Ryzen Master で確認

  1. AMD Ryzen Master をダウンロード・起動
    👉 AMD公式ダウンロードページ
  2. PPTの最大値が 35W に制限されているか確認

4. パフォーマンス影響のチェック

TDPを35Wに制限すると発熱は抑えられるが、CPU性能も少し下がるため、以下の方法で影響をチェック。

(1) Cinebench R23 でテスト

  1. Cinebench R23 をダウンロード
    👉 Cinebench公式サイト
  2. シングルコア & マルチコアのスコアを測定。
  3. TDP制限前後でスコアを比較

(2) 通常の使用で問題ないか確認

  • 動画再生、Webブラウジング、プログラム開発など、普段の使用で問題がないか確認。

✅ Ryzen Controller を使うメリット

BIOSを変更しないので安全
簡単に設定できる
TDP制限を試して、問題があればすぐ元に戻せる
PCを移動せずに放熱対策ができる


⚠️ Ryzen Controller の注意点

PC再起動時に設定がリセットされるため、Auto-start を有効にすることを推奨
一部のWindowsアップデートで互換性が変わる可能性あり(設定が適用されなくなる場合がある)
100%完全な動作保証はないため、TDP制限後はPCの動作をチェック


✅ 結論

BIOSをいじるのが怖いなら、Ryzen Controller を使うのは良い選択。
TDPを35Wに制限することで、発熱を抑えながらPCを安定させられる
ソフトウェアなので、いつでも設定を戻せる

まずは Ryzen Controller で PPT = 35W に設定し、負荷テストをしながら安定動作するか確認するのがベスト!

Ryzen Controller Setup 2.5.4.exe をダウンロードしましたが、これで良いでしょうか

はい、Ryzen Controller Setup 2.5.4.exe は最新版の 2.5.4 で問題ありません。
以下の手順でインストールと設定を行ってください。


✅ Ryzen Controller 2.5.4 のインストール手順

1. インストール

  1. Ryzen Controller Setup 2.5.4.exe をダブルクリック
  2. 「Next」ボタンを押してインストールを進める
  3. インストールが完了したら 「Finish」ボタンを押す
  4. 管理者権限で起動(右クリック → 「管理者として実行」

2. TDPを35Wに制限する設定

  1. 「Power and Temperature」 タブを開く
  2. 以下の数値を設定:
    • PPT (Package Power Tracking)35W
    • TDC (Thermal Design Current)25A
    • EDC (Electrical Design Current)50A
    • Temperature Limit85℃以下
  3. 「Apply」ボタンをクリック
  4. 設定が反映されたか確認。

3. 再起動後も設定を維持する

再起動後に設定がリセットされるので、自動適用を有効化する。

  1. 「Auto-Start」機能を有効にする
    • 「Enable Auto-Start」を ON
    • Windows起動時に自動でTDP制限を適用

4. 設定が適用されたか確認

(1) HWiNFO で確認

  1. HWiNFO をダウンロード&起動
    👉 HWiNFO公式サイト
  2. 「CPU Package Power (PPT)」 の値が 35W以下 になっているか確認。

(2) Ryzen Master で確認

  1. AMD Ryzen Master をダウンロード&起動
    👉 AMD公式ダウンロードページ
  2. PPTの最大値が 35W に制限されているか確認

✅ 結論

  • Ryzen Controller 2.5.4 で問題なし!
  • TDPを35Wに制限する設定を行い、Auto-StartをONにする
  • HWiNFO や Ryzen Master で設定が適用されたか確認

この手順で設定すれば、放熱を改善しながらPCを安定動作させることが可能!

Temperature Limit (°C)
CPU TDP (W)
Long Boost Duration
Long Boost TDP (W)
Short Boost Duration
Short Boost TDP (W)

という画面がでています。次にどうすれば良いですか。目標は熱暴走の防止です

✅ Ryzen Controller 2.5.4 の設定手順 (熱暴走防止)

この画面でTDP(消費電力制限)と温度制限を適切に設定することで、熱暴走を防ぎつつパフォーマンスを維持することができます


1. 各パラメータの意味

Ryzen Controller では、以下のパラメータを調整できます。

設定項目 説明
Temperature Limit (°C) 最大CPU温度制限(これを超えると性能を下げる)
CPU TDP (W) 通常時の消費電力制限
Long Boost Duration ブースト持続時間(長時間)
Long Boost TDP (W) 長時間ブースト時の最大TDP
Short Boost Duration 短時間ブースト時間
Short Boost TDP (W) 短時間ブースト時の最大TDP

2. 熱暴走を防ぐための最適設定

以下の設定を入力してください。

  • Temperature Limit (°C)85(安全な範囲、85℃以上でクロックダウン)
  • CPU TDP (W)35(通常時の消費電力を35Wに制限)
  • Long Boost Duration10(ブースト時間を10秒に短縮)
  • Long Boost TDP (W)45(長時間ブースト時の最大消費電力を45Wに制限)
  • Short Boost Duration2(短時間ブーストを2秒に短縮)
  • Short Boost TDP (W)50(瞬間的な最大消費電力を50Wに制限)

3. 設定を適用

  1. 上記の値を入力
  2. 「Apply」ボタンをクリック
  3. 「Enable Auto-Start」を ON(再起動後も設定を維持)
  4. 動作確認のためPCを再起動

4. 設定が適用されたか確認

  1. HWiNFO を使って CPU Package Power が 35W以下に制限されているか確認
  2. Cinebench R23 で負荷テストを実行し、温度が 85℃以下に抑えられているかチェック

✅ 結論

この設定で、通常時の消費電力を35Wに抑えつつ、短時間のブーストを最大50Wまで許容することで、性能を落としすぎずに熱暴走を防ぐことが可能!

 

メニューを叩いてみると、現在値(?)は、上から、85,25,900,25,60,10となっています。

ChatGPT:

現在の設定値(85, 25, 900, 25, 60, 10)を見た限りでは、TDPが 25W に制限されており、かなり低い値になっています。この状態では、パフォーマンスが抑えられすぎている可能性があります。

また、Long Boost Duration (900秒 = 15分) と Short Boost Duration (60秒) が非常に長く設定されており、負荷が高い状態が長く続く可能性があるため、熱暴走を防ぐためにはこれらを短縮する必要があります。


✅ 熱暴走防止のための最適設定

1. 推奨設定

現在の値を 以下の値に変更 してください。

設定項目 変更前 推奨値 説明
Temperature Limit (°C) 85 85 CPUの温度制限(そのままでOK)
CPU TDP (W) 25 35 通常時の最大消費電力を35Wに制限
Long Boost Duration 900 10 長時間ブーストの持続時間を短縮(10秒)
Long Boost TDP (W) 25 45 長時間ブースト時の最大TDPを45Wに
Short Boost Duration 60 2 短時間ブーストを2秒に短縮
Short Boost TDP (W) 10 50 瞬間的な最大消費電力を50Wに

2. 設定手順

  1. 各値を上記の推奨値に変更
  2. 「Apply」ボタンをクリック
  3. 「Enable Auto-Start」を ON(再起動後も設定を維持)
  4. PCを再起動して設定が適用されているか確認

3. 設定適用後の確認

HWiNFO で CPU Package Power が 35W前後になっているかチェック
Cinebench R23 で負荷テストを行い、温度が 85℃以下で安定しているか確認
通常使用で問題がないかテスト(動画再生やWebブラウジングなど)


✅ 結論

現在の 25W制限は厳しすぎる ので、35Wに引き上げながら、ブースト時間を短縮 するのが最適!
この設定で、性能を維持しつつ、熱暴走を防ぐことができる 🎯

 

「Apply」ボタンをクリックしましたが、「Enable Auto-Start」が見つかりません。

Enable Auto-Start が見つからない場合、手動で設定を再適用する方法を使う必要があります。
Ryzen Controllerは再起動後に設定がリセットされるため、毎回適用する必要があります
以下の手順で、起動時に自動で設定が適用されるようにする方法を紹介します。


✅ 自動適用の方法(手動スクリプト設定)

Ryzen Controller自体にはAuto-Start機能がないバージョンもあるため、Windowsのタスクスケジューラを使って、PC起動時に自動適用する方法を設定します。


1. Ryzen Controller をバッチファイルで起動

  1. メモ帳 を開く

  2. 以下のスクリプトをコピーして貼り付ける

    bat
    @echo off
    start "" "C:\Program Files\Ryzen Controller\Ryzen Controller.exe"
    timeout /t 5
    nircmd sendkeypress enter
    • C:\Program Files\Ryzen Controller\Ryzen Controller.exe のパスは、実際にRyzen Controllerがインストールされている場所に合わせる。
    • nircmd はキーボードのEnterキーを自動で押すコマンド(詳細後述)。
  3. RyzenControllerAutoStart.bat としてデスクトップに保存


2. タスクスケジューラで自動実行

  1. Win + R を押して taskschd.msc を入力し、Enter
  2. 「タスクスケジューラ ライブラリ」 を開く
  3. 「基本タスクの作成」 をクリック
  4. タスクの名前を「Ryzen Controller AutoStart」 に設定し、「次へ」
  5. 「ログオン時」に設定し、「次へ」
  6. 「プログラムの開始」を選択し、「次へ」
  7. 「参照」ボタンをクリックし、RyzenControllerAutoStart.bat を選択
  8. 「完了」を押す

3. nircmd で自動適用(オプション)

Ryzen Controllerの設定適用ボタンを自動で押すために、nircmd という小さなツールを使うことができる。

  1. nircmd をダウンロード
    👉 公式サイト
  2. nircmd.exeC:\Windows\System32 にコピー
  3. 先ほどの .bat スクリプトの最後に以下を追加
    bat
    nircmd sendkeypress enter

    これにより、Ryzen Controller 起動後に自動で「Apply」を押す。


✅ 確認手順

  1. PCを再起動
  2. Ryzen Controller が自動で起動し、設定が適用されているか確認
  3. HWiNFORyzen Master で、TDP制限が有効かチェック

✅ 結論

  • Ryzen Controller 2.5.4 には Enable Auto-Start がないため、手動で自動適用を設定する必要がある
  • タスクスケジューラで bat ファイルを登録すれば、PC起動時に設定が自動適用される
  • nircmd を使えば、「Apply」を自動で押せるようになる

この方法で、再起動後もTDP制限が適用され、熱暴走を防ぐことができる!

面倒ですが、毎回手動で設定してもいいです。「Apply」を設定した段階で設定されたと考えて良いですか

はい、「Apply」ボタンをクリックした時点で設定は即時適用されています
したがって、手動で毎回「Apply」を押す方式でも問題ありません


✅ 手動適用の流れ

  1. PCを起動
  2. Ryzen Controller を管理者権限で実行
    • (右クリック →「管理者として実行」)
  3. 設定値(TDP=35W など)が変更されていないか確認
  4. 「Apply」ボタンをクリック
  5. 設定が反映されたか確認 (HWiNFO などでチェック)

✅ 設定が反映されたかの確認

以下のいずれかの方法でTDPが適用されているか確認してください。

方法①: HWiNFO で確認

  1. HWiNFO をダウンロード
    👉 公式サイト
  2. Sensors Only モードで起動
  3. 「CPU Package Power (PPT)」の値を確認
    • 35W前後になっていれば設定適用OK ✅

方法②: Ryzen Master で確認

  1. AMD Ryzen Master をダウンロード
    👉 AMD公式ダウンロードページ
  2. 「PPT (Package Power Tracking)」の最大値を確認
    • 35Wに制限されていれば適用OK ✅

✅ 結論

「Apply」を押した時点で設定は即時反映されるので、手動適用でも問題なし!
毎回「Apply」を押すだけでOK
再起動後に忘れないようにするだけ
HWiNFORyzen Master で設定が適用されているか確認すれば確実

面倒でも手動で問題なければ、この方法で TDP制限を適用し、熱暴走を防ぐことが可能! 🎯

ちなみに、現在の画面には「APPLY] [CREATE PRESET]「RESET」のボタンがあります、現在「APPLY]を押しました。このままアプリケーションを終了すれば良いですか?

ChatGPT:

はい、「APPLY」ボタンを押した時点で設定は適用されている ので、そのままアプリケーションを終了しても問題ありません。

✅ 手順

  1. 「APPLY」ボタンを押した時点でTDP制限が反映
  2. アプリケーションを閉じてOK
  3. 設定が適用されているか確認
    • HWiNFORyzen Master で「CPU Package Power (PPT)」が 35W前後になっているかチェック。

✅ 「CREATE PRESET」は必要か?

  • 「CREATE PRESET」ボタンは、設定を保存する機能 ですが、再起動後に自動適用されるわけではないため、手動適用の場合は不要。
  • 毎回「APPLY」を押すなら 「CREATE PRESET」は押さなくてOK

✅ 「RESET」は何をする?

  • 「RESET」ボタンは、すべての設定をデフォルトに戻す ため、押さないように注意。

✅ 結論

「APPLY」ボタンを押した時点で設定は適用済み
アプリを閉じてもOK
再起動後は、再度Ryzen Controllerを開いて「APPLY」を押す必要がある

これで、熱暴走を防ぎつつ、安定した運用が可能になります! 🎯