SVX日記
2004-12-19(Sun) オシロ発動ッ!!
……とか景気いいタイトルをつけつつ、まずは地味な話題から。ずっと前からやりたかった玄関ドア開閉センサのための部品サルベージを行うのだ。相手は最近100円ショップで売っているドア開閉アラームだ。このアイテムは内部に磁石に反応するスイッチを内蔵しているのでソレを取り出す。こういう磁気に反応して導通するスイッチはアレコレ便利そうだが、あまり部品といて売っているのを見かけないな。なんでだろうか?
非常に安っぽいものの、部品をバラすと100円以上の価値はある感じ。なにしろボタン電池のLR44が3つも入っているのだ。LR44といえば思い出すのがゲームウォッチ。シンプルだけどアレには燃えたねぇ。しかしながらこの電池、カタカナで「ウオツチ・セル」と書いてあるのが不安を誘う……ま、ちゃんと1.5Vの出力を確保しているし、別にいいのだが。
トランジスタと抵抗器がいくつか載っていたが破棄。基本的には磁気スイッチと、スライドスイッチ、LR44x3を収穫とする。磁気スイッチはハンダ吸い取り線を利用して取り外したのだが、熱を加えると磁力が衰えるらしく、取り外し直後は稼動しなかったが、冷えたら元に戻った。はー、びっくりした。
そんなこんなでオシロを試すのである。例の「SHAKEN YOU UP!!」のPICのクロックに当ててみると……ちゃんと周波数が計測できるではないか。やっほぉ。一方でマニュアルだが、英文の上に変態ページ配列のPDFではディスプレイ上で読む気がしないので印刷してみた。チト裏写りがヒドいが、まぁ読める。うーむ、またここで翻訳大会でもやろうかしらん。そこまでムズかしいワケでもないのだが。
ちなみにこのosziFOX、秋月からはオマケとしてACアダプタをくれる……って、コレはこないだ作った容量計のオマケと同じ「クリアベール専用」の巨大な白いブツではないか。しかもこっちはジャックがブツンと切り取られており、適合するジャックが添えられている。うぅむ、ワイルドである。あたしゃ秋月謹製の小型ACアダプタを持っているのでそっちを使うのだが。
2007-12-19(Wed) Emacs + IIIMECF + ATOK X3 = ちょっとシアワセ
で、先日の「Args out of range: 0, 9」を、どうにかしたい今日この頃なのであるが、Emacsは何をどう間違えたか、内部骨格がLISPである。設定ファイルもそうだし、今回のIIIMECFモジュールもそう。そして、問題のエラーを吐いているのもそうであろう。
オイラはLISPに対して、少なくない嫌悪感を抱いている。それは、1984年4月号のOh!mz掲載、祝一平氏としての初原稿「皿までどーぞ」(※LISPをボコボコに叩いている内容)を読んだ際の先入観にまで遡るのであるが、例え先入観なしであっても、カッコの多さだけでゲンナリな言語であることに間違いはない。
この問題解決のためには、多少なりともLISPを理解する必要がありそうだが、これから先の人生もLISPとは「決してお近づきになりたくない」と考えているので、間違っても基礎知識や文法を学ばず「コードの見た目」だけからどうにか回避方法を編み出すことにする。
まず、IIIMECFが起動しているかどうか確かめる……IIIMECFをいったん削除してから、Emacsを起動するというベタな方法で……おっと、挙動が変わった。どうも、IIIMECFは起動しているらしい。この調子でまったりと追い込んでいったところ、そもそもTCP/IPによるiiimdへの接続ができていないっぽいことが判明した。つーことは、アレか。.emacsの……
(setq iiimcf-server-control-hostlist '("localhost:9010"))
……が、効いていないということか。更に膨大な試行錯誤を繰り返すと、iiimcf-server-control-parse-hostnameという関数でコケているらしい。件の関数は、引数である"localhost:9010"から、tcp, localhost, 9010を切り出す処理をしているっぽいが、うまくいってないっぽい。正規表現が問題っぽいが、IIIMECFのバグなのかどうかも、よくわからないっぽいので、ちょっとやそっとイジっても直らないっぽい。なにしろ万事が「……っぽい」という状態なのでサクッとあきらめて、ズバッと10数行の関数を削除し、設定をジカ書きしてムリムリに回避である。
wbel4-co:/root/atok_install/iiimecf # vi lisp/iiimcf-sc.el
wbel4-co:/root/atok_install/iiimecf # diff -c lisp/iiimcf-sc.el.org lisp/iiimcf-sc.el
*** lisp/iiimcf-sc.el.org 2007-12-09 08:54:54.000000000 +0900
--- lisp/iiimcf-sc.el 2007-12-23 03:08:42.000000000 +0900
***************
*** 222,242 ****
;;;
(defun iiimcf-server-control-parse-hostname (hostname)
! (let (proto host port)
! (if (string-match
! (concat "^\\(?:\\(tcp:\\)?\\([a-zA-Z0-9\.-]+\\)\\(:[0-9]+\\)\\)\\|"
! "\\(?:\\(unix:\\)?\\([a-zA-Z0-9\./:-]+\\)\\)$") hostname)
! (progn
! (if (match-string 2)
! (setq proto "tcp"
! host (match-string 2 hostname)
! port (match-string 3 hostname)
! port (if (null port) iiimcf-server-control-default-port
! (string-to-number (substring port 1))))
! (setq proto "unix"
! host (match-string 5 hostname)))
! (list proto host port))
! (error "server name %s is not valid!" hostname))))
(defun iiimcf-server-control-setup-event-flow-mode (mes)
(setq iiimcf-server-control-dynamic-event-flow-p t))
--- 222,228 ----
;;;
(defun iiimcf-server-control-parse-hostname (hostname)
! (list "tcp" "localhost" 9010))
(defun iiimcf-server-control-setup-event-flow-mode (mes)
(setq iiimcf-server-control-dynamic-event-flow-p t))
wbel4-co:/root/atok_install/iiimecf # emacs -q --no-site-file -batch -l iiimcf-comp.el; cp lisp/* /usr/share/emacs/site-lisp/iiimecf
|[でも、]_へんかんしようとすると、じじょがねぇって、おこられるんすよ、あにき_|
-あ連R漢 (wbel4-co)EE-:**-F1 test.txt (Text Fill)--L1--C74--Top----
:: :辞書ファイルが設定されていません
と、またもやトラブルである。これにはまいった。X上で正しく動いているiiimdの「/proc/pid/maps」を見ると、確かにATOKの辞書にアクセスしている。しかし、フツーに自前で上げたデーモンのiiimdは、ATOKの辞書にアクセスしていない。確かに、辞書ファイルが見つからない状態にあるらしい。
iiimdはGPLなので、ATOKのパッケージ内にソースが含まれている。しかし、ATOKの辞書にアクセスするような設定を行っている部分がどうしても見あたらない。設定ファイルやソースに対し手当たり次第に「grep -ri atok *」するが全然出てこない。すると、クローズドソースのATOKライブラリに対する設定が必要なのか? もしそうだとしたら、手が出ないじゃん……と、絶望的な気分になったが、鼻血が出るほど考えてたら、straceで調査できる可能性があることに気づいた。
wbel4-co:/root/atok_install/iiimecf # strace -o iiimd.trace -f -p `pgrep iiimd`
Process 1927 attached with 3 threads - interrupt to quit
Process 1932 attached
Process 1933 attached
Process 1932 detached
Process 1070 detached
wbel4-co:/root/atok_install/iiimecf # pkill -9 strace
wbel4-co:/root/atok_install/iiimecf # view iiimd.trace
1932 stat64("/var/lib/iiim/le/atokx3/users/", 0xb7efea9c) = -1 ENOENT (No such file or directory)
1932 mkdir("/var/lib/iiim/le/atokx3/users/", 0755) = -1 ENOENT (No such file or directory)
1932 mkdir("/var/lib/iiim/le/atokx3/users/root/", 0700) = -1 ENOENT (No such file or directory)
wbel4-co:/root/atok_install/iiimecf # mkdir -p /var/lib/iiim/le/atokx3
wbel4-co:/root/atok_install/iiimecf # pkill iiimd
wbel4-co:/root/atok_install/iiimecf # iiimd
wbel4-co:/root # emacs test.txt
2009-12-19(Sat) グラスをゲット
いままで、適当なグラスで呑んでいたのだが、突然、ちょっとゴージャスなグラスが欲しくなった。ウィスキーを呑むのにちょうどよいサイズで、適度に手の温もりが伝えられて(※)、なんといっても、呑んでて楽しくなるような。
以前に、ここで書いたかどうか忘れたが、ある人が言っていた「歳を取ると、物に飽きを感じなくなる。無くしたり、壊したりするドジもしなくなる。だったら、死ぬまで使うつもりで、高いアイテムを買っても、無駄にはならない」というコトバは真に名言だと思う。
探すうち、モーゼルのショットグラスに少しピンと来た。小さいし、メッキ飾りも悪くない。ちょっとケバすぎるが。
この歳になったら、死ぬまで使うしなぁ。そんなにあわてても……と、思っていたが、予期せず、気に入ったアイテムが見つかった。コレだ。
夕食後、いそいそと、残り少なくなったタリスカーを注いでみた。狙って作ったかのように、ちょうどいい量が入る。グラスの底の、少し軽薄な感じの金色が、ウィスキーを注ぐと、荘厳な金色に変わる。いい感じに、手で暖められるし、なんというフィット感。
今回、常滑であちこち見て回ったが、以前に買って愛用している徳利よりも上の物はなかった。気に入って手に入れたものよりも、上の物が見つかるほど悲しいことはない。やっぱり、こうでなくてはいかんな。
2024-12-19(Thu) Fedora41でrakipicしてsdccする
先日、なんの気なしに共立「シリコンハウス」に行ったのだが、久々にハンダゴテを振るいたくなった。チギれていたテスタのICクリップを付け直し、PICの開発環境を整え始める。ここ数年やってなかったしな。今でも似たような手順で整えられるものだろうか。
いまのFedora41の前、Fedora30の時も一応は整えていたようだが、記事としてはもうひとつ前のFedora24だな。まずは、rakipicで、秋月のPICライタの健康チェックをしてみる。
raven.itline.jp: /root/rakipic # git clone http://itline.jp/git/rakipic
raven.itline.jp: /root/rakipic # cd rakipic
raven.itline.jp: /root/rakipic # ./install
raven.itline.jp: /root/rakipic # rakipic -p 16F648A -r
raven.itline.jp: /root/rakipic # rakipic -p 12F629 -r
raven.itline.jp: /root/rakipic # rakipic -p 16F648A -r
raven.itline.jp: /root/rakipic # rakipic -p 16F819 -r
こっちもOK。今でも型番は忘れていないな。16F688も試したかったが、治具が見当たらず。捨てはしないが、どこにしまい込んだのだろう。
raven.itline.jp: /root/rakipic # make all
sdcc-sdcc -V --use-non-free -mpic14 -p16f648a -c blink_led_16f648a.c
make: sdcc-sdcc: そのようなファイルやディレクトリはありません
raven.itline.jp: /root/rakipic # dnf install gputils
raven.itline.jp: /root/rakipic # dnf install sdcc
raven.itline.jp: /root/rakipic # make all
blink_led_16f648a.c:2:123: fatal error: pic16f648a.h: No such file or directory
例の、フリー、非フリー問題か。非フリーのスイッチを落とし、パッケージを再ビルドする。
raven.itline.jp: /root # dnf download --source sdcc
raven.itline.jp: /root # rpm -ivh sdcc-4.1.0-11.fc41.src.rpm
raven.itline.jp: /root # vi rpmbuild/SPECS/sdcc.spec
raven.itline.jp: /root # diff rpmbuild/SPECS/sdcc.spec.org rpmbuild/SPECS/sdcc.spec
< %configure --enable-doc --disable-non-free STRIP=: ${OPTS} PYTHON=python3
> %configure --enable-doc STRIP=: ${OPTS} PYTHON=python3
raven.itline.jp: /root # dnf install bison boost-devel flex latex2html lyx texinfo inkscape
raven.itline.jp: /root # rpmbuild -ba ~/rpmbuild/SPECS/sdcc.spec
raven.itline.jp: /root # rpm -ivh ~/rpmbuild/RPMS/x86_64/sdcc-4.1.0-11.fc41.x86_64.rpm
しかし、久々に秋月のサイトでPICを見て驚いた。軒並み値上げしている。こんなに高かったっけ? 16F688については、以前の日記に「120円という価格が魅力だ」って書いてあったが、それが330円だとは。まぁ、便利で高機能なチップなのだから値段相応と言われればそんな気もするが。こないだの半導体不足とも関係あるのかしらん。個人的にはだいぶ買い貯めてあるので、死ぬまで買わずに済みそうな気もするが、ちょっとPICを見る目が変わってしまったな。
■ 横須賀のアランプロスト [ボクチンはサントリーの安物ショットグラスを複数もってるよん。 形はコレ↓ http://item.rakuten...]