@kyanny's blog

My thoughts, my life. Views/opinions are my own.

音楽ストリーミングサービス

最近話題の音楽ストリーミングサービス、日本でローンチしたやつ三つを試しに使ってみている。 Spotify を日本から頑張って使おうという気概はなかった。四月にマニラに行ったとき試せばよかったと後悔(そのときは考えもしなかったが)

まず AWA を二週間くらい使っている。「インターフェースにこだわった」とか堂々と言われるとむしろ引くわ...みたいな感じもあるが、でも言いたいことは伝わっていて、彼らは「音楽という体験」をこういう風に感じていて、だからこういう表現なんだね、っていうのはユーザーとして評価できる。

LINE MUSIC は、まぁ無料のうちに試すだけ試そう、と思ってちらっと見てみたが、無難で面白みがないなぁ、と感じた。 LINE の世界観にはおそらくうまくマッチしているのだと思うが、 LINE のフレンドリストに奥さん一人しか登録していないような人間が LINE の世界観を心地よいと感じるわけもなく、予想通り合わないわー、という感じだった。

そして Apple Music だ。 iOS と iTunes をアップデートして、パッと見は「なんかフツーだな」と、 AWA のほうが比較的長く使って慣れてきていて愛着も出つつあるしなー、なんて思っていたのだが、ストリーミング再生した曲と元々ローカルの iTunes ライブラリにあった曲がまったく同列に並んで表示される様子をみて衝撃を受けた。これがクラウドか!と冗談ではなく思った。これまでどんなサービスを使っていても、データの実体がどこにあるかを意識しないことはなかったが、初めて「データがどこにあるかなんて問いは無意味だ」と感じた。

AWA は日本の企業がやっているから応援したいという気持ちはあるのだが(しかし自分は政治的にはナショナリズム大嫌いなので我ながらアンビバレントだなと思うが)、やはり Apple Music がけっこう先を行っているんじゃないかなぁという気がするし、消費者としての自分は「最初から Mac でも聴けるし、なんかファミリーアカウントだと奥さんが使うぶんが安上がりっぽし、プレイリストの面白さとかは AWA のほうが現時点では上に感じられるけど、まぁもう Apple Music でいいんじゃねーの」と思い始めてしまっている。


そんなこんなで「音を楽しむ」習慣が乏しかった自分でも、おずおずとブームの波のうねりの周辺をうろうろしながらけっこう楽しんでいる。

せっかくだから自宅でもうちょっといい音で聴きたいと思い、 Bluetooth スピーカーを新調した。いままでは何年か前に買った SONY の SRS-BTV5 というのを使っていて、丸くて小さくてかわいいから気に入っていたけど、いかんせん音はイマイチで、 iPhone 6 のほうが良いくらいだった。

せめてテレビ並に鳴るものが欲しいと思っていろいろレビューを読みふけったりした結果、 JBL CHARGE2 というやつにした。買う前に視聴もしたりして、これくらいなら満足できそうだと納得して買って、実際部屋で聴いてみてなかなか満足できている。

ghn を Go で書いてみる

いま ghn には二つ不満があって、ひとつは新しいバージョンの Ruby をインストールするたびに gem install ghn しないといけないのがちょっとだけ面倒くさく、もうひとつは Notification API の結果 JSON から issue/pull request 等の permalink を取得する部分の実装が妙に複雑になってしまっている。

で、せっかくなら Go で書き直してみたらどうなるか試してみようと思って基本的なところだけ書いてみた。

gist.github.com

いくつか学びがあった。

  • Ruby 版のほうのいまの実装は /notifications の結果 JSON を文字列操作して無理やり permalink を組み立てており、なんでそうしたのか覚えてないが、それ API 用の URL にもう一回リクエストして html_url をとればいいだけじゃん、そこはスレッドとかで並行処理できるから遅くもならないはずだよね、と、よりスマートな解に気づけた
  • Go で並行処理といったら goroutine というのを使うのだろ?と思っていろいろなブログ記事とかをコピペしながらどうにか動作させることはできたが、 Mac OSX の open コマンドのなんか制約で、短時間のうちに呼び出しすぎるとエラーがでてしまうので sleep 1 しているので、結局 URL 取得部分を並行処理してもコマンド全体の実行速度にたいして影響なくて意味なかった

理解できてないところ

  • for ループの中で goroutine を呼び出し?て channel に string を入れて、ループが終わった == すべての URL への GET が終わったあとで channel にメッセージを送った? string を全部取り出したい、というとき、一つ目の for ループの外に <-ch を一行書いただけだと URL が一個しかとれず、配列の要素全部とるみたいなことも channel にたいしてできるものなのかわからなかったので、同じ回数 for ループを回して一個ずつとりだす、ということをやったが、これが正解とは到底思えない

ワタリドリ

AWA で適当なプレイリスト選んだら流れて気に入って Apple Music で今日一日中ほぼこれだけ聴いてた。イントロのアイリッシュっぽい感じとサビ全部の裏声なメロディがすごく好きだ。

ワタリドリ

ワタリドリ

  • [Alexandros]
  • J-Pop
  • ¥250
  • provided courtesy of iTunes

ワタリドリ

ワタリドリ

  • [Alexandros]
  • J-Pop
  • ¥250
  • provided courtesy of iTunes

PV はそこまででもなかった。同じバンドの別の曲のやつのほうがかっこよかった。サビの入りの半身ジャンプして弾き下ろすところは躍動感があって疾走感ある曲に合っててすごくよかった。


[Alexandros] - ワタリドリ (MV) - YouTube