Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

スクリプト言語で重要な事はエロ画像集取で学んだ

39,323 views

Published on

YAPC Asia2013 1日目夜の大人のYAPC LT資料

Published in: Technology
  • Be the first to comment

スクリプト言語で重要な事はエロ画像集取で学んだ

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

×