Slide 1

Slide 1 text

自分相手にアプリケーションをつく り得られるもの @hogelog (小室 直) クックパッド株式会社 技術部開発基盤グループ

Slide 2

Slide 2 text

@hogelog (小室 直) 1997/3 札幌市立あいの里東小学校 卒 2000/3 札幌市立あいの里東中学校 卒 2003/3 北海道札幌開成高等学校 卒 2009/3 電気通信大学電気通信学部情報工学科 卒 2011/3 電気通信大学電気通信学研究科情報工学専攻 卒

Slide 3

Slide 3 text

「hogelog 北海道出身だ し、未来大のイベントいっ てこない?」

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

本日の LT 内容

Slide 6

Slide 6 text

「クックパッドの技術とか Docker 基盤とか いい感じに紹介しようか な」

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

「今日からすぐ役立つ・使 える技術の話」

Slide 9

Slide 9 text

「クックパッドの技術とか Docker 基盤とか いい感じに紹介しようか な」

Slide 10

Slide 10 text

「クックパッドの技術とか アプリ基盤を いい感じに紹介しようか な」

Slide 11

Slide 11 text

というわけで業務とは関 係ない話をします。

Slide 12

Slide 12 text

業務のおもしろ話は https://techlife.cookpad.com/

Slide 13

Slide 13 text

学生時代から現在に至るまで「ウェブ小説 を効率的に摂取したい」という感情を満た すために実装してきたアプリケーション達 とそこで得られた技術と学び。 @hogelog

Slide 14

Slide 14 text

● 投稿掲示板、個人サイト時代 ● Arcadia 時代、他サイト ● 小説家になろう時代

Slide 15

Slide 15 text

ウェブ小説は文章のクオ リティに粗がある(事もあ る)

Slide 16

Slide 16 text

1. 文章補正 GreaseMonkey スクリプト https://gist.github.com/hogelog/670734

Slide 17

Slide 17 text

学んだ技術 ● Grease Monkey ● JavaScript ● 正規表現 ● XPath https://gist.github.com/hogelog/670734

Slide 18

Slide 18 text

ブラウザをキーボードだ けで使いたい

Slide 19

Slide 19 text

2. Vimperator + 各種プラグイン https://github.com/vimpr/vimperator-plugins

Slide 20

Slide 20 text

実装したプラグイン ● Hit a Hint 改良プラグイン ● マーカー付きスクロールプラグイン ● あとで読むプラグイン ● JSON で設定したシナリオでブラウザが自動で 動く変なプラグイン ● ...

Slide 21

Slide 21 text

学んだ技術 ● Firefox コア (Chrome, XUL, ...) ● JavaScript 1.6~1.8 (let, Generator, Iterator, E4X, …) https://github.com/vimpr/vimperator-plugins

Slide 22

Slide 22 text

読む道具が PC → Android になった

Slide 23

Slide 23 text

3. 自作小説家になろう専 用ブラウザ https://github.com/hogelog/android-browser-training

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

学んだ技術 ● Android SDK ● エラー通知 (Splunk MINT, Crashlytics) ● RxJava ● DI (RoboGuice, Dagger2) ● ... https://github.com/hogelog/android-browser-training

Slide 26

Slide 26 text

Kindle Paperwhite を 買った

Slide 27

Slide 27 text

4. なろう to Kindle 変換 コマンド https://github.com/hogelog/ncode-syosetu/tree/master/n code-syosetu-mobi

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

● なろうスクレイピング ● html -> epub3 変換 ● epub3 -> mobi 変換

Slide 30

Slide 30 text

$ ncode2mobi n7374dz I, [2017-10-17T00:15:16.382388 #28853] INFO -- : GET http://ncode.syosetu.com/n7374dz... I, [2017-10-17T00:15:17.635203 #28853] INFO -- : GET http://ncode.syosetu.com/n7374dz/1... I, [2017-10-17T00:15:18.261842 #28853] INFO -- : GET http://ncode.syosetu.com/n7374dz/2... ... I, [2017-10-17T00:15:34.688908 #28853] INFO -- : GET http://ncode.syosetu.com/n7374dz/28... ************************************************************* Amazon kindlegen(MAC OSX) V2.9 build 1028-0897292 コマンドライン電子書籍コンパイラ Copyright Amazon.com and its Affiliates 2014 ************************************************************* 情報:I9014:オプション: -verbose: 出力を詳細にします 情報(prcgen):I1048: ePub ファイルを解凍します 情報(prcgen):I1047: metadata が追加されました dc:Title "美脚ミミック、ハルミさん ~転生モンスター異世界成り上がり 伝説~" 情報(prcgen):I1047: metadata が追加されました dc:Date "2017-10-16T15:15:34Z" 情報(prcgen):I1047: metadata が追加されました dc:Creator "作者:藤孝剛志" 情報(prcgen):I1002: ファイルを解析 0000028 情報(prcgen):I1003: ファイルを解析します URL:1.html 情報(prcgen):I1003: ファイルを解析します URL:2.html ... $ ls n7374dz.mobi

Slide 31

Slide 31 text

学んだ技術 ● Ruby ● gem の作り方 ● EPUB3 https://github.com/hogelog/ncode-syosetu/tree/master/n code-syosetu-mobi

Slide 32

Slide 32 text

PC で変換して Kindle に転送するのがだるい

Slide 33

Slide 33 text

5. なろう to Kindle 変 換、転送ウェブアプリ

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

学んだ技術 ● Linux サーバ (VPS, AWS EC2) ● Rails アプリのデプロイ(Capistrano) ● 非同期ジョブ実行 (Resque) ● メール送信 ● Infrastructure as Code (Itamae) ● AWS S3 ● ウェブサービスの監視 ● ...

Slide 36

Slide 36 text

こどもの寝かしつけの間 にも小説を読みたい

Slide 37

Slide 37 text

暗闇の中で小説を読む には音声化!

Slide 38

Slide 38 text

6. なろう to mp3 変換コ マンド https://github .com/hogelog/ncode-syosetu/tree/master/ncode-syosetu-polly

Slide 39

Slide 39 text

No content

Slide 40

Slide 40 text

● なろうスクレイピング ● html -> ssml 変換 ● ssml -> mp3 変換 (Amazon Polly)

Slide 41

Slide 41 text

$ envchain aws bundle exec ncode2mp3 n7374dz 1 I, [2017-10-17T00:22:23.438986 #30234] INFO -- : GET http://ncode.syosetu.com/n7374dz/1... I, [2017-10-17T00:22:23.609803 #30234] INFO -- : ./n7374dz-1/n7374dz-1-0.mp3... I, [2017-10-17T00:22:23.615576 #30234] INFO -- : ./n7374dz-1/n7374dz-1-1.mp3... I, [2017-10-17T00:22:23.619030 #30234] INFO -- : ./n7374dz-1/n7374dz-1-2.mp3... I, [2017-10-17T00:22:23.621835 #30234] INFO -- : ./n7374dz-1/n7374dz-1-3.mp3... I, [2017-10-17T00:22:23.624403 #30234] INFO -- : ./n7374dz-1/n7374dz-1-4.mp3... I, [2017-10-17T00:22:28.527033 #30234] INFO -- : Generated: n7374dz-1.mp3 https://youtu.be/af7FvY3wPYY

Slide 42

Slide 42 text

学んだ技術 ● Amazon Polly ● 音声合成マークアップ言語 (SSML) ● MP3 Format https://github .com/hogelog/ncode-syosetu/tree/master/ncode-syosetu-polly

Slide 43

Slide 43 text

PC で変換してスマホに 転送するのがだるい

Slide 44

Slide 44 text

7. なろう to Podcast ウェブアプリ https://github.com/hogelog/ncmose

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

No content

Slide 47

Slide 47 text

No content

Slide 48

Slide 48 text

学んだ技術 ● Heroku ● Podcast https://github.com/hogelog/ncmose

Slide 49

Slide 49 text

「ウェブ小説を効率的に 摂取したい」という感情を 満たすには様々な技術 が必要。

Slide 50

Slide 50 text

対象ユーザが自分なの で失敗し放題。

Slide 51

Slide 51 text

良い技術を知るには 悪い技術の体験も 大事。

Slide 52

Slide 52 text

自分の願望を満たすアプ リケーションを実装しま しょう。

Slide 53

Slide 53 text

色んな技術がついてきま す。

Slide 54

Slide 54 text

おしまい。

Slide 55

Slide 55 text

採用・就業型インターンは通 年募集中 ● https://internship.cookpad.com/working/ ● https://info.cookpad.com/pages/new_graduates_recrui tment