nbstripoutからnbstripout-fastへ移行する方法

nbstripoutが遅すぎるので nbstriput-fastに乗り換えました.git push/pullが劇的に速くなります.ただし,以下の点を忘れていると,予期せぬトラブルが発生します nbstripoutを削除すること gitのglobal/local設定両方をチェックしておくこと nbstripout-fa…

c++のconstexpr を使って, Look up table を爆速にする方法 (c++20)

c++ の constexpr を使うと爆速なコードが生成できます例として,std::find_if を使ったコードが,どのような機械語(CPU命令)へとコンパイルされるか比較してみます お題:Look up table (LUT)の実装 いわゆるルックアップテーブル(look up table:LUT)と…

mac portで postgresqlが起動しない場合の復旧方法

macportで $ sudo port reload postgresql16-server で postgresqlが起動しない場合の復旧方法です 前提 以下の条件に合致する場合は postgresqlは初期設定済みとする 今まではpostresqlが正常に動作していた macOSの更新で postgresqlが起動しなくなった 以…

apt update のエラーの対処方法(Warning: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. OpenPGP signature verification failed: https://developer.download.nvidia.com/compute/cuda/repos/deb

apt updateで以下のエラー(厳密には警告?)が出る場合の対処法です。2026年2月以降、CUDAや生成AIを使っているサーバーで頻出するエラーになると思われるのでエントリとして書いておきます。 エラーメッセージ Warning: An error occurred during the sign…

リモートサーバー上で jupyter を常時稼働する方法(systemdによるサービス化)

リモートサーバー上で JupyterLab を使っている場合を想定し,サーバー(Linux)を起動すると自動で JupyterLab が起動するようにする設定を紹介します. この設定のメリット Linuxを起動すると自動で jupyterが起動 いちいちSSH でサーバにログインしてから…

Warning: https://developer.download.nvidia.com/compute/cuda/repos/debian10/x86_64/InRelease: Policy will reject signature within a year, see --audit for details を消す方法

apt updateで以下のメッセージが出る場合の対処方法(workaround)です Warning: https://developer.download.nvidia.com/compute/cuda/repos/debian10/x86_64/InRelease: Policy will reject signature within a year, see --audit for details 設定ファイ…

awkで間接関数呼び出し(indirect function call)

間接関数呼び出し(indirect function call ,indirect call)とは,変数で指定された関数(メソッド)を実行する方法ですたとえばc言語なら,ポインタ変数を使って void (*f)(void); f = foo; f(); // これが indirect function call となります 本エントリ…

viでcsvファイルを閲覧編集する方法

vimでcsvファイルやtsvファイルを閲覧したり編集する方法です プラグインを使わない方法(急ぎの場合) 急ぎの場合,viの機能だけで凌ぐ方法です csvファイルの場合は区切りを tabに変換しておく(tsvにする) viでファイルを開く vi上で,以下のコマンドを…

OpenSSHの警告「** WARNING: connection is not using a post-quantum key exchange algorithm. 」を消す方法

最近のOpenSSHは「量子コンピュータでも破られにくい暗号(ポスト量子暗号)」を使うことを推奨しています.OpenSSH 10.1では,サーバー側のSSHがポスト量子暗号をつかっていないと,接続時に次の警告を出すようになりました. ** WARNING: connection is no…

OpenSSHのバグ:ControlMaster 有効時に SSH が極端に遅くなる問題

OpenSSHのバグでひどい目にあったので情報をまとめておきます原因の詳細と修正パッチは以下のスレッドで報告されています https://marc.info/?l=openssh-unix-dev&m=175982625513497&w=2(2025年10月11日追記.バグ修正版の10.2がリリースされました) 問題…

SQLクエリを綺麗に整形する方法

emacsでSQLを書いていると、クエリのインデントが崩れて読みにくくなることがあります。 ここでは、外部コマンド sql-formatter を使って、SQLを自動で綺麗に整形する方法を紹介します。 sql-formatter のインストール まず、npmを使って sql-formatter をイ…

pythonでテストケース用のロガーを自作する

pythonでテストケース用のロガーを自作したので公開しますテスト関数にデコレータを付けるだけで,成功/失敗を記録するロガーを作りました.最小実装なので,好みに合わせて拡張できます.ロガー本体のコードは末尾に掲載します.先に使い方から説明します…

C++でバックトレース(スタックトレース)を表示する方法(C++23)

C++23を使うと、スタックトレースが簡単に表示できます #include <stacktrace> #include <iostream> void f() { std::cout << std::stacktrace::current() << std::endl; } int main() { f(); return 0; } C++23で登場した関数なので GCCはバージョン12以降 Visual C++は2022以降 </iostream></stacktrace>…

systemd-networkd でネットワークを設定する

Linuxのネットワーク設定をすべてsystemdにお任せする方法をまとめます DHCPを使う 固定IPアドレス WoL(Wake-on-LAN)の有効化 DHCPをつかう 設定ファイル /etc/systemd/network/20-wired.network を用意する [Match] MACAddress=<MACアドレス> [Network] DHCP=ipv4 固定</macアドレス>…

メールサーバー(postfix)の設定方法(2025年版)

久しぶりに postfix を設定したので手順をまとめます 環境 debian さくらサーバー インストール postfixと ca-certificates をインストールしておきますca-certificates はTLS(SSL)通信で必要になります sudo apt install postfix sudo apt install ca-cert…

macOSでデバイスドライバを手動削除する方法

macOSでデバイスドライバ(機能拡張)を手動で削除する方法ですSIP(System Integrity Protection )というシステム保護機能を一旦無効にして作業する必要があるため,少々煩雑な手順になります 手順1 リカバリーモードに入る 再起動して,リカバリーモード…

CUDAを glibc 2.41で動かすためのパッチ

glibc 2.41(Ubuntu 25.04 や debian sid で採用)で cuda toolkit を使うにはパッチが必要ですと言っても,以下のパッチを /usr/local/cuda/include/crt/math_functions.h に当てるだけで解決です --- math_functions.h.orig~ 2025-05-22 11:09:49.99462784…

GNU Screenにローカル特権昇格の脆弱性

GNU Screen 5.0.0 にセキュリティホールが見つかりました.条件によってはコマンドを3回実行するだけでroot権限を奪われるので注意が必要です *1 概要 以下のディストリビューションで,サーバーにsshでログインしたあとscreen コマンドを使うだけで簡単にr…

C++20の concepts を使ったSFINAE

C++20でやっとSFINAE(Substitution Failure Is Not An Error)が実用レベル(?)になったので,まとめておきますC++20版のSFINAEだけでなく,C++17版やC++11以前版のSFINAEも用意しました. 見比べると如何にC++11がクソで,C++20が素晴らしいかが一目で理…

Linuxで音が出ない場合のチェックポイント

今どき(2025年現在)のLinuxについて、オーディオが再生できない場合のチェックポイントをまとめます オーディオデバイスの接続を確認 内蔵オーディオであれば PCIe接続,外付けオーディオがならばUSB接続,をそれぞれ確認します PCIの場合は lspci コマン…

メンバーへのポインタ(c++, .* と ->*演算子 )

c++

c++のメンバへのポインタの使い方をまとめます 利用例 たとえば以下のデータ構造について struct Employee { int id; std::string name; double salary; }; std::vector<Employee> employees; std::sort()で Employee::id をキーにソートしたい場合を考えますこの場合</employee>…

可変長テンプレートでパラメータ・パックを2つ同時に使う方法

c++の可変長テンプレートで2つの型リストKeysとValuesを使いたいとする その場合は リストの片方は std::tupleで一つの型にする 残りのリストは 可変長テンプレートにする とコーディングしやすい 例 template <typename KeyTuple, typename... Values_> struct Foo { using Keys = KeyTuple; using </typename>…

mac OSにtexlive2025 (BasicTeX)をインストールする方法

mac の TeX環境を texlive2025 (BasicTeX) に更新したので手順をまとめます.この記事は以下のエントリをTex Live 2025 に合わせて更新・加筆したものです. https://pyopyopyo.hatenablog.com/entry/2022/04/06/211116 (TeX Live 2022の記事) http://d.hate…

c++のPerfect Forwarding(完全転送,std::forward)の使い方

c++

c++11 の perfect forwading (完全転送,std::forward)をつかうと,たとえば派生クラスの実装が簡潔かつ安全に実装できるようになります. 例:派生クラスのコンストラクタから,基底クラスのコンストラクタへ引数を完全転送する 基底クラスBaseを派生する…

Linuxサーバの稼働状況を監視する方法

サーバの稼働状況(CPUやメモリ使用率など)を簡単に監視する方法をまとめます sar / sysstat おそらく一番簡単な方法です セットアップ インストール $ sudo apt install sysstat 初期設定 $ sudo vi /etc/default/sysstatENABLED="true"に書き換えます設定…

条件付きコンパイルでC++標準のバージョンを調べる方法

c++

条件付きコンパイルで、C++標準のバージョンを調べるときは __cplusplus プリプロセッサマクロを使いますたとえば以下のコードは、c++のコンパイラが c++11 に準拠していない場合、コンパイルエラーとなります #if __cplusplus < 201103L # error "C++11に対…

linux 6.12.x で e1000e がフリーズする

linux 6.12.x に更新したところ e1000eのドライバが頻繁にフリーズするようになりました症状としては カーネルは linux 6.12.1 or linux 6.12.2 突然,ネットワーク(有線LAN)の通信が出来なくなる dmesg を見るとe1000eのドライバが エラーを出している li…

git diff で "ESC["というゴミが表示される件

git diff で "ESC[" とゴミが表示される場合の解決方法です ゴミが表示される原因 pager として /usr/bin/less を使っている場合に ESC[ が表示される場合があります 解決方法(その1) /usr/bin/pager を lv に変更します/usr/bin/pager はシンボリックリ…

長い処理は,完了時に Line で通知が届くようにすると捗る(超簡単&オススメ)

概要 PCの前で,重たい処理が終わるのをじっと待つのは時間の無駄です 重たい処理が終わると,自動で LINE に通知を送る方法を紹介します 処理完了!のLINE通知が届くまでは,PCなんて放置して時間を有効活用しましょう 手順 LINE公式が提供している通知連携…

linux 6.12 でnvidiaのドライバを使う

linux-6.12.x で nvidiaのドライバ(565.57.01)を使うためのパッチを書いたので公開します.nvidiaのドライバは オープンソース版(open GPU kernel modules) プロプライエタリ版(proprietary NVIDIA kernel modules) の2種類があります.このパッチは…