2014-06-01

Ubuntu 14.04 で再生されてる音を録音する方法

もうかれこれWindows→UbuntuへメインOSを変更して10ヶ月ほどが経ち、正直ほぼ何の問題もない今日このごろです。

そして、今回は以前windowsでもやったことがある「PC内で再生されている音を録音する」というのをUbuntuでもやってみたくなり、挑戦したところあっさりと実現できましたのでここに備忘録としてその方法を残したいと思います。




[最終結論] Audacity をインストールすれば後は設定だけでOK。


まず録音をするソフトウェアをインストールしましょう。
今回はターミナルを使わず簡単にインストールできる「Ubuntuソフトウェアセンター」を使います。

検索ボックスの中に「Audacity」と入力して検索すれば以下のようなマークのソフトウェアが出てくるのでそれをインストールしてください。



インストールが完了したらこのAudacityを開きましょう。

そして、音声の調整ができる pulseaudio というものがすでにインストールされているはずですので、これも起動してください。
(もしインストールされていなければ、Audacityと同様にUbuntuソフトウェアセンターからインストールできます。)

では、以下のようにAudacityの録音ボタンをクリックして録音を開始します。




次に、pulseaudio の方で以下のように、「録音」タブの中にある「ALSACapture から」の部分を

Monitor of 内部オーディオアナログステレオ

へ変更します。
この設定でPC内で再生されている音を録音することができます。

※なので、録音が終わったら元に戻しておくほうがいいと思います。試してませんが、おそらくこの設定のままでスカイプとかができなくなってしまうので。




さぁ、これで準備は万端です。
後はつないだ電子ピアノなどで音を鳴らせば Audacity 内で録音されていきます。

※ちなみにパソコンのスペックや環境によっては録音の遅延が起こり、なんともぼやけた音が録音されることがあります。その際は他のアプリケーションを閉じるなど工夫してみてください。

以上です。
おそらく他にもいろいろな録音設定があると思うのですが、今回のケースでは何の問題もなかったのでもし不具合が起こったら、また追記したいと思います。


ではでは。
最後に僕の中で一番天国に近い場所、バンクーバーの写真をご覧ください。^-^


2014-05-14

Laravel 4 のパスワード・リマインダーのメール件名を追加&日本語化

前回の記事に引き続き人気上昇中のPHPフレームワーク「Laravel4」について書きます。
というのも、このLaravelがホントにいたれりつくせりで開発者として感動させられるからです。

特にページネーションはホントに何もかもやってくれますし、データベースのAND、OR検索などもグループ化することで複雑なものさえも簡単に実現してくれます。

ただ、だからこそ最近見たネット記事で「プログラムさえ将来機械化してしまうから職がなくなるかも」という話題に信ぴょう性を感じてしまいました。。

ま、気を取り直して、タイトルの「パスワード・リマインダーのメール件名を追加&日本語化」をご覧ください。^-^



[結論] パスワード・リマインダーの件名はデフォルトでは空白なので改造が必要。メール内容の日本語化は簡単です。


まず、基本的なパスワード・リマインダーの作成は『パスワードリマインダーとリセット』 で完了させておいてください。

では先にパスワード・リマインダーに件名を追加する方法を紹介しましょう。


1.Laravel4のパスワード・リマインダーにメール件名をセット


先ほどのリンク先の作業を済ませると、

app/controllers/RemindersController.php


というコントローラーファイルがあるので、これを開きましょう。
そして、中ほどにある「postRemind」を探します。

デフォルトでは、以下のようになっています。


public function postRemind()
{
 switch ($response = Password::remind(Input::only('email')))
 {
  case Password::INVALID_USER:
   return Redirect::back()->with('error', Lang::get($response));

  case Password::REMINDER_SENT:
   return Redirect::back()->with('status', Lang::get($response));
 }
}


ここを以下のように少しだけ改造しましょう。↓↓↓


public function postRemind()
{
 $response = Password::remind(Input::only('email'), function($message){
  
  $message->subject(Lang::get('messages.password_reminder'));
  
 });
 
 switch ($response)
 {
  case Password::INVALID_USER:
   return Redirect::back()->with('error', Lang::get($response));

  case Password::REMINDER_SENT:
   return Redirect::back()->with('status', Lang::get($response));
 }
}



簡単に言うと、$response の中にfunction を作ってその中に $message->subject() を作るだけです。

※ちなみに、Lang::get('messages.password_reminder') はローカリゼーション用なので、日本語だけでいい方は直接「パスワードのリセット: (サイトタイトル)」など件名を書き込んでください。 

はい!
以上で件名の追加は完了です。



では、次にメール本文の日本語化をしましょう。

いたれりつくせりのLaravel4ですが、ここはまだローカリゼーション対応してくれていないようです。


2.Laravel4 のパスワード・リマインダー:メール本文の日本語化


こちらはホントに簡単で、

app/views/emails/auth/reminder.blade.php


の中にある、

To reset your password, complete this form:


の部分を日本語に変更するだけでOKです。
「パスワードをリセットするためにフォームを完成させてください。」などの日本語に変更しましょう。

※もちろんローカリゼーションする場合は、


Lang::get('messages.******'); 


という具合に変更します。


ちなみに、、、


app/config/mail.php

の中にgmail の情報を書き込んでおくと、ローカル環境からでも gmailから送信することができます。
これ、すごく便利ですね。
個人的に、今後はサーバー内のメールはあまり使わなくなるかもしれません。
(でも、開発で誤送信メールには気をつけなければ!!)

ということで、設定については『Laravel4、メールの送信』がとてもわかりやすいです。^-^

以上になります。
お疲れ様でした。^^



 Hirohisa Kawaseさん、いつも役立つLaravel情報ありがとうございます!

And also thank you, satie. Your tips helped me!!

[Solved] Password reminder without subject



2014-05-10

Laravel4 に reCAPTCHA を設置する方法

今現在、業務向けにAndroidアプリを作成しているのですが、機能的にサーバーとの連携が必要なため、以前から気になっていたPHPフレームワーク「Laravel4」を使ってページを作成することにしました。

Laravel4は最近特に海外で人気なようですし、前々から「良い良い」と聞いていたので、今後のために勉強をはじめましたがやはり完全に使いこなすまでには時間がかかりそうですね。

・・・ということで、自分自身のためにも今回の記事を投稿します。

(追記)どうやら reCAPTCHAは仕様が変わったらしくこの方法ではうまく行かない場合があるようです。そのため、以下のようなパッケージを利用することをおすすめします。

Laravel 4: https://github.com/mewebstudio/captcha/tree/master-l4
Laravel 5: https://github.com/mewebstudio/captcha




[最終結論] 公開されているプラグイン本家の設置方法をみただけではうまくいきませんでした。(汗)

まずは環境の方から。

OS: Ubuntu 14.04
PHP: 5.5.9
Laravel: 4.1.28
reCAPTCHA: publicキーとprivateキーを取得しておく。

そして、laravelに設置するプラグインは「greggilbert/recaptcha」です。


では、早速作業に入りましょう!



1.プラグインの情報を追加する


まずpublicフォルダの中にある「composer.json」を開いて、require の中に

"greggilbert/recaptcha": "dev-master"

を追加。




そして、app/config/app.phpを開いて、「providers」の中に

Greggilbert\Recaptcha\RecaptchaServiceProvider

を追加します。


2.composerを使ってインストール


ターミナルを開いて、laravelをインストールしたフォルダへ移動し、

composer update

を実行しましょう。


成功すれば、上のような画面になります。


3.reCAPTCHAの情報を追加

※追記

すみません。今見なおしたら、以下のコマンドを実行する手順が抜けていました。
ホントにごめんなさい。m_ _m
php artisan config:publish greggilbert/recaptcha


app/config/packagesにファイルが作成されているので、

app/config/packages/greggilbert/recaptcha/config.php

を開きましょう。
この中に以下のように、それぞれ public_key と private_key を設定する部分があるので、ここにreCaptchaで事前に取得したパスワードを書き込みます。




はい。以上でプラグインを使う準備は完了です。



4.ビュー&バリデートに設置

まずビューにreCAPTCHAを表示するためにコントローラー内で、

$this->layout->content = View::make('home.home, array(
    recaptcha' => Form::captcha()
));

を追加。そして、ビューの中で、

<?=$recaptcha; ?>

とします。

※追記

コントローラで作成しなくても、直接 View の中で以下のように利用することもできます。

{{ Form::captcha() }}

これで以下のような画像認証が表示されます。



あとは以下のように通常通りバリデートのルールにプラグインの情報を追加してあげれば完了です。(reCAPTCHA以外のバリデートが必要な場合は適宜追加してくださいね。)


$validator = Validator::make(
array(
'recaptcha_response_field' => Input::get('recaptcha_response_field')
),
array(
'recaptcha_response_field' => 'required|recaptcha'
)
);

if($validator->fails()) {

// 認証失敗 ;_;

}


はい!
これですべて完了です。

それにしても amazon で laravel4の本を探してみましたがまだ日本語板のものってないんですね。
そのうち 海外版kindle本を買う必要が出てくるかも、と思いました。
(もしかすると今はプログラムの本とかは売れないから出さないのかな・・・?)





Greg Gilbert, thank you from my heart!
Your plug-in is really useful.:)))

2014-05-02

左右にスライドして実行するAndroid-Bootstrap 拡張ボタンを作ってみた。(ダウンロード可)

前回の記事でも書きましたが、私は今 Android-Bootstrap にハマっています。
とても便利なので。(^-^)v

ということで今回は前回に引き続き Android-Bootstrap を拡張したスライドボタンをここで公開したいと思います。




とはいえ、作業はほぼ前回と同じなので簡単に説明します。


[準備編]

1.まずGitHub からBootstrapSlideButtonをダウンロードし解凍してください。

2.Android-Bootstrap の「src」の中に「com.sukohi.lib」というパッケージフォルダを作り、BootstrapSlideButton.javaをコピー(もちろん移動でもOK)

3.次に「layout」フォルダの中に、bootstrap_slide_button.xml をコピー。

4.最後に「values」の中にattrs.xml をコピーして上書きする。


はい。
以上で準備は完了です。


[実行編]

では、実際に使って見ましょう。

使いたいレイアウトのxmlの中で、

    <com.sukohi.lib.BootstrapSlideButton
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        bootstrap:bsb_type="success"
        bootstrap:bsb_slide_mode="both"
        bootstrap:bsb_right_text="Right Text"
        bootstrap:bsb_center_text="Center Text"
        bootstrap:bsb_left_text="Left Text"
        bootstrap:bsb_text_size="16"
        bootstrap:bsb_right_icon="fa-floppy-o"
        bootstrap:bsb_left_icon="fa-times-circle-o"
        bootstrap:bsb_restorable="true"
        bootstrap:bsb_padding="10"
        bootstrap:bsb_padding_top="10"
        bootstrap:bsb_padding_right="10"
        bootstrap:bsb_padding_bottom="10"
        bootstrap:bsb_padding_left="10" />

こんな感じでタグを配置します。
(※ネームスペースとして xmlns:bootstrap="http://schemas.android.com/apk/res-auto" を忘れずに!)

プロパティの意味は以下です。

bootstrap:bsb_type ・・・ ブートストラップの色タイプ。「Default」「Primary」「Info」「Success Warning」「Danger」「Inverse」の7つ。

bootstrap:bsb_slide_mode ・・・ 右のみ、左のみ、両方にスライド可能かを決める。パラメータは「right」「left」「both」

bootstrap:bsb_right_text ・・・ 右側のテキスト

bootstrap:bsb_center_text ・・・ 中央のテキスト

bootstrap:bsb_left_text ・・・ 左側のテキスト

bootstrap:bsb_text_size ・・・ テキストのサイズ

bootstrap:bsb_right_icon ・・・ 右側のアイコン(fa-****という形。Android-Bootstrapと同じ)

bootstrap:bsb_left_icon ・・・ 左側のアイコン

bootstrap:bsb_restorable ・・・ スライドさせたあとも元に戻せるかどうか

bootstrap:bsb_padding ・・・ padding。これを使うと top, right, bottom, left を省略可。

bootstrap:bsb_padding_top
bootstrap:bsb_padding_right
bootstrap:bsb_padding_bottom
bootstrap:bsb_padding_left ・・・ 個別のpadding。


※コード内での使い方は「BootstrapSlideButton.java」の中にある「Example」を参照してください。


ちなみに今回のボタンは本日アップデートした『HTBニュース』で使われています。
ぜひ参考にしてみてくださいね。

ちなみに、このスライドボタンだけでなくチェックボックスやCalloutなどもGitHubで公開しています。もしもう少し数が多くなってきたら「Android-Bootstrap ○○」みたいな形でひとまとめにして公開したいと思います。
(・・・とはいえ、本家のBootstrap とは全く関係のないコンポーネントもありますけどね^^;)

お疲れ様でした。


2014-04-17

Stackicons もAndroid-Bootstrap で使えるようにしてみました。(ダウンロード可)

以前、「デザインが出来ないエンジニアのAndroid-Bootstrap利用方法」という記事を読んで以来 Android開発でも Bootstrap を活用しています。

なんといっても Font-Awesome の多様なアイコンが簡単に利用できるとあっていつも助けられているのですが、今回は Font-Awesome にはないアイコンが使いたくなったため、この「Android-Bootstrap」を拡張して「Stackicons」でも利用できるようにしてみましたのでGitHubにて公開したいと思います。

(※拡張、と言ってもほぼ全てAndroid-Bootstrap からのコピーですが。。^^)




[作業手順(3ステップ)]

手順としては Android-Bootstrap の FontAwesomeText とほとんど同じです。


1.Stackicons からファイルをダウンロードし、中に入っている「Stackicons-Social.ttf」をStackicons を使いたいプロジェクト内にある assets にコピーします。



2.Android-Bootstrap-Stackicons(GitHub) からZIPファイルをダウンロード&解凍。今度は AndroidBootstrap の中に「Stackicons.java」と「StackiconsText.java」を以下のように設置。



3.後は、以下のように xml にアイコン名を記述すればOKです。

<com.beardedhen.androidbootstrap.StackiconsText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="18sp"
    android:textColor="#000000"
    bootstrap:fa_icon="st-icon-amazon" />


※xmlns:bootstrap="http://schemas.android.com/apk/res-auto" の記述を忘れないでくださいね。


できました!



ちなみに上記の一覧は、ZIPファイル内に入っている 「MainActivity.java」と「activity_main.xml」を使えば見ることができます。

お疲れ様でした。




Parker Bennett, Bearded Hen and Dave Gandy, I appreciate you guys!!!

2014-03-05

GenymotionをUbuntu13.10にインストールする方法

今更ながらですが、高速Androidエミュレータの『Genymotion』をUbuntu13.10 にインストールしてみました。
前々から良いとは聞いてたのですが、通常のエミュレータでもそれほど遅くなかったのでずっとスルーしてきましたが、すこし時間ができたのでこの際チャレンジしてみました。

作業的には多少ありますが、これがまた高速です。
起動も高速、動作も高速。
新幹線を使わず飛行機で東京へ行った時のことを思い出しました。



[最終結論] Genymotion はホントに高速で動きます。インストール作業は多少ありますが、やる価値はありますよ!


では、インストールですが、多少作業することがあるので以下の3つのブロックに分けて説明します。

1.Virtualbox のインストール
2.Genymotion のインストール
3.エミュレータの使い方


〜 作業フォルダの作成 

作業にはいる前に、

/home/{あなたのユーザー名}/virtualbox

というフォルダを作っておいてください。
今回の作業でダウンロードするファイルは全てここに保存してください。

では、作業の開始です


第1部 〜 Virtualbox のインストール 

では、まずターミナル(端末)を開いてください。
そして、

sudo gedit /etc/apt/sources.list

でファイルをオープンしましょう。
そして、最後の行に

deb http://download.virtualbox.org/virtualbox/debian saucy contrib

と書いて保存&終了します。

次にpublicキーをダウンロードです。
はじめに作成した「virtualbox」フォルダへ移動しましょう。

cd /home/{あなたのユーザー名}/virtualbox

そして、

wget http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc

で、ファイルをダウンロードします。
で、virtualboxのインストールです。

sudo apt-get update
と、
sudo apt-get install virtualbox-4.3

でインストールしてください。
これで第1部は終了です。


第2部 〜 Genymotion のインストール 

では、次にGenymotionです。
まず以下のURLからユーザー登録しましょう。



上からユーザー名、メールアドレス、パスワード、パスワード(確認)、そして最後が利用規約に同意です。
送信が完了したら、入力したメールアドレスの中にアクティベーションコードが書かれたリンクがありますので、以下を参考にしてそれをクリックしてください。



はい、これでユーザー登録が完了しました。
では、次にGenymotion のダウンロードです。
以下のダウンロードページからUbuntu用ファイルをvirtualboxフォルダへ保存しましょう。


※ファイルはご自身のパソコンのあった方を選んでください。


では、実際にGenymotionのインストールをしていきましょう。
ターミナルに戻って、virtualboxフォルダへ移動します。
(そのままの人は必要ありません。)

cd /home/{あなたのユーザー名}/virtualbox

そして、ダウンロードしたファイルに対して以下のコマンドを実行します。
(ファイル名が違っている場合がありますので注意してください。)

chmod +x genymotion-2.1.1_x86.bin

と、
./genymotion-2.1.1_x86.bin


はい!これでGenymotionのインストールが完了です。
第2部は終了になります。


第3部 〜 エミュレータの使い方 

では、最後にGenymotionの起動と設定の仕方を紹介します。
ターミナルで、

cd /home/{あなたのユーザー名}/virtualbox/genymotion

でGenymotionのフォルダへ移動して、

./genymotion

で、Genymotionを起動します。
では次に動かしたい機種を設定しましょう。


右下にある「Connect」をクリックするとGenymotionのログイン情報を入力するエリアが表示されるので、そこにユーザ名とパスワードを入力し、「Connect」をクリックしてください。

すると、以下のように機種のリストが出てきますので、好きなものを選んで「Next」をクリック。
(私の場合はNexus 7 のAPIレベル19にしました。^^)


ダウンロードには少し時間がかかるのでしばらく待ちましょう。


はい!完了しました。


あとは、PlayボタンをクリックするだけでOKです。


うまく起動しました!


さらに、eclipseのDDMSを確認するときちんとデバイスとして認識されています。



後は、ご自身が作業しているAndroidアプリをeclipseから起動してGenymotionがいかに高速化を実感してみてください。
お疲れ様でした。


[参考ページ]:
Install GenyMotion in Linux/ubuntu 13.04

Your article helped me a lot.
Thank you, Linuxicle!!:)))

フェイスブックの検索履歴を消す方法【作業1分】

先日、YouTube で海外の CNETチャンネルをチェックしていたところ、フェイスブックの検索履歴を削除する方法が紹介されていたのでここでも紹介したいと思います。

私の場合は、特別見られて恥ずかしいものは出てきませんでしたが、いかにフェイスブックがありとあらゆる検索キーワードを保存しているかを実感させられました。

動画の中で「フェイスブックはぞっとする」とホストの方が言っていますがまさにそのとおりです。




[最終結論] 検索履歴は1分もあれば削除できる!

では、実際の作業に入りましょう。
まずはパソコンを使ってログインをしてください。

ログインしたら、画面の右上にある「歯車のマーク」をクリックして、さらに「アクティビティログ」をクリックしましょう。



次に、画面の左側に移動して、「他を見る」をクリックしましょう。
クリックしたらたくさんの隠れていた項目が表示されます。



そして、表示された項目の中の「検索」をクリックします。
(このページに表示されるものが今までフェイスブックで検索してきた全キーワードの履歴になります。)




では、これらを全て削除しましょう。
やり方はとても簡単です。
以下のように画面中央にある「検索をクリア」をクリック。



「全ての検索履歴を削除しますか?」
と聞いてくるので、「検索履歴をクリア」をクリック。



はい!完了ですよ♪

正直言うと最近はあまりフェイスブックをしなくなってきていますが、逆にいうとあまり利用しないのにいろんな情報をフェイスブックに保存したままにするいうのもいかがなものかなと感じました。
いいきっかけを与えてくれた CNETさん Donald Bellさん ありがとう!

では最後にネタ元の動画をどうぞ。
英語ですけど、短いので僕の説明よりわかりやすいかも^^;
(ちなみに彼のちょっとコミカルな動きは僕のお気に入りです^-^)



お疲れ様でした。