2021年9月25日土曜日

[Emacs]#BEGIN_SRC,#END_SRCを入力するELisp

 org mode使っていて、コードを囲う#BEGIN_SRC,#END_SRCをいちいち入力するの面倒だなと思っていたのだけど、数年越しでやっとつくった。さっさと作っておけば良かった。

何てことないコードだけどペタっとな。

(defun org-util-insert-source-section ()
  (interactive)
  (beginning-of-line)
  (insert "#+BEGIN_SRC\n")
  (insert "#+END_SRC\n")
  (forward-line -1))

(global-set-key (kbd "C-x 5 s") 'org-util-insert-source-section)

コードの通り、C-x 5 s に割り当てた。


2021年9月20日月曜日

[OCaml]merlinが参照するcmiファイルの自動更新

OCamlの開発環境として Emacs + Merlin + Tuareg を使用しているが、自ファイル以外のモジュールを参照するためには、cmiファイルを生成しなければならなかった。

dune を使用していれば、プロジェクトディレクトリ配下で

$ dune build @check

を実行すれば生成されるのだけど、ファイルの更新でいちいちこれを実行するのは面倒なのでスクリプトを作成した。

Linuxはファイル更新の検知に inotifywaitコマンドがあるのでそれを利用した。
inotifywaitコマンドはinotify-toolsパッケージにあるのでインストールしておく。

$ sudo apt install inotify-tools

スクリプトはこちら。

dune_build_check.sh

#!/usr/bin/env bash

# for test
#set -euo pipefail

USAGE(){
    echo "usage: dune_build_check.sh <dir>"
    exit 1
}

[ "$#" -eq 0 ] && USAGE >&2

cd "$1"

while : ; do
    result=$(find -type f -name '*.ml' -o -name '*.mli' | xargs inotifywait -q -e modify)
    if [ $? -eq 0 ]; then
        echo "$result"
        dune build @check
    fi
done

duneコマンド実行後に、再度、監視対象とするmlファイル、mliファイルを取り直しているので、新規ファイル追加時は既存ファイルを一度編集すればよい。

自動でやってくれるようなオプションがduneにありそうに思ったが無さそうだった。

参考

2021年9月12日日曜日

[AutoHotkey][VMware]VMware Workstation Playerのウィンドウサイズの自動調整

Remote Desktop経由で使っているせいなのか、VMware Workstation Playerのウィンドウの変更で枠を捕むのが非常にシビアでウィンドウサイズの変更に手間取っていた。

スクリプト一発でサイズ変更できないものか?と、こういう類の処理はAutoHotkeyでいけるかなーと思って調べてみたら、簡単だった。

(1)AutoHotkeyをここでダウンロードする。

(2)次のスクリプトをファイル名vmware_resize.ahkで任意の場所に保存する。

WinMove ahk_class VMPlayerFrame,,110,33,1500,1300
ExitApp

(3)VMWare Workstation Playerを起動後、ダブルクリックするなりして(2)のスクリプトを実行する。

WinMove命令の第一引数ではウィンドウのクラス名を指定している。
AutoHotkeyにはウィンドウ情報を調べるWindowSpy.ahkが付属しているので、それを使って調べるとよい。

参考

2017年4月19日水曜日

[真空管アンプ]6N6Pミニワッターの製作 (11) ラグ板の取り付けと音出し

ラグ板を取り付け、配線完了。

真空管はまだ差さないで、ドキドキしながら、初火入れ。
各部の電圧を計り、特に問題がないことを確認。

ちなみに、このような電圧になった。
AC100V電源103.0V
V+電源271.0V
出力段カソード電圧L:60.2V R:56.7V
初段カソード電圧L:1.490V R:1.526V
初段プレート電圧L:54.2V R:50.0V
出力段バイアス電圧L:-6.0V R:6.7V
特に問題なさそうなので、ヘッドホン端子とステレオ端子の配線をおこなった。

DACの出力を真空管アンプのライン入力に接続し、夜遅くなったのでヘッドホン端子にヘッドホンを接続する。アンプのスイッチオン、プレイボタンをクリック。
おぉぉ!!音がする。綺麗。
ノイズまったくなし。素晴しい!!
作って良かった。

ぼんやり光る真空管を見ていると、心が癒されます。

スピーカーのテストと裏蓋の取り付けは明日にしよう。

2017年4月16日日曜日

[真空管アンプ]6N6Pミニワッターの製作 (10) ラグ板の部品取り付け(その2)とヘッドホン端子のまわりの配線

ラグ板にコンデンサとトランジスタを取り付けた。

続いて、ヘッドホン端子まわりを配線した。
抵抗は空中配線に。配線がすこしややこしい。

ラグ板を取り付ける前に、真空管ソケットとラグ板それぞれに接続用の配線をしておく。
念のため、配線が正しいか実装図面を見ながら、再度確認。
今日、接続してしまおうかと思ったが、次回にしよう。
あと一息だ。


2017年4月15日土曜日

[真空管アンプ]6N6Pミニワッターの製作 (9) ラグ板の部品取り付け

まずは、ラグ板の端子に接続先を書いておく。
次に、ジャンパ線を取り付け。
ジャンパ線には、0.6mmのすずめっき線を使用したが、少し太すぎたかもしれない。0.5mmの方がちょうど良さそう。

ここまで作って、10uF/400Vが1つ足りないことが分かり、秋葉原まで行ってきた。
部品屋巡りをしているとついつい、色々買ってしまうなぁ。
ヘッドホンアンプでも作ろうかとオペアンプを買ってしまった。
それはさておき、今日はここまで作成した。
横から見るとこうなっている。
明日、余分な足を切ろう。

あとは大きいコンデンサを付ければ、ラグ板は完成だ。
配線間違いやイモはんだが無ければ良いのだけど。

2017年4月14日金曜日

[真空管アンプ]6N6Pミニワッターの製作 (8) 真空管ソケットまわりの配線

真空管ソケットまわりの配線と抵抗を付けた。
抵抗をまたいで、抵抗を空中配線し、少し込み入った配線となった。

やっと次からラグ板に部品取り付けだ。