Saturday, July 18, 2009

The 2nd day of RubyKaigi 2009 (Afternoon)

In this afternoon, I attended these sessions:

  • Community Appeals
    • Not only Japanese regional communities
    • But also community from Shanghai(China)
  • Keynote Address by Matz
    • speaker: Matz
    • Theme: compass for us(rubyists)
    • Now is the golden age for programmings
    • Lisp is awesome, but there was no good time
    • Ruby was also too for a time, but now, here are many rubyists
    • Things we should remember
      • Attitude
      • NO "Sour Grapes"
      • Fix broken windows(broken window theory)
      • Responsibility
    • We make our communty fairness, for example...
      • I don't hope "That Matz says is the correctness."
      • I hope "Hi Matz, you again committed with bugs yet, our community suggest to revoke your commit right."
    • Introducing Matz' local environment for writing and commiting ruby
      • Emacs
      • Subversion
      • Stacked GIT(written in Python)
    • Introducing not-yet-open Ruby functions from Matz' local environment e.g. Complex literal  2 + 4i
  • Lightning Talks
    • Monitoring solar power inverter by RoR
    • ActiveLDAP
    • and many other LTs
  • NeverBlock and I/O Concurrency in Ruby
    • speakers: Mohammad A. Ali and Ehab El-Badry
    • NeverbBock is a library based on Fiber
    • Pros and Cons of concurrency
      • Using blocking I/O
        • Pros: not take into account of synchronization
        • Cons: too much latency
      • Using multi process
        • Pros: not take into account of synchronization, scaling on multi CPU
        • Cons: difficult to share resources, latency with inter-process communication
      • Using multi thread
        • Pros: speed of thread construction is fast, speed of inter-thread communication is fast
        • Cons: synchronization needs tricky techniques, risk of dead lock
      • Using reactor pattern
        • Pros: much more speed, much more scaling
        • Cons: if one of all is blocked, all are blocked, risk of dead lock
      • Using Ruby 1.9 Fiber
        • Pros: very faster, less memory footprints
        • Cons: ugly implementation, risk of stack overflow if you call recursively
    • NeverbBock code sample
      • NB::Reactor.new { #codes }
      • NB::Fiber.new { #codes }
    • Writing like blocking I/O
    • Ease to write multi-thread programming
    • But many memory footprints
    • supporting libraries
      • Net/Http
      • ActiveRecord
      • ActiveResource
      • Thin
      • (expected)Passenger
      • (expected)Sequel
  • JRuby Update 2009
    • speakers: Thomas Enebo and Nick Sieger
    • JRuby is Ruby 1.8.6 compatible
    • If you append --1.9 option, JRuby becomes Ruby 1.9.1 compatible
    • Why we use JRuby
      • Java codes are anywhere
      • JVM's GC and HotSpot are great
      • Java handles native thread
      • Java uses all cores/processors
      • Improvement of code base is keeping on continuously
    • Demo
      • include Java interface as Ruby module
      • write concrete implementation of Java abstract method as Ruby instance-specific method
    • Cannot use extended C libraries
      • We re-write popular libraries with Java
      • Rest of these will be re-writed by Java or FFI
    • JRuby 1.3.1 were released on 2009/06/15
      • support GAE/J
      • support 1.9 mode on jirb
    • JRuby 1.4.0 is scheduled in 2009/09
      • JSR-292 support
      • more integration with Java
      • more communication with other LL on JVM
    • ruby2java can convert from Java class to Ruby class
    • Frameworks and sites using JRuby
      • monkeybars
      • GitHub:FI
      • JrME
      • Kenai.com
N.B. These summaries may be imprecise.

The most impressive in this afternoon is that I have heard "GitHub:FI" at JRuby session, that's first for me.

After the last session in this day, Beer bust was held.

No comments:

Post a Comment