投稿

12月, 2025の投稿を表示しています

MariaDB Serverのslow_log設定

slow_logを見てみたら300万行あったので設定を見直したときの覚書。 Gemini 3 Pro Previewと対話。 環境: FreeBSD 14.3-RELEASE-p7, MariaDB Server  10.11.14 1. slow_log設定 現在のslow_log設定。 # less /usr/local/etc/mysql/conf.d/server.cnf # Slow Query Log slow_query_log                = ON long_query_time               = 3 log_output                    = TABLE # インデックス未使用のクエリをログに記録し、ボトルネックを特定しやすくする log_queries_not_using_indexes = ON # 指定した行数以上の行をスキャンしたクエリのみをログに記録する min_examined_row_limit        = 5000 log_queries_not_using_indexesはWordPressを利用しているとインデックスを使わない軽量なクエリが大量に発生するためOFFにする。 min_examined_row_limitもコメントアウト。 # less /usr/local/etc/mysql/conf.d/server.cnf # Slow Query Log slow_query_log                = ON long_query_time               = 1 log_output          ...

短縮URL「shlink」を3.5.1から4.6.0にアップデート

独自ドメインで短縮URLを生成できるオープンソースshlinkをアップデートしたときの覚書。 Gemini 3 Pro Previewと対話。 環境: CentOS Stream 10, PHP 8.3.26, shlink 3.5.1 -> 4.6.0 shlinkの現在のバージョンを確認。 # /home/httpd/shlink/bin # ./cli -V Shlink 3.5.1 shlinkのQRコード機能は4.5.0から非推奨。 参考:  Shlink — The URL shortener — Documentation v4系からは条件に応じて飛び先を変える機能が実装。 デバイス別リダイレクト: iPhoneならApp Storeへ、AndroidならGoogle Playへ、PCならWebサイトへ、といった振り分けが可能。 言語別リダイレクト: ブラウザの言語設定(日本語、英語など)に応じて、表示するページを切り替え可能。 クエリパラメータ転送: 短縮URLの後ろにつけたパラメータ(?utm_source=twitterなど)を、飛び先URLに引き継ぐかどうかの制御が柔軟。 1.shlinkアップグレード 公式サイト通りにアップデートする。 念のためデータベースのバックアップを取っておく。 参考:  Shlink — The URL shortener — Documentation shlinkディレクトリをリネイムして最新のソースコードを設置。 参考:  Releases · shlinkio/shlink distでないとvendorディレクトリが含まれていないので注意。 # cd /home/httpd/ # mv shlink/ shlink-old # curl -LO https://github.com/shlinkio/shlink/releases/download/v4.6.0/shlink4.6.0_php8.3_dist.zip 解凍後のディレクトリ構成を確認して解凍。 # unzip -l shlink4.6.0_php8.3_dist.zip # unzip shlink4.6.0_php8.3_dist.zip リネイムしてdataディレク...

セミナー時にリアルタイムでコメントを見える化するシステムをAIで作る

イメージ
セミナーイベントを企画しているときに「講師への質問などをリアルタイムで表示するシステムがあったら面白い」という意見があったときの覚書。 Gemini 3.0 Pro Previewと対話。 1.商用サービス調査 商用サービスはプレゼン資料と同じディスプレイに出したりと高機能。 Slido-イベントの参加者との意思疎通を活性化 /無料100人まで LiveQ - リアルタイムアンケートやQ&A機能で授業やセミナーを盛り上げる /無料100人まで リアルタイムに参加者の声を可視化 ライブアンケートツール イマキク - イマキク /無料50人まで 2.無料で自作する Google FormとGoogle Sheetsを利用すれば無料で作れそうだと思い、実際に作ってみた。 ほぼGemini先生が作っている。 最初はエラーがあったけど対話しながらブラッシュアップした。 セミナー会場での運用 講師のプレゼン資料のディスプレイとは別のディスプレイに表示。 会場ではQRコードを配布。 最初の案内で説明とテスト送信してもらう。 スクリーンショット 機能一覧 文字を入力し送信すると一覧に表示(上限:140文字)。 3秒ごとに自動更新。 データはGoogle Sheetsに保存。 匿名で誰でも投稿可能。 作成手順 Google Formを新規作成し、質問を1つ(例:「コメント」)だけ作成。 「回答」タブから「スプレッドシートにリンク」をクリックし、回答用のスプレッドシートを作成。 作成されたスプレッドシートを開き、メニューの 「拡張機能」 > 「Apps Script」 をクリック。 コードエディタが開くので、もともと入っているコードを消して、サーバー用コード.gsを記述。 コード.gs:  Gist 「ファイル」の横の「+」アイコン > 「HTML」を選択し、ファイル名を Index。 Index.html:  Gist Apps Script画面右上の 「デプロイ」 > 「新しいデプロイ」 「種類の選択」の歯車アイコン > 「ウェブアプリ」  設定:次のユーザーとして実行:自分 設定:アクセスできるユーザー:全員 「デプロイ」ボタンをクリック。 初回は「安全ではないページ(詳細)」→「(スクリプト名)に移動」をクリックして許...

WindowsのコマンドラインでGoogle Cloud Strageにアップロード

年末のバックアップ処理でGoogle Cloud Storageにブラウザでアップロードしたら失敗したので、コマンドラインでやってみたときの覚書。 Gemini 3 Pro Previewと対話。 環境: Windows 11, Google Cloud SDK 550.0.0 1. ファイルをアップロード Google Cloud SDKのバージョン確認。 PS> gcloud version ログインする。 PS> gcloud auth login 生成されたURLをブラウザに貼り付けて認証。 プロジェクトIDを設定。 PS> gcloud config set project hoge-backup バケット内の一覧を表示。 PS> gcloud storage ls gs://svn-backup.hoge.jp/20251221/ 移動してアップロード。 PS> cd D:\Downloads PS> ls PS> gcloud storage cp .\repo-hoge_20251217.tgz gs://svn-backup.hoge.jp/20251221/ 確認。 PS> gcloud storage ls gs://svn-backup.hoge.jp/20251221/ ファイルサイズが大きいほど、gcloud storage コマンドの方が圧倒的に速く、かつ安全らしい。 またgcloud storage コマンドは失敗しても途中から再開できる。 (ブラウザの場合は最初からやり直し) Gemini先生に作ってもらったワンラインコマンド。 (開始時間/終了時間/所要時間を表示) PS> $s = Get-Date; Write-Host "開始: $s"; gcloud storage cp .\repo-hoge_20251217.tgz gs://svn-backup.hoge.jp/20251221/; $e = Get-Date; Write-Host "終了: $e"; Write-Host "所要時間: $($e - $s)" 2.ストレージクラスの確認 アップロードする際に下記メッセージが表示される...

XServer VPSにCentOS Stream 10 + MariaDB + Nginx + PHP + Postfixを設定(2025年版)

XServer VPSを試したときの覚書。 Gemini 3 Pro Previewと対話。 環境: CentOS Stream 10 1.初期設定 VNSコンソールを起動する。 日本語キーボードになっているので英語配列に変更。 確認してus配列を読み込む。 # localectl status # localectl list-keymaps # loadkeys us コンソールの設定ファイルを変更。 XKB* 変数は Xorg/キーボード設定用なので無視してOK。 # less /etc/vconsole.conf KEYMAP=us YUMアップデートして、ホスト名変更。 # dnf update # hostnamectl set-hostname xserver01.hoge.jp # hostnamectl status Location確認。 # timedatectl status IPアドレスとネットワークインターフェースを確認。 # ip a SSHの設定の確認。 # less /etc/ssh/sshd_config VPSパネルでパケットフィルタを設定。 SSH, WEBを追加する。 Windows TerminalからSSHでログインできるか確認。 SELinuxを確認して無効化する。 # getenforce # less /etc/selinux/config SELINUX=disabled 再起動 # reboot どんなサービスが起動しているか確認。 # systemctl list-unit-files -t service Gemini先生に聞いて、不要なサービスを停止する。 「cloud-*」はVPS環境では必須らしい。  bluetooth.service: Bluetooth機器用。 smartd.service: HDD/SSDの物理的健康状態(S.M.A.R.T)を監視。 udisks2.service: 外付けディスクやUSBメモリなどを自動マウント・管理するためのデーモン(主にデスクトップ環境向け)。 multipathd.service: 複数の経路でストレージに接続する冗長化構成(SANなど)用。 libstoragemgmt.s...

CentOS Stream 10 + Rspamd(OpenDKIMの代替)

OpenDKIMはほぼ開発停止状態らしいので代替ソフトを探しているときの覚書。 Gemini 3 Pro Previewと対話。 環境: CentOS Stream 10, Postfix 3.8.5, Rspamd 3.14.1 Postfixのバージョンを確認。 # postconf -d mail_version 1. Rspamdとは? 「アール・スパム・ディー( Rapid Spam Deamon)」。 メールサーバーで使用する高機能スパムフィルター。 参考:  Rspamd - Open Source Email Security 参考:  Rspamd - Wikipedia Nginxのようなイベントループモデルを採用し、大量の同時接続を低リソースで処理する。 モジュールでDKIM, ARCに対応可能。 初回リリース:  2008年 ライセンス: Apacheライセンス2.0 開発国: 開発者はロシア人。現在は英国に拠点移動。 導入するデメリットは多機能すぎて、学習コストが高め。 2.Rspamdをインストール 公式サイトの通り実行する。 参考:  Downloads | Rspamd Documentation リポジトリを追加してインストール。 # source /etc/os-release # export EL_VERSION=`echo -n $PLATFORM_ID | sed "s/.*el//"` # curl https://rspamd.com/rpm-stable/centos-${EL_VERSION}/rspamd.repo > /etc/yum.repos.d/rspamd.repo # dnf install rspamd 起動、自動起動オン、確認。 # systemctl start rspamd # systemctl enable rspamd # systemctl status rspamd 3. Valkey(Redis)をインストール RspamdはRedisのインストールを推奨しているようなのでインストールして設定する。 Redisはライセンス問題で後継のValkeyに移った。 参考:  R...

Redisの代わりにValkeyをインストール

Redisがリポジトリになかったので検索してみると、Valkeyが標準リポジトリから配布されているので調査したときの覚書。 Gemini 3 Pro Previewと対話。 環境: CentOS Stream 10, Valkey 8.0.6 1. Valkeyとは Valkeyはかつてのオープンソース版Redis(BSDライセンス)の正当な後継として作られたフォーク。 参考:  Valkey 2024年3月にRedis社(Redis Inc.)は、長年採用していたBSD 3-Clause(非常に自由度が高いライセンス)を廃止し、厳密な意味でのオープンソース(OSI定義)ではなくなった。 2024年3月にLinux Foundation主導でValkeyプロジェクトが発足。 参考:  Valkey - Wikipedia 特徴 Redis ( 現在 ) Valkey ライセンス RSALv2 / SSPL ( プロプライエタリに近い ) BSD 3-Clause  ( 完全な OSS) 開発主体 Redis Inc. (1 社独占 ) Linux Foundation ( コミュニティ主導 ) ベース オリジナル Redis 7.2.4 からのフォーク 互換性 - Redis クライアントと 完全互換 を目指す (Drop-in replacement) 主なサポーター Redis Inc. AWS, Google, Oracle, Ericsson, Heroku 等 クラウド対応 今後、公式以外での利用はライセンス契約が必要になる可能性 主要クラウドベンダーが標準サポートへ移行中 実質的な標準(デファクトスタンダード)はValkeyに移った。 2. Valkeyのインストール dnf経由でインストー...

e-Taxで消費税の簡易課税を電子申請。「法人設立及び異動手続関係」メニューから。

簡易課税の申請をしたときの覚書。 環境: 株式会社、一人社長 前の記事で事前申請が必要と書いときながら申請するのを忘れていた。 課税期間の開始の日の前日までに申請しないといけない。 課税売上5,000万円までは、簡易課税の方が圧倒的に楽。 原則課税(個別対応方式)で計算すると、税区分の意味とか登録番号の有無で10%なのか8%が変わるので本当に大変。 個人的には、税金に関する知識が得られたので良かったけど、一回やれば十分。 1. e-Taxで電子申請 e-Taxで ログイン 申請・納付手続を行う 【申告・申請・納税】新規作成 → 操作に進む 【作成手続きの選択】法人設立及び異動手続関係 → 法人設立及び異動手続きの申請・届出 【帳票共通項目入力】法人名称等/代表者情報 → 次へ 【帳票入力】 一覧をスクロール → 消費税簡易課税制度選択届出 → 作成 一度申請すれば、次年度も継続的に適用されるので、毎年申請する必要はない。 課税期間と基準期間 課税期間: 消費税の計算をする事業年度 基準期間: 消費税を払う義務があるか判定する事業年度。 例)課税期間: 2024年10月1日 ~ 2025年9月30日   基準期間: 2022年10月1日 ~ 2023年9月30日 2. メニューの場所が違う e-Taxの右上にある「ご利用ガイド」を見ると「消費税課税事業者選択届出書」は「所得税及び消費税の申請・届出関係」にある。 これが落とし穴。 下記YouTubeでも画面に出ている。 参考:  e-taxによる「簡易課税制度の申請手順」 - YouTube たぶん個人と法人でメニューが違う(?) 登記したときに青色申告と一緒に行っておいた方がいい。 ▼ 関連記事 法人決算をe-TaxとeLTAXで電子申告して納税 課税売上1000万円を超えたら2年後に課税事業者