SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Downloaden Sie, um offline zu lesen
@maxmellon
2016.11.26 @ 「首領(Red	Coder)への道」 勉強会という名のオフ会
コメントビュアーを
作った話
⽬次
0.	自己紹介
1. コメビュを作った背景
2. コメビュの構成
3. 現状と課題
0. ⾃⼰紹介
はじめまして
mexmellonと申します
今⽇はうどん県から
きました
基本情報
○ 京都府宇治市 出身
響け!ユーフォニアム とか平等院とか
抹茶はすきです
○ 現在は香川県
うどん好きです
最大 うどんストリーク は29 です
○ 22歳 学生
エンジニアとしての基本情報
○ いつも使ってる開発用ツール
○ Vim	8.0	(CLPUM)		:	エディタ
○ tmux 2.2																	:	ターミナルマルチプレクサ
○ Zsh 5.1.1																	:	シェル
○ 好きなプログラミング言語やライブラリ
○ javascript (React.js /	Redux)
言語問わず,フロントのほうが好み
個⼈的に好きなやつ
○ うどん
個⼈的に好きなやつ
○ 和太鼓
個⼈的に好きなやつ
○ ニコ生
主なプロダクト
⾃慢
⼤切に考えてること
○ 日々の努力
コツコツがコツ
Githubの草をモチベーションにしている
今⽇は,
コメビュ作った話
しようとおもう
1. コメントビュアー
作った背景
背景
よっしゃMacを
⼿に⼊れたぞ
背景
さっそくニコ⽣⾒るために
コメビュ⼊れるぞ〜
背景
ん?ちょっと待って
ないやん
(※厳密にはあるが,なんか⼊れるのがだるそうだった)
背景
コメビュ 作り⽅ [検索]
背景
背景
理想のコメビュが
なければ作れば
いいじゃない
できたもの comelon
これから,
こだわった点と
アーキテクチャに
触れていきます
2. 構成
Layout
Header
Footer
Body
Timeline	of	comment
Layout
○ Header
○ Footer
live	id form connect
button
configuration
button
comment	form submit
comment
184
toggle
System Constitution
○ Language													: javascript
○ NicoLiveEngine :			59naga/nicolive
○ Framework									: github/electron
○ Architecture							: facebook/flux
○ Template													: facebook/React.js
○ Bundler															: webpack/webpack
○ Transpile : babel/babel
○ Unit	Test,													:		mocha
○ e2e	Test															:		nightmare
○ Language													: javascript
○ NicoLiveEngine :			59naga/nicolive
○ Framework									: github/electron
○ Architecture							: facebook/flux
○ Template													: facebook/React.js
○ Bundler															: webpack/webpack
○ Transpile : babel/babel
○ Unit	Test,													:		mocha
○ e2e	Test															:		nightmare	
System Constitution
Summarizing	the	above,	I	made	a	desktop	
application	with	Web	technology.
Why using React not jQuery ?
○ Useful	Diff	rendering	API
React	compares	to	previous	and	next	state.
From	there,	draw	a	minimum	amount	of	drawing.
If	you	do	this	with	jQuery	it	will	be	very	hard.
○ React	is	minimum
jQuery	contain	many	function:	Promise,	ajax,	etc…
But	currently	mainstream	is	combining
small	libraries.
Facebook/flux
An	application	architecture	for	React	utilizing	
a	unidirectional	data	flow.
Facebook/flux
An	application	architecture	for	React	utilizing	
a	unidirectional	data	flow.
Flux	is	unidirectional	data	flow	
contain	use	observer	pattern.
What advantage?
○ Manage	of	state	outside	View	Component
・ Decrease	complex	of	Component
・ The	role	becomes	clear
○ increase	debug	ability
・ Because,	split	layer	by	role
Example
3. 現状と課題
現状と課題
○ 棒読み
・ コメント量が多いとき読み上げが詰まる
・ 誤った読み上げが多い
○ コメビュ
・ 王手放送主や,弾幕でパフォーマンスの問題
・ 縦長にするとコメントフォームが小さい
・ コテハン記録できていない
・ 表示できるコメントの数がすくない
やりたいことと
・ コメント量に応じた読み上げ速度の動的変更
・ 音声再生エンジンをセレクタブルに
・ 辞書機能の作成
・ パフォーマンスチューニング
・ UI改善
・ コテハン記録
・ ニコ生エンジンの変更
nicolive ->	nagome
まとめ
○ コメビュを作って js 力を手にした
・ いまでは,自分の中で一番実装速度が早い言語に
○ コメビュを通してアーキテクチャ
を考えるようになった
・ Flux が与えた僕への影響は大きい
○ ニコ生視聴者エンジニアは
コメントビューアを作成するべき
comelon-v2 開発開始 !
○ Flux から Redux	へ
https://github.com/MaxMEllon/comelon-v2

Weitere ähnliche Inhalte

Was ist angesagt?

CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato KinugawaCODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato KinugawaCODE BLUE
 
CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料SECCON Beginners
 
最適化計算の概要まとめ
最適化計算の概要まとめ最適化計算の概要まとめ
最適化計算の概要まとめYuichiro MInato
 
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリングmlm_kansai
 
ニューラルネットワーク入門
ニューラルネットワーク入門ニューラルネットワーク入門
ニューラルネットワーク入門naoto moriyama
 
R6パッケージの紹介―機能と実装
R6パッケージの紹介―機能と実装R6パッケージの紹介―機能と実装
R6パッケージの紹介―機能と実装__nakamichi__
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例Fixstars Corporation
 
Rust で RTOS を考える
Rust で RTOS を考えるRust で RTOS を考える
Rust で RTOS を考えるryuz88
 
(講演資料)開発現場で役立つ論文の書き方のお話
(講演資料)開発現場で役立つ論文の書き方のお話(講演資料)開発現場で役立つ論文の書き方のお話
(講演資料)開発現場で役立つ論文の書き方のお話Makoto SAKAI
 
時系列問題に対するCNNの有用性検証
時系列問題に対するCNNの有用性検証時系列問題に対するCNNの有用性検証
時系列問題に対するCNNの有用性検証Masaharu Kinoshita
 
CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)Shota Shinogi
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual TalksYuya Unno
 
GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話Yoshio Hanawa
 
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会Kenyu Uehara
 
クラシックな機械学習の入門 7. オンライン学習
クラシックな機械学習の入門  7. オンライン学習クラシックな機械学習の入門  7. オンライン学習
クラシックな機械学習の入門 7. オンライン学習Hiroshi Nakagawa
 
ブースティング入門
ブースティング入門ブースティング入門
ブースティング入門Retrieva inc.
 
Polyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGAPolyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGAryos36
 
SQLインジェクション総”習”編
SQLインジェクション総”習”編SQLインジェクション総”習”編
SQLインジェクション総”習”編Yasuo Ohgaki
 
Format string Attack
Format string AttackFormat string Attack
Format string Attackicchy
 

Was ist angesagt? (20)

CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato KinugawaCODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
 
coordinate descent 法について
coordinate descent 法についてcoordinate descent 法について
coordinate descent 法について
 
CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料
 
最適化計算の概要まとめ
最適化計算の概要まとめ最適化計算の概要まとめ
最適化計算の概要まとめ
 
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
 
ニューラルネットワーク入門
ニューラルネットワーク入門ニューラルネットワーク入門
ニューラルネットワーク入門
 
R6パッケージの紹介―機能と実装
R6パッケージの紹介―機能と実装R6パッケージの紹介―機能と実装
R6パッケージの紹介―機能と実装
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
 
Rust で RTOS を考える
Rust で RTOS を考えるRust で RTOS を考える
Rust で RTOS を考える
 
(講演資料)開発現場で役立つ論文の書き方のお話
(講演資料)開発現場で役立つ論文の書き方のお話(講演資料)開発現場で役立つ論文の書き方のお話
(講演資料)開発現場で役立つ論文の書き方のお話
 
時系列問題に対するCNNの有用性検証
時系列問題に対するCNNの有用性検証時系列問題に対するCNNの有用性検証
時系列問題に対するCNNの有用性検証
 
CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks
 
GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話
 
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
 
クラシックな機械学習の入門 7. オンライン学習
クラシックな機械学習の入門  7. オンライン学習クラシックな機械学習の入門  7. オンライン学習
クラシックな機械学習の入門 7. オンライン学習
 
ブースティング入門
ブースティング入門ブースティング入門
ブースティング入門
 
Polyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGAPolyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGA
 
SQLインジェクション総”習”編
SQLインジェクション総”習”編SQLインジェクション総”習”編
SQLインジェクション総”習”編
 
Format string Attack
Format string AttackFormat string Attack
Format string Attack
 

コメントビュアーを作った話