View
36.625
Download
2
Category
Preview:
DESCRIPTION
YAPC Asia2013 1日目夜の大人のYAPC LT資料
Citation preview
スクリプト言語で重要な事は
エロ画像集取で学んだ
@shokai大人のYAPC2013
私•@shokai (しょうかい)
•趣味:料理、glitch、Ruby
•Perl書けないけど•LT応募したら通った…
Perl勉強した
Perl2.0の薄い本
簡潔でわかりやすい!
正規表現とか配列だけでもだいぶ色々できる
今日のお話
画像いっぱい集めたいという欲求で
いつのまにかRuby書けるようになってた話をします
ぜんぜんPerlでてこないけど
たぶんPerlでもだいたい同じ感じでプログラミング学習できると思うから許して
2008年ごろ
Yahoo Pipesで画像掲示板からRSS作りまくった
Web系やったことなかったけど欲望のまま100個以上Pipes作った
正規表現リファラDOMを学んだ
1年経過
Pixiv、Danbooru、Tumblrとの出会い
ログインしないと見れない大量のメタデータ
Danbooru•オープンソースな画像アップローダ• https://github.com/r888888888/danbooru•地球上に何個か設置されてる• Rails 3.2•アカウント作ったり、点数つけたり•よくできてる
人力セマンティックに感動
PixivもDanbooruもRSSリーダーで見るのに適して
いなかった↓
Rubyでなんとかしよう
画像収集はスクリプト言語に重要な事がだいたい入ってると思う
cookie、文字コード、DOM、配列やハッシュ、DBやファイルへの保存、
memcache、md5で重複防げる、tumblrに流す、非同期IO、crontab、エラー処理
HTTPヘッダを見る、exifで画像サイズ確認、
OpenCVで肌色画像だけ通すGearman worker
・・など
画像収集でよかったこと
どんどん動かなくなるから直さないとならない
↓強制リファクタリング
スクレイピングなので変化に弱い↓
ライブラリ整備せざるえない↓
非公開なRubygem作成
公開できるクオリティじゃなくても、ローカル用のRubygemにする
↓取り回しが良い
GemやCPANなどのフォーマットに従ってライブラリ作ってみると、理解
深まるのでは
最近の動向
肌色画像フィルタで誤爆してくる奴らどうにかしたい
あとグロ画像とかもなえるわ・・
人力でどうにかする
Amazon Mechanical Turkにエロ画像流すとBANされそう
仲間内で使えるクラウドソーシング的なものがほしい
% gem install babascriptコンピュータが得意な事はコンピュータが、
人間が得意な事は馬場くん がやってくれる言語
https://github.com/masuilab/babascript
@takumibaba
% baba -e 'この画像エロい?("http://example.com/hoge.jpg")'
baba -e ’コード’
もしくはbaba ファイル名
結果
url_list.each do |url| if この画像エロい?(url) == "はい" ## 画像保存する else ## 画像捨てる endend
画像確認.bb
% baba 画像確認.bb
実行
ぱっと見、Rubyに見えるけどメタプログラミングにより
日本語で書いた部分を馬場君が実行してくれる
返り値も取れる
module BabaScript class Baba
def self.method_missing(name, *args) ## (略) AndroidにnameとargsをLindaで送信する end
endend
Rubyの関数名には日本語が使える→ method_missingで全部取れる
Lindaで実装してるから複数人で並列実行
もできる
人間を関数のように扱えるようになるスマホアプリ
+人間に命令を送る構文を追加したプログラム言語
→ 人間とプログラム言語の新しい関係
画像収集は総合芸術なので勉強の題材にいいと思いますおわり
Recommended