«前の日記(2007-01-23) 最新 次の日記(2007-01-25)» 編集

Matzにっき


2007-01-24 [長年日記]

_ ALSA、音出ない

今日まで気がつかなかったのだが、 いつの間にかLinux PCから音が出なくなっている。

別にリブートもしてないから、なにかの設定がおかしいのだろうか。

まず、問題を切り分けなくてはいけない。

最近updateされたのはesoundだが、esoundなしに直接ALSAを叩いても音が出ないので、 問題はALSAモジュールのほうにあるのだろう。

典型的なトラブルはミュートがかかっていることに気がつかなかったり、 /dev/dspなどのパーミッションが間違ってたりすることだが(過去に何度も引っかかっている)、alsamixerでちゃんと設定しても音は出ない。パーミッションにも問題はなさそうだ。

問題が発生したのはDebian sidのlinux-image-2.6.18-3-686だったので、 古いカーネル2.6.17-2-686でも起動してみたが、 やっぱり鳴らない。ということは、カーネルモジュールのせいではなく、 どこかの設定のせいなのか。

しかし、ALSAの設定できるところってほとんどないんだよなあ。 で、いまだに原因が分からず音が鳴らないままなのであった。 ビープは鳴るんだけど。

どうしたもんだか。

追記

という日記エントリを書いた1月27日早朝、改めて試してみたら鳴るようになっていた。 特に設定を変更していないのに...気持ち悪い。

追記(2)

だいぶ状況が分かってきた

  • esdが起動していない状態でfirefoxが動くと(たぶんflashが)/dev/dspを掴む
  • でもlsofやfuserでは表示されない
  • その状態でesd経由では音が出ない
  • かつ、alsa直叩きでも音が出なくなる(これが謎のまま)

ということらしい。さらに

  • 最近updateしたflashplugin-nonfree 9.0.31.0.1はesddsp経由では音が出ない

ということのようだ。すべての現象の説明がつかないのが気持ち悪いが、 とりあえず基本的な状況は理解できた。 まあ、sidを使ってる宿命みたいなものか。

とりあえずflashをdowngradeする。

追記(3)

FirefoxからIceweaselにアップグレードしたらまた音が出なくなった(2007-02-01)。

きっかけはプラグインの検索順序が変わって、 またflashplugin-nonfree 9.0.31.0.1が使われるようになったこと。 しかし、これで一度音が出なくなると

  • esd経由だろうが
  • esddsp経由だろうが
  • alsa経由だろうが
  • プロセスを全部終了させようが
  • リブートさせようが

なにをしても音が出ない(ビープは鳴る)。

だいぶ困ったあげく

  • /var/lib/alsa/asound.stateを削除
  • alsaconfの再実行

で音が出るようになった。いや、他にもいろいろやったから もしかしたら別の理由があるのかもしれないけど。

_ [言語] Lisp:S式の理由

LispとLispユーザがなぜS式を選択するか。 ハッカーのはしくれとして理解できないこともないが、 なんというか、見事に「普通の人」と立ち位置がずれている。 すがすがしいくらいだ。

ま、そういう態度もアリだろう。

でも、やっぱり一般受けはしないだろうなあ。 見かけはRuby(というか「普通の言語」)で、 セマンティックスはS式という「妥協」はできないものか。

できないんだろうなあ。

追記

えんどうやすゆきさんからトラックバックをいただいた

なぜ文法がRubyでなければいけないのか理解できないのですが。

というかそもそも「普通の人」って何さ。「Rubyは普通の人に優しい」と主張したいのだろうか?

いやもしかしてあの「普通のやつら」の「普通」なのか?

コメントをつけようと思ったが、反映されないみたいなので(スパムと見なされた?)、 ここにも書いておこう。

「普通の人」とは「プログラミングをする人のうち、かなりの割合」という程度の意味です。かなり多くの人々が「S式を受け入れがたい」と感じるのは観測された事実です。また、これらの人々はLisp(の外見?)よりもRuby(の外見?)の方が受け入れやすいと感じるようです。理由はまだ分かっていません。

私はS式を読み書きするのに抵抗はほとんどないので(それでもLisp Wayばりばりなプログラムは(おそらく別の理由で)読みにくいのですが)、この「普通の人」に私は含んでいません。

あのエントリの主張は、その前提を踏まえて「S式が『普通の人』にとって受け入れがたいなら、Rubyのような大衆ウケする文法を外部表現として使うのが良さそうだが、(その試みは成功したことがないので、なんらかの理由で)できないんだろうなあ」というようなものです。

けっして「文法がRubyでなければいけない」とは主張していないので、その理由を読み取ろうとしてもできないのは当然だと思います。

で、あの文章が「Rubyでなければいけない」と読まれてしまうようでは、私はまだまだ精進が足りませんね。

Lisp使いの人は、自分たちが愛する言語が

  • 人気がない
  • 知られていない
  • 誤解されている

ことを認識することからはじめた方が良いと思う。余計なお世話だけど。 「普通の人」は本当にLispを知らない。

_ [Ruby] Asoby: Aspect-Oriented Programming in Ruby - New Playground for Rubyists 2.0

Ruby本体をハックしてアスペクト指向を実現した、という話。

こういう話は大好きだ。 実際問題として本体に取り込むかどうかは別として。

私自身はアスペクト指向についてなんともいえないモヤモヤしたものを感じている。 どうも、言語そのものが扱うべき領域を逸脱しているような。 実は(アスペクト指向の大家である)千葉滋先生には個人的に「それってどういう意味よ」とツッコまれているのだが、 しばらく考えてみるに、いまだに言語化できない。現時点ではただの直感である。

本日のツッコミ(全19件) [ツッコミを入れる]
_ mrkn (2007-01-27 08:41)

私は,ALSA で音が出ないと思っていたら,スピーカーが OFF になっていたことがありました.

_ mrkn (2007-01-27 08:42)

私は,ALSA で音が出ないと思っていたら,スピーカーが OFF になっていたことがありました.実際に ALSA の方に問題があって音が出ないことを何度か経験していたので,5分くらい気づかなかったですね.一人だったのに恥しかったです.

_ koshian (2007-01-27 16:33)

/proc/asound/pcm のplaybackはいくつになってます?<br>これ同時発音数なんですが、これが少ないといくつかのアプリに捕まれた状態では音が鳴らなくなるなんてことがたまにあります。

_ まつもと (2007-01-27 17:21)

1ですね。これってどこで設定できるんでしょうか。

_ mrkn (2007-01-29 20:26)

多重書き込みになってしまっていたようで申し分けありません.<br>playback が 1 でも,~/.asoundrc で dmix を設定すれば,ソフトウェアでミックスしてくれますよ.

_ いまだにcarとかcdrってあんまりかも (2007-01-30 14:22)

私にはlispの外部表現を見やすくしても普及につながるとは思えません。これはDylanやOCamlが普及していないところから予想しています。lispが世間に広く受け入れられないのは基本が関数型言語であることが一番の理由ではないでしょうか。<br>関数型言語では、単純なループでも再帰呼び出しを使います。ごれが解りやすいとは私には思えません。それを糖衣で包めば外見はどんどん手続き型言語に近づいていきます。そして手続き型でプログラムを書くなら、それにもっと適した他の言語を使った方が書きやすいということになるでしょう。手続き型ではなく関数型の方が書きやすい場合こそlispの出番なのですが、これが世間にはあまりないような気がします。そんな所ではないでしょうか。

_ まつもと (2007-01-30 14:34)

一番経験のあるLispがEmacs Lispだったりする(その次はSchemeかなあ)私には、「Lispが関数型」というのはピンとこなかったりするのですが、制御構造を含めてあらゆる関数型プログラミングがツライときがあるのは同意します。<br><br>私自身、Lispが不人気であることにはいぶかしく思っていて、その原因を知りたいと思っているのです。どうも、S式だけが原因ということではなさそうなのですが。<br><br>「lispが圧倒的に有利」という局面は確かにあるにしても、年々少なくなっており(極端なメタプログラミング以外たいていRubyやPythonでもできちゃうので)、それがlispの魅力低下につながっているのかもしれないとは推測しています。

_ えんどう (2007-01-30 14:44)

「「Lisp である事自体が罪」というようなスタンスなので反論不能です。 orz」という感想もあるようですよ>まつもとさん

_ まつもと (2007-01-30 15:37)

あー、だからそれも誤解で。<br><br>私が興味があるのはLispの不人気の理由で、現時点ではなにが原因であるのかよくわからず、「Lispである事自体が原因」であるとしか言いようがない、とは思ってます。でも、それを「罪」と呼んじゃうと、まるで私がLispをおとしめたいみたいじゃないですか。<br><br>私は「Lispファン」とか「Lisp wannabe」であると自認しているからこそ、Lispの不人気の原因を追求したいわけで、別にLispの悪口を言いたいわけではないです。

_ まつもと (2007-01-30 15:43)

「不人気の原因を追及したい気持ち」が野次馬根性ではないのか、と問われると、そうではないとは言い切れないですが。というかその通りですが。<br>当事者じゃないんで。<br><br>でも、少なくともLispを憎く思っているわけではないのは確かです。

_ そこまで徹底しないほうがよかったのか? (2007-01-30 16:03)

lisp不人気の原因を追及を私なりに考えている過程で似た境遇の言語が思い浮かびました。smalltalkです。なぜでしょう?<br>なにかヒントがある気がしています。

_ K.Tsuchiya (2007-01-31 00:05)

あんまり参考にならないと思いますが、僕がLispを使わないときはほしいライブラリがない時と、Lispでつくったソフトを別の誰かが保守できない(つまりそのプロジェクトの関係者にLispを使える人間が少ない)場合です。<br>Lispのユーザー数が少ない->他の人が保守できないから使わない->ユーザ増えないという循環はけっこう大きいような。<br><br>逆にLispを使うときは、構造がややこしくて柔軟な記述力が欲しい場合で、かつ一定以上の速度が以上欲しいときです。<br>僕のところは業界的にそういうソフト開発がけっこうあるので、そういう時は重宝します。

_ さにべ (2007-02-01 15:21)

後学のためにLISPインタプリタを作ったばかりなのですが、そんなに人気がないとは、とほほ・・・

_ まつもと (2007-02-01 16:09)

人気がなくても気にすることはないんじゃないでしょうか。<br>Lispのパワーも、Lispの実装で得られる経験と知識も、人気なんかとは関係ない「事実」なんですから。

_ さにべ (2007-02-01 16:31)

そうですね。少し勇気が沸いてきました。次の課題はこれをどう"改造"するかですが、とりあえず松本さんの本を読んで勉強します。ありがとう御座いました。

_ meist (2007-02-02 00:22)

そう言えば「Rubyistのための他言語探訪」では、まだLISPは<br>取り上げられていないんですね。是非お願いしたいです。

_ ujip (2007-02-03 21:14)

Lispがいまひとつ受け入れられていないのはまったくそのとおりです。受け入れられないなぁと言うのもわかっていてその受け入れられなさ加減を楽しんでいる自分もいます。たぶんラテン語を見事に操っているイギリス人のような気分なのかも知れず、受け入れられないことで満足しているLISPERが多いから、受け入れられようと努力していないからかもしれません。<br>もともとLISPにはS式のほかにM式があって、M式のほうは普通の人にもわかりやすく記述できるような仕掛けになっていたのに、結局S式が実装しやすくてS式のみ生き残ってしまったような気がします。<br>M式インタプリタがあれば少しはいいのかもしれませんが、M式ってどんなのだったかはもう記憶のかなたです。

_ ujip (2007-02-04 00:03)

ああまた出すぎたことを書いてしまいました。<br>すみません。

_ じょりちょこ (2007-02-11 17:00)

Lispは強力です。ですが、世間のプログラマーはLispを必要とするような難しい問題を相手にしてはいないのです。<br><br>プログラミング人口の少なくない比率が産業プログラマで、そこではいまだにウォーターフォールモデルがまかり通っています。基本設計・詳細設計・コーディングのような役割分担でプログラミングしている組織に、Lispの威力が発揮できるような「複雑な問題」は手に負えないはずです。そういう組織は前例のない課題に取り組もうとしないので、Lispが活躍するまでもないのです。<br><br>たとえば、COBOLで書かれた業務アプリをLispで書き換えることは可能ですが、そうするメリットって何でしょう?マクロを駆使してCOBOLで書かれていたときより保守性の高いコードにすることは可能かも知れません。しかし、そのコストダウンないし品質向上って「見積もり可能」なものでしょうか。(そもそも既存のシステムを完全に書き換えるようなミッションの場合、規模的に大人数で開発せざるを得ないので、プログラマの確保が難しいLispは選択肢に入らないのですが。)<br><br>Martin Fowlerがいうように「生産性は計測不能」だとしても、マネージャーが経営陣にLispを選択することを説得できる材料はないと思います。

お名前:
E-mail:
コメント:
[]

«前の日記(2007-01-23) 最新 次の日記(2007-01-25)» 編集

track feed Matzにっき Creative Commons License This work is licensed under a Creative Commons License.