Mattermost サーバー移行

Mattermostは最低限のスペックで試験運用中だったため、前回Jitsiを入れた高スペックサーバーに引っ越し。

直インストールから、Caddy + Docker運用へ変更。
バージョンは現行の10.12.4のまま移行。

旧サーバー

・Mattermost停止
systemctl stop mattermost
(起動する場合は、systemctl start mattermost)

・MySQLダンプ
mysqldump –no-tablespaces –default-character-set=utf8mb4 -u mattermost_user -p●●● mattermost_db > backup.sql

・データベース名を調べる
mysql -u mattermost_user -p●●●
show databases;

・データディレクトリ圧縮
cd /opt/mattermost
tar czvf mattermost_data.tar.gz data/
(/opt/mattermost/data/をカレントディレクトリにmattermost_data.tar.gzという圧縮ファイルにして保存)

・設定ファイルコピー(復旧に使うわけではない予備)
cp /opt/mattermost/config/config.json ./
(Mattermostの設定ファイルを今いるディレクトリにコピー)

・移行先サーバーにアップロード

新サーバー

・Caddy(既に運用状態で設定ファイルだけ変更)

cd /home/caddy
vim Caddyfile
docker compose down
docker compose up -d

・Mattermost

cd /home
mkdir mattermost
cd mattermost
vim docker-compose.yml

docker compose up -d

・データインポートのためDocker停止
docker stop mattermost-app

・SQLリストア
docker exec -i mattermost-db mysql –default-character-set=utf8mb4 -u mmuser -p●●● mattermost < backup.sql

・別ターミナルでプロセス確認する場合
docker exec -it mattermost-db mysql -u mmuser -p●●● -e “SHOW PROCESSLIST;”

・dataディレクトリ展開
※tarをdocker-compose.ymlと同じ階層に保存。
cd /home/mattermost
tar xzvf mattermost_data.tar.gz -C ./volumes/mattermost/
(tarを./volumes/mattermost/に解凍。tarにdataディレクトリを含んでいる)

・パーミッション
chown -R 2000:2000 /home/mattermost/volumes/mattermost/

・Docker開始
docker start mattermost-app

・エラーになる場合、AIプラグイン削除
rm -rf /home/mattermost/volumes/mattermost/plugins/mattermost-ai
docker restart mattermost-app

・DNSレコードのIPアドレス変更

VPS Caddy Jitsi Meet 設定メモ

社内コミュニケーションにMattermostを利用しているが、会話なら一瞬で済む内容でも、テキストベースだと時間がかかってしまう。

かといってZoomやMeetを立ち上げるほどではないという場面のために手軽に呼び出せるJitsiプラグインを導入することにした。

Caddy

・共通ネットワーク作成
docker network create localproxy

・フォルダ準備
cd /home
mkdir caddy
cd caddy

・Caddyfile

vim Caddyfile

・docker-compose.yml

vim docker-compose.yml

・コンテナ起動
docker compose up -d

Jitsi Meet

・フォルダ準備
cd /home
mkdir jitsi
cd jitsi

・docker-compose.yml

vim docker-compose.yml

・コンテナ起動
docker compose up -d

・ufw
ufw allow 10000/udp

DNS

jitsi.●●●.comのAレコードをサーバーIPアドレスに向ける。

Mattermost

https://github.com/mattermost-community/mattermost-plugin-jitsi

Releasesからtar.gzをダウンロード。
システムコンソール>プラグイン管理>プラグインをアップロードする

プラグインを有効にする>設定

Jitsi Server URL:https://jitsi.●●●.com
Embed Jitsi video inside Mattermost:無効
Show pre-join page:有効
Jitsi Meeting Names:Random
Use JWT Authentication for Jitsi:有効
App ID for JWT Authentication:mattermost
App Secret for JWT Authentication:Jitsiと同じ秘密鍵

 

VBA vbac.wsf インストール

https://github.com/vbaidiot/ariawase
からzipをダウンロード、vbac.wsfを取り出す。

という構成にして、
cscript vbac.wsf decombine
を実行する。

インポートは
cscript vbac.wsf combine
を実行する。

AI/LLM Claude Code インストール

インストール

powershell
>npm install -g @anthropic-ai/claude-code
>claude

・テキストスタイル選択

Choose the text style that looks best with your terminal
To change this later, run /theme

❯ 1. Dark mode
2. Light mode
3. Dark mode (colorblind-friendly)
4. Light mode (colorblind-friendly)
5. Dark mode (ANSI colors only)
6. Light mode (ANSI colors only)

・ログイン方法

Claude Code can be used with your Claude subscription or billed based on API usage through your Console account.
Select login method:

❯ 1. Claude account with subscription · Pro, Max, Team, or Enterprise
2. Anthropic Console account · API usage billing
3. 3rd-party platform · Amazon Bedrock, Microsoft Foundry, or Vertex AI

ブラウザが開くので、承認する。

・Claude Codeのターミナル設定

Use Claude Code’s terminal setup?
For the optimal coding experience, enable the recommended settings
for your terminal: Shift+Enter for newlines

❯ 1. Yes, use recommended settings
2. No, maybe later with /terminal-setup

・セキュリティ(信頼できるプロジェクトかどうか)

Quick safety check: Is this a project you created or one you trust? (Like your own code, a well-known open source project, or work
from your team). If not, take a moment to review what’s in this folder first.
Claude Code’ll be able to read, edit, and execute files here.
Security guide

❯ 1. Yes, I trust this folder
2. No, exit

GitHub CLI

powershell
>winget install GitHub.cli
>gh auth login

Claude by Anthropic for Excel

・インストール

Microsoft 365管理センター > 設定 > 統合アプリ > Add-ins > アドインの展開 > Microsoft Store から展開する
Claude by Anthropic for Excel
を選択する。

・確認

Microsoft 365管理センター > 設定 > 統合アプリ > Claude by Anthropic for Excel > 概要 > アプリを開く > Excelで開く

・その他、確認ポイント

Microsoft 365管理センター > 設定 > 組織設定 > ユーザーが所有するアプリとサービス
ユーザーがOfficeストアにアクセスすることを許可する。
がONかどうか。

ローカルExcel > ファイル > オプション > トラストセンター > トラストセンターの設定 > 信頼できるアドインカタログ

・ローカルExcelのライセンスがおかしくなった場合

cmd > cscript “C:\Program Files\Microsoft Office\Office16\ospp.vbs” /dstatus
Last 5 characters of … の英数字をコピー

cmd > cscript “C:\Program Files\Microsoft Office\Office16\ospp.vbs” /unpkey:3RQ6B

Excel サインアウト > サインイン

製造ドメイン整理・改善点

製造ドメインの整理、改善を考えるメモです。
前提の環境は、中小企業、受注生産・多品種少量としています。
特定の一社ではなくを複数の会社の状態を混ぜています。

受注

・受注用の製品マスタはある(得意先、型式、金額)のみ。
・製番管理している。仕入など全て製番管理だが、あまり枝番管理ができていない。複数台受注でも1製番のため、それぞれの原価の数量との突合ができないなど。

仕入/発注

・E-BOM/M-BOM無し。
・材料発注履歴は保存しており、model nameをキーとして簡易M-BOM(表記ゆれあり)はある。
・製品を構成する部材のほとんどが定尺購入で、現場が必要に応じて発注する発注点方式の部材で製品のほとんどを構成している。一部の特殊な材料は製番に紐づけして仕入れており、そこではM-BOMあるいは図面を見て都度発注となる。

個別原価

・製番に紐づけた実際の仕入と、積算データからの工数などで計算。作業者の工数は蓄積されており、積算時に利用し積算精度をあげている。

在庫

・ほとんど受注生産のため、在庫は管理会計で利益として計算し、BSはほとんど意識しない。
・入庫処理なし。買った分は全て仕入計上。管理会計上ではキャッシュフローの安全面重視。ただ、ほとんど当月の仕入・売りなので現状あまり問題にならない。
・当然、期末決算だけ実棚集計。

生産スケジュール

・ポイントスケジューリング方式採用(ドラム・バッファ・ロープ)

・工程の実績のデータ化はなし。
・製品/工程マスタ無し。
・現状、生産スケジュールが手作業エクセル管理で、今は単価ベースでスケジュールしている。

改善点

・必要に応じて必要な工程の通過時の記録を取る方向へ。バーコードなど簡易な方法で。
・工程スケジュールの履歴から、model nameをキーとした簡易工程マスタを作成する予定。
・ポイント以外の工程での負荷の状態が作業者任せになってしまう。

作業性

・全体的にコピペやマクロなど利用した作業速度を重視した業務フローになっており、個別の手入力など採用不可。

課題

・属人化ノウハウ喪失。
・トレーサビリティの要求に答えられるか。

エクセルデータとDBデータの同期

エクセルをUIとした場合DBにどうやってデータを登録するかが難しい。バックグラウンドでエクセルファイルから自動で同期はファイルの状態により難しい。都度手動登録はデータ重複や登録忘れの恐れがある。

改善案

CSVデータを正とする方向。

RTX1210 MTU未設定でERR_CONNECTION_RESET

NSD-G1000T — RTX1210 — PC
という構成になっているテスト環境でERR_CONNECTION_RESETが発生した。
MTUサイズを調べると以下の通り。

ping -f -l 1433 170.114.52.2
NG(要求がタイムアウト)

ping -f -l 1432 170.114.52.2
OK

※通ったサイズ+28-1にて設定。

ip lan2 mtu 1459 # no ip lan2 mtu
ip lan1 tcp mss limit auto # no ip lan1 tcp mss limit

カーソル下のウィンドウをアクティブ

control>コンピュータの簡単操作センター>マウスを使いやすくします
マウスポインターをウィンドウ上に合わせたときにウィンドウを選択します
にチェックをつける。

・タイミングを変更する方法

regedit>HKEY_CURRENT_USER\Control Panel\Desktop\ActiveWndTrkTimeout
10進数で500から好きな数字に変更

PowerShell NASバックアップスクリプト

新しいNAS(Windows Server IoT)を導入した。バックアップに専用のソフトを導入するほどの規模でもないのでPowerShell+タスクスケジューラにて設定。

-日次ミラーリングデータ*2
-1週間分の差分データ
-月次のミラーリングデータ

 

AIをどう利用するかメモ

変化の前提:AIはパラダイムシフト

AIに実装を任せる方向は今後さらに拡大していく。これは単なる効率化ではなくパラダイムシフトであり、これまでと違う考え方が必要になる。

人間側で重要になる能力

AIが基礎的な能力を身につける機会を奪う面がある一方で、人間に残る重要領域はより上流に寄っていく。今後重要になるのは、問題分解能力、意図の言語化、アーキテクチャ設計、ドメイン知識、そしてAI出力の検証である。

「全部読む」前提は破綻する

AI特有の不安定さに対して、現状では「人間が全て読んで最終判断する(経験が重要)」「責任は人間がとる」という意見がある。しかし、今後AIが生成する膨大な実装をすべて人間が理解する方法では破綻する。

本質:確定的な世界に確率的な知能を組み込む

問題の本質は、確定的なものから確率的なものへの変化にある。不安定さを前提に、それを制御するエンジニアリングが必要になる。重要なのは、確定的な世界に確率的な知能をどう組み込むかである。

解き方:ガードレールと統計的テスト

制御の具体策として、ガードレールを設けること、統計的なテストを実施することが重要になる。考え方としては、現在の工学における安全率にも近い。

実務の要:自動テストとCI/CDが競争力になる

膨大な実装を前提にするなら、自動的にテストし、継続的に検証して流せるCI/CDの仕組みが重要になる。テスト無し+ZIPで履歴管理のような従来スタイルでは競争力を完全に失う。

アーキテクチャの役割が変わる

アーキテクチャのような知識はより重要になるが、目的が変化している。これまでは「人間が修正しやすいように」だったのが、今後は「AIに作業範囲を指示できるように」という意味合いが強くなる。

目的最適化DSL:ブレを消すための“厳格な指示”

目的ごとに最適化されたDSLが重要になってくる。DSLとは厳格で再利用可能な指示のことで、プロンプトの中で定義して利用できる。狙いは結果のブレをなくすことであり、DSLの源泉はドメイン知識である。これはAIが理解するための表現であり、DSLから汎用言語への進化に逆行しているわけではない。

近い未来像:人間が指示し、実装はAIが担う

一部の最先端を除いて、「AIに何をさせるかだけ人間が決め、実装はAI」という未来は確実に近い。したがって競争力は、実装速度そのものよりも、指示の質と検証・運用の仕組みに移っていく。

現時点のボトルネック:OS操作はまだ難しい

現時点では、副作用や人間に最適化されたOS設計のため、自動でOSを操作するのは難しい領域である。今後、OSがAIに最適化されたり、副作用を理解するアプローチが進む可能性はあるが、まだ時間がかかる。

DSL

AIにDSLを書かせる

※こちらがメイン

AIが直接実行可能なコードを書くとセキュリティリスクがある。
DSLならサンドボックス化できる。

AIの暴走を防ぐという意味でこちらもガードレールの1つ。
従来のガードレールと併用。

その他にも、
インターフェースの固定(出力が安定)
ドメイン知識の注入
コマンド化することで分岐などを意識させる

DSLでAIを制御する

Guidanceなど。

 

NotebookLM

スレッドのmdを投げて、個人的な話題を消してもらう指示。