英文難易度の低いニュースを集め
た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
使用CPANモジュール
AnyEvent::TwitterStream

XML::Feed
Data::Deduper

Qudo::Parallel::Manager
HTML::ExtractContent
Lingua::EN::Fat...
ノウハウ1
ロードアベレージ問題
ロードアベレージ問題
• ワーカープロセスを起動後しばらくすると、ロードアベ
レージが上昇。
Devel::NYTProf
• Qudoのワーカープロセス起動時に

• CTRL+Cで停止させたあとに、解析。

• HTML::ExtractContent::extractの処理がブロッキングされていた
• ログをみたところ、HTML:...
ノウハウ2
Mojoliciousで国際化
Mojolicious::Plugin::I18N
Web.pm
package Twien::Web;
use Mojo::Base 'Mojolicious';
use Mojolicious::Plugin::I18N;
sub startup {
my $self = shift;
$s...
ja.pm
package Twien::I18N::ja;
use base 'Twien::I18N';
use utf8;
our %Lexicon = (
'Title' => 'Twien - 中学3年生以下の難易度の英文ニュー
スを...
テンプレートファイル
% layout 'bootstrap';
% title l 'Title';
<h1><%=l 'Title' %></h1>
ノウハウ3
アプリ認知の問題
プレスリリースに挑戦
ゆーすけべーさんのブログを参考に、ITメディア20社程度
に電子メールを送る
見に来てくれている

メールを送った日
1社も取り上げられない
• インパクトのUXを提供できていない(客観的評価)
学んだこと、思うこと
・広大なCPANモジュールとPerlのアウトブット文化のお
かげで割と簡単にWebアプリをつくることができる(感
謝)
・Webアプリは作っても、それだけでは、認知されない。
プレスリリースなどは必須。
・99,9%は失敗...
ご清聴ありがとうござい
ました
英文難易度の低いニュースを集めたWebアプリ  twien
Upcoming SlideShare
Loading in …5
×

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

489 views

Published on

yokohama.pm #10 のLTスライド

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
489
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

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

×