perlbrew offした覚えはない

今日は、不可解な現象に遭遇しました。
何の気なしに、cpanmでモジュールをインストールしようとしたら失敗。
何がいけないのか分かんないけど失敗。
build.log見たらテストがコケてて、しかもどこでとかじゃなくて、
useできないとか、そんな感じ。

ん???

で、よくよく見たら、build.logじゃなくて、
cpanm使ったタイミングに警告が出てて、
su使わないと書き込めないから、perl5/にインストールするって出てて。
まぁ、perlbrew使ってるしとか思ったけど、
今までこんなメッセージ出なかったし。
$ perl -v
したら案の定、システム標準のperlが使われてて、
perlbrew switchでコトなきを得た訳ですが、
どーしてこうなったのかよく分からないです。

という訳で、cpanmで変な警告出たらちゃんと読みます。
ごめんなさい。

追記
いつものようにperl meets beats.をいじってたら、
Readonlyがないって言われて、インストールしました。
じゃぁ、いままでなんでエラーでなかったんだろう。

Lionを入れたらnpmがダメなコトになった

別にダメじゃなくて、Lionを入れたコトによってダメになったっていうお話。(*1)
他の方はどうなんだろう。

例えば、
$ npm list
で、過去に入れたモジュールが出て来ないとか。(*2)

そんでもって、
$ npm update npm -g
って入れたら、エラーが出て npm が消えました。

おしまい。

じゃなくて、古いメモを見ながらnpmを入れ直してみました。
$ npm --version
も、ちゃんと動いたし、
$ npm search coffee-script
も、すんごい時間掛かって検索してるみたいです。(初回は時間が掛かるみたい)
で、ちゃんと見つかったかというと・・・。

すんげー時間掛かってる。
って思ったら、ターミナルがスクロールされなくて、終わったのに気付かず・・・。

という訳で、めでたし、めでたし。

(*1) npmのバージョンが古すぎた説は拭えてない。
(*2) 勘違いしてたのですが、-gオプション付きでインスロールした場合、
$ npm list -g
で、インストールしたモジュール一覧表示なんですね。
(だとしたら、手動で古いモジュールを削除しなければ良かった。)

EV-4.03がテストでこける件

Amon2を入れて、
plackupしたらPlack::Middleware::ReverseProxyがないって言われたので、
$ cpanm Task::Plackしたんですが、
EVのインストールで返ってこない訳です。
で、perlのバージョンを確認したら5.15.4で、
5.14.2だったらどうだろうと思って試したらやっぱダメでした。

Argument "EV::RUN_ONCE" isn't numeric in subroutine entry at t/11_signal.t line 48.

ちなみに、実行環境は Mac OS X バージョン 10.7.2 デス。
それと、plackupの件は上記のモジュールをインストールして解決しました。

gcc -v
(中略)
gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)

おしまい。

11/8 追記
“perl ev”で検索したらサクッと同じような症状の解決方法を見つけたんだけど、
それでもうまくいかなくて、手元の環境だとこんな感じで解決しました。
$ perl Makefile.PL CC=gcc-4.2
これで、EV-4.03が入って、Task::Plackもインストールできました。
めでたし、めでたし。

perlbrewを入れ直しました

ちょっと古いperlbrewを使い続けてたので入れ直しました。
perlbrewのインストールは簡単ですね。
普通にインスコして、
$ perlbrew initで出て来た通りに、
.bash_profileを編集して。
(自分はこれを編集してお茶を濁してます。)

あと、cpanmもインストールするんですが、
$ perlbrew instal-cpanmで良いんですね。
楽チンで良いですね!!

その後は、こんな感じ。

  • Amon2
  • Imager(*1)
  • Audio::PortAudio(*2)

こんなもんかな、自分の場合は。
という訳で、おしまい。

(*1) libjpeg, libpng が別途必要
(*2) brew install portaudio が別途必要

「すべてのユーザーの自動更新を設定」を解除する

Mac OS X バージョン 10.7.2 を使っています。
「Google Chrome について」をどこからか開くと、
「すべてのユーザーの自動更新を設定」があったので、
あー、じゃー設定しておこうと思って、設定してみたのですが、
ユーザー自分だけだし、余計なことしない方がいいなーって思って、
ずーっと解除の方法を探ってた訳ですね。
そんで、どーにもこーにもいかないので、
Chromeに関する設定ファイルを見つけ出して、
それをキレイさっぱりして、再インストールすることにしました。

で、一応ここからは自己責任でお願いします。

Google Chromeのサイトに載っているアンインストール方法だと、
アプリケーションフォルダからポイッ!ってゴミ箱に移すだけなのですが、
その他にライブラリフォルダにもGoogleってフォルダありまして。
自分が見つけたのは、ユーザーのライブラリとルートにあるやつで、
ルートにある方を削除すると、例の設定を行うことで消えてしまった、
「すべてのユーザーの自動更新を設定」ボタンが復活しました。

とりあえず、この説明で分かる方で設定を解除出来なくて困ってる方は、
Chromeの再インストール覚悟で試してみてはいかがでしょうか。
(ライブラリフォルダの表示方法が分からない方にはオススメしません。)

とは言うものの、ルートの方を削除する分には、
例のボタンが復活する以外は何の変化もないですけどね。
気になる点と言ったら、削除したGoogleフォルダはいつ復活するのかってこと。
うちにあるもう一方のMacには、設定してないけどGoogleフォルダはあるので。
という訳で、ちょっと様子を見てみます。

おしまい。

ホッカイロを買ってみた

もう、本を積むスペースが足りない季節ですね、こんばんは。
トクホンに続き、ホッカイロを導入して、首こり対策をしております。
ホッカイロをタオルに巻いて、首に固定してみました。
あ〜、これ良いかも。
さらに、トクホンを肩に貼ってみました。
これは効きますねぇ。

しかし、オススメはしません。
だって、低温火傷に注意しなきゃいけないのに、
トクホンのじわ〜っていう感覚と、
ホッカイロによるじわ〜が重なっちゃって、
火傷に気付かない可能性大。

なので、併用は避けた方が良いです。

おしまい。

iPhone4をiOS5に復元してみた

え?アップデートじゃないの??
って思いますよね、普通。

最初、自分もそのつもりで同期をとって、アップデートしてみたんですよ。
そしたら、まずバックアップ取られるんですよね。
まぁ、そんなもんかなーって思ってたんですよ。
ところがですよ、それからずっと復元中って表示されてるんですよ。
新しいファームウェアを復元中とか、iPhone Appを復元中とか、
iPhoneにデータを転送することを復元中って言ってるのか、
なんかよく分かんないけど、さっそく工場出荷時に復元されました。

それから再起動して、もろもろ復元しまして。
なんとか、iOS5に復元されましたとさ、
めでたし、めでたし。

そんなことより、iPhone起動時に求められたAppleIDで、
いつの間にかiCloudが設定されてたので、
そのつもりで入力することをオススメします。

おしまい。

Web Audio APIはじめました

(function () {
	var ctx = new webkitAudioContext();
	//console.log( ctx );
	var dst = ctx.destination;
	//console.log( dst );
	var buf = ctx.createBuffer( 1, 4096 * 4, ctx.sampleRate );
	var data = buf.getChannelData( 0 );
	for (var i=0; i<data.length; i++) {
		data[i] = ( i % Math.floor(44100 / 440) );
	}
	console.log( data );
	var src = ctx.createBufferSource();
	//console.log( src );
	src.buffer = buf;
	src.connect( dst );
	src.noteOn( 0 );
})();

なんか分かんないけど、こんな感じのコードで音が鳴った。
Canvasのように、まずcontextを取得するのは分かる。
W3CのAPIリファレンスを見ると、contextでいろいろ生成するみたい。
よく分かんないのでconsole.log()を使って、
何が入ってるのかChromeで確認しながら作業した。
(こういうとき英語読めたらいいなーって思う。)
とりあえず、エラーが出ないように、見よう見まねでコードを書いて、
きっと波形を入れればと思って、それっぽく初期化したら音が出た。

あと、Chromeでテストしてるけど、Chromeごと落ちることがあるらしく、
自分も1回落ちたけど、再現性はない。
下手なコードを書いたからとかじゃないらしい。
早くループさせたりフィルターをいじってみたいけど、
perlも待ってるのでバランス良くやる方向で。

おしまい。

10/26 追記
MacBookAirでスリープ解除してから
このスクリプト実行したらChromeごと落ちて、
そのあとは普通に音が鳴ったので、
このスクリプトは良くないのかも知れないです。

自分にご褒美を与えた日

首のこりがびっくりするほどヒドくて、
とりあえず整体を予約して行ってきました。
で、いつも行ってた整体が潰れたっぽいので、慌てて代わりを探して。

そして、今日行ったら、予約した時とは打って変わって、すごい無愛想。
あー、これないわーって思ったけど、帰る頃には腰が低くなってて、
なんかよく分かんないけど、また来ようと思いました。
パキパキ鳴らす系じゃないけど、最後に首はパキパキ鳴ってました。

そんなこんなで、やっと普通に生活できるほどに回復したので、
帰りに本を買って、カフェをはしごして、
あと、軽く呑んできました。

で、ちょい呑み1,000円のプランがですね、
お酒とお通しと2品つきまして、さらに上がり蕎麦が出て来て、
ほんと、軽く一杯やるつもりが、がっつりでした。
お腹いっぱいですよ、奥さん。

でもって、あとリュックを新調した訳ですが、
2年か3年くらい使ったのかな、内側の上部がボロボロになりまして。
そのボロボロが内部に散乱して、ちょっと困ってたし、
あと本日限り15%引きだったし。
その本日限りって、どのくらいの頻度なのか知らないけど、ラッキーということで。
そんなこんなで、前方のポケットに仕切りがあって、
目薬とか名刺とか入れるのにちょうどいい感じに浅くて、良い買い物をしたと思います。

まぁ、たまには普通のコトも書くよということで、
お財布の中も空っぽなので給料日まで家を出たくないけど、
がんばって生きたいと思います。

おしまい。

YAPCで使うスライドを書いた

誰得か分かんないけど、一応載せておく。
YAPCで使ったスライドを作る前に用意したサマリー。
(もちろん、スライドを作る途中、作った後にも手を入れてる。)

— ここから —
1. はじめに

マイクテスト(MacBookAirの音をマイクで拾う)
いきさつ
自己紹介
Hokkaido.pmでのお話

2. 音声合成処理

WAVファイル出力
ファイルフォーマット(さらっと)
音階のお話
単音のお話(ワンショット)

3. ドラムマシンを作る

モジュレーション(変調)
キック
スネア / ハイハット

beatsの出力
波形合成(和音)

grooveの実装
ベースと絡める(課題)
強弱をつける(パートを増やす)
音の長さに変化をつける(パートを増やす)
swingさせる(やりましょう)

4. デモンストレーション

Techno

House
swingの説明

Drum’n’Bass
ハイハットパートを2つ(強/弱)

2step
swingきつめ, beatsはタイトに
— ここまで —

これを元にスライドを作って話して来た。
今見ると、9割くらいはこのサマリーに沿って、スライドを作ったらしい。
このサマリーを作った後に手を入れてるとしたら、後半のデモンストレーションだと思う。
デモ用のサンプルはYAPCに行く前夜に完成したのを覚えてる。

どのくらい練習したんだろう。
多分、スライドが出来たのは3連休の最終日だと思うので、
火曜と水曜は練習できたはずだけど、あまり記憶が無い。
というのも、この辺はデモ用のサンプルを作っていたはず。
スライドを書き上げて、適当にしゃべって15分足らずだったのは確認した。
それから、会社の帰りとか、寝る前に1回/日くらい練習したかも。
時間に余裕があることだけは確認したと思う。

トークの内容は、ほぼスライド通り。
どちらかというと、スライド見れば分かるでしょ、を意識してスライドを作った。
本当はもっと日本語を少なくしたかったけど、それは次回の課題に。
あと、どーしても笑いが欲しかったので、最初と最後はあんな感じにした。
いくつかスベッたのは内緒。

台本はあるかというと、もちろん無くて、
特にデモのときは、思い付きでしゃべってたんだけど、あれはよく出来たと思う。
デモの最中に黙り込んじゃうのは避けたいし、笑いが起きてたし。

もし、次回しゃべることがあるとしたら、たぶんHokkaido.pmだと思うけど、
そのときまでに声変わりが来たら、もっと良いトークが出来ると思うので、
一生懸命なんか努力しようと思う。

おしまい。