2009-01-01から1年間の記事一覧

組織規模と俊敏さの矛盾

私は、前職(企業)の規模は社員数千人、その後の転職先ではさらに大きくなり世界規模で数十万人の社員、そして現在の勤め先はMBO(Management Buy Out)を社員数十人、現在は百人以上、とそこそこ様々なバリエーションの規模の組織で働いてきているつもりだ。「…

メモ:scalaz

Scalaz (Scar-lah-zed) is a library written in the Scala Programming Language. One mandate of the library is to depend only on the core Scala API and the core Java 2 Standard Edition API. The intention of Scalaz is to include general functi…

IntelliJ IDEA9 + Scala Plugin インストールメモ

いろいろとうまくいかなくて苦労したので(2009/11/30現在)、メモとして残します。 まず、JDKはインストールしておいてください。 ハズレダウンロードはこちら http://www.jetbrains.com/idea/nextversion/free_java_ide.html?promo バージョンが古い あたり…

オリジナルって何だ 音楽の真髄って何だ?

山之内氏は「スタジオで録音したのと同等の“オリジナルの音”がそのまま家庭で楽しめるなんて、今までなかったこと。声の柔らかさ、ブレスのリアルさなど、オリジナルの持つ強み ? 言うなれば音楽の真髄を味わわせてくれる」と賞賛。 最初に断っておくと、私…

AS3, FP10 のサウンドレイテンシ問題

http://cgarcade.com/blog/flash_10_dynamic_sound_latency最近、FP10、というかActionScript3で音を扱う(リズムゲームとかね)場合のレイテンシで頭を悩ませている。しかも出口が見つかっていない。現象とか状況としては Sound#play でも SampleDataEvent で…

USB接続のMIDIデバイスが認識されない人へ。Logicool Qcam使ってませんか?

最初に断っておきますと、Logicool Qcamという製品はなかなかに優秀でいいモノだと思います。そのモノ自体とドライバは別個に議論することが可能ならば、Logicool Qcamのドライバはクソです。まずは、事象。USB接続のMIDIデバイス(たとえばDJ用コントローラ…

なんつータイトルだよ

ピアノソロ 中級 ヒット イケメン・ソングス オリジナルキー&サイズ作者: 内田美雪,遠藤真理子,小野佐知子,川田千春,渋谷絵梨香,鈴木奈美出版社/メーカー: YMM発売日: 2009/10/22メディア: 楽譜この商品を含むブログ (1件) を見るなんつータイトルだよ・・・

ChucK入門 #11 ループ素材をカットしてみる

ひさびさのChucK。SndBufを使うとループ素材を簡単にカットしてつなぎかえることもできるはず、なのでやってみた。 SndBuf l1; "c:/temp/amen.wav" => l1.read; 1 => l1.loop; l1 => dac; l1.samples() => int full; 8 => int breaks; full / breaks => int …

正規表現(Regex)によるパターンマッチング

Scalaの強力な構文のひとつ、 match〜caseによるパターンマッチングですが、正規表現にも使うことができます。 scala> val a = """Regexp here, (\w+) and (\w+)""".r a: scala.util.matching.Regex = Regexp here, (\w+) and (\w+) scala> "Regexp here, ho…

RDBMSにOracleを利用している時にCRUDify(list)が動かない

Liftの CRUDify はコーディングをほとんどせずに、CRUD機能を提供してくれる、とても便利な機構です。Ruby On Rails(/AR)のscaffoldみたいな。で、OracleをRDBMSとしているときに、CRUDifyの"List"機能がまったく動いてくれない、と思って四苦八苦していたの…

(続)implicit defが2回評価される件 → 正確には structural typingな戻り値に対するメソッド呼び出しの問題

前回の "なんで2回newされてるの?" については id:kmizushima さんや id:SiroKuro さん、 @kinaba さんといった識者の皆さんも想定外の動作だったようで、逆コンパイル(逆アセンブル)するという形で調査をされておりました。なるほど、こうやって追跡すれば…

突然oracleプロセスのCPU利用率が100%になってデータベースが固まる事象について

ある時、突然、サーバ上のoracleプロセスのCPU利用率が100%になって、問い合わせはおろかログインもできなくなる…そんな事象に遭遇しました。前提:うちの環境は8コア(後述) 専用サーバモードで動作/利用していると思ふ SQL> select * from v$version; BANNE…

既存クラスを拡張(したように見せる)ひとつの方法

Rubyの特異メソッド/特異クラスみたいなことが出来ないのか、と思って調べていたところ、初期段階として「既存のクラスを拡張できるか」という点を掘ってみることになりました。Scalaはもともと、RichStringというクラスがあり、java.lang.Stringクラスに存…

(traitの)defをvalでオーバーライド/実装する

Liftの Loc実装を見ていて気がついた。 scala> trait Hoge { | def fuga:String; | def piyo:String = fuga | } defined trait Hoge scala> val a = new Hoge { | def fuga = "abc" | } a: java.lang.Object with Hoge = $anon$1@1f2a9da scala> val b = new…

Box[A]=Aができる不思議→ガセネタかもしれません

で、その後いろいろ試しても全然うまくいかなくて、そりゃそうだよな、共通の親なら相互に代入できるとかないわーと思って、サンプルコードをとりあえず入力してみたらコンパイルエラーなんじゃそりゃ。Productとか全然関係なかったです \(^o^)/ オワタ

Box[A]=A が出来る不思議

Liftのファイルアップロードのサンプルコードで var fileHolder : Box[FileParamHolder] = Empty (略) bind(... "receipt" -> SHtml.fileUpload(fileHolder = _),という部分がある。SHtml.fileUpload()の仕様を見ると、引数型は FileParamHolder => Any とい…

Chuck入門 #10 - SndBufでwavファイルを鳴らす

なんだか ChucK by Exampleというべき様相を呈している本入門記事ですが、ついに第10回を迎えることとなりました。私の興味や、思いつきの実験精神にしたがってソースコードを作成しているので、どうしてもヘンな(妙に突っ込んだ)例が多いため理解の妨げにな…

ChucK入門 #9 - マウス入力を扱う〜XYフィルター編

今回は趣向を変えてユーザーからの入力を扱ってみましょう。まずはマウス入力を使ってみましょう。ついでに、マウスといえば、ということで、フィルターを作ってみましょう。 いきなりですがソースコードとその解説をしていきます。 Hid hid; HidMsg msg; 0 …

ChucK入門 #8 - ADSRエンベロープを使う

前回、音を鳴らすときに減衰を行うためにエンベロープ用のオシレータを準備していましたね。ですが、シンセなどでおなじみのADSR式エンベロープのUGenが ChucK にはすでに準備されているのです。こっちを使いましょう。書き換えると、発音部分はこのようにな…

今日知った小ネタ - キビバイト メビバイト ギビバイト

キビバイト - Wikipediaたしかに、1キロバイトって議論をしているときに「それ1024バイトのこと?」「いや1000で」みたいな会話になることはある。 いまいち馴染みはないけど 1024バイトの場合はキビバイトと呼ぶべきなのかもしれない。で、じゃあ 1キロバイ…

今日知った小ネタ - iTunesで .ipswを指定して復元

iPhoneを OS3.0 beta5で使い続けていたら期限切れで紫画面。 仕方ない updateするか、と思って普通にiTunesでアップデートしようとすると「最新バージョンです」という冷たいメッセージ。仕方ないので .ipsw を落としてくる。ちなみに、iPhone OS 3.0の.ipsw…

ChucK入門 #7 - マルチしゅれっど(shred, not thread)

前回は発音部を関数に切り出しました。で、呼び出すと音がなりますが、音が鳴り始めて消えるまで呼び出し元はブロックされています(同期)。和音はもとより、これでは複数のパートで演奏するとか不可能です。非同期で動作させるために、マルチスレッドです。…

ChucK入門 #6 - 関数(手続き)を作る

なかなか音を鳴らす、ちょっといじるだけでもずいぶん大変だなあ、という印象を持ったかもしれません。今回は、「音を鳴らす」部分を関数/手続き化しちゃいましょう。たとえばシンセも、外界から見ると「どの音高を、どの強さで、どの程度の長さで発音するか…

ChucK入門 #5 - 時間の単位

ChucKでは 5::second => now;として、5秒待つことが出来ますが、今回はこれをもう少し掘り下げてみましょう。まず、second の部分にはどのような単位が使えるのでしょうか。ChucKのマニュアル(PDF)によると、以下のような定義済みの時間単位があるようです s…

ChucK入門 #4 - そしてステレオへ

今回は音のステレオ化に挑戦しましょう。その前に、オシレータの他の種類も見てみましょう。 SqrOsc s1; SawOsc s2; 0.5 => s1.gain; 0.5 => s2.gain; s1.freq() + 2 => s2.freq; s1 => dac; s2 => dac; 5::second => now;新しく SqrOsc と SawOsc が登場し…

ChucK入門 #3 - blackhole!

ChucK入門第三回です。ChucKのドキュメントの流れをパクっていますが気にしない。blackholeの存在 SinOsc s1 => dac; SinOsc s2; 5 => s2.freq; while (true) { 20::ms => now; (s2.last() * 40) + 440 => s1.freq; }このプログラムを実行しても「あれ?別に…

ChucK入門 #2 - 代入文とループとプロパティと私

今回は、さっそくこのソースを試してみましょう SinOsc s1 => dac; SinOsc s2 => dac; 440 => s1.freq; 660 => s2.freq; for (1.0 => float f; f>0.0; f - 0.1 => f) { f => s1.gain; 1::second => now; }実行してみると、440Hzと660Hzの混じった音が聞こえ…

ChucK入門 #1 - 音をならす

ChucKという、オーディオ処理用の言語、環境があります。同種のものにはSuperCollidorなどが挙げられます。SuperColliderは相対的にメジャーなようなのですが、このChucKはまだまだ日本語での記事/ドキュメントが不足しているようなので、(リファレンス的な…

疲れてきたら遊ぶことにする

Context Free は頭が疲れてきたときに遊ぶのにちょうどいい。トライ&エラーのときに余計なことを考えなくていいし、手続き型っぽい感じだけど、再帰と確率とアフィン変換行列がどんどん見えないゾーンまで行ってたりして、ひょっとすると何が起こるかわから…

なにこれ安い

『ML115 G5 スタートダッシュ3 キャンペーン(S)』を2台以上買うと1台あたり1,950円割引 通常価格: 31,500円 特別価格: 19,600円 TwitterのTLで流れていた「買いました」POSTを見ていまさら気がついた。 ML115が激安サーバであることはなんとなくは知ってい…