バージョン0.2.1リリース – MacLadioCast開発記その6

in LadioCast
バージョン0.2.1リリースします。 0.2.0から0.2.1への変更点は以下のとおりです。
  • 出力デバイスの音量をMacLadioCast上で調節できるようになった
  • 出力ボリュームの値は保存せず毎回0で起動するようにした
  • AUGraphUpdate() = -10863 (kAUGraphErr_CannotDoInCurrentContext)を例外からエラーログのみにとどめてみた(様子見)
です。

4 Responses to “バージョン0.2.1リリース – MacLadioCast開発記その6”

  1. Scatman

    Scatmanです。お世話になっております。
    早速の対処ありがとうございます。クラッシュする事なく送信する事が
    できる様になりました。感謝します。
    mp3モードでの送出テストは私のiBook G4では問題はありませんでしたが、
    Ogg Vorbisモードでのねとらじへの送出テストが全くできない状態です。
    送出設定をして「送出する」ボタンを押下しても
    「接続に失敗しました(Login Failed)」旨のダイアログが出てきて、ねとらじサーバーに接続できません。
    申し訳ありまあせんが、確認をお願い致します。

  2. かわうそ

    レポートありがとうございます!
    Ogg Vorbis形式はねとらじにはつなげられないと思います。確かなことはわかりませんが、Ogg Vorbisでつなぎますと宣言してつないでくるクライアントに対して、ねとらじサーバーは意識的にはじいているように思います。(ローカル環境での検証からの推察)

  3. Scatman

    Scatmanです。お世話になっております。
    ねとらじのOgg Vorbisの件なんですが、ちょっと気になって調べてみました所、ねとらじではOgg Vorbisに対応していない事が分かりました。
    以下のブログを見て下さい。
    「livedoorネットラジオ / ねとらじ開発日誌」
    http://blog.livedoor.jp/ladio_staff/archives/2005-06.html
    ここに、2005年3月に試験的に導入していたOgg Vorbisの接続ができなくなる旨の書き込みがありました。と言う事はこれ以降はOgg Vorbisでの接続は非対応と言う事になります。
    よく調べもせずに書き込んでしまいまして申し訳ありませんでした。


北京 – 第三天

in Uncategorized
大変です! 昨日と今日、北京で撮影したデジカメ画像が全部消されてしまいました! いえ違います違います公安の人がやったんじゃないんです、自分で消したんです〜っ! いや本当に–;。というか遊んでないで早く寝ろ>自分。 今日は電脳街で買ったリーダーで画像をアップしつつそれとは全然関係無い「北京のバスでICカードするの術」について熱く語ろうと思ったのですが、そんなわけでかなり意気消沈したので、また明日にしようと思います。 ほんと今回は準備不足がたたってるわ。しかしよく考えてみると毎回同じこと思ってる気が^^;。 ちなみに今日の北京はまた終日曇り、というか全体が雲の中、というか何か白いものの中でした。 Continue reading…

頑張れ、おパンツ仮面!

in Uncategorized
応援しているぞ!www (このエントリーは謎の公開励ましの言葉です^^)

2 Responses to “頑張れ、おパンツ仮面!”

  1. おパンツ仮面

    自分の名前が乗っててびっくりしましたwww
    ほんとladiocastなかったらラジオできなかった。nicecast買おうかact2に電話までしてたその日にladiocastのことを知ったんです。
    お世話になります。

  2. かわうそ

    わっもう見つかってた^^;。
    LadioCast、使用説明ドキュメントがちゃんと無くてもうしわけない。
    昨日のVSD放送、BGMやスカイプ音声はOKな感じでした。マイクについて、おそらく2重の経路でLadioCastに入っていたと思います。どちらかの経路を閉じればよりクリアになります(残した方のボリュームはUP)。
    少し高度な設定になりますが、veadarさんのブログ「Macの手書き説明書」にあるLadioCast「Skype相手にも音楽やSEが聞こえるようにするセッティング」がVSD的^^?設定例です。また余裕があれば試してみて下さい。


バージョン0.6.2リリース – LadioCast開発記その27

in LadioCast

LadioCastバージョン0.6.2をリリースします。

0.6.1から0.6.2への変更点は以下のとおりです。

  • ネットワークの通信異常に対する回復処理を追加し、関連するメッセージ表示を変更
リリースの間隔が短いですが正常系の動作は前リリースと同じです。ネットワークがらみの異常系の処理を見直しました。
これでLadioCastの落ちを回避しつつ接続の持ちも良くなればと思います。

【追記 2007-11-27】
同バージョンの外部ライブラリを、CPU subtypeの修正をしてビルドしたもので差し替えました。

【追記 2007-12-09】
2007-11-27に差し替えた外部ライブラリを、Intel版のリンクミスを修正してビルドしたもので再度差し替えました。

4 Responses to “バージョン0.6.2リリース – LadioCast開発記その27”

  1. ミーム

    先日の放送で通信回復処理がG4PPCでも走ったのでご報告します。
    ラジオ配信中にヘッドライン取得ツールから自分のタイトルが消え、再取得後同じタイトルでリスナー数・開始時間共に0の新番組として表示されました。
    LadioCast 0.6.2 の方は、経過時間・転送量も接続開始から継続したままで動作に異常はありません。
    配信終了後に録音フォルダを見ると、開始時間の違う2つの録音ファイルができてました。
    CPU過負荷落ちを回避できる様になってきたので、この通信回復処理は非常にありがたいです。

  2. かわうそ

    ミームさんこんにちは!
    動作報告ありがとうございます。回復処理走ったと思います。(なおコンソールログに通信エラーメッセージが出てたらその時ですね。)
    処理はCPU過負荷とあとスカイプ影響などでMacの通信がgdgdになったときに走りやすいと思います。
    LadioCastコンテンツの方も期待していますよ〜^^。

  3. かわうそさん
    こんばんわ。
    期待に胸を膨らませて早速利用させていただきたかったのですが、
    初代MacBook CoreDuo 1.83GHzではLadioCast 0.6.2が起動しませんでした。
    大変恐縮ですが、以下当該時間帯のコンソールログを転載いたします。

    07/12/08 19:52:43 [0x0-0x87087].com.kawauso.LadioCast[985] dyld: Library not loaded: /opt/local/lib/libtheora.0.dylib
    07/12/08 19:52:43 [0x0-0x87087].com.kawauso.LadioCast[985] Referenced from: /Applications/LadioCast.app/Contents/MacOS/../Frameworks/libshout.3.dylib
    07/12/08 19:52:43 [0x0-0x87087].com.kawauso.LadioCast[985] Reason: image not found

  4. かわうそ

    gamさんこんにちは!
    ごめんなさい2007-11-27のライブラリ差し替えで、あるライブラリファイルのIntelバイナリの方にリンクミスがありました。
    再々度差し替えましたので、試してみて下さい。

Leave a Reply to gam

Click here to cancel reply.

*


金貨問題の2問目をRubyで解く

in Uncategorized

エントリービルゲイツの面接試験ネタに便乗に便乗の金貨問題で出した問題の2問目は、エントリー金貨問題の解答編で可能であることだけ書いて力技での検証をしませんでした。問題を要約すると

正規品10グラムの金貨が24枚入った6袋中、何袋あるかわからない全て偽造品11グラムの金貨の袋を、1回だけの計量で選別する方法があるか
です。

ちょうど今ものにしようとしているプログラミング言語Rubyの題材として適当そうですので、プログラムを作って本当にそんなことが可能かどうか検証してみます。 (なお組み合わせを生成する部分は書籍Rubyプログラミング入門の「第8章 Rubyスクリプト実例集」のコードを参照しました。yieldの再帰が巧みですね。)

まず以下の2つの関数を作ります。 [code language="ruby"] # 各n枚の金貨が入ったm袋からの金貨の取り出しかた全てについて、与えられたブロックを実行する def combi(n, m) if m == 0 yield([]) else combi(n, m - 1) do |x| s = (x.length == 0 ? 1 : x[0] + 1) (s..n).each do |i| yield([i] + x) end end end end # 与えられた金貨の取り出しかたについて、正規品および偽造品の組み合わせ全てで # 重量が区別できるかどうか調べる def weight(coins) if coins.length == 0 return [0] end weight_list = weight(coins[1..-1]) if !weight_list return nil end new_list = [] weight_list.each do |x| # 正規金貨の場合 w = coins[0] * 10 + x if new_list.index(w) # 重量が重複するので不可 return nil end new_list.push(w) # 偽造金貨の場合 w = coins[0] * 11 + x if new_list.index(w) # 重量が重複するので不可 return nil end new_list.push(w) end return new_list end [/code] この2つの関数を以下のように使って、24枚入り6袋の場合で実行して結果を表示させてみましょう。 [code language="ruby"] combi(24, 6) do |x| if weight(x) p x end end [/code] [24, 23, 22, 20, 17, 11]
結果はこの組み合わせ1つ。24枚入り6袋でも24, 23, 22, 20, 17, 11枚と取り出せば偽造金貨の袋を1回の計量で選別できるということです(プログラムが正しければ^^)。

う〜ん興味深いですね〜。