SlideShare a Scribd company logo
1 of 22
英文難易度の低いニュースを集め
た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::Fathom
Teng
Mojolicious
Teng
ノウハウ1
ロードアベレージ問題
ロードアベレージ問題
• ワーカープロセスを起動後しばらくすると、ロードアベ
レージが上昇。
Devel::NYTProf
• Qudoのワーカープロセス起動時に

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

• HTML::ExtractContent::extractの処理がブロッキングされていた
• ログをみたところ、HTML::ExtractContentにバイナリ(jpgなど)
を食わせていた
ノウハウ2
Mojoliciousで国際化
Mojolicious::Plugin::I18N
Web.pm
package Twien::Web;
use Mojo::Base 'Mojolicious';
use Mojolicious::Plugin::I18N;
sub startup {
my $self = shift;
$self->plugin(I18N => {namespace => 'Twien::I18N'});
・・・
}
ja.pm
package 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%は失敗かもしれないが、ノウハウは残るので
ヒットするまで諦めない(次回開発は加速される)
ご清聴ありがとうござい
ました

More Related Content

More from Tetsuya Tatsumi

App revealupを改造して
App revealupを改造してApp revealupを改造して
App revealupを改造してTetsuya Tatsumi
 
Mojoliciousのl10 nを自動化するツール
Mojoliciousのl10 nを自動化するツールMojoliciousのl10 nを自動化するツール
Mojoliciousのl10 nを自動化するツールTetsuya Tatsumi
 
Mojolicious+redisでチャットを作った
Mojolicious+redisでチャットを作ったMojolicious+redisでチャットを作った
Mojolicious+redisでチャットを作ったTetsuya Tatsumi
 
ラインスタンプ作りの実演
ラインスタンプ作りの実演ラインスタンプ作りの実演
ラインスタンプ作りの実演Tetsuya Tatsumi
 
ラインスタンプ作りの実演
ラインスタンプ作りの実演ラインスタンプ作りの実演
ラインスタンプ作りの実演Tetsuya Tatsumi
 
テストではまったお話 Test::More
テストではまったお話 Test::Moreテストではまったお話 Test::More
テストではまったお話 Test::MoreTetsuya Tatsumi
 
webサービス「ふっふはっほ」
webサービス「ふっふはっほ」webサービス「ふっふはっほ」
webサービス「ふっふはっほ」Tetsuya Tatsumi
 

More from Tetsuya Tatsumi (8)

App revealupを改造して
App revealupを改造してApp revealupを改造して
App revealupを改造して
 
Mojoliciousのl10 nを自動化するツール
Mojoliciousのl10 nを自動化するツールMojoliciousのl10 nを自動化するツール
Mojoliciousのl10 nを自動化するツール
 
Mojolicious+redisでチャットを作った
Mojolicious+redisでチャットを作ったMojolicious+redisでチャットを作った
Mojolicious+redisでチャットを作った
 
ラインスタンプ作りの実演
ラインスタンプ作りの実演ラインスタンプ作りの実演
ラインスタンプ作りの実演
 
ラインスタンプ作りの実演
ラインスタンプ作りの実演ラインスタンプ作りの実演
ラインスタンプ作りの実演
 
テストではまったお話 Test::More
テストではまったお話 Test::Moreテストではまったお話 Test::More
テストではまったお話 Test::More
 
Lingua::EN::Fathom
Lingua::EN::FathomLingua::EN::Fathom
Lingua::EN::Fathom
 
webサービス「ふっふはっほ」
webサービス「ふっふはっほ」webサービス「ふっふはっほ」
webサービス「ふっふはっほ」
 

Recently uploaded

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 

Recently uploaded (14)

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 

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