音楽

ブライアン・イーノのiPhoneアプリ『Bloom』がいい

2008/10/09

アンビエントの父、Brian Enoと、音楽家でありソフトウェアデザイナーであるPeter ChilversがiPhoneアプリ『Bloom』をリリースしました(¥450)。

イーノによるアンビエントを自動演奏する他、再生中にキャンバスをタッチすることで演奏に音を加えることが出来たり、用意された9つのモードから自分でメロディを生成することも可能です。

キャンパスの上にタッチすると、左下の写真のように円が表れ一定のループのなかで繰り返し演奏され、消えていきます。上に行くほど音程が高く、下に行くほど低くなり、円を消したいときはiPhoneを振るという直感的な操作感はダラーッと聞くにはちょうどよい感じです。

コントロール画面(下中央・下右の写真)では、モードの切り替えや音量やディレイの設定などが可能です。

iPhoneの非力なスピーカーでは、低音がしっかり出ないなど残念なところもありますが、音楽の新しい接し方を提供している点でDLする価値はあります。Tenori-On、Kaossilator、DS-10などとても面白い楽器が出ているなかで、こういうアプリが出てくるのはとてもいい状況ですね。

イベント

Graffiti Research Lab in TOKYO - APMT4

2008/09/13

# ものすごく、遅ればせながら。

CBCNET主催のアート・デザインカンファレンス「APMT4」のために来日したGraffiti Research Lab

前日(土曜日)、中目黒〜渋谷でのパフォーマンス(Laser Tag)に参加し、雨が降って反応も悪かったものの、何とかスクランブル交差点でも成功することができました。


G.R.L. ♥ Tokyo from fi5e on Vimeo.

APMTでの発表では、いままでの活動やそれらの背景について語られていました。

グラフィティにはもともとハッキング的要素があり、近年banksyに代表される作品はそれが顕著に表れていて、そのプレゼンテーション含めて現代美術への接続にも成功しています。

その意味で、今回のGRLも同じ文脈で語られることが多いのですが、風変わりなのはオープンソースへのアプローチです。上のLaser Tagを実現するソフトウェアをオープンソースとして公開し、誰もが街の中で擬似的にグラフィティを描くことができるような環境を提供しています。

Evanさん(GRLのメンバー)の発表の中でも、グラフィティとオープンソースコミュニティがつながるともっと面白い、というようなことを仰っていて、領域を横断して考えることができる人が好きなぼくには、とても印象に残る発言でした。

Laser Tagは街も汚さないしインパクトもあって、グラフィティ門外漢には単に壁に描くよりも効果的なアプローチだなあと思うのですが、こういう話でいつも思い出すのが一番下に引用しているニュースです。これは数年前に見かけた記事なのですが、広告付きのベンチが京都市内のバス停に無許可で置かれており、市民からは便利とされているが、違法である、というものでした。

置いた人はおそらく便利だから設置したのでしょうが、これによって法律と住民の利便性の矛盾を鮮やかに?描いていて、グラフィティが持つハッキング的要素は何も壁に描かずとも実現できるのだなと思ったのを思い出します。

バス停に置かれている広告付きの無許可ベンチ(京都市左京区)    京都市内の
バス停に、広告付きのベンチが無許可で多数置かれており、市が撤去するべき
かどうか頭を悩ませている。「無許可ベンチ」は通行の妨げになるうえ、市が
力を入れている景観保全の観点からも問題視されている。一方で、バス利用客から
は「便利」との声もあり、対応に苦慮している。

 市交通局によると、無許可ベンチは、バス停1カ所に1−7個ほど置かれてい
る。背もたれに「学生ローン」「信用融資」など金融関係の広告が掲示されて
いる場合が多い。交通局は「数は調査中だが、相当数ある」とみている。

 こうしたベンチのほとんどは、設置者が誰なのかが不明だ。老朽化すれば
利用客がけがをする可能性もあるほか、路上の点字ブロックを覆っているケー
スもあるという。

 市は「バス停のベンチはバス事業者にしか許可していない」(道路管理課)と
説明しており、無許可ベンチは、道路占有を禁じた道路法にも違反する「
違法ベンチ」の疑いもある。

 ベンチに掲示されている広告も、市への申請がないと市屋外広告物条例にも
違反する。市風致保全課は「景観保全の点からも、無許可ベンチは問題」と
指摘する。

 市は、老朽化して使用不能な無許可ベンチは順次、撤去している。ただ、
使用可能なベンチについては「無理に撤去すると利用者からクレームがくるか
もしれない」(建設局)と強制撤去には踏み切っていない。交通局は「市のベ
ンチに取り換えていけるか、予算も含めて検討中」としている。

Rails, ウェブ

Mixi OpenID からニックネームを簡単に取得する

2008/08/22

先日、待望の Mixi OpenID がリリースされました。

id:ZIGOROu さんのところで、くわしく解説されていますが、Mixi OpenIDでは、sreg(OpenID Simple Registration Extension)と呼ばれる OpenID に付随するユーザのプロフィールをやりとりするためのプロトコルを使って、Mixi で使われるニックネームを取得することができます。

sreg の仕様は、OpenID Simple Registration Extension 1.0や、ここを参照してください。ぼくはこんがらがってしまい、ちゃんと理解できませんでした。。

仕様を完全に理解しなくても(理解するべきでしょうが)、Rails の Open ID Authentication を使って、簡単にニックネームを取得することができました。

下記は open_id_authentication の README ファイルにあった、sreg 取得方法の例をちょっとだけ変えたものです。open_id_authentication メソッドは、identity_url (ex. https://mixi.jp, http://profile.livedoor.com/****)を引き取り、OP にパラメータを組み立てて認証を行うメソッドのようです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
def open_id_authentication(identity_url)
  # Pass optional :required and :optional keys to specify what sreg fields you want.
  # Be sure to yield registration, a third argument in the #authenticate_with_open_id block.
  authenticate_with_open_id(identity_url, 
      :optional => :nickname) do |status, identity_url, registration|
    case status
    when :missing
      failed_login "Sorry, the OpenID server couldn't be found"
    when :canceled
      failed_login "OpenID verification was canceled"
    when :failed
      failed_login "Sorry, the OpenID verification failed"
    when :successful
      if @current_user = @account.users.find_by_identity_url(identity_url)
        @current_user.nickname = registration["nickname"]
 
        if current_user.save
          successful_login
        else
          failed_login "Your OpenID profile registration failed: " +
            @current_user.errors.full_messages.to_sentence
        end
      else
        failed_login "Sorry, no user by that identity URL exists"
      end
    end
  end
end

authenticate_with_open_id メソッドに :options => :nickname としているところが(5行目)、sreg を用いてニックネームを取得する宣言です。コメントにあるとおり、sreg を用いる際には、status, identity_url に加え、3つめの変数である regsitration を与える必要があります。

この registration にハッシュ形式で sreg 情報が返ってくるようなので、15行目のように nickname を取り出し、RP である自分のアプリのニックネームとして入れてあげています。

open_id_authenticationプラグインを用いることで簡単に取得することができましたが、もういちど sreg の仕様などを読んで理解を深めたいと思います。

音楽

Neo Classics 2 が出る模様

2008/08/19

長年(10年以上)聞き続けてるDJ クボタタケシさんのミックスCD「Neo Classics 2」がどうやら9/24に出るようです。

CD版である本「Neo Classics」シリーズも趣きがあってよいですが、ミックステープ「Classics」シリーズの方が権利処理の関係?で比較的自由にやれている分とてもおもしろいので、テープで復活してくれるととても嬉しいなあ。
いまもこれを書きながら「Classics Vol.1」を聞いているのですが、「I’m in The Mood For Dancing」からレザボア・ドッグスのオープニングテーマ「Little Green Bag」への流れとか嬉しくなります。

最近は現場に行っていないのでどうも言えないのですが、平日のMIXの時のような実験をする場があるのでしょうか。しばらく足を運んでいないので実験日にぜひ行ってみたいと思います。

Edge Rails

[Edge Rails] join時のcondtionsをわかりやすく : Easy Join Table Conditions

2008/08/03

追記: すみません、join時だけでなく通常のfindでも使えるようです。

関連するモデルからデータを引くときに、↓のように:joinsオプションを使うことはよくあります。

1
2
3
4
5
6
7
8
9
10
11
class Article < ActiveRecord::Base
  belongs_to :user
end
 
class User < ActiveRecord::Base
  has_many :articles
end
 
# Get all the users that have published articles
User.find(:all, :joins => :article,
  :conditions => ["articles.published = ?", true])

今回のコミットでは、join時での:conditionsオプションをハッシュで指定できるようになりました。

1
2
3
# Get all the users that have published articles
User.find(:all, :joins => :article,
  :conditions => { :articles => { :published => true } })

綺麗に書けますが、これ使うかなあ。。



« Previous Entries » Next Entries