Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Be a library developer!
Remember than Imagine
Kouhei Sutou
ClearCode Inc.
2013/06/01
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Table of contents
Share this talk's goal✓
Describe key idea✓
Apply the key idea✓
Wrap up & The next step✓
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Share the goal
Share this talk's goal✓
Describe key idea✓
Apply the key idea✓
Wrap up & The next step✓
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
This talk's goal
You know
how to develop better softwares
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Better?
Show
by example
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
API
context.save
context.circle(50, 50, 10)
context.stroke
context.restore
from cairo gem
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
API: Point
context.save # <- Point
context.circle(50, 50, 10)
context.stroke
context.restore # <- Point
from cairo gem
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
API: Better
context.save do
context.circle(50, 50, 10)
context.stroke
end
from cairo gem
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
API: Why
Why is it better?
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
API: Because
Because it's
more Ruby-ish
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Ruby-ish?
-ish ==
Similar to others
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Is "similar" better?
Similarity makes consistency✓
Consistency makes readability✓
Readability is important to
develop better softwares
✓
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Is "readability" important?
Readability makes
maintenability
✓
Maintenability is needed for
improving your softwares
repeatedly
✓
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
So
Ruby-ish is
better
Let's validate
the example
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Remember
File
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Remember: File
# Setup
file = File.open(path)
file.read
# Teardown
file.close
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Remember: File
# Setup
File.open(path) do |file|
file.read
end # Teardown
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
API (reprise)
context.save # Setup
context.circle(50, 50, 10)
context.stroke
context.restore # Teardown
from cairo gem
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
API: Better (reprise)
context.save do # Setup
context.circle(50, 50, 10)
context.stroke
end # Teardown
from cairo gem
Wrap up
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Better
Ruby-ish
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
In other words
Similar to others
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
The goal (reprise)
You know
how to develop better softwares
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
In other words
You know
what is "similar"
and do similarly
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Describe key idea
Share this talk's goal✓
Describe key idea✓
Apply the key idea✓
Wrap up & The next step✓
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Key idea
Remember
than
Imagine
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Remember than Imagine
Knowledge
Remember
???
Imagine
Easy! Di�cult...
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
To remember,
Remember
???
Imagine
Easy! Di�cult...
How to get?
Knowledge
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
How to get knowledge?
Experience✓
Ask✓
Observe✓
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Experience!
Experience ← Do this �rst!✓
Ask✓
Observe✓
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Key idea
Remember
than
Imagine
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Apply the key idea
Share this talk's goal✓
Describe key idea✓
Apply the key idea✓
Wrap up & The next step✓
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
The goal (reprise)
You know
how to develop better softwares
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Apply the key idea
Knowledge
Remember
Better
softwares
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
To achieve the goal,
What should
you experience?
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
What experience?
Knowledge
Remember
Better
softwares
Knowledge
What experience?
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Rubyist
Knowledge
Remember
Better
softwares
Knowledge
Rubyist experience!
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Rubyist?
You
experienced!
Try
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
API: Getter
window.get_property("opacity")
# What is better API???
from gtk2 gem
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
API: Getter (better)
window.get_property("opacity")
window.opacity # Better
from gtk2 gem
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Now,
You found
"remember" is
"di�cult"
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Di�cult!
Remember!?
What is
"Ruby-ish"!?
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Di�cult?
Knowledge
Remember
???
Imagine
Di�cult...Easy!
Di�cult???
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Because
You don't have
experience about
"Remember than
Imagine"
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
No "remember" experience
Better
softwares
Knowledge
Rubyist experience!
Remember
No experience
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Your status
Experience✓
Ask (Heard) ← You are here!✓
Observe✓
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
To achieve the goal,
What should
you experience?
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
What experience?
Better
softwares
Knowledge
Rubyist experience!
Remember
What experience?
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Library developer
Better
softwares
Knowledge
Rubyist experience!
Remember
Library developer
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Library developer
Considers about
easy to use API
as a Rubyist✓
✓
easy to understand document
as a library user✓
✓
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Library developer
Considers them
many times
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
"Many times"
It's very good
exercise
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Exercises
API✓
Document✓
API
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
API: Getter (reprise)
# Low level
window.get_property("opacity")
# Better
window.opacity
from gtk2 gem
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
API: Better?
# Low level
window.get_property("visible")
# Better
# ???: hint: "visible" is bool
from gtk2 gem
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
API: Better
# Low level
window.get_property("visible")
# Better
window.visible?
from gtk2 gem
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
API: Getter
# Better for record as collection
record["name"]
# Better for record as object
record.name
from rroonga gem
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
API: Init
require "gst"
# ???
Gst.init # <- What?
Gst::ElementFactory.make("playbin")
from gstreamer gem
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
API: Init (usage)
require "gst"
# For advanced use
Gst.init("--gst-debug=*:9")
Gst::ElementFactory.make("playbin")
from gstreamer gem
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
API: Init (better)
require "gst"
# Make optional
# Gst.init
Gst::ElementFactory.make("playbin")
from gstreamer gem
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
API: Init (impl)
class << Gst
def const_missing(name)
init; const_get(name); end
def init(*argv)
# ...initialize library...
class << self
remove_method(:const_missing)
end; end; end
from gstreamer gem
Document
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Document: Install
Install:
For Debian GNU/Linux:
% sudo apt-get install libgtk2.0-dev
% gem install gtk2
For OS X:
...
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Document: Better
Install:
% gem install gtk2
libgtk2-0-dev is installed automatically
"gem install GEM_NAME" is popular install way
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Exercises end
We remembered about
"what is similar?"
✓
We done "similarly"✓
Do you understand
about
"Remember than
Imagine"?
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Wrap up
Share this talk's goal✓
Describe key idea✓
Apply the key idea✓
Wrap up & The next step✓
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
This talk's goal
You know
how to develop better softwares
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Better
Ruby-ish
Similar to others
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Goal: In other words
You know
what is "similar"
and do similarly
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Key idea
Remember
than
Imagine
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Remember than Imagine
Knowledge
Remember
???
Imagine
Easy! Di�cult...
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
For development
Experience Rubyist for
knowledge
✓
Then remember the knowledge
But it is di�cult because you don't
have experience about "remember"
✓
✓
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
No "remember" experience
Better
softwares
Knowledge
Rubyist experience!
Remember
No experience
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Experience lib developer
It's very good
exercise
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
The next step
Share this talk's goal✓
Describe key idea✓
Apply the key idea✓
Wrap up & The next step✓
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
The next step
Use "library developer"
experience to other
things
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
For example,
Use it to
develop other
softwares
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Develop other softwares
You can remember about
a better bug report
How to reproduce?✓
✓
a better patch
How to commit? (size? message?)✓
✓
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Conclusion
Be a library
developer!
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
FYI
We accept applications about
our internship
You can develop a library with us✓
✓
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Bonus tracks
Similar vs. Innovation✓
No "imagine" communication✓
Similar
vs.
Innovation
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Innovation
Doing "similarly" will not
achieve "innovation"
✓
Should all we aspire
innovation?
✓
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
No
We have regular life✓
It's also important that
we improve our regular life
✓
No
"imagine"
communication
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
No "imagine"
Show all u need from the start
Don't omit anything✓
If you emit something,
other people need "imagine"
✓
✓
Use your experience for it!✓
Be a library developer! - Remember than Imagine Powered by Rabbit 2.0.8
Key idea
Remember
than
Imagine

Be a library developer!

  • 1.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Be a library developer! Remember than Imagine Kouhei Sutou ClearCode Inc. 2013/06/01
  • 2.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Table of contents Share this talk's goal✓ Describe key idea✓ Apply the key idea✓ Wrap up & The next step✓
  • 3.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Share the goal Share this talk's goal✓ Describe key idea✓ Apply the key idea✓ Wrap up & The next step✓
  • 4.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 This talk's goal You know how to develop better softwares
  • 5.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Better? Show by example
  • 6.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 API context.save context.circle(50, 50, 10) context.stroke context.restore from cairo gem
  • 7.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 API: Point context.save # <- Point context.circle(50, 50, 10) context.stroke context.restore # <- Point from cairo gem
  • 8.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 API: Better context.save do context.circle(50, 50, 10) context.stroke end from cairo gem
  • 9.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 API: Why Why is it better?
  • 10.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 API: Because Because it's more Ruby-ish
  • 11.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Ruby-ish? -ish == Similar to others
  • 12.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Is "similar" better? Similarity makes consistency✓ Consistency makes readability✓ Readability is important to develop better softwares ✓
  • 13.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Is "readability" important? Readability makes maintenability ✓ Maintenability is needed for improving your softwares repeatedly ✓
  • 14.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 So Ruby-ish is better
  • 15.
  • 16.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Remember File
  • 17.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Remember: File # Setup file = File.open(path) file.read # Teardown file.close
  • 18.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Remember: File # Setup File.open(path) do |file| file.read end # Teardown
  • 19.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 API (reprise) context.save # Setup context.circle(50, 50, 10) context.stroke context.restore # Teardown from cairo gem
  • 20.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 API: Better (reprise) context.save do # Setup context.circle(50, 50, 10) context.stroke end # Teardown from cairo gem
  • 21.
  • 22.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Better Ruby-ish
  • 23.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 In other words Similar to others
  • 24.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 The goal (reprise) You know how to develop better softwares
  • 25.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 In other words You know what is "similar" and do similarly
  • 26.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Describe key idea Share this talk's goal✓ Describe key idea✓ Apply the key idea✓ Wrap up & The next step✓
  • 27.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Key idea Remember than Imagine
  • 28.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Remember than Imagine Knowledge Remember ??? Imagine Easy! Di�cult...
  • 29.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 To remember, Remember ??? Imagine Easy! Di�cult... How to get? Knowledge
  • 30.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 How to get knowledge? Experience✓ Ask✓ Observe✓
  • 31.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Experience! Experience ← Do this �rst!✓ Ask✓ Observe✓
  • 32.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Key idea Remember than Imagine
  • 33.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Apply the key idea Share this talk's goal✓ Describe key idea✓ Apply the key idea✓ Wrap up & The next step✓
  • 34.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 The goal (reprise) You know how to develop better softwares
  • 35.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Apply the key idea Knowledge Remember Better softwares
  • 36.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 To achieve the goal, What should you experience?
  • 37.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 What experience? Knowledge Remember Better softwares Knowledge What experience?
  • 38.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Rubyist Knowledge Remember Better softwares Knowledge Rubyist experience!
  • 39.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Rubyist? You experienced!
  • 40.
  • 41.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 API: Getter window.get_property("opacity") # What is better API??? from gtk2 gem
  • 42.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 API: Getter (better) window.get_property("opacity") window.opacity # Better from gtk2 gem
  • 43.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Now, You found "remember" is "di�cult"
  • 44.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Di�cult! Remember!? What is "Ruby-ish"!?
  • 45.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Di�cult? Knowledge Remember ??? Imagine Di�cult...Easy! Di�cult???
  • 46.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Because You don't have experience about "Remember than Imagine"
  • 47.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 No "remember" experience Better softwares Knowledge Rubyist experience! Remember No experience
  • 48.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Your status Experience✓ Ask (Heard) ← You are here!✓ Observe✓
  • 49.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 To achieve the goal, What should you experience?
  • 50.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 What experience? Better softwares Knowledge Rubyist experience! Remember What experience?
  • 51.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Library developer Better softwares Knowledge Rubyist experience! Remember Library developer
  • 52.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Library developer Considers about easy to use API as a Rubyist✓ ✓ easy to understand document as a library user✓ ✓
  • 53.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Library developer Considers them many times
  • 54.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 "Many times" It's very good exercise
  • 55.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Exercises API✓ Document✓
  • 56.
  • 57.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 API: Getter (reprise) # Low level window.get_property("opacity") # Better window.opacity from gtk2 gem
  • 58.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 API: Better? # Low level window.get_property("visible") # Better # ???: hint: "visible" is bool from gtk2 gem
  • 59.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 API: Better # Low level window.get_property("visible") # Better window.visible? from gtk2 gem
  • 60.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 API: Getter # Better for record as collection record["name"] # Better for record as object record.name from rroonga gem
  • 61.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 API: Init require "gst" # ??? Gst.init # <- What? Gst::ElementFactory.make("playbin") from gstreamer gem
  • 62.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 API: Init (usage) require "gst" # For advanced use Gst.init("--gst-debug=*:9") Gst::ElementFactory.make("playbin") from gstreamer gem
  • 63.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 API: Init (better) require "gst" # Make optional # Gst.init Gst::ElementFactory.make("playbin") from gstreamer gem
  • 64.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 API: Init (impl) class << Gst def const_missing(name) init; const_get(name); end def init(*argv) # ...initialize library... class << self remove_method(:const_missing) end; end; end from gstreamer gem
  • 65.
  • 66.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Document: Install Install: For Debian GNU/Linux: % sudo apt-get install libgtk2.0-dev % gem install gtk2 For OS X: ...
  • 67.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Document: Better Install: % gem install gtk2 libgtk2-0-dev is installed automatically "gem install GEM_NAME" is popular install way
  • 68.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Exercises end We remembered about "what is similar?" ✓ We done "similarly"✓
  • 69.
  • 70.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Wrap up Share this talk's goal✓ Describe key idea✓ Apply the key idea✓ Wrap up & The next step✓
  • 71.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 This talk's goal You know how to develop better softwares
  • 72.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Better Ruby-ish Similar to others
  • 73.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Goal: In other words You know what is "similar" and do similarly
  • 74.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Key idea Remember than Imagine
  • 75.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Remember than Imagine Knowledge Remember ??? Imagine Easy! Di�cult...
  • 76.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 For development Experience Rubyist for knowledge ✓ Then remember the knowledge But it is di�cult because you don't have experience about "remember" ✓ ✓
  • 77.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 No "remember" experience Better softwares Knowledge Rubyist experience! Remember No experience
  • 78.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Experience lib developer It's very good exercise
  • 79.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 The next step Share this talk's goal✓ Describe key idea✓ Apply the key idea✓ Wrap up & The next step✓
  • 80.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 The next step Use "library developer" experience to other things
  • 81.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 For example, Use it to develop other softwares
  • 82.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Develop other softwares You can remember about a better bug report How to reproduce?✓ ✓ a better patch How to commit? (size? message?)✓ ✓
  • 83.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Conclusion Be a library developer!
  • 84.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 FYI We accept applications about our internship You can develop a library with us✓ ✓
  • 85.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Bonus tracks Similar vs. Innovation✓ No "imagine" communication✓
  • 86.
  • 87.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Innovation Doing "similarly" will not achieve "innovation" ✓ Should all we aspire innovation? ✓
  • 88.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 No We have regular life✓ It's also important that we improve our regular life ✓
  • 89.
  • 90.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 No "imagine" Show all u need from the start Don't omit anything✓ If you emit something, other people need "imagine" ✓ ✓ Use your experience for it!✓
  • 91.
    Be a librarydeveloper! - Remember than Imagine Powered by Rabbit 2.0.8 Key idea Remember than Imagine