3/18/2011

pacman 3.5.0がきてる

testingでアップグレードあり
そのままだと依存関係のチェックで引っ掛って何もできなくなるので
pacman -Syしたあと、pacman -Sfd pacmanで無理矢理インストールすればOK
インストールされたらpacman-db-upgradeを実行する

btrfs with lzo

btrfsのlzo圧縮対応は地味にありがたいなぁ
zlibと比べると格段に低負荷になることと
圧縮率は落ちはすれども、テストケースによっては
無圧縮よりも高速にファイルの複製などができるようだ

3/17/2011

sched autogroupについて

arch Linuxには2.6.38のパッケージが来ていて
デフォルトで有効になっていた
暫定対応時のようにcgroupディレクトリ以下にセッションID単位にファイルが出来て
みたいな確認方法が無いようなので、本当にきちんと動いているかは
負荷をかけてみるしかない という感じ。

該当箇所のソースを読んでないので挙動については推測だけど
プロセス生成時に、自分でSIDを割り当てなければ何かとグルーピングされる。
デーモンプロセスについては追ってないんだけど、自分で呼び出した子プロセスに関してはグルーピングされてそう。
初期化処理の中でsetsidする奴は親プロセスになる、何から何処から呼び出しても。
これを考えると複数のサービスが混在するサーバとかでも有益なんじゃないかな。
特定サービスへの局所的な高負荷で他のサービス全体に悪影響を及ぼしたりしなくなる
と考えると非常に有益、コンテンツフィルタしたりウィルスチェックをするようなゲートウェイサービスには特に有益だろうな
F-Secureのウィルスチェックゲートウェイみたいなやつ。数あるサービスの中でもかなり重い部類に入るし、接続要求があると子プロ生成っていう動作を取るから効果的面な気がする。

「make -j70みたいなことをしても、ほかのプロセスに悪影響だしたりしないよ」
みたいなふれこみは正しかった。確かに動画を再生してもスムーズだった。
その最中にブラウザでtableが山ほど入れ子になったベンチマーク目的のページを開いても
きちんと描画も続いた、高負荷時はデスクトップ環境からみて「このプロセスは応答していません」扱いになることも多々あったんだけど
すごい効果だと思う。

ただそのmake -j70のほうの処理はほかの事をすれば完了は遅くなる。

1プロセスの実行速度よりも全体的な応答性を取りたい場合は
デスクトップ用途以外でも充分有効そう

3/16/2011

kernel 2.6.38 リリース

やっときました
気になる日本での通称ミラクルパッチ(a.k.a."the patch that does wonders")ですが
デフォルトで有効かつ特別な対応なしに効いているようです。
これまで手動で対応していた人は起動スクリプトや設定ファイルに書いた変更を元に戻しておきましょう
もし、無効にしたい場合、または有効なはずなのにうまく動いてないという場合は
このファイルを確認しましょう /proc/sys/kernel/sched_autogroup_enabled
ちなみに私はまだ試せてません
今日帰ったら早速やります
kernel newbieから超訳します


CPUに飢えたプロセスがいくつかあるとします。
まず同じセッションIDをもつ4つのプロセス
次にそれぞれ異なるセッションIDの2つのプロセス
automatic process groupingなし: [proc.1 | proc.2 | proc.3 | proc.4 | proc.5 | proc.6] automatic prosess groupingあり: [proc.1,2,3,4 | proc.5 | proc 6]
セッションIDとはUnixのプロセスが持つIDです。ps -eoで見ることができます。
setsid(3)によって新しいセッションIDが生成されて、そこからフォークした子プロセスに継承されます。
bashは起動のたびにsetsid(3)で新しいセッションIDを生成しますので、つまりは"make -j20"を実行しながら、何の問題もなくwebブラウズが出来たりするわけです。
この機能は2.6.24で実装されたgroup scheduringを利用しています。
/proc/sys/kernel/sched_autogroup_enabledで無効の設定を行うこともできます
(訳注たぶんbool)



つまりここでまとめられるプロセスというのが
何らかの親プロセスから生成された子プロセスがsetsidを行わない場合
(session IDが親プロセスと変わらない場合)
setsidで新しいセッションIDが生成された場合は
そのプロセスが親になって下にぶら下がるプロセスが、そのセッションIDでまとまる
ちなみにこれ、魔法でも何でもなくて過去実装された機能を有効活用するための実装
Linusが気に入ったのは効果も含めて、過去資産をスマートかつ有効に活用するアイデア
日本ではミラクルパッチとか魔法のパッチとか言われて
これだけで何倍高速化される みたいな認識ですが
このパッチはスケジューリングにおける無駄を省くパッチになります
特にデスクトップ用途では色んなプロセスが山ほど立ち上がるので
そいつらが個別にCPU割り当てを要求して、その都度1つ1つを相手にするよりも
取りまとめて効率化することで無駄な遅延を起こさせないようにしましょう
という内容
つまりデスクトップ用途に限った話で言えばグループスケジューリングを
自動化してなかった今までがおかしいわけで、そこからやっとマシになった
高速化といってもプログラムの実行速度が速くなるわけじゃなくて
沢山の「ながら作業」をしてもプチフリしたり、描画が細切れに行われてるのを黙って待ったり
っていうイラっとするシチュエーションから開放されますよ という話。
とどのつまりが、遅くなりにくくするパッチなわけ
(高速に動作するようになったのは動作の無駄が減ったスケジューラのみ)
よそ様のブログなどを見ていると「別に速くなった実感ないけどwwwなにこれww」的な
書き込みをみるんだけど、単発で実行している以上に早くなったりはしないよと。
/.Jの200行パッチの記事とコメを真に受けたりすると、とっても恥ずかしいです
あのパッチから何故そんな話になるのかも理解できないなぁ・・・
フォアグラウンドアプリの優先度をブーストするとか
TTYのロック数を減らすことで高速化してるとか
TTYとGUIアプリの相互関係について議論とか
しかもそういうのに限って高いモデがついてる
悪意はないのだろうけど、外から見に来てる人間は有害だよなぁ・・・
間違ってても高モデで「参考になる」とかなら、それが正しいと勘違いするバカが量産されるじゃないのさ
あとLinusが大改造を嫌う とかね。いるんだよああいうの真に受けてブログとか酒の席とかでわかったように偉そうな批判する奴がさ。
Linuxが嫌がるのは「俺様専用実装カッコイイ」とか
ただの名前変更のために超大なレビュー時間を割かれるとか
規模に関わらず、さっさとテストしたいパッチなのにも関わらずに
つべこべ議論して、何だかんだグダグダ言いながらレビューやテストから逃げたいがために没にしようとしてるダメメンテナが引き起こしたフレーム紛いの
なが~いスレッドだったり
むしろ商用利用とかって観点でみるとLinusはダイナミックすぎるところがあるから
冷や冷やするくらいだ。そんな大規模なパッチ今いれないでーくらいのね。

3/14/2011

radikoが最高な件

radiko.jp

最高すぎる なぜって?
IPサイマルラジオというフツーのラジオをPCで聞けるサービス
ポッドキャストやネットラジオとは違うんです

だ か ら

伊集院光の深夜の馬鹿力が聞けるわけですよ
PCで!もう電波の入り具合で悩む必要なし 最高
伊集院万歳 

3/10/2011

memo

#!/usr/bin/env ruby

module PARS_CONF

  def get_conf(conf_file)

    if File::ftype(conf_file) == "file"

      return Array[*open(conf_file).read.split(/(\n|\r)/).map{|f|

          f.split(/\r/)

        }.flatten]

    end

  end


  def ldif_conf(conf_file)

    if File::ftype(conf_file) == "file"

      return get_conf(conf_file).select{|b| 

        b =~ /(^uid\:[[:blank:]]|^mail\:[[:blank:]])/

      }.each{|x| 

        x.gsub!(/(^uid\:[[:blank:]]|^mail\:[[:blank:]])/,"")

      }

    end

  end

  

  def running_conf(conf_file)

    if File::ftype(conf_file) == "file"

      return get_conf(conf_file).select{|b| 

        b =~ /(^user[[:blank:]]|^[[:blank:]]*description[[:blank:]].*@.*)/}.each{|x| 

        x.gsub!(/(^user[[:blank:]]|^[[:blank:]]*description[[:blank:]])/,"")

      }

    end

  end



  def aliases_get(conf_file)

    if File::ftype(conf_file) == "file"

      return Array[*open(conf_file).read.split(/((^\s*)(:|,)(\s*)$)/).map{|f| 

          f.gsub!(/(^\#.*$\n)|(\\$\n)|([[:blank:]]*)/,"") ;f.split(/\n/)}.flatten]

    end

  end



  protected :get_conf

  protected :ldif_conf

  protected :running_conf

  protected :aliases_get


  def get_ac(conf_file)

    if File::ftype(conf_file) == "file"

      case File::extname(conf_file)

      when /(ldif|LDIF|ldap|LDAP)/

        return ldif_conf(conf_file).sort

      when /(cli|CLI)/ 

        return running_conf(conf_file).sort

      when /ali/

        return aliases_get(conf_file).sort

      else

        return get_conf(conf_file).sort

      end

    end

  end

end


class COMP_AC

  include PARS_CONF

  def initialize(file1, file2)

    @A1 = get_ac(file1)

    @A2 = get_ac(file2)

  end


  def show_comp()

    printf("%s only,\t%s only\n" ,ARGV[0],ARGV[1])

    a = [(@A1 - @A2).sort, (@A2 - @A1).sort]

    if a[0].length > a[1].length

      count = a[0].length

      a[1].fill(a[1].length ,count) { nil }

    elsif a[0].length < a[1].length

      count = a[1].length

      a[0].fill(a[0].length , count) { nil }

    else

      count = a[0].length

    end

    i = 0

    while i < count

      printf("\"%s\",\"%s\"\n",a[0][i],a[1][i])

      i += 1

    end



  end

end


if ARGV[0].nil? or ARGV[1].nil? then

  print < out.csv

EOS

elsif ARGV.size > 0 then

  COMP_AC.new(ARGV[0], ARGV[1]).show_comp

end


3/07/2011

K271mk2 レビュー

比較論だけでも仕方ないので単体でのレビューを


音質面ではAKGらしい、高音域が伸びやかで低音域が引き締まるタイプ
中音域は前面に配置されている。ソースによりけりだけど、大体の場合は高音≧中音>低音って感じの音量になる。
K271mk2の更なる特徴として、やはりモニター用というべきなのか、かなり音の分離がよい。音場感を超えて分離がいいため「自分はソースの粗探しをしているのか?」と思えるほど。
良くも悪くも分離がいいため、「できれば聞きたくない音」も聞こえる。
例えばボーカルの口がペチとかペチャとかクチャっと鳴る音など。

全体的なバランスを重視した聴き心地より、一音一音の再現性と分離を重視した作り。
私はモニター用ヘッドホンばかり愛用しているから、すごく「良い」とは思うけど
民生機やDJ用ヘッドホンなどから、ここに手を出すと「びっくりする」と思う。
(もちろん、良くも悪くも。感動と失望も込み込み)

機能面について特筆すべきは頭から外したときのミュート機能とケーブル交換だろう。
ミュート機能は正直微妙だった。スイッチになってる弱そうなゴムバンドも心配だし
頭から外した流れで首にかけたりするとミュートにならない。フラットな場所に寝かせるくらいの扱いじゃないとだめ。
とにかく少しでもゴムにテンションがかかればスイッチが入る、ヘッドホンを頭にかけ際の縦へのヘッドバンドの伸びだけでなく、ハウジングをもって横に広げるだけでもバンドが縦にスライドするためスイッチがはいる。
一度スイッチが入ると、ヘッドバンドがビニル、スライドがプラスチックなので滑りが悪くスムーズに戻らない。
結局引っかかって途中で止まる、どこかに寝かせた衝撃(コトッ程度の些細な衝撃)や手で戻す動作などできっかけを作ってやらないと基元に戻らないため意味がない。
あえてスイッチを切りたければバンドを手で引き下げる(または上から押す)動作がいる。
これならDAPの再生を停止したほうが早い。



ケーブル交換はありがちなケーブル断線やプラグの磨耗に簡単に対応できる程度のものと思っておいたほうがいい。
使い勝手と音質を天秤にかけて総合的に優秀なのはやはり標準ケーブルだ。
ただ、キンクなどでケーブルを痛めたり抜き差しでプラグが磨耗したりで接触不良を起こすような
故障は長く使えば必ず起きるし、持ち歩けば当然ながらそういう機会も増えるので、交換可能な機構は保守性という観点でみると非常に素晴らしい。



また比較論にはなるけK271mk2を買うかK272HDを買うかで悩む人は多いようなので
ちょっとその点に触れておく。

まず前提として「モニター用ヘッドホン的な音質の製品が欲しい」という前提が必要
■リスニング用として
・”より”モニター的な音質がいいならk271mk2
・「総合的に聞き易い」ものがほしいならK272HD(あくまで比較論、K272HDもそこいらの民生機と比べるとものすごくモニター的)
・持ち歩くならK271mk2(保守性が高い、加えて一音一音のメリハリが強いため外で聴いても環境ノイズに埋もれにくい。ただ室内での静かな環境で聴く分にはやや疲れる。)
・据え置きならK272HD(保守性は低いが、聴きやすい。ムシしてもいいレベルだけど一音一音のメリハリはK271mk2よりは劣る、最大限K272HDで良い音と思うなら室内で)


■モニター用として
・モニター用としての全体的なバランスをみるとどちらも低音域がほかの域に比べて出ていないので、どっちもやめといた方がいい。K27xに合わせて低音いじると過多になる。
・複数(種類)のモニタ用ヘッドホンを使ってモニタするなら、選択肢としては充分にあり。その際はK271mk2をオススメする。
・宅録目的でリスニングと兼用するつもりならK272HDの方が気分よく聴ける。

全体的に見て一長一短なんだけど、ほとんど同等の性能(カタログスペックは若干K271mk2が上)
傾向や得手不得手に微妙な違いがある(まあコンセプトを反映しているだけのことだが)

どっちを選んでも大差はないが、大きくわけてポータブルならK271mk2のほうが安心感はある。
腰を据えて音楽を聴くならK272HDのほうがいい(K271mk2だと粗もかなり目立って聞こえる)


値段的には代理店的な相場もあってK271mk2のほうが安い(本国の相場に近い)
K272HDはサウンドハウスなら安いが価格的には数千円上、正規代理店を通すと倍の値段になる。
C/Pで選ぶならK271mk2(ほぼ同等の性能で、細かいことを気にしないで流し聴きするならどっちも同じだから)
付属品も充実(ストレート、カールのケーブル2種、レザー風、ベロア地のイヤパッド2種)という点を踏まえるとかなりお買い得。


全部ひっくるめて考えるとK271mk2がよい、価格以上の満足度はあると思う。
ただ私としては屋内利用に限ってリスニング目的でAKGを使うというならK272HDをオススメしたい。
こちらもC/Pでみると価格以上に効果あると思う。

極端だけど正直な話、色味で選んでもいい気がする。
紺と黒系の色合いにかっこよさを感じるならK271mk2
ベージュっぽい色合い(ハウジングの色は16進なら#30331a)にかっこよさを感じるならK272HD

あるいは色的にK271mk2は外っぽいイメージ
K272HDは室内にあるのが自然に見える色合い だと個人的には思う。

音質的差異はそんな選び方でも別にいいくらいもんで
神経質になるほどじゃない

K271mk2とケーブル交換について

手軽に入手できるオヤイデのケーブルは音に若干ディストーションがかかったような
不思議な音質。悪いとは言わないがソースをかなり選ぶと思う。
まさかケーブルひとつでこんなにも違うとはなぁと思って驚いた。

正直に言うと違和感がひどいのとタッチノイズが出やすいので使用を断念した(許されるなら返品したいくらい)
これでもう少し柔らかかったら印象ぜんぜん違ったのかもしれない。


標準ケーブルはオヤイデのものと比べて解像度は落ちるものの素直な感じ。

標準ケーブルでK271mk2を使う場合、音質に限ってはK272HDとぱっと聞き違いはわからない。
低音の張りみたいなものはK272HDのほうがよかったが、高音域とか全体的な分離はK271mk2が良い。
総じての聴き心地は拮抗してる。


ケーブルの材質とか質感も一緒、やわらかくてクセがついたらもどりにくい。
カールコードはまだ試してないけどポータブルだとカールしてる部分が重く動くたびにコネクタ部分に負荷がかかるので
こちらは据え置きで使いたい。ストレートケーブルは単純にまとめてケースにでも入れておけばいい(スマートフォンの付属品についてくるようなショボイレザーケースが適当でよい)

同じ材質で1m30cmくらいのケーブルがあると助かるんだけどなぁ。

K271mk2のメリットはやっぱりケーブル交換なんだけど
今のところは断線したりステレオミニプラグがバカになっても交換できるくらいの
有り難味しかないのが悲しいなぁ。

海外では何ぼか流通してるもんなんだろうか?同程度の品質でいいから2000円いかない程度で入手できれば凄く安心感があるんだが。

ただまあ壊れたにしても、少なくともオヤイデではもうケーブル買わないな・・・
前に買ったステレオミニケーブルも正直イマイチで使ってないし、いい加減もったいない。

3/04/2011

K271Mk2を買ったよ

ケーブル交換可能なところに惹かれて購入
ポータブル用途なので短かい方がいい

オヤイデから1m30cmのケーブルを入手し使ってます

音質はK272HDからなら違和感なく移行可能です
若干、272HDより一音一音はタイトな傾向
音場は少し曖昧に、解像度は向上といった違い
特に低音の引き締めは強くなる
バスブーストで持ち上げてやると爆発的に強く出てくるようになる。
たぶん、死ぬほど素直なのかな。幸いなことに破綻した感じはない。

馴れもあるからまだ272HDの方が好きだけど、性能的に優秀なのは271mk2だと思う。

ちなみに何故、買い替えたかというと
272HDの飾りでついてる銀色の輪っかが取れたため
接着剤で付け直してます。その間動かしたくないので、どうせなら家用にしてしまいたいなと。
ケーブル長すぎてポータブルに向いてない。

気付いたんだけどイヤパッドに互換性あるね これ。
新品の布地パッド使うのもったいないので、272HDのを取り付けてみたらピッタリだった。
逆も然りで、271mk2のレザーパッドも272HDにピッタリ。こりゃいいわ。


2011-03-07 追記
小柳出のケーブルはあんまり良くなかった
音質どうこうよりケーブルが固くて、取り回しがイマイチなのと
硬さゆえにタッチノイズが酷い、歩いていて自分の体にケーブルが触れるたびに
ザリザリ鳴ったりボッボッ鳴る、邪魔くさくて使ってられない。

据置きなら硬い方がいい場合もあるけど、ポータブルっていう用途に限っては
柔らかくないとダメ。

WSKY Bluetooth 5.0 トランスミッター レシーバー買いました

安くレシーバーモードでapt-x HDが使えるものというと非常に限られますが そのなかで高音質と評判のよかったものをということで購入しました。 音質は安いなりですね、apt-x HDで接続されている状態でも元がなんであれ痩せた音になります。 SBSにしか対応していない...