December 4, 2011
MacBook Air(2011 Mid / Lion)買ったので環境構築メモ
11inch 全部盛り USキーボード。人生初のUS配列。
Lionでperl/node.js/coffeeScriptあたりの開発環境を整える際の自分用メモ。(一部追記あります。)
October 30, 2011
コンピュータ音楽―歴史・テクノロジー・アート
前回の記事で書いたsonificatorの開発が思いの外面白く、勢い余って買ってしまった。コンピュータで作曲や音声合成を行うための理論が網羅的に解説されている大著。
コンピュータ音楽―歴史・テクノロジー・アート
Curtis Roads 青柳 龍也 後藤 真孝 
「訳者らあとがき」によれば原著は1996年とのことで、実に15年前の内容。記述が古い箇所が多いことも否めない。例えば、現在のDAWのようにMIDIイベントとオーディオ波形が並んで表示されているシーケンサー画面について「グラフィカルな表現は、純粋な MIDI データとオーディオ波形間の時間的な対応を見るのに便利である
」と解説してある。 まだ同時には再生できなかったのだ!
理論的な部分での充実度は尋常ではなく、多くのシンセサイザーやエフェクターの原理から、グラニュラーシンセシスの理論的背景まで、自分には十分すぎる範囲がカバーされている。殆どの場合、今でも不足を感じることは無いと思う。
十年くらい前に音楽系のプログラミングに凝っていた時期があって、その時に図書館で借りて頑張ってひと通り読んだ。ここ5-6年はソッチ系のことを殆どやっていないので、大分忘れてしまった。素人の手習いに過ぎないが、また頑張って読もうと思う。当時は手元に置いておきたくてもあまりに高くて手が出なかったが。。。いや、今でも十分財布に厳しいぞ。もとを取るためにもsonificatorはしばらくいじり続けたいと思います。
October 22, 2011
YAPC ASIA 2011で刺激されてJavaScriptに没頭してsonificator作った。
YAPC ASIA 2011行ってきました。
cho45さんのWAFの話とか、普段書いているコードに直結するような話で興味深い話も多かったのですが、それ以上に、techno-catさんやHaruka Kataokaさんの音楽関係のトラックにとても刺激を受けました。そういえば、自分がプログラムを始めたきっかけって、テクノとかエレクトロニカとか、そんな音楽やりたくてじたばたしているうちに片足突っ込んだのがはじまりだったよな、ということを思い出したりして、まあ、いわゆる初期衝動?に立ち返ったような気持ちになりました。
で、この一週間モンモンとしているうちに、今やるならWeb Audio APIだよななどと思いつつ色々いじってたら、こんなのが出来ました。
すべてJavaScriptで書かれていて、Web Audio APIを利用してブラウザ上でリアルタイムに動作するプログラムで、DOM構造をそれっぽい音楽に変換して演奏します。ブックマークレットから起動できます。最近のchromeでしか動きません。今のところ、いわゆるIDMとかエレクトロニカといった感じの音にチューニングされてます。ちょっとした画像効果付きなので、そっち系統の音が好きな方は、好きなサイトで実行して放置すると良い感じなんじゃないかと思います。
自分のお気に入りは、Facebookのウォール部分です。予め先の方までAutoPagarizeしておいて垂れ流すと、とても気持ち良いです。みなさんも試してみてください。
Perlのパの字も無いところに落ち着きましたが、言語に拘らずいろんな方向に刺激を与えてくれるのもYAPCの良いところですね。この土日も仕事とも言語とも関係なく、好きなコード書きたいという気持ちが、今の僕には溢れてます。
June 16, 2011
MTのワンライナーを素早く書く
通常、MTのパッケージはシステムレベルにインストールされません。そのため、lib/ とextlib/ へのパスを実行時に追加する必要があります。
例えば、EntryオブジェクトをDumpするワンライナーは以下のようになります。
$ perl -Ilib -Iextlib -MMT -MData::Dumper -e 'MT->new; print Dumper(MT->model("entry")->load(42))'
また、プラグインごとのlibディレクトリへのパスは、MTのインスタンス作成時に動的に追加されます。そのため、MTのプラグインを開発中、コンパイルチェックをしたい時などに直接実行する事ができません。
$ perl -Ilib -Iextlib -Iplugins/MyPlugin/lib -c plugins/MyPlugin/lib/MyPlugin.pm
長いですね。
そこで、以下のようなモジュールを、perlのパスの通った場所に設置します。
package T;
use strict;
use warnings;
use lib qw( lib extlib );
use MT;
BEGIN { MT->new };
1;
名前は、T.pmです。これで
$ perl -MT -MData::Dumper -e 'print Dumper(MT->model("entry")->load(42))'
$ perl -MT -c plugins/MyPlugin/lib/MyPlugin.pm
などと、perlにMT専用オプションが追加されたような錯覚を覚える事が出来ます。
January 23, 2011
githubのwikiエンジン「Gollum」を試してみた。
Gollumは、githubのwikiエンジンのコア部分がオープンソースとして公開されたものです。軽量なWebServerとして動作するので、ローカルマシン上で起動してすぐに、ブラウザ経由でwikiページの閲覧や編集が可能になります。使用感をメモしておきます。
インストールと起動
Gollumはrubyで書かれたwikiエンジンです。gemからインストールする事が出来ます。 起動するには、任意のgitリポジトリへ移動(またはオプションでパスを指定)してgollumコマンドを実行します。$ sudo gem install gollum $ git init my_wiki $ cd my_wiki $ gollum
これで、デフォルトでポート4567にウェブサーバが起動するので、ブラウザでlocalhost:4567にアクセスしてすぐにwikiページの作成が可能です。
特徴
バックエンドがgit
gollumはストレージとして、一般的なDBエンジンではなくgitを利用しています。ブラウザからページを追加してみるとわかりますが、wikiページがファイルと一対一で対応するという直感的に分かりやすい構造になっています。ワーキングコピーでそれらのファイルを直接編集してgit commitすることでwikiに反映させることもできます。
githubのwikiもgitリポジトリとしてアクセス可能になっているので、githubからwikiをガバっとcloneしてローカルマシン上のGollumで確認しながら大量にページ追加作業をし、まとまったところでgithubにpushといった形でのgithubと連携することで、かなりの作業の効率化が可能かと思います。
オマケ的な利点として、画像などのファイルを直接git addする事でリポジトリに含めて管理、参照するといったことも挙げられます。(現時点ではGithubのwikiにはファイルアップロードのインターフェースがないので)
複数のマークアップフォーマットに対応
必要なライブラリをインストールする事で、以下のマークアップフォーマットを利用できます。フォーマットはwikiページごとに設定できます。
- ASCIIDoc
- Creole
- Markdown
- Org
- Pod
- RDoc
- ReStructuredText
- Textile
- MediaWiki (gemから落とせる最新版(1.1.1)には含まれていない模様)
また、github 独自拡張のwiki内リンク記法が利用できます。
はまったところ
ワーキングコピーではなくgitリポジトリそのものを見ているので、ファイルベースで作業した場合、git commitするまで反映されない、ということに気づくまで小一時間はまった。
January 12, 2011
Github の MT のリポジトリブラウザに Fogbugz へのリンクを追加する Chrome extension 書いた。
Happy new year! Happy Github!
ということで、Movable Type のリポジトリがgithubに移行してとても楽しみなのですが、コミットログにFogbugzのケース番号書いてあってもWebから見たときにリンクにならないので不便です。のでとりあえずChrome extensionでなんとかします。
https://github.com/movabletype/ 以下で、コミットログからfogbugzのcase番号らしきものを拾って、近くにリンクを追加します。だけです。もっと良い方法をご存知の方教えてください。
December 25, 2010
MTDDC HOKKAIDO行ってきた。
一週間経ってしまいましたが、MTDDC HOKKAIDOのまとめ。