電子工作とプログラミングを中心に、自分で作ったもの、試したもの、使った道具を書き留めています。 うまくいった手順だけでなく、つまずいた点や選んだ理由も残すようにしています。
新しい記事
田舎人、停電に負けない。
停電でラズパイのcronが止まる:毎日の通知スクリプトをGitHub Actionsの定期実行へ移す自宅のRaspberry Piのcronで動かしていた毎日の通知スクリプトは、雷で停電するたびに止まっていた。GitHub Actionsのscheduleで動かすように移した手順と、設定ファイルと環境変数を両立させる書き方、cronの時刻がUTCになる注意点。
田舎人、インクを選ぶ。
Parker 51に合わせるインク:ストーングレーからカーボンブラックへぱっと見では万年筆に見えないParker 51(F・スチールペン先)に入れるインクを探し、グラフ・フォン・ファーバーカステルのストーングレーからカーボンブラックに落ち着いた記録。神戸のPen and message.でのペン先調整や、同じインクをローラーボールで使った話も。
田舎人、機器の返事を待つ。
VISAのLAN(ソケット)通信で応答が返らないとき:区切り文字とENDの仕組み(C#・IVI-VISA)LANでつないだバーコードリーダーや画像判定機にVISAでコマンドを送っても応答が来ない。原因は区切り文字(終端文字)だった。VISAが受信の終わりを判断する仕組みと、区切りを切り替えられる自作の端末アプリを紹介。
田舎人、Rustに再挑戦する。
Rust再入門の一冊:『高効率言語 Rust 書きかた・作りかた』所有権や参照でつまずき、一度はRustを投げ出した。2022年に出た入門書『手を動かして考えればよくわかる 高効率言語 Rust 書きかた・作りかた』で理解できるようになった経緯。
- CSVのヘッダーをキーにしてDictionaryへ読み込む(C#・VB.NET)
CSVの1行目をキー、2行目以降をそのキーの値のリストとして Dictionary<string, List<string>> に読み込む方法。行と列を入れ替えてLINQで簡潔に書く。
- iTextSharpでPDFに「印刷したときだけ表示される」透かしを入れる(C#)
C#とiTextSharpで、画面では見えず印刷時だけ表示される透かしをPDFに入れる方法。PdfLayerの印刷・表示の設定がポイント。
田舎人、手帳を育てる。
トラベラーズノート:革が育つ、長く付き合える手帳ミドリのトラベラーズノート(パスポートサイズ)を愛用している理由。革の経年変化、ゴムで挟むだけのリフィル、ぺたっと開く書き心地、使い方とおすすめのリフィル。
- プログラミングの基礎を学んだあと、次に何をするか:雑誌で写経のすすめ
基礎学習を終えて行き詰まった人へ。いきなり自作に挑むより、プログラミング雑誌のサンプルを書き写して、きれいな実装を身につけるのがおすすめという話。
田舎人、友人のためにOCRを作る。
ショートカットキーで呼び出すOCRアプリ「楽々サクサクOCR」友人の頼みで作った、画面の一部やPDF・画像から文字を読み取るOCRアプリ。Windows標準のOCRを使いオフラインで動く。Vectorで無料公開。
- WPFで画面の選択範囲だけをキャプチャする:Snipping Tool風の実装
WPF(C#)で、ユーザーがドラッグで選んだ任意の範囲だけをキャプチャする方法。マルチモニターにも対応したサンプルをGitHubに置いている。