May 25, 2014

YouFMがLast.fmと連携可能になりました。

YouFMはYouTube動画を音楽プレーヤーのように再生できるChrome Extentionです。
https://chrome.google.com/webstore/detail/youfm/gbpebippikipomjijplmbepmginobjbj

今回のアップデートでv0.6系となり、Last.fmとの連携が可能になりました。

Last.fmと連携すると、scrobbleが可能になります。(v0.5から。)
ただし、動画名が"{artist name} - {track name}"の動画に限ります。ハイフンの数が1つの場合のみに反応します。

また、Last.fmがあなたのLast.fmアカウントに対してrecommendするアーティストの関連動画を、ラジオモードで連続再生できるようになります。(v0.6から。)

以下、それぞれの設定方法です。

YouFMの右上の歯車マーク、あるいは拡張の管理画面から、オプション画面に移動します。


"Authenticate with Last.fm for scrobble."をクリックします。

Last.fm側で、YouFMからのアクセスを許可します。

Last.fm側での認証が完了したら、試しに一曲再生してみます。前述のとおり、動画名が"{artist name} - {track name}"の動画に限ります。そして、Last.fmにscrobbleできているか確認します。

これで、認証は完了です。

また、オプション画面を開くと"Enable Last.fm Radio Mode:"というチェックボックスが追加されます。

このチェックボックスをONにしておくと、従来のラジオモードの選曲基準が、Last.fmのrecommendするアーティスト基準に変わります。(従来の基準は、単純に、関連動画でした。)

ぜひ使ってみてください :)

May 21, 2014

Ubuntu13.10で Call to undefined function idn_to_ascii() が出た

PHPで idn_to_ascii() と idn_to_utf8() という関数を使うと、日本語ドメイン名をASCII形式に変換したり、戻したりできます。
http://www.php.net/manual/ja/function.idn-to-ascii.php
http://www.php.net/manual/ja/function.idn-to-utf8.php

Ubuntu13.10上で使おうとしたら "Call to undefined function idn_to_ascii()" が出たので、その対応です。PHPは5.5系でした。
$ sudo apt-get install php5-intl
ちなみにWin(と言うかXAMPP)の場合は "/xampp/php/" にある "icu**.dl" 一式を "/xampp/apache/bin/" にコピーしてあげると上手くいきました。
http://stackoverflow.com/questions/1451468/intl-extension-installing-php-intl-dll

(MacユーザなんですがMacでの対応方法はまだ調べていない。。。そもそも日本語ドメイン名の必要性がよくわからない。)

May 20, 2014

iTermで接続先のホスト毎に背景色を変える

同時に複数ホストに接続していると、ステージングのつもりがうっかり商用。とかあり得なくもないので、調べてみました。

すると、既にやっている方がいたので、試してみました。(一応、自分のgistにもフォークしておきました。)
https://gist.github.com/BugRoger/789887

このスクリプトを適当な場所に保存して、実行権限を与えます。
$ cd /usr/local/bin/
$ wget https://gist.githubusercontent.com/BugRoger/789887/raw/e19958a97530f6be7f00f6d0526e56cbe4c42d73/ssh-background
$ chmod +x ssh-background
スクリプトの最後の方にある、ホスト名判定部分やカラーコードを、適当に書き換えます。文字色、背景色、透過度を変えられるみたいですね。

~/.bash_profile にsshコマンドのエイリアスを登録します。
alias ssh=/usr/local/bin/ssh-background
設定を反映します。
$ source ~/.bash_profile
$ alias
alias ssh='/usr/local/bin/ssh-background'
これで、ssh接続して、背景色が変わればOKです。

May 18, 2014

LaravelでOAuth2プロバイダを作ってみる

2014-05-18 追記:
このサンプルでは、OAuth2のプロバイダとクライアントが共存しています。また、飽くまで処理フローを確認するための簡単なサンプルですので、適宜、プロジェクトを分けたり、バックグラウンド処理にするなどの工夫が必要になります。

--

たぶん、初Laravelネタです。

"oauth2-server-laravel"という、OAuth2プロバイダ(クライアントではない)用のパッケージがあったので、試してみました。
https://github.com/lucadegasperi/oauth2-server-laravel

このパッケージは、以下のライブラリをLaravel用にラップしているようです。
https://github.com/thephpleague/oauth2-server

また、今回作成したサンプルプロジェクトを、GitHubにアップしてあります。
https://github.com/mamor/laravel-oauth2-server-sample
このサンプルプロジェクトは、以下の手順で動かせます。

ソースをインストールします。
$ git clone https://github.com/mamor/laravel-oauth2-server-sample.git
$ cd laravel-oauth2-server-sample
$ composer install
次に、app/config/database.phpを正しく設定します。また、app/config/app.phpの"url"をブラウザからアクセスするURLに変更します。後述のシーダと、フォームの初期値で使用している為です。私の手元の環境(掲載しているキャプチャ)では"http://192.168.33.10/oauth2"になっています。

インストールと設定が済んだら、以下の順でマイグレーションを実行します。
$ php artisan migrate --package="lucadegasperi/oauth2-server-laravel"
$ php artisan migrate --seed
トップ画面にアクセスすると、(リダイレクトされて)ログイン画面が表示されます。
以下でログインできます。
email: your-email@example.com
password: password

ログインに成功すると、OAuth2認証用のフォームが表示されます。必要な値はセットされているので、そのまま送信ボタンを押してOKです。

OAuth2認証に成功すると"code"値が付いて"/callback"にリダイレクトされます。この画面は、access_tokenを発行するためのフォームです。この画面でも、必要な値はセットされているので、そのまま送信ボタンを押してOKです。

access_tokenが発行されました。

試しに、各scopeにアクセスしてみます。

/scope1?access_token={発行されたアクセストークン}

/scope2?access_token={発行されたアクセストークン}

/scope3?access_token={発行されたアクセストークン}

scope3だけがエラーになればOKです。前述のリクエストで"scope"値を"scope1,scope2"としている為です。

ソース周りは https://github.com/mamor/laravel-oauth2-server-sample/commits/master をご覧頂ければと思います。

細かな機能はまだ把握できていませんが、OAuth2そのものの仕様と、冒頭に記載したOAuth2ライブラリの説明やソースを確認しながら。という感じでしょうか。

以上です。