December 26, 2007
Invalid card number (cont.)
非常に気持ち悪い終わり方だが、udevとhalをインストールしなおしたら解決した。結局誰が、いつ、どうやって/dev/snd/*を作ってるかはわからず終い。たぶんudevなんだろうが、udevinfoとかみてもドライバをロードする手がかりがないように見える。
December 22, 2007
Invalid card number
いつのupdateからかはっきりしてないのだけど、rebootしてみたらalsa-utilsのinit scriptから呼ばれるamixerがこんなエラーを大量に吐いて音が全くでない状態になった。/proc/asound/cardsとかにはちゃんとデバイスが認識されてるように見えるし、/proc/asound/card0とかもある。とりあえずstraceしてみたら、/dev/snd/controlC0や/dev/aloadC0が見つからんということのようだ。udevかなあ。手動で/usr/share/alsa-base/snddevicesを実行すると一通り必要なデバイスを作ってくれるけど、OSS互換モード以外はだめぽい。
とりあえずgnome-sound-propertiesで自動検出からOSSに変更しといた。
とりあえずgnome-sound-propertiesで自動検出からOSSに変更しといた。
December 18, 2007
December 17, 2007
破壊的代入とcopy-sequence
何も知らずにこんなコードをEmacs Lisp上で書いた。便宜上サンプルコードとしてよりシンプルになってはいるけど。
なんとなくbarには常に(a b c)が代入されて無限ループになりそうなもんだけど、最初の呼び出しも含めて実際にはfooは2回しか呼ばれない。これは'(a b c)が実行時に生成されるんではなくて、読み込み時に生成されるからなんだそうな。これを回避するにはlistやconsといった関数を呼び出せばいいようだ。ただこれらの書き換えが出来ない場合には、copy-sequenceやcopy-treeといった関数を使うことで手間を省くことが出来る。
勉強になった。
(defun foo ()
(let ((bar '(a b c)))
(if (eq (car bar) 'a)
(prog2
(setcar bar 'e)
(foo)))
bar))
なんとなくbarには常に(a b c)が代入されて無限ループになりそうなもんだけど、最初の呼び出しも含めて実際にはfooは2回しか呼ばれない。これは'(a b c)が実行時に生成されるんではなくて、読み込み時に生成されるからなんだそうな。これを回避するにはlistやconsといった関数を呼び出せばいいようだ。ただこれらの書き換えが出来ない場合には、copy-sequenceやcopy-treeといった関数を使うことで手間を省くことが出来る。
勉強になった。
mew-ical.el
先日の続き。認証の有無を認識するようにして、必要ならパスワードの入力を求めるようにしてみた。それからMETHOD:REPLYな.icsファイルの場合には、リクエストに対する相手のステータスを表示するようにした。
ファイルは前回と同じ場所に置いた。
ファイルは前回と同じ場所に置いた。
Subscribe to:
Posts (Atom)