Sunday, July 17, 2011

The 2nd day of RubyKaigi 2011 (Morning)

Today is the 2nd day of RubyKaigi 2011.
In this morning, I attended these sessions:

  • Ruby goes to HOLLYWOOD
    Video (English)
    • by Elise Huard
    • A movie film is taken at any different locations in parallel.
    • A movie soudntrack is also taken at more different location.
    • A movie director builds these materials as one movie, in the last step.
    • Oh it's like MapReduce.
    • In fact, people do smoething in parallel.
    • It's hard for just one person to behave in parallel.
    • Shared state and Mutable state
      • Thread must be lock the state
      • the output is indeterminate
    • Actor Model
      • No Global State
      • Actor
      • Partial Order of Execution
    • Sleeping barber problem
      • Need to awaken the sleeping barber when customer comes
      • Traditional solution : Mutex
    • Ruby libraries for Actor
      • Rubinius Actor
      • Revactor
    • I reccomend Celluloid
      • JRuby suitable
      • CRuby is not reccomended because of GVL
    • Actor model in another languages
      • Erlang
        • This language implements actor model at first, as production level.
        • Used in telecommunication industry
        • Immutable variables
        • Elixir
          • Ruby wrapper for generating Erlang bytecode
          • Immutable ruby variables
      • Scala
        • Actor based language on JVM
        • But, more popular way is using actor library - akka.
          • We the JRubyist can use akka from JRuby.
    • Actor is not silver bullet
      • Actor is useful when the boundary is obvious
      • Cannot erase all deadlocks
      • We need to learn abourt "concurrency primitive".
    • I suggest it is useful if "concurrency primitive" exists in stdlib.
  • Drip: Persistent tuple space and stream
    Video (Japanese)
    • by Masatoshi SEKI
    • I soon publish the dRuby book, English first edition.
    • Retrospective for PTupleSpace
      • I made PTupleSpace because there were enhancement requests
      • And I announces it in RubyKaigi 2007
      • But, noone use it.
      • Able to recover only objects inside tuple space
      • Not able to recover ones if crushed while taking
      • It's hard to use as KVS
    • Drip
      • like append-only logging
      • substitute solution for PTupleSpace
      • Comparison with Queue
        • Queue consumes elements, Drip is not.
        • Drip is delivering clones
        • Both can wait incoming data
        • Drip can "take n"
        • After re-launching, Drip can memorize before state
      • Comparison with Hash
        • Drip becomes a "historical dictionary" when tagged
        • get the value on the history
        • read_tag method waits incoming data, head is not.
        • cannot delete elements
        • Not dare to implement each and keys, because of potential for huge data
    • I soon publish the dRuby book, English first edition. And only English first edition contains the Drip contents.
  • Ruby on Rails development that doesn't hurt
    Video (Japanese)
    • By Akira matsuda
    • What is "Rails development"
      • Ride on someone else's rails
      • Developing rails itself
        • for yourself
        • for everyone
    • Where
      • Rails itself
      • Rails plugins
    • Social coding
      • You need to communicate for everyone
      • Way to "the community"(not "a community")
      • "the community" is "the world"
    • 10 Pro tips
      1. Read "fresh" git log of rails, every morning
        • Learn Rails' future
        • Who develop: Recently, there are South American guys
        • Learn commit comment
      2. Know the remarkable people
      3. Imitate Good Commits
        • Atomic
        • With tests
        • What is this commit?
      4. Learn English
      5. Live on the edge
        • due to bundler , we can try rails edge easily
      6. contribute to docrails
      7. share your monkey patches
        • please up your monkey patch to upstream
      8. start from a gem
      9. Write a good README for a gem
      10. attend railsconf
        • Joyful than rubyconf :-)
      11. (for me) Write book
        • find some bugs while writing rails recipe book
        • Book driven developent
  • Road to the Ruby Master
    Video (Japanese)
    • By Yutaka Hara
    • try in various fields
    • take a long time
    • believe that computer can do everything
      • If ruby cannot, use C, or use assembler
    • believe that I can build everything
    • Know about bulitin lib and stdlib
    • Solve my own easy problem
      • ex. deal text
      • ex. rename files
      • ex. deal csv
      • and so on.
    • Write a good code
      • beauty
      • ruby-ish
      • readability
    • write a blog
      • as a memorandum
    • speaking or talking at event
      • start from at little event
      • start from introducing any other's product
    • Look inside
      • look one under layer
      • read the gem
        • rewrite the gem
        • If you want to undo, gem pristine
      • read the ruby source code
    • Know other languages
    • If you will become the master...
      • Be different from others
      • Maintain motivation and productivity
N.B. These summaries may be imprecise.
And I don't translate Q&As in the article because these are the gift for attendees in there.

In this time, I learned about gem pristine, I never know this at this time.

No comments:

Post a Comment