SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|12|
2025|01|02|03|04|05|06|

2004-12-19(Sun) オシロ発動ッ!!

  ……とか景気いいタイトルをつけつつ、まずは地味な話題から。ずっと前からやりたかった玄関ドア開閉センサのための部品サルベージを行うのだ。相手は最近100円ショップで売っているドア開閉アラームだ。このアイテムは内部に磁石に反応するスイッチを内蔵しているのでソレを取り出す。こういう磁気に反応して導通するスイッチはアレコレ便利そうだが、あまり部品といて売っているのを見かけないな。なんでだろうか?

  画像の説明 画像の説明

  非常に安っぽいものの、部品をバラすと100円以上の価値はある感じ。なにしろボタン電池のLR44が3つも入っているのだ。LR44といえば思い出すのがゲームウォッチ。シンプルだけどアレには燃えたねぇ。しかしながらこの電池、カタカナで「ウオツチ・セル」と書いてあるのが不安を誘う……ま、ちゃんと1.5Vの出力を確保しているし、別にいいのだが。

  トランジスタと抵抗器がいくつか載っていたが破棄。基本的には磁気スイッチと、スライドスイッチ、LR44x3を収穫とする。磁気スイッチはハンダ吸い取り線を利用して取り外したのだが、熱を加えると磁力が衰えるらしく、取り外し直後は稼動しなかったが、冷えたら元に戻った。はー、びっくりした。

  画像の説明 画像の説明

  そんなこんなでオシロを試すのである。例の「SHAKEN YOU UP!!」のPICのクロックに当ててみると……ちゃんと周波数が計測できるではないか。やっほぉ。一方でマニュアルだが、英文の上に変態ページ配列のPDFではディスプレイ上で読む気がしないので印刷してみた。チト裏写りがヒドいが、まぁ読める。うーむ、またここで翻訳大会でもやろうかしらん。そこまでムズかしいワケでもないのだが。

  ちなみにこのosziFOX、秋月からはオマケとしてACアダプタをくれる……って、コレはこないだ作った容量計のオマケと同じ「クリアベール専用」の巨大な白いブツではないか。しかもこっちはジャックがブツンと切り取られており、適合するジャックが添えられている。うぅむ、ワイルドである。あたしゃ秋月謹製の小型ACアダプタを持っているのでそっちを使うのだが。

  画像の説明

  ついでに例の100円モデムもバラす。非常にバラしやすい。かなり昔の製品だけあって結構しっかりとした印象を受ける。当時2万円はした記憶がある。2枚の基板が2組のピンヘッダでつながっているのも贅沢といえば贅沢な感じ。

  画像の説明

  今日の収穫は以上である。なんだかんだでモデム内にはチップばかりで、あまり多くの部品を入手できなかったが、ケース自体とふたつのモジュラジャックが予定通りオイシかったからよいのだ。さて、ナニに活用し様かねぇ。


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

  改めてコンパイルし直し、netstatを確認してiiimdと接続できていることを確認する。よし、ATOKオンッ!!

|[でも、]_へんかんしようとすると、じじょがねぇって、おこられるんすよ、あにき_|
 
-あ連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で調査できる可能性があることに気づいた。

  iiimdに対して、straceを噛ませながら、Emacs側で変換モードに入り、トレースログを取る。

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

  なぜだか、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) グラスをゲット

  いきなりだが、グラスを買った。小さなヤツ。要するに、ウィスキーを呑むためのヤツ。

  いままで、適当なグラスで呑んでいたのだが、突然、ちょっとゴージャスなグラスが欲しくなった。ウィスキーを呑むのにちょうどよいサイズで、適度に手の温もりが伝えられて(※)、なんといっても、呑んでて楽しくなるような。

  以前に、ここで書いたかどうか忘れたが、ある人が言っていた「歳を取ると、物に飽きを感じなくなる。無くしたり、壊したりするドジもしなくなる。だったら、死ぬまで使うつもりで、高いアイテムを買っても、無駄にはならない」というコトバは真に名言だと思う。

  で、いろいろ探した。バカラやリーデルもチェックした。でも、やたら、薄かったり、小さすぎたり、全く好みにあわない。百貨店で実物も見たが、値段は構わないのに、デザインにまったく面白みを感じない。

  探すうち、モーゼルのショットグラスに少しピンと来た。小さいし、メッキ飾りも悪くない。ちょっとケバすぎるが。

  これが、少しヒントになった。無色透明よりも、色が付いていて欲しい。でも、ウィスキーの色をじゃましない程度に、少しだけがいい。でもって、少し不定形なのがいい。あまり人工的な形よりは。

  この歳になったら、死ぬまで使うしなぁ。そんなにあわてても……と、思っていたが、予期せず、気に入ったアイテムが見つかった。コレだ。

  単に近所という観点で探しただけだったのだが、条件を満たしている。さっそく、実店舗に行ってみて、実際にモノを目にした。サイズもイイ。厚みもイイ。これはイイ。逸品だ。お買い上げ。3,500円。

  夕食後、いそいそと、残り少なくなったタリスカーを注いでみた。狙って作ったかのように、ちょうどいい量が入る。グラスの底の、少し軽薄な感じの金色が、ウィスキーを注ぐと、荘厳な金色に変わる。いい感じに、手で暖められるし、なんというフィット感。

  画像の説明 画像の説明

  今回、常滑であちこち見て回ったが、以前に買って愛用している徳利よりも上の物はなかった。気に入って手に入れたものよりも、上の物が見つかるほど悲しいことはない。やっぱり、こうでなくてはいかんな。

  しかし、ピンクの次は金だなんて、気がつけばシャアではないか。

  さて、次はこのグラスで何を呑もうか。

  (※)人により好みはあろうが、ウィスキーは薫りだ。それを味わうには、常温以上、体温以下がいい。ロックやミストでは薫りを十分に楽しめない。割ったりするのは、問題外。だから、小さくて、そこそこ厚みのあるグラスで、ゆっくり手で暖められて、置いてもすぐに冷めない、という条件が最高だ。そういう意味では、ヒップフラスクも最高だ。

本日のツッコミ(全1件) [ツッコミを入れる]

横須賀のアランプロスト [ボクチンはサントリーの安物ショットグラスを複数もってるよん。 形はコレ↓ http://item.rakuten...]


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

  部品箱をゴソゴソして、使い古しの16F648Aを見つける。PICライタにセットして読んでみる。

raven.itline.jp: /root/rakipic # rakipic -p 16F648A -r

  なんか息継ぎするな。最後まで行かずに止まってしまうし。

raven.itline.jp: /root/rakipic # rakipic -p 12F629 -r

  8ピンPICは大丈夫だ。

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 

  再ビルドに1時間くらいかかったが、とりあえず前と似たような手順で導入できた。例によって、ヘッダファイルの調整が必要だったが、なんとか16F648AでLチカに成功した。

  画像の説明

  しかし、久々に秋月のサイトでPICを見て驚いた。軒並み値上げしている。こんなに高かったっけ? 16F688については、以前の日記に「120円という価格が魅力だ」って書いてあったが、それが330円だとは。まぁ、便利で高機能なチップなのだから値段相応と言われればそんな気もするが。こないだの半導体不足とも関係あるのかしらん。個人的にはだいぶ買い貯めてあるので、死ぬまで買わずに済みそうな気もするが、ちょっとPICを見る目が変わってしまったな。

  さてさて、特段、必要に迫られているわけではないが、リハビリのために照度/温湿度計でも作ってみようかしらん。