読者です 読者をやめる 読者になる 読者になる

Loftal飯窪ブログ

Loftal飯窪の個人ブログです。

Raspberry Pi (Raspbian Jessie)でRadiko録音(外伝)

Raspberry Pi

Raspberry Piのcronで回しているはずのRadiko録音スクリプトが2週間ほど前から動いていないことが判明しました。
とりあえず、以前書いた(詳細はこちら)「rec_radiko.sh」を実行してみることに。
すると、

RTMPDump v2.4
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
WARNING: No application or playpath in URL!
Connecting ...
WARNING: Trying different position for server digest!
INFO: Connected...
ERROR: rtmp server sent error
ERROR: rtmp server requested close

どうやらRTMPDumpでエラーが起きている模様。しかしエラーメッセージでググッてみるもなかなかお目当ての回答が見当たりません。Radiko側の仕様変更で録音できなくなってしまったのだろうか……。

まさかのTBSラジオRadiko撤退?

とりあえずRadiko公式ページ http://radiko.jp/ へアクセスしてみることに。いつも聴いているTBSラジオを再生しようと番組表をスクロールしていると……

なんと……!

TBSラジオがなくなっているではありませんか!!!

最近のラジオ界の大きなニュースとして、TBSラジオPodcastから撤退したのは皆さんご存知の通りかと思います(?)が、いつの間にRadikoからも撤退しているとは!これはイギリスのEU脱退並の大ニュースです!

……と思ったのですがよくよく見てみると何かがおかしいことに気が付きました。

HBCラジオSTVラジオ……???聴いたことないラジオ局ばっかだ……。」

そうです!北海道のラジオ局しか並んでいないのです!どうやらルータの再起動によりIPアドレスが変わり、なぜか「北海道」と判定されてしまったようです。バリバリ東京に住んでいるというのに。

原因はRadikoの地域判定!

ということで、Radikoのエリア判定について調べてみたところ、以下のフォームから「地域判定が間違っていますよー」と伝えることができるみたいです。

お問い合わせ | radiko.jp

アクセスしてみると確かに「現在の地域判定結果」が「北海道」になっています。

f:id:moraine:20160702201543p:plain

「修正後の地域判定結果」を「東京」にして送信しておきました。3日以内には修正されるようなので少し待ってみたいと思います。

おわりに

普段は昔ながらのラジカセ(!?)でラジオを聴いているので、気づくのが大分遅くなってしまいました。皆さんもRadiko録音がうまく動いていないときは、まずRadikoにアクセスして地域判定を確認してみてください。


追記

2日程で無事「東京」に戻りました。これで安心して眠れます。

Raspberry Pi (Raspbian Jessie)でRadiko録音

Raspberry Pi

ラジオ好きな自分にとって今や欠かせないアイテムとなっているRaspberry Pi。Radiko録音用サーバとしてバリバリ稼働中です。いつもありがとう。

そんなRaspberry Piですが、調子が悪くなったため新しいmicroSDにOSを入れ直すことにしました。すぐに終わるかと思いきや、思ったより時間を取られてしまったのでメモがてら色々書いておきます。

環境

  • 本体: Raspberry Pi Model B+
  • OS: Raspbian Jessie (2016年4月現在最新ver)

(本体は1です。今や3まで出ているというのに……。でもRadiko録音程度なら1で十分かと。)

必要なものをインストール

まず初めにRadiko録音に必要なツールをインストールします。

以下を参考にコマンドを実行してみました。
qiita.com

sudo apt-get install rtmpdump swftools libxml2-utils ffmpeg

……が、これが動きません!
どうやら原因はffmpegDebian Jessieではapt-getでffmpegをインストールできないみたいです。(以前はそんなことなかったはずですが。)

とりあえず他のものだけインストールしておきます。

sudo apt-get install rtmpdump
sudo apt-get install swftools
sudo apt-get install libxml2-utils

特に意味はないですが一つずつ。丁寧に。ゆっくりと。子猫を撫でるように。

次に、以下を参考にffmpegのインストールを試みました。
d.hatena.ne.jp
……が、いつまで経っても終わりません。途中から画面も動かなくなりやむなく断念。別の方法を探すことにしました。(Rapberry Pi 1では非力過ぎたのでしょうか?)

しかし「Raspberry Pi Radiko録音」等で検索してもffmpegを利用したものばかり。「Raspberry PiでRadiko録音」の需要はあまりないんでしょうかね。。

最終的に、以下に辿り着きました。
superuser.com
3つの方法が書かれていますが、一番お手軽そうなavconvをインストールすることに。要はffmpegDebian公式にサポートされていないので同じようなことができる別のソフトavconvを入れてみよう、ということです。

sudo apt-get install libav-tools

一瞬で終了!!!今までの苦労は何だったんだ、というくらいあっけなく完了しました。

ということでこれで無事Radiko録音に必要なソフトがインストールできました。(まぁ実際録音だけならffmpegもavconvも必要ないんですけどね。mp3等へ変換するためのソフトなので。)

Radiko録音スクリプト

後は多くの方々が公開しているスクリプトに多大なる敬意を払いつつ拝借するだけです。一点だけ「ffmpeg」の部分を「avconv」に変える必要があるので注意してください。

自分用に少しカスタマイズしたスクリプトですが、一応載せておきます。
簡易Radiko録音スクリプト · GitHub
カスタマイズポイントは以下の通り。

  • ffmpegをavconvに変更
  • 連続録音対応(1:00-3:00, 3:00-4:00のように連続して番組を録音しようとするとうまくいかなかったので、これで大丈夫なはず。)

使い方は、以下のような感じです。

./rec_radiko.sh TBS 60 dirname prefix

実行すると、TBSラジオを120分録音して /dirname に prefix_YYYYMMDD.mp3 が保存されます。(予めmkdir dirnameで適当なディレクトリを作成しておいてください。)

以下のようにcronに登録しておけば毎週決まった時間に自動録音することができます。

0 1 * * 2 /home/pi/rec_radiko.sh TBS 120 radio 深夜の馬鹿力
0 1 * * 3 /home/pi/rec_radiko.sh TBS 120 radio 爆笑問題カーボーイ
0 1 * * 4 /home/pi/rec_radiko.sh TBS 120 radio 不毛な議論
0 1 * * 5 /home/pi/rec_radiko.sh TBS 120 radio メガネびいき
0 1 * * 6 /home/pi/rec_radiko.sh TBS 120 radio バナナムーン
0 1 * * 0 /home/pi/rec_radiko.sh TBS 120 radio コント太郎

連続した番組録音も可能です。

0 3 * * 0 /home/pi/rec_radiko.sh TBS 60 radio 東京ポッド許可局
0 4 * * 0 /home/pi/rec_radiko.sh TBS 60 radio デブッタンテ

それでは、快適なラジオLifeを楽しみましょう!

プログラミングを教えて気づいたこと

雑記

先日、大学での最後の授業を終えました。大学の非常勤講師としてプログラミングを教える授業です。

初めは、「自分なら楽しく分かりやすく教えることができる!プログラミングを好きにさせる!!」なんてマックスコーヒーのように甘ったるい考えを持っていました。……が、現実はそんなに甘くないですね。エスプレッソでした。教えることの難しさを痛感しました。

3年間という短い期間でしたが、自分なりに試行錯誤しつつ、最終的にはそれなりの授業ができるようになったような気がします。この経験を元に、今回は「教える」という視点から見た「プログラミング言語」について書いてみたいと思います。

はじめに

教えていた言語はJavaですが、Javaに限らず一般的な話として書いていきます。また、ほとんどの学生がプログラミング未経験のため、かなり初歩的な内容となっています。

個人的な印象として、初学者が特に躓きやすいのは以下の3点です。

  • 変数
  • 「=」と「==」
  • インデント

順番に見ていきましょう。

「変数は入れ物」じゃダメ?

まずは「変数」です。プログラミングになくてはならないものナンバー1ですね。変数のイメージを掴んでもらうために、「変数とはデータを入れておくための入れ物である!」と教えることが多いかと思います。もちろんイメージ的にはこれで良いと思います。しかしこれだけでは不十分です。混乱してしまう人が続出します。こんなところで脱落者を出すわけにはいきません!まだ初めの村を出たばかりです!

なぜ混乱してしまうのか。それは「変数名」と「そうでないもの」の区別が付けられていないからです。画面には int, print, public, ……など色々な英語が表示されているはずです。まずこれらとの違いを教えなければなりません。また、変数名の付け方にも注意が必要です。「prime」「width」「height」など下手に変数名に意味を付けてしまうと「これは(プログラミング的に)意味のある単語なのか?それとも変数名なのか?」と更に混乱してしまいます。「命名規則」や「予約語」を教えればいいじゃん!という話ではありません。分からない人にさらに分からないことを教えたらそれこそ Game Over です。初めのうちは分かりやすく、x, y, a, b 等の変数名を使うのが良さそうです。hogehogeってやつもこのような意図で生まれたのかもしれませんね。逆に混乱しそうですが。

PHP」の変数名は素晴らしい!

そんな中、キラリと光る言語がありました。そう、「PHP」です!色々突っ込みどころのある言語かもしれませんが、PHPは上記の問題を鮮やかに解決しています。PHPの変数名には必ず「$」が付くのです。これでどれが変数であるのか一目瞭然ですね!PHPくん、優しい!

「=(イコール)」と「==(イコール×2)」の違い

「=」もプログラミングになくてはならないものナンバー1ですね。「変数」と同率1位です。「=」で「代入」、「==」で「等しい」を表します。これは混乱しますね。誰でも一度は書いたことがあるのではないでしょうか。if( a = 1 )と。

ほとんどすべて(?)のプログラミング言語で「=」は「代入」を表すと思います。もうこれは常識みたいなものですね。今更変えようがありません。しかしこれは「初学者に教える」という視点で見ると本当に分かりづらいです。なぜこの記号にしてしまったのだろうか。「a <- 1」みたいな方が分かりやすくないですか?しかし頻出するものに半角記号2つというのもねぇ……。となると「a < 1」でしょうか。いや、これだと不等式になってしまう……。じゃあ「a << 1」はどうですか!シフト演算?そんなもん要らん!……結局「=」ですね。ごめんなさい。

インデントの難しさ

インデントもプログラミングになくてはならないものナンバー1ですね。(はい、同率1位です。)インデントとはプログラミングを見やすくするために入れるものです。これが教える側としてはとても厄介!なぜならあってもなくても動くからです。そもそも初学者にとってソースコードなんてアラビア語みたいなもの!何が見やすいコードかなんて分かるはずもありません。ということで } 抜けエラーの嵐が吹き荒れました。

Python」のインデント

そこで「Python」です!Pythonはインデントが構文規則として決められています。つまり「あってもなくても良い」ではなく「ないとダメ、絶対!」なわけです。「Python」は学ぶだけで自然とインデントが身につくというお得な言語!更にコンパイル不要だったりヘビのアイコンが可愛かったりするので、割りと初学者に優しい言語かも?(※個人の感想です。)

まとめ

プログラミングを教えていて「分かりづらいな」「教えづらいな」と感じたことについて書いてみました。そのような視点で見ると様々な言語の良いところ・悪いところが別の角度から見えてきたりします。もちろん慣れてしまえば大したことはないのですが、些細なことで「よく分からない」→「嫌い」になってしまうのはとてももったいないことだなと思いました。

リモート雑用お手伝いサービス「コビトト」をリリースしました!

Loftal コビトト

f:id:moraine:20151120151209p:plain

先日Loftalより新サービス「コビトト」がリリースされました!

「コビトト」とは

一言で言うと、

「ワンコインで利用できるリモート雑用お手伝いサービス」

です。
具体例を挙げると、以下のような作業を依頼することができます。

  • お店の予約
  • 必要な書類等の調査・リストアップ
  • データ入力
  • 文字起こし
  • etc.

もちろんここで挙げたもの以外でも、リモートで可能な作業(PCやインターネット、電話等を用いた作業)であれば何でも依頼することができます。

イメージとしては、オンライン秘書・お手伝いといった感じでしょうか。
仕事を引き受けるのはLoftalで面接・研修を受けたワーカーのみであり、機密保持の徹底等も行っているため安心してご利用いただけます!

「コビトト」の使い方

使い方はとてもシンプル!
1チケット500円(税込)最大20分の作業を依頼することができます。

例えば60分のデータ入力作業を依頼したいときは、チケットを3枚購入し、「コビトト」に依頼するだけでOKです。
後はこちらで適任のワーカーを人選し、すぐに作業を開始いたします。
従来のクラウドソーシングサービスのような面倒なやり取りは一切必要ありません。

また、依頼された作業がすぐに終わった場合、使用されなかった分のチケットは返却いたしますのでご安心ください。
例えば、60分(チケット3枚分)の依頼に対して40分(チケット2枚分)で作業が終了した場合、残りのチケット1枚はご返却いたします。

おわりに

「コビトト」は、とにかくシンプルに設計しています。
ワンコインから利用できるので、ぜひ気軽に利用してみてください。

本サービスが、日常生活や仕事における煩わしさから解放されるための一助となれば幸いです。

https://cobitoto.jp/

日常会話に出てくるとモヤっとする数学用語

雑記

雑記的なものも書いていこうと思うので、僕の好きな数学に寄せた話でも。

数学を日常生活で使う機会なんてほとんどありませんよね。しかしたまに「数学用語」を耳にすることがあります。もちろん数学的な意味で使っているわけではなく、ざっくりとした感じで。日常会話なのでなんとなく意味が伝われば良いのは分かります。分かりますが、数学をやっている身としてはどうしてもモヤっとしてしまいます。「え?それどういう意味で使ってる?」と聞きたくなります。聞きませんが。
ということで、気にするほどでもないけど日常会話で出てくるとなんとなくモヤっとする数学用語をいくつか挙げてみたいと思います。

「ベクトル」

「大きさ」と「向き」を持つ量のことですね。日常会話では、「あなたと私の考えはベクトルが違うね」などのように使ったりします。「方向性」的な意味で使うことが多いでしょうか。しかし数学的には「向き」だけでなく「大きさ」という意味も含まれています。これだけだと「大きさ」が違うのか、「向き」が違うのか、はたまたその両方が違うのか分かりません。「考えている方向性は同じだけどおまえの考えは浅いんだよ!」という意味で使っているのかもしれません。

そこで、日常でこのようなモヤモヤ感を味わわないためにはどうすれば良いか。それはベクトルが「違う」ときではなく「同じ」ときに使えば良いのです。「君とはこのプロジェクトにかけるベクトルが同じだね!」のように使えば「大きさ」も「向き」も揃っているということが分かりますね。零ベクトルだったら困りますが。

「確率」

これは悪しき言葉。諸悪の根源。稀代のワル。"確率" is more evil than devil.
「確率」という言葉を聞くたび、「確率変数は?分布は?」と考える癖が付いてしまっています。そのくらい「確率」という言葉はちゃんと定義する必要があるのです。数学では。

「今度の飲み会来れる?」
「まだ分かんない。行ける確率60パーくらいかなー。」
「(゚Д゚)ハァ?確率変数は何?」

まぁそこまで目くじらを立てるものでもないので、別に良いのですが。問題は「確率」と「率」の混同です。英語で言うと「probability」と「rate」でしょうか。これは日本語の問題もあると思いますが、別物なのでちゃんと使い分けてほしいところです。
「率」とはいわゆる「割合」のこと。10回戦って7回勝ったから勝率70%、みたいな感じで使います。これを「勝つ確率70%」というのは間違いです。いや「言葉」なので間違いかどうかはどうでもよく、とにかくモヤっとします。それは「率」だろうと。

ということで「率」の意味で「確率」を使う「率」を減らしていきましょう。

「それ以上でも以下でもない」

これって数学用語なの?・・・という疑問はさておき、この言葉は「それ」であることを強調するときに用いる言葉です。例えば、「彼女とは友達で、それ以上でもそれ以下でもない!」といった感じです。この場合、彼女とは「他人」でもなければ「恋人」でもない、「友達」なんだということを強調していることになります。恐らく彼女との浮気を疑われているのでしょう。
しかし誰もが一度は思ったことがあるのではないでしょうか。

「以上でも以下でもないって存在しなくない?」

と。
数学的に考えれば、  a (\in \mathbb R) を定数として「 a \leq x でない」かつ「 x \leq aでない」を満たす  x (\in \mathbb R)ということになります。もちろんそのような  x は存在しません。「解なし」が正解です。つまり、彼女との関係は「解なし」という何とも哲学的な関係になりますね。
少し気になるのが「以上」「以下」という言葉からも分かる通り、この言葉を使う際は何かしらの「順序」が背景に潜んでいるということです。先ほどの例でいうと「他人 < 友達 < 恋人」という順序があります。順序なんて意識せず使うと思いますが、言葉の裏に潜む順序を探ってみるのも面白いかもしれません。

因みに中国語では「以上」「以下」は「=(イコール)を含まない」と聞いたことがあります。もしかしたらこの言葉は中国から入ってきたものなのでしょうか。

まとめ

日常会話に出てくるとモヤっとする数学用語を挙げてみましたが、共感できたでしょうか。もちろん最初に述べた通り、日常会話なので数学的な厳密性なんてどうでもよく、曖昧でも意味が伝われば良いのです。数学用語を軽い意味で使ったからといって攻め立てるつもりはありません。むしろ数学用語が日常で飛び交うくらい数学が世の中に浸透していってほしいと思っています。

「君と僕の考えは固有ベクトルが同じだね。」
「ウチらマジ共役複素数じゃね?」

てきな。

「比較する」に特化した新サービス、『比較payG』を正式リリースしました。

比較payG

こんにちは。
Loftalの飯窪です。

以前よりベータ版として公開していました『比較payG』を、正式リリースいたしました!
デザインもリニューアルし、より使いやすくなっているかと思います!

ぜひ一度アクセスしてみてください!

hikaku-payg.com

比較payG(ベータ版)スタートキャンペーン

比較payG

こんにちは。
Loftalの飯窪です。

先日こちらの記事でご紹介した「比較payG」にてベータ版スタートキャンペーンを行います!

キャンペーン内容

期間内にみんなが喜ぶ比較ページを作成した方に、比較ページ1つにつき500円分のポイントをプレゼントします!
応募方法は比較ページを作成して公開するだけです。

ただし、キャンペーン対象となるかどうかはこちらで審査いたします。
・・・が、そんなに厳しい審査ではありません。
ちゃんとしたページであればOKです!
これだと曖昧すぎるのでもう少し基準を明確にしておきましょう。

審査基準

最低限、以下の事項は守るようにしてください。

  • 正確な情報を掲載する。
  • 比較項目・アイテムが少なすぎない。
  • 既存のページを真似しない。

つまり数分でテキトーに作ったページはダメということですね。
また、既にあるページの真似はもちろんNGです。

ただし、テーマが同じであっても中身が異なっていれば問題ありません。
例えば同じ家電の比較でも、比較する基準、アイテムの選び方、ランキングなど、人によって個性が出るはずです。
他の人が既に作っているから、、といって作るのを止める必要はありません!

テーマについては、ジャンルは一切問いません。
沢山の人に役立つ情報からニッチなものまで、何でもOKです!

ポイントについて

本キャンペーンでプレゼントするポイントは比較payG内のポイントであり、3,000円から換金することが可能です。
キャンペーン以外でも、作成した比較ページが多くの人に見られれば見られるほどポイントが貯まっていきます。

作成した比較ページを周りに広めてポイントを獲得していきましょう!

キャンペーン期間

キャンペーン期間は、2014年10月10日までです。
期間内に公開した全ての比較ページが対象となります。
もちろん期間を過ぎてもポイントは継続されます。

最後に

みなさんのご投稿をお待ちしています!
比較payGへのご登録はこちらから。

ぜひ比較payGを一緒に盛り上げていきましょう!