Save 37% off PRO during our Black Friday Sale! »

YOU ARE NOT ALONE (tkrk10 ||=)

961126d9892ae4df45249529a0721571?s=47 sugamasao
February 10, 2013

YOU ARE NOT ALONE (tkrk10 ||=)

東京Ruby会議10での資料です。
2日目に予定していた発表が延長されて、3日目になったものです。
資料自体は2日目のものより少し手直しをしています。

http://tokyo10.rubykaigi.info

961126d9892ae4df45249529a0721571?s=128

sugamasao

February 10, 2013
Tweet

Transcript

  1. http://www.flickr.com/photos/hmsk/5905423133/sizes/l/in/photostream/ ר͖ࠐ·Εܕਓؒ ͷϘον୤ग़ܭը ౦ژ3VCZձٞ TVHBNBTBP!HNBJMDPN 13೥2݄11೔݄༵೔

  2. http://www.flickr.com/photos/hmsk/5905423133/sizes/l/in/photostream/ ר͖ࠐ·Εܕਓؒ ͷϘον୤ग़ܭը ౦ژ3VCZձٞ TVHBNBTBP!HNBJMDPN :06"3& /05 "-0/& 13೥2݄11೔݄༵೔

  3. 3VCZ ࣗࣾαʔϏε ͷ։ൃ 3VCZPO3BJMT !TVHBNBTBP 13೥2݄11೔݄༵೔

  4. ूஂϘονͷ Έͳ͞Μ ͜Μ͹ΜΘʂ 13೥2݄11೔݄༵೔

  5. ౦ژ3VCZձٞ͢͹ Β͍͠Ͱ͢Ͷ ࡾ೔໨ͷख഑ͱ͔ຊ౰ ʹ͍͢͝ʜʜ 13೥2݄11೔݄༵೔

  6. ελοϑͷΈͳ͞Μ ૉఢͩ͠ɺָͦ͠͏ɻ ͳΜ͔΋͏ͪΐͬͱ͓ ͖ۙͮʹͳΓ͍ͨʜʜ ೥͘Β͍લͷࢲ΋ͦ͏ࢥͬͨͷͰͨ͠ 13೥2݄11೔݄༵೔

  7. ͕ͩͲ͏͢Ε͹ʗ ?P? ʘ 13೥2݄11೔݄༵೔

  8. ͱ͍͏ྲྀΕ͕ ͋Γ·ͯ͠ 13೥2݄11೔݄༵೔

  9. ೔ຊ3VCZձٞ ҋ3VCZ,BJHJ 13೥2݄11೔݄༵೔

  10. ࠓ๺࢈ۀ༻ •ࠓ·ͰϘονͰͨ͠ •Ϩϙʔτ൝ʹ༠ͬͯ΋Βͬͨ •஌Γ߹͍૿͑ͨ ˞ ೥ʹϨϙʔτ൝Λ΍ͬͨ 13೥2݄11೔݄༵೔

  11. Ϩϙʔτ൝ʹ༠ͬͯ ΋Βͬͨɺͱ͸ʁ 13೥2݄11೔݄༵೔

  12. ͋Δ೔ಥવɺϨϙʔτ ൝΍Βͳ͍͔ʁͱ͍͏ φϯύϝʔϧ͕͖ͨ 13೥2݄11೔݄༵೔

  13. b3VCZ,BJHJΛ௨ͯ͠ 3VCZʹߩݙ͢Δ ` 13೥2݄11೔݄༵೔

  14. ͍ͭΧοͱͳͬͯ΍ͬͨ ޙչ͸͍ͯ͠ͳ͍ 13೥2݄11೔݄༵೔

  15. ͯ͞ 13೥2݄11೔݄༵೔

  16. http://www.flickr.com/photos/hmsk/5905423133/sizes/l/in/photostream/ ೗Կʹͯ͠Ϩϙʔτ൝ ͱͯ͠੠Λֻ͚ͯ΋ Βͬͨͷ͔ɺ͋Δ͍͸ ଴ͪΨΠϧͷํ๏ ຊ୊ 13೥2݄11೔݄༵೔

  17. http://www.flickr.com/photos/hmsk/5905423133/sizes/l/in/photostream/ •ίʔυΛॻ͜͏ •ษڧձʹߦ͜͏ •ϒϩάΛॻ͜͏ ଴ͪΨΠϧʹ༗ޮͩͬͨͱ ͓΋ΘΕΔํ๏ 13೥2݄11೔݄༵೔

  18. 16 # execute application. 17 # 18 # @param [Array]

    argv ARGV object. 19 # @return [void] 20 def run(argv) 21 opt = OptionParser.new 22 opt.on('-v', '--version') {|v| versio 23 opt.on('-h', '--help') {|v| usage} 24 opt.parse!(argv) 25 26 path = argv.first.to_s 27 usage("File NotFound(path=#{path})") 28 29 begin 30 awesome(JSON.parse(File.read(path)) 31 rescue JSON::ParserError => e 32 usage("Error: #{e.class} message => 33 end ίʔυΛॻ͜͏ 13೥2݄11೔݄༵೔
  19. 16 # execute application. 17 # 18 # @param [Array]

    argv ARGV object. 19 # @return [void] 20 def run(argv) 21 opt = OptionParser.new 22 opt.on('-v', '--version') {|v| versio 23 opt.on('-h', '--help') {|v| usage} 24 opt.parse!(argv) 25 26 path = argv.first.to_s 27 usage("File NotFound(path=#{path})") 28 29 begin 30 awesome(JSON.parse(File.read(path)) 31 rescue JSON::ParserError => e 32 usage("Error: #{e.class} message => 33 end ίʔυΛॻ͜͏ ͱ͸͍͑ɺ͗͢ΐ͍ϥΠϒϥϦΛ ͍͖ͳΓॻ͚ΔΘ͚Ͱ͸ʜʜ (JU)VC΍ʔ13͢ΔΜ΍ʔͱ͔͋ Δ͚ͲɺϗΠϗΠͰ͖ͨΒۤ࿑͠ ͳ͍͍ͬͯ͏͔ʜʜ 13೥2݄11೔݄༵೔
  20. https://speakerdeck.com/hibariya/code 13೥2݄11೔݄༵೔

  21. https://speakerdeck.com/hibariya/code ࣗ෼ͷͨΊͷ ίʔυ 13೥2݄11೔݄༵೔

  22. https://speakerdeck.com/hibariya/code ͍͢͝ϥΠϒϥϦ͸࡞Εͳ͘ ͯ΋ɺࣗ෼͕೔ʑͷੜ׆ͷͳ ͔ͰͪΐͬͱָʹͳΔπʔϧ ͘Β͍ͳΒ࡞ΕΔͷͰ͸ʁ 13೥2݄11೔݄༵೔

  23. 13೥2݄11೔݄༵೔

  24. ୭ಘʁԶಘͩΑʂ 13೥2݄11೔݄༵೔

  25. ࣗ෼ͷͨΊʹ࡞͚ͬͨΕͲɺ ࢥͬͨΑΓଞͷਓ͕࢖ͬͯ Δ͍ͬͯ͏ঢ়گ͸Θ͔Δͷ͸ ָ͍͠ɻ 13೥2݄11೔݄༵೔

  26. ϓϩάϥϜ͸ ָ͍͠ 13೥2݄11೔݄༵೔

  27. ษڧձʹߦ͜͏ 13೥2݄11೔݄༵೔

  28. Ͳ͏͍ͬͨษڧձʹߦ ͘ͷ͕ྑ͍͔ʁ 13೥2݄11೔݄༵೔

  29. ྫ͑͹ਓن໛ͷษ ڧձ͸ආ͚Δ ߦͬͪΌμϝͬͯΘ͚͡Όͳ͍ΜͰ͚͢Ͳ 13೥2݄11೔݄༵೔

  30. ਺ਓ͘Β͍ͷϠπ͕ ྑ͍Ͱ͢Ͷ ౦ژ3VCZձٞ೔໨ʹ࿩ͷ͋ͬͨ 3BJMTษڧձ!౦ژͱ͔ 13೥2݄11೔݄༵೔

  31. ಛʹ࠙਌ձͱ͔ Ξϧίʔϧ͕͋Ε͹ͳ Μͱ͔ͳΓ·͢͠ http://www.flickr.com/photos/koichiroo/6367345811/sizes/l/in/photostream/ 13೥2݄11೔݄༵೔

  32. http://www.flickr.com/photos/koichiroo/6367345811/sizes/l/in/photostream/ !LFJTͱͷϑΝʔετ ίϯλΫτ΋ɺͨͿΜ ษڧձޙͷ࠙਌ձ 13೥2݄11೔݄༵೔

  33. ϒϩάΛॻ͜͏ 13೥2݄11೔݄༵೔

  34. ѹ౗తԦಓ ͳΜ͔ͩΜͩݴͬͯɺετοΫܕ͸ྑ͍ 13೥2݄11೔݄༵೔

  35. ࣗ෼ͷϝϞΈͨ ͍ͳ΋ͷ͕ଞͷ ਓͷॿ͚ʹͳΔ ͜ͱ΋ 13೥2݄11೔݄༵೔

  36. ྫ͑͹ 13೥2݄11೔݄༵೔

  37. ྫ͑͹ ͍ͭ΋͓ੈ࿩ʹ ͳ͓ͬͯΓ·͢ http://melborne.github.com http://willnet.in http://blog.livedoor.jp/sasata299/ 13೥2݄11೔݄༵೔

  38. ྫ͑͹ Ψοπϙʔζͨ͠Β ϗοςϯτϦʔͱ͔ ͡Όͳͯ͘΋ɺಡΜͰ ͘ΕΔਓ͸ډ·͢͠ http://melborne.github.com http://willnet.in http://blog.livedoor.jp/sasata299/ 13೥2݄11೔݄༵೔

  39. ࠓͩͬͨΒ2JJUB ͱ͔2"!*5ͱ͔ Ͱ΋ྑ͍͔΋ http://qa.atmarkit.co.jp http://qiita.com 13೥2݄11೔݄༵೔

  40. ·ͱΊ http://www.flickr.com/photos/hmsk/5905423133/sizes/l/in/photostream/ 13೥2݄11೔݄༵೔

  41. ࣗ෼ͷͨΊʹͯ͠Δ͜ ͱΛܗʹ࢒͢ͷ͸ Φεεϝ ଴ͪΨΠϧ 13೥2݄11೔݄༵೔

  42. 16 # execute application. 17 # 18 # @param [Array]

    argv ARGV object. 19 # @return [void] 20 def run(argv) 21 opt = OptionParser.new 22 opt.on('-v', '--version') {|v| versio 23 opt.on('-h', '--help') {|v| usage} 24 opt.parse!(argv) 25 26 path = argv.first.to_s 27 usage("File NotFound(path=#{path})") 28 29 begin 30 awesome(JSON.parse(File.read(path)) 31 rescue JSON::ParserError => e 32 usage("Error: #{e.class} message => 33 end ॻ͍͖ͯͨίʔυ΍ϒϩά౳ Λ௨ͯ͡ɺීஈͷࣗ෼ͷੜ׆ ͷத͔Β࿙ΕͰͨ΋ͷ͕८ͬͯ ਓͱͷग़ձ͍ʹͳΔ 13೥2݄11೔݄༵೔
  43. ʞਓͱͷग़ձ͍ͱ͸ॏྗͰ͋Γɺ ग़ձ͏΂ͯ͘͠ग़ձ͏΋ͷ͔ͩΒͩοʂʟ ΤϯϦίɾϓον 13೥2݄11೔݄༵೔

  44. ʞਓͱͷग़ձ͍ͱ͸ॏྗͰ͋Γɺ ग़ձ͏΂ͯ͘͠ग़ձ͏΋ͷ͔ͩΒͩοʂʟ ΤϯϦίɾϓον ॏྗʹ߅͏͜ͱ͸ग़དྷͳ͍ 13೥2݄11೔݄༵೔

  45. 3VCZJTUಉ࢜ͬͯͷ͸Ͳ͏͍ ͏ཧ༝͔ਖ਼ମΛ஌Βͳͯ͘ ΋஌Βͣ஌Βͣͷ͏ͪʹҾ͖ ߹͏Μͩ 13೥2݄11೔݄༵೔

  46. http://www.flickr.com/photos/hmsk/5905423133/sizes/l/in/photostream/ Ϙονͳࠒ͔ΒࠓͰ΋ଓ͚͍ͯΔ ͍ͭ΋ͷ3VCZ ೔ৗͷ3VCZ 13೥2݄11೔݄༵೔

  47. http://www.flickr.com/photos/magurojp/5908825790/sizes/l/in/set-72157627005855987/ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ ʢ·ͣ͸ײ૝ϒϩά͔Βʣ :06"3&/05"-0/& 13೥2݄11೔݄༵೔