‘tip’ タグのついている投稿
google reader – スター付きアイテムのRSSフィード
google readerはすごい。
検索機能、ショートカットや、AJAXによるスムーズでシンプルなUI。
でも、自分が読んでいるRSSフィードのフィードも出力してくれるのは結構隠れたいい機能だと思う。これがどういう事を意味するかというと、、、
- Aさんが、毎日100個のニュースやブログのフィードを見ているとする。Aさんは自分の観点で「これは!!」と思うエントリ(10個くらい)にスターを付ける。
- Aさんの友人で、Aさん程ネットのヘビーユーザーではないBさんは、Aさんの「スター付アイテム」のRSSフィードを購読する事で、Aさんが重要だと思ったことを10分の1の労力で発見できる。しかも「Aさんの目きき力」も借りることになる。
フィードの設定
他人にフィードを公開するには、フィードやタグについて個別に共有設定で「公開」と設定しなければ、ならない(FeedのURLは共有設定をしてなくても分かるが、未公開だとユーザーIDとPWで認証が必要になる)。
やり方は簡単。
- [設定] リンクをクリックします。
- [タグ] をクリックします。
- チェックボックスを使用して、共有するタグを選択します。 代わりにスター付きアイテムを共有することもできます。
- [共有を変更] メニューから [公開] を選択します。
エントリごとに、共有するという手もあるがちょっと手間な気がする。こちらはフッター部分の「共有」をクリックするだけ。後は、共有アイテムのフィードURLを登録すればよい。

↓下記のような記事を見ると、Webの広がりというか可能性を感じずにはいられない…
小林氏はこれらのWebユーザーをさらに、さまざまなWebコンテンツを無償で創造する「クリエータ」、Web上の情報を関連付ける「エディタ」、Web上の情報の価値を判定する「バリュア」の3種類に分類。閲覧のみのレーシーバーを3284万人、クリエーターを783万人、エディタを 1476万人、バリュアを951万人と推測。さらにそれらすべてを行う人々をCEVと定義して234万人と推測し、その中でも毎日活動している人が63万人いるとした。
NRIの調査によると、CEVが1日にWebに費やす時間は3.9時間なので、そのうちの半分をCEV活動に費やしているとすると、1日2時間×365日×63万人で約4億時間になり、東京都の最低時給739円で換算すると年間3400億円規模にもなると試算した。
エレクトロニクス市場における日本の地位は大きく低下
BtoCのEC市場は2012年に10兆円規模に~NRIがトレンド予測
http://www.atmarkit.co.jp/news/200712/19/nri.html
Podcast × 速聴 – Podcastを速聴してみる(新刊JP)
Podcast に登録している番組の数が増えてきたというのと、以前ちょっと興味を引かれた速聴なるものを試したいと思い、「じゃあ、Podcastを速聴してみよう」と企ててみました。
速聴については、簡単に言えば
「普通に話しているスピードの3-4倍以上で話を聞くと、普段の言語処理を行う際には使用されない脳の部分が活性化され、記憶力などの脳力向上に役立つ」
というものです。
どうやって、Podcastを3-4倍速で聞こうか?という部分ですが
- Podcast再生時にipodの再生速度を変更する機能を使用する
- Podcastに登録される前に、mp3の音声データを編集しておく(3-4倍速に変換しておく)
という2種類の方法が考えられると思いますが、1の方法では
- せいぜい20%くらいの速度変換しかできない
- オーディオブックしか再生速度を変えられない
という事で、自宅にある余っているLinux+ Apacheを使用して自分用のフィードに変換(mp3 + rssを編集)して、それをPodcastに登録する事にしました(下図)
最近個人的によく聞く、新刊JPで配信している新刊のダイジェスト(火木土更新)での例。
- rssファイルを新刊JPのサイトから取得
- 1のファイルをparseして、各エントリのmp3ファイルをダウンロードする。
- ダウンロードしたmp3を3-4倍速に変換。
- 変換済みのmp3ファイルのパスを、1のrssファイルでの各エントリの ファイルとして書き換える
- 変換済みのmp3ファイル+編集済みのrssファイルをapacheのディレクトリに配置する。
- iTuneから、5のurlを指定してpodcastを登録する
Linuxマシンの方で必要なものは下記ですが、sox以外はデフォルトで使用できるのではないでしょうか?
- ruby
- 本体
- ライブラリ
- rexml
- open-uri
- Linuxコマンド
- wget
- sox (mp3編集ツール)
処理としては、上記のツールをつなぎ合わせているだけのようなものなので、
シェルでもできとおもいますが、勉強も兼ねてRubyで書いてみました。
あとは、更新日にあわせてCronに登録しておけばよいでしょう
#!/usr/bin/ruby require 'open-uri' require 'rexml/document' # global variables $feed_org = "http://www.sinkan.jp/rss.xml" #新刊JPダイジェストのRSS $data_dir = "/var/www/xxx/xxx/" #Linuxのhttpdディレクトリ $data_dir_url = "htttp://hostname/xxx/xxx/" #↑のurl $username = "username" #新刊JPのユーザー名(メールアドレス) $password = "password" #パスワード class Feed def initialize(feed_path) @feed_path = feed_path @rss_file_name = @feed_path.split(/\//)[-1] @feed_local = $data_dir + @rss_file_name doc = REXML::Document.new(open(@feed_path).read) @rss_root = doc.root @feed_items = Array.new @rss_root.elements.to_a("/rss/channel/item").each { |i| @feed_items.push( FeedItem.new(i)) } end def comp_feed_entry(org_idx,stretch_rate) @feed_items[org_idx].stretch_rate = stretch_rate @feed_items[org_idx].download_mp3($username,$password) @feed_items[org_idx].time_stretch end def comp_all(stretch_rate) for i in 0..@feed_items.size - 1 comp_feed_entry(i,stretch_rate) end @rss_root.elements["/rss/channel/title"].text = "[" + stretch_rate.to_s + " ]" + @rss_root.elements["/rss/channel/title"].text + "_" end def save_feed local_doc = File.open(@feed_local,"w") @rss_root.write local_doc end end class FeedItem def initialize(rss_node,stretch_rate = "") @rss_node = rss_node @stretch_rate = stretch_rate # rss node mapping @title = @rss_node.elements['title'] @mp3_path = @rss_node.elements['enclosure'].attributes['url'] @mp3_name = @mp3_path.split(/\//)[-1] end def time_stretch puts @stretch_rate stretched_mp3_name = @mp3_name.sub(/(.+?)\.(.+)/) {|m| $1 + "_" + @stretch_ rate.to_s + "." + $2 } stretched_mp3_path = $data_dir + stretched_mp3_name command_line ="sox " + @mp3_path + " " +stretched_mp3_path + " stretch " + @stretch_rate.to_s puts command_line system(command_line) @title.text = "[" + @stretch_rate.to_s + "]" + @title.text @rss_node.elements['enclosure'].attributes['url'] = $data_dir_url + stretche d_mp3_name end def download_mp3(un = "",pw = "") if File.exist?($data_dir + @mp3_name) then File.unlink($data_dir + @mp3_name) end if un != "" || pw != "" then command_line = "wget -P " + $data_dir + " --user=" + un + " --password=" + pw + " " + @mp3_path else command_line = "wget -P " + $data_dir + @mp3_path end system(command_line) @mp3_path = $data_dir + @mp3_name end attr_accessor :rss_node attr_accessor :title attr_accessor :stretch_rate end fd = Feed.new($feed_org) fd.comp_all(0.3) fd.save_feed

