Top Banner
普通のPythonistaが PHPやってみた。 hideo54
43

NPCA-LT hideo54[OSC Kyoto 2014]

May 24, 2015

Download

Engineering

Hideo Yasumoto

2014年8月2日に京都で開催されたOSC Kansai 2014にて、灘校パソコン研究部LTのhideo54のLTに使用したスライドです。
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: NPCA-LT hideo54[OSC Kyoto 2014]

普通のPythonistaが

PHPやってみた。hideo54

Page 2: NPCA-LT hideo54[OSC Kyoto 2014]

自己紹介(2回目)

• Twitter: @hideo54 • 今日で15歳になりました(wishlist.hideo54.com)

• 好きなもの • Apple, Twitter, Python

Page 3: NPCA-LT hideo54[OSC Kyoto 2014]

僕はTwitterが大好きです

Page 4: NPCA-LT hideo54[OSC Kyoto 2014]

時間ごとのツイート数

Page 5: NPCA-LT hideo54[OSC Kyoto 2014]
Page 6: NPCA-LT hideo54[OSC Kyoto 2014]

普段Pythonで

何やってるかというと

Page 7: NPCA-LT hideo54[OSC Kyoto 2014]

tweepyでTwitterbotを

作ったりしています

Page 8: NPCA-LT hideo54[OSC Kyoto 2014]

ある日思いました

Page 9: NPCA-LT hideo54[OSC Kyoto 2014]

自分だけでなくみんなが

使えたら楽しいのになあ

Page 10: NPCA-LT hideo54[OSC Kyoto 2014]

( ˘⊖˘) .oO(Web…?)

Page 11: NPCA-LT hideo54[OSC Kyoto 2014]

( ˘⊖˘) .oO(やってみるか…)

Page 12: NPCA-LT hideo54[OSC Kyoto 2014]

やろうと思ったこと

• Twitterbotを作れるWebサービス • 既にある気がするけど(゚ε゚)キニシナイ!!

Page 13: NPCA-LT hideo54[OSC Kyoto 2014]

やろうと思ったこと

• ユーザーはいわゆる“Sign in with Twitter”でログインする

• お手製のログインシステムを作る必要がない

• MySQLにAccessTokenを保存するだけ

Page 14: NPCA-LT hideo54[OSC Kyoto 2014]

初めてのPHPの練習には

最適じゃなイカ?

Page 15: NPCA-LT hideo54[OSC Kyoto 2014]

やってみた

Page 16: NPCA-LT hideo54[OSC Kyoto 2014]

図解

ConsumerKey&Secretから RedirectURL作る

TwitterAccountで ログインしてもらう

ページ内の ボタン

twitteroauth.php OAuth.php

index.php

Library

Page 17: NPCA-LT hideo54[OSC Kyoto 2014]

図解

返されたTokenから AccessTokenゲット

→SESSION, DBに保存

Tokenを 返してくれる

twitteroauth.php OAuth.php

SESSIONに AccessTokenが あるのを確認

index.php

Library

Page 18: NPCA-LT hideo54[OSC Kyoto 2014]

図解

ページ内の ボタン

index.php

DBにbot内容を保存

MySQL Database

Page 19: NPCA-LT hideo54[OSC Kyoto 2014]

図解

MySQL-Connector Tweepy

Library

MySQL Database

bot内容を取得し 定時実行ファイルを出力

atコマンドで実行時刻を指定

execute.py

Page 20: NPCA-LT hideo54[OSC Kyoto 2014]

できた

Page 21: NPCA-LT hideo54[OSC Kyoto 2014]
Page 22: NPCA-LT hideo54[OSC Kyoto 2014]

感想

• PHP思ったより簡単(書いてたら慣れる) • ずっとPythonマンだったのでブラウザで自分の作ったものが動くのは嬉しい

• Webで公開するのはセキュリティ心配

Page 23: NPCA-LT hideo54[OSC Kyoto 2014]

感想

• サーバー設定がつらかった

• 「MySQLに接続できない…」で3日

Page 24: NPCA-LT hideo54[OSC Kyoto 2014]

感想

• Pythonでのbot処理の方法考えるのもつらかった

• 結局、DBからデータを引いてくる→atコマンドでそれぞれのbot用の実行プログラムを作り定時実行する、という形に

• よりよい方法ありそう…

Page 25: NPCA-LT hideo54[OSC Kyoto 2014]

今後のタスク

• セキュリティざるい • 実はまだSQLインジェクション対策してない

• デザインがクソ • CSS書いてない

Page 26: NPCA-LT hideo54[OSC Kyoto 2014]

まだ公開できない OSSとはなんだったのか

Page 27: NPCA-LT hideo54[OSC Kyoto 2014]

つらかったけど

Page 28: NPCA-LT hideo54[OSC Kyoto 2014]

今回成長したこと

• 初めてPHPを触った • 初めてMySQLを触った • 実装はわりといけた • できることが広がったので頑張りたい(小並感)

Page 29: NPCA-LT hideo54[OSC Kyoto 2014]

頑張りましたのん (のんのんびより7巻OAD付き入手できなかったマン)

Page 30: NPCA-LT hideo54[OSC Kyoto 2014]

ただ…

• 面白くない • 新規性がない • ダメ

Page 31: NPCA-LT hideo54[OSC Kyoto 2014]

精進します

Page 32: NPCA-LT hideo54[OSC Kyoto 2014]

おまけ

Page 33: NPCA-LT hideo54[OSC Kyoto 2014]

展示• CharacterTrends • 今まで見たアニメ(animetick.net/users/

hideo54)に出てきたキャラに関するツイートを拾い、自然言語処理を通してポジティブ度を算出

• つぶやかれている頻度とともに可視化

Page 34: NPCA-LT hideo54[OSC Kyoto 2014]
Page 35: NPCA-LT hideo54[OSC Kyoto 2014]
Page 36: NPCA-LT hideo54[OSC Kyoto 2014]

展示• キャラをクリックすると+1できる • 投票者の中での人気度とTwitterでのポジティブ度とをグラフにとって相関関係を見たりもできる

• データがまだ少なめなのでよければご協力ください

Page 37: NPCA-LT hideo54[OSC Kyoto 2014]

展示

• Developer • Python: @hideo54 • JavaScript: @hakatashi(OB) • 実は@hakatashiのほうが頑張ってる

Page 38: NPCA-LT hideo54[OSC Kyoto 2014]

感想

• 誰得ではあるが新規性は生えていて僕にしてはアイデアすごいと思った

• @hakatashiが「単位いいいいいいい」って言ってて罪悪感

• 生まれ変わったらWebマンになりたい

Page 39: NPCA-LT hideo54[OSC Kyoto 2014]
Page 40: NPCA-LT hideo54[OSC Kyoto 2014]

( ˘⊖˘) .oO(今から勉強して

みるのもありかな…)

Page 41: NPCA-LT hideo54[OSC Kyoto 2014]

公開できない OSSとはなんだったのか

Page 42: NPCA-LT hideo54[OSC Kyoto 2014]

以上趣味LTでした

Page 43: NPCA-LT hideo54[OSC Kyoto 2014]

Thank you for listening!

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