Slide 1

Slide 1 text

ʲపఈൺֱʳ4*FSͱ8FCܥ͸ίί͕ҧ͏ʂ ฏ੒೥݄೔ɹߴҪɹ௚ਓ ग़੮ऀ֤Ґ ΩϟϦΞνΣϯδͨ͠ΤϯδχΞ͕ݟͨ྆ऀͷݱ৔͔Β

Slide 2

Slide 2 text

ഈܒɹو఼ʹ͓͔Ε·ͯ͠͸ɺ͝ਗ਼ӫͷ͜ͱͱ͓تͼਃ্͛͠ ·͢ɻ·ͨɺ͜ͷ౓͸ൃදͷػձΛ͍͖ͨͩ·ͯ͠ɺ੣ʹ͋Γ ͕ͱ͏͍͟͝·͢ɻ ɹࢲ͸ɺࣾձਓͱͯ͠ब৬Ҏདྷɺඍྗͳ͕Β΋γεςϜΠϯς άϨʔλɺΠϯλʔωοταʔϏεاۀͳͲͰɺਚྗͯ͠ࢀΓ ·ͨ͠ɻࠓճൃදਃ্͛͠Δ಺༰ʹ͖ͭ·ͯ͠΋ɺͦͷ஝ੵ͞ ΕͨܦݧΛ΋ͱʹൃද͍ͤͯͨͩ͘͞ॴଘʹ͍͟͝·͢ɻ ɹͲ͏͔ຊൃදΛΑΖ͘͠͝ݕ౼͍͖ͨͩɺࠓޙͷو఼ͷ͝׆ ༂ͷࢀߟͱͳΒΜ͜ͱΛ͝ف೦͍ͨ͠·͢ɻ ͸͡Ίʹ

Slide 3

Slide 3 text

NAOTO TAKAI Cowboy Coder

Slide 4

Slide 4 text

Once upon a time…

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Question ‣How old? ‣Suit or T-Shirt? ‣Contractor or In-House?

Slide 8

Slide 8 text

2000~ Computer Distributor 2001~ Web Production 2007~ System Integrator 2011~ Recipe Site

Slide 9

Slide 9 text

2000~ Suit, Contractor 2001~ T-Shirt, Contractor 2007~ Suit, Contractor 2011~ T-Shirt, In-House Memo: Talk about me

Slide 10

Slide 10 text

Agenda ‣SIer / Web Business ‣A Future in Development ‣Career Changing

Slide 11

Slide 11 text

‣SIer / Web Business

Slide 12

Slide 12 text

I got a job at system integrator…

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

Excel with Square Grid

Slide 15

Slide 15 text

‣Requirements ‣Design documentation ‣Test Plan ‣Man-Month Calculation

Slide 16

Slide 16 text

Requirements System Design Module Design Implementation Acceptance Test System Test Integration Test Unit Test Memo: Talk about customer approval

Slide 17

Slide 17 text

Dogma System requirements is the most important.

Slide 18

Slide 18 text

✓ Process Quality ✓ Code Generation

Slide 19

Slide 19 text

I got a job at recipe site…

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

Code without Documents

Slide 22

Slide 22 text

‣Hypothesis ‣Prototype ‣Release ‣Evaluation

Slide 23

Slide 23 text

Measure Learn Build Memo: Code, Data, Ideas

Slide 24

Slide 24 text

Dogma Nobody knows the requirements

Slide 25

Slide 25 text

✓ Rapid Prototyping ✓ Log Analysis

Slide 26

Slide 26 text

Chanko

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

% rails generate chanko like_button create app/units/like_button/like_butto create app/units/like_button/views/_sho create app/units/like_button/spec/contr create app/units/like_button/spec/model create app/units/like_button/spec/helpe create app/units/like_button/stylesheet create app/assets/stylesheets/units/lik create app/units/like_button/javascript create app/assets/javascripts/units/lik create app/units/like_button/images/log create app/assets/images/units/like_but

Slide 30

Slide 30 text

app/units/like_button/like_button.rb /views/ /spec/ /stylesheets/ /javascripts/ /images/ Directory Structure Unit script Other staff

Slide 31

Slide 31 text

# app/units/like_button/like_button.rb module LikeButton include Chanko::Unit active_if :logged_in do |context, opts| context.current_user.logged_in? end scope(:view) do function(:show) do render :partial => "/show" end end end Unit Script Code

Slide 32

Slide 32 text

# app/units/like_button/views/_show.html.haml .copy Share this site with your friends .fb-like{:data => {:href => 'http://recompi #fb-root :javascript (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0] if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/ja_JP/all fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); Unit View Code

Slide 33

Slide 33 text

# app/views/photos/index.html.haml = invoke(:like_button, :show) do %address.copy Copyright © 2005-2012 Naoto Ta Original View Code # app/views/photos/index.html.haml %address.copy Copyright © 2005-2012 Naoto Taka Before: After:

Slide 34

Slide 34 text

Chanko Before: After:

Slide 35

Slide 35 text

‣works in production ‣feedback from real user ‣enables a “small start” Chanko

Slide 36

Slide 36 text

Log Analysis A Log Collector Daemon

Slide 37

Slide 37 text

App s3 Log Storage MySQL Before: MySQL MySQL

Slide 38

Slide 38 text

‣heavy & slow ‣batch (sql, hadoop) ‣many database tables Problem

Slide 39

Slide 39 text

fluentd fluentd fluentd fluentd MongoDB TreasureData App Servers Log Storage s3 After:

Slide 40

Slide 40 text

‣lightweight ‣pluggable architecture ‣schema less Fluentd

Slide 41

Slide 41 text

Measure Learn Build Chanko Fluentd

Slide 42

Slide 42 text

‣before starting the development ‣after ending the development ‛ REQUIREMENTS Memo: Ask audience how real world is

Slide 43

Slide 43 text

‣A Future in Development

Slide 44

Slide 44 text

0 1,250,000 2,500,000 3,750,000 5,000,000 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 ग़యɿܦࡁ࢈ۀলʮಛఆαʔϏε࢈ۀಈଶ౷ܭௐࠪʯ

Slide 45

Slide 45 text

the number of transistors on a chip will double approximately every two years. Moore’s Law

Slide 46

Slide 46 text

1961 IBM 7030 1 MIPS 1994 Intel Pentium 188 MIPS 2012 Google Nexus 7 13800 MIPS Moore’s Law Memo: Talk about usage of computer

Slide 47

Slide 47 text

Military Use Business Use Personal Use Memo: Talk about media theory and usage

Slide 48

Slide 48 text

‣in any devices ‣in any context ‣with computer technology for Personal Use

Slide 49

Slide 49 text

‣before starting the development ‣after ending the development ‛ REQUIREMENTS Memo: Ask audience how real world will be

Slide 50

Slide 50 text

All companies become technology companies bakery, flower shop, liquor shop, bookstore… Memo: Ask audience how SIer will be

Slide 51

Slide 51 text

Core competence: own business Technology Doesn't Matter

Slide 52

Slide 52 text

To make everyday cooking fun ‣Rapid Prototyping ‣Log Analysis

Slide 53

Slide 53 text

Open Source Software Memo: Talk about chanko, OSS policy

Slide 54

Slide 54 text

‣Career Changing

Slide 55

Slide 55 text

All companies become technology companies bakery, flower shop, liquor shop, bookstore…

Slide 56

Slide 56 text

All companies employ software engineers bakery, flower shop, liquor shop, bookstore…

Slide 57

Slide 57 text

Selling software itself with software engineering Career Changing Memo: Be interested in their business

Slide 58

Slide 58 text

ޙ޻ఔ͸͓٬͞· Memo: Talk that only programmers can provide software

Slide 59

Slide 59 text

DON’T HANDS OFF THE CONTROL “upstream” sucks. “downstream” rocks.

Slide 60

Slide 60 text

Only you can control how you act. Thank you