Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

ͯ͞ 13೥2݄11೔݄༵೔

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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೔݄༵೔

Slide 19

Slide 19 text

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೔݄༵೔

Slide 20

Slide 20 text

https://speakerdeck.com/hibariya/code 13೥2݄11೔݄༵೔

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

13೥2݄11೔݄༵೔

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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೔݄༵೔

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

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