khal + vdirsyncer で Nextcloud のカレンダーを同期する
ターミナルでカレンダーを閲覧するために、今更ですが khal を試してみます。 Nextcloud の CalDAV サーバと連携するために、 vdirsyncer も合わせて利用します。
いずれも Debian であればリポジトリに存在します。
ターミナルでカレンダーを閲覧するために、今更ですが khal を試してみます。 Nextcloud の CalDAV サーバと連携するために、 vdirsyncer も合わせて利用します。
いずれも Debian であればリポジトリに存在します。
気になっているけど避けてきた GNU Parallel に入門してみます。 普段は xargs の並列処理(-P max-procs, --max-procs=max-procs) を利用しているのですが、より高度な処理をしたくなる時に parallel の Exapmle を見るものの、難しそうと思い入門せずにいました。
しかし、蓋を開けてみれば、チュートリアルを含めドキュメントがきちんと整備されていました。
また、 YouTube Playlist も公開されています。
動画の Part 1, Part 2 と、書籍 GNU Parallel 2018 (公式サイトにソース及び PDF 有り) が分かりやすくお勧めです。
この記事では、これらのドキュメントに記載されている内容を元に一部を抜粋して記載しているので、記載されている内容に新規性は有りません。 私が普段から利用している xargs との比較も記載しますが、厳密に確認しておりませんので、細かい挙動の違いは有るかと思います。
enひかりという光コラボレーションというサービスにて、 v6プラス (MAP-E) および固定IP を契約しております。 今回は YAMAHA の RTX830 や NVR510 のリプレースとして Debian bookworm を用いて PC ルータを組むことにしたので、その内容をまとめます。 構築が一段落してから思い出しながら記載しているので順番がおかしい点や、ファイアウォール設定などに不備が有ると思います。 まだ改良途中であることをご容赦ください。
v6プラス(MAP-E) + 固定IP + ひかり電話 の構成です。
記事の末尾に参考にさせていただいた記事をリンクしていますので、そちらもご確認いただければと思います。
YAMAHA のルータからリプレースする一番の目的は、ゲートウェイ自身で WireGuard などのグローバル向けサービスを終端することです。 また、 vnStat などによるトラフィックモニタリングを実施したり、機器ごとのパケットフィルタリング実装を学ばなくて済むように nftables を用いたりすることも目的です。 LAN 側は5個ほどの VLAN に分割し、 IPv6 もサブネットを分割するために「ひかり電話」オプション(後述します)を契約します。
今回は余っているデスクトップコンピュータを用いて、我が家のメインスイッチの 40GbE ポートと QSFP+ DAC 1本で接続し、 Trunk VLAN で全ての VLAN を通します。
システムが壊れたのを契機に、 X から Wayland への乗り換えと、合わせて Arch Linux から Debian bookworm に変更することとしました。 Arch Linux は 10 年前後ほど使っており、その前は 2 年ほど Debian sid を利用していたので、 Debian に戻ることとなります。 2 年ほど前にも Debian sid への乗り換えを試み、半年ほどで断念して Arch Linux に戻ってきたので、ふたたび Arch Linux に戻るかもしれませんが...

自分の軽い自己紹介と、 SNS へのリンクだけの www.yamano.dev というウェブサイトが有るのですが、 Material for MkDocs で作り直してみました。 今後、個人の OS インストールメモなどをオープンにしシェアしていくため、ドキュメント向けの静的サイトジェネレータを選定しました。 細かいネタや一度きりのものは、引き続き blog.yamano.dev (Hugo) に投稿し続ける予定ですが、棲み分けは運用しながら考えたいと思っています。
ところで、個人ウェブサイトの良い呼び方が無いかと思って探したら、ポートフォリオサイトと呼ぶケースを多く見かけました。 よくデザイナーや写真家の皆さんがスキルなどを提示してオファーを貰うために運営しているウェブサイトというイメージが有ります。 当方にはそのようなスキルも無く、ただの軽い自己紹介とメモ置き場なのですが、良い呼び方無いですかね...
以前、 chezmoi を試した時にドキュメントを読んでいたのですが、 Can I store/share my shell history with chezmoi? という Q and A で atuin という OSS が有ることを知りました。
ellie/atuin は、シェルのヒストリを管理するソフトウェアで、単体のマシンで利用することもできますが、同期用のサーバを構成することでマシン間でヒストリを共有できます。 通信は E2EE で、無償で利用できるオフィシャルサーバも用意されているので、すぐに利用することができます。 今回は、 docker-compose を用いてサーバをセルフホストし、 zsh のヒストリを共有してみました。
「おすすめの」と記載するのが多いケースだと思いますが、用途や趣味思考によって大きく変わるであろう内容なので、共有したいとしました。
最近、約 6 年ぶりに bash から zsh に戻り、 とても酷い間違いだらけの ~/.zshrc を見直しています。 「工夫している点や便利な設定を教えて」と聞かれすぐに思い出せないことが有るので、自分の備忘録と脳内整理も兼ねて、いくつか記載します。
記載しているコードやアイディアは、多くが私のオリジナルでは有りません。 dotfiles あるあるなのですが、インターネット上で共有していただいたものや、zshの本に記載の内容です。 zshの本 は2009年に発売された書籍ですが、zshについてとても詳しく書かれた良書です。 電子版 も新に発売されています。
xterm から urxvt(rxvt-unicode) に乗り換えたので、設定をまとめておきます。
urxvt のフォーク元である rxvt は、 xterm のあまり使われていない機能を省き代替品として開発されたものですから、似た部分もあります。 xterm と比べると、非常に高速に動作し、 Perl 拡張をサポートするなど、多機能なターミナルとしても利用できる側面もあります。
urxvt 以外にも st や GPU アクセラレーション を利用できる Alacritty, WezTerm も人気が有るようなので気になってますが、 xterm で大きな不便を感じなかったので似た代替品を使おうと思い urxvt を試しに使ってみることにしました。
この記事を記載するにあたり、 Arch Wiki および Manual Page を参考にしました。
chezmoi を使って、 dotfiles を管理することにしました。
dotfiles の管理方法は人それぞれだと思いますが、私は GitHub のパブリックリポジトリでホストしており、 シンボリックリンクを張る Makefile を作成していました。 利用するツールがほぼ統一されていたので、最も利用している環境のみで dotfiles を commit し、他の環境では clone/pull のみ実施し、必要があれば環境固有のファイルを source する運用です。
if [ -f ~/.bashrc_private ]; then
. ~/.bashrc_private # GitHub でホストされていない設定ファイルであり、各マシンで内容は異なる。
fi
Makefile では、パッケージマネージャを用いたパッケージのインストールなども行っていましたが、特定ディストリビューションかつネイティブ Linux 環境に特化しているという問題が有りました。 このような雑運用では当然ながら複数環境への対応に脆く、諸事情によりネイティブ Linux から WSL に移行しなければならない環境が発生した際に大量に差分が発生し破綻しました。 気力でメンテナンスを頑張ったり、 WSL や不自由なソフトウェアへの理解を深めたりすれば継続できたかもしれませんが、今後もディストリビューション追加対応などが発生する可能性を鑑み、これを機にテンプレート機能を持つ dotfile manager に移行することにしました。
触れ初めたばかりで、最も利用している環境でしか利用していませんので、テンプレート機能はまだ利用していません。 他に、暗号化やパスワードマネージャとの連携もまだ試していませんので、それらの利用方法も記載しませんのでご了承ください。
ただの日記である。技術的要素は少い。
いくつか複雑な経緯があり、新たに VM インスタンスを契約したので、 Calibre を移行した。 Calibre は有名な電子書籍管理ソフトウェアで、フォーマット変換や、電子ブックリーダーとの同期などもできるが、オンラインでのビューワーとしてのみ利用している。 今回は、 deb パッケージから Docker Compose に移行し、 LinuxServer.io によりメンテナンスされている Docker イメージを用いた。