2025-01-01から1年間の記事一覧
間接関数呼び出し(indirect function call ,indirect call)とは,変数で指定された関数(メソッド)を実行する方法ですたとえばc言語なら,ポインタ変数を使って void (*f)(void); f = foo; f(); // これが indirect function call となります 本エントリ…
vimでcsvファイルやtsvファイルを閲覧したり編集する方法です プラグインを使わない方法(急ぎの場合) 急ぎの場合,viの機能だけで凌ぐ方法です csvファイルの場合は区切りを tabに変換しておく(tsvにする) viでファイルを開く vi上で,以下のコマンドを…
最近のOpenSSHは「量子コンピュータでも破られにくい暗号(ポスト量子暗号)」を使うことを推奨しています.OpenSSH 10.1では,サーバー側のSSHがポスト量子暗号をつかっていないと,接続時に次の警告を出すようになりました. ** WARNING: connection is no…
OpenSSHのバグでひどい目にあったので情報をまとめておきます原因の詳細と修正パッチは以下のスレッドで報告されています https://marc.info/?l=openssh-unix-dev&m=175982625513497&w=2(2025年10月11日追記.バグ修正版の10.2がリリースされました) 問題…
emacsでSQLを書いていると、クエリのインデントが崩れて読みにくくなることがあります。 ここでは、外部コマンド sql-formatter を使って、SQLを自動で綺麗に整形する方法を紹介します。 sql-formatter のインストール まず、npmを使って sql-formatter をイ…
pythonでテストケース用のロガーを自作したので公開しますテスト関数にデコレータを付けるだけで,成功/失敗を記録するロガーを作りました.最小実装なので,好みに合わせて拡張できます.ロガー本体のコードは末尾に掲載します.先に使い方から説明します…
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>…
Linuxのネットワーク設定をすべてsystemdにお任せする方法をまとめます DHCPを使う 固定IPアドレス WoL(Wake-on-LAN)の有効化 DHCPをつかう 設定ファイル /etc/systemd/network/20-wired.network を用意する [Match] MACAddress=<MACアドレス> [Network] DHCP=ipv4 固定</macアドレス>…
久しぶりに postfix を設定したので手順をまとめます 環境 debian さくらサーバー インストール postfixと ca-certificates をインストールしておきますca-certificates はTLS(SSL)通信で必要になります sudo apt install postfix sudo apt install ca-cert…
macOSでデバイスドライバ(機能拡張)を手動で削除する方法ですSIP(System Integrity Protection )というシステム保護機能を一旦無効にして作業する必要があるため,少々煩雑な手順になります 手順1 リカバリーモードに入る 再起動して,リカバリーモード…
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 5.0.0 にセキュリティホールが見つかりました.条件によってはコマンドを3回実行するだけでroot権限を奪われるので注意が必要です *1 概要 以下のディストリビューションで,サーバーにsshでログインしたあとscreen コマンドを使うだけで簡単にr…
C++20でやっとSFINAE(Substitution Failure Is Not An Error)が実用レベル(?)になったので,まとめておきますC++20版のSFINAEだけでなく,C++17版やC++11以前版のSFINAEも用意しました. 見比べると如何にC++11がクソで,C++20が素晴らしいかが一目で理…
今どき(2025年現在)のLinuxについて、オーディオが再生できない場合のチェックポイントをまとめます オーディオデバイスの接続を確認 内蔵オーディオであれば PCIe接続,外付けオーディオがならばUSB接続,をそれぞれ確認します PCIの場合は lspci コマン…
c++のメンバへのポインタの使い方をまとめます 利用例 たとえば以下のデータ構造について struct Employee { int id; std::string name; double salary; }; std::vector<Employee> employees; std::sort()で Employee::id をキーにソートしたい場合を考えますこの場合</employee>…
c++の可変長テンプレートで2つの型リストKeysとValuesを使いたいとする その場合は リストの片方は std::tupleで一つの型にする 残りのリストは 可変長テンプレートにする とコーディングしやすい 例 template <typename KeyTuple, typename... Values_> struct Foo { using Keys = KeyTuple; using </typename>…
mac の TeX環境を texlive2025 (BasicTeX) に更新したので手順をまとめます.この記事は以下のエントリをTex Live 2025 に合わせて更新・加筆したものです. https://pyopyopyo.hatenablog.com/entry/2022/04/06/211116 (TeX Live 2022の記事) http://d.hate…
c++11 の perfect forwading (完全転送,std::forward)をつかうと,たとえば派生クラスの実装が簡潔かつ安全に実装できるようになります. 例:派生クラスのコンストラクタから,基底クラスのコンストラクタへ引数を完全転送する 基底クラスBaseを派生する…
サーバの稼働状況(CPUやメモリ使用率など)を簡単に監視する方法をまとめます sar / sysstat おそらく一番簡単な方法です セットアップ インストール $ sudo apt install sysstat 初期設定 $ sudo vi /etc/default/sysstatENABLED="true"に書き換えます設定…