Download - 英文難易度の低いニュースを集めたWebアプリ twien
英文難易度の低いニュースを集めた Web アプリ - Twien
Yokohama.pm #10@dokechin
自己紹介 (dokechin)• たくさんの人を喜ばす( Web )アプリを作りたい人。
( @masuidrive さんの wri.pe のようなもの)• 勉強会の懇親会費くらいはマネタイズしたいと願ってい
る
自己紹介 (dokechin)
Twien とは( What ? )
http://twien.dokechin.com
アメリカ、カナダ、イギリス、オーストラリアのニュースサイトから英文難易度の低い順に、128の記事を厳選表示するキュレーションサイト
どうやって作った( How?)
動作の仕組みURL収集
• ツイッターストリーム• ニュースサイトの RSS
解析
• コンテンツの英文難易度を算出
表示
• 1 日 1 回集計(128記事を選ぶ)
• Mojolicious + Embedly API
AnyEvent::TwitterStream
XML::FeedData::Deduper
Qudo::Parallel::ManagerHTML::ExtractContent
Lingua::EN::FathomTeng
使用 CPAN モジュール
MojoliciousTeng
ノウハウ1ロードアベレージ問題
ロードアベレージ問題• ワーカープロセスを起動後しばらくすると、ロードアベ
レージが上昇。
Devel::NYTProf• Qudo のワーカープロセス起動時に
• CTRL+C で停止させたあとに、解析。
• HTML::ExtractContent::extract の処理がブロッキングされていた• ログをみたところ、 HTML::ExtractContent にバイナリ( jpg な
ど)を食わせていた
ノウハウ2Mojolicious で国際化
Mojolicious::Plugin::I18N
Web.pmpackage Twien::Web;use Mojo::Base 'Mojolicious';use Mojolicious::Plugin::I18N;
sub startup { my $self = shift; $self->plugin(I18N => {namespace => 'Twien::I18N'}); ・・・ }
ja.pmpackage Twien::I18N::ja;use base 'Twien::I18N';use utf8;
our %Lexicon = ( 'Title' => 'Twien - 中学 3 年生以下の難易度の英文ニュースを集めたサイト (1 日 1 回更新 )',);
1;
テンプレートファイル% layout 'bootstrap';% title l 'Title';<h1><%=l 'Title' %></h1>
ノウハウ3アプリ認知の問題
プレスリリースに挑戦ゆーすけべーさんのブログを参考に、 IT メディア 20 社程度に電子メールを送る
見に来てくれている
メールを送った日
1 社も取り上げられない• インパクトの UX を提供できていない(客観的評価)
学んだこと、思うこと・広大な CPAN モジュールと Perl のアウトブット文化のおかげで割と簡単に Web アプリをつくることができる(感謝)・ Web アプリは作っても、それだけでは、認知されない。プレスリリースなどは必須。・99 , 9%は失敗かもしれないが、ノウハウは残るのでヒットするまで諦めない(次回開発は加速される)
ご清聴ありがとうございました