英文難易度の低いニュースを集めたwebアプリ twien

Post on 17-Dec-2014

217 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

yokohama.pm #10 のLTスライド

TRANSCRIPT

英文難易度の低いニュースを集めた 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%は失敗かもしれないが、ノウハウは残るのでヒットするまで諦めない(次回開発は加速される)

ご清聴ありがとうございました

top related