Sunday, August 29, 2010

The 3rd day of RubyKaigi 2010 (Morning)

Today is the 3rd day of RubyKaigi 2010.

I attended these sessions in this morning:

  • If the session has a movie in English, I just write summaries of the article. Please see that movies if you want more details.
  • If the session has a movie in Japanese, I write the article with translating and little-summarizing.
  • If the session has no movies in any languges, I try to write the article with little-summarizing.
  • But, for Ceremonies and Lightning Talks, I only put the link of movies.
  • And I don't translate Q&As in the article because these are the gift for attendees in there.
  • The future of the bigdecimal library and the number system of Ruby
    • by Kenta Murata
    • What is BigDecimal
      • BigDecimal class
      • Multiple-precision floating-point number
      • BigMath module : Math module for BidDecimal
    • BigDecimal has been existing for a long time, but there are some problems because this is not maintained frequently.
    • Thread
      • Thread unsafe
      • Fiber unsafe
    • Precision
      • Precision should be owned by Number itself, inherently.
      • But Ruby's BigDecimal does not own its precision.
      • Ruby's Float is same.
      • Mixture of BigDecimal and Float generates Float, not BigDecimal.
    • BigDecimal is initialized only from String.
      • Not able to be initialized from Number.
      • Unbelievably, not able to be initialized from another BigDecimal.
    • Slow calculation
    • Future
      • There are classes of real / integer / rational / complex. But there is no irrational class.
      • ComputableReal : irrational class as algorithm.
      • For instance, Euler's formula does not become -1, currently. So we make it -1, correctly.
  • Ruby meets LDAP, choices and case
    • by Kazuaki Takase
    • What is LDAP?
      • RFC4510
      • Lightweight version of DAP
      • Directory = a ledger
      • Entry: Basic unit of LDAP data
      • not only for account database
      • Object class: Definition of what the Entry is.
      • Each object classes have different attributes
        • For instance, 'posixAccount' is an attribute for Unix account.
      • There are some object-oriented cncepts
        • Inheritance
        • Abstract Object Classes
        • Structural Object Classes
        • Auxiliary Object Classes
      • Attributtes: Oftenly, One attribute has many values.
      • Directory Information Tree (DIT)
      • Whole structure of LDAP data
      • Manage entry as tree hierarchically
        • There are best practice in Hierarchical structure, but no specifications
      • Distinguished Name (DN)
        • Relative Distinguished Name(RDN): The unique name in one hierarchy
        • An attritbute described in entry is RDN
        • Concatenating RDNs from the bottom of hierarchy to the top makes the unique name in DIT.
    • Ruby with LDAP
      • There are too many LDAP related gems in rubygems.org
      • 'ruby-net-ldap' was renamed to 'net-ldap'
      • 'ruby-activeldap' was renamed to 'activeldap'
      • ruby-ldap
        • C Extention library = Ruby wrapper for C implementation of RFC1823
        • Low level abstraction
        • Few documents
        • Fast
        • require 'ldap'
      • net-ldap
        • Pure Ruby
        • Slower than ruby-ldap 10 times
        • Abstraction of LDAP connection
        • High portability
        • Good enough RDocs
      • activeldap
        • Implementation like ActiveRecord
        • Slower than net-ldap 3 times
        • Using ruby-ldap, net-ldap and JNDI inside
        • Abstraction of DIT for the class, abstraction of Entry for the instance
        • require 'active_ldap'
    • Case 1
      • Account IDs go apart to each inhouse systems
      • Exsiting some LDAP system already, but this is difficult to SSO-ize.
      • Build another new LDAP system
      • Also build administration application for this
      • Ruby on Rails + ruby-ldap
      • Avoid activeldap because of the hardness to use
      • Encounter the lack of documents, not only of ruby-ldap but also of LDAP itself.
      • Good enough speed and convenience
    • Case 2
      • Integrate distributed systems of employee master, authentification and so on
      • Ruby CGI + ruby-ldap
      • Also implement the modifying function via Samba
      • We knew about OpenLDAP, so we can use ruby-ldap same as OpenLDAP intuitively
    • Case 3
      • activeldap
      • In Hokkaido Information University, we manage some services to use laboratories.
      • And we hold collaboration study to build a Ruby on Rails application for managing students' qualifications
      • Using both activeldap and Authlogic, referring blog post in somewhere.
      • activeldap is the library like ActiveRecord
        • But we don't use activeldap's advantages, so it could be some other libraries :-)
        • difficulties for writing test with activeldap
    • Case 4
      • Managing account information for personnel department and roles of file servers
        • for solving wasted roles: some foldres can be accessed by all
        • for solving password expiration: send the alert mail automatically
      • Rails + activeldap
        • Available validation and association
        • customized script/runner
        • LDAP testing via Rails testing
        • We build up additional LDAP systems for developmet and test environment
        • Switching in config/environments/*.rb
        • Stuck point: fixture
      • But Most difficult point is that personnel department is unconcerned about LDAP :-)
      • many ruby-ldap code examples
      • many acticeldap code examples
N.B. These summaries may be imprecise.

In LDAP session, I agree with the speaker said " Most difficult point is that personnel department is unconcerned about LDAP".

No comments:

Post a Comment