- 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.
N.B. These summaries may be imprecise.
- Keynote (JRubyKaigi)
Title: JRuby Pony Show
- by Charles O.Nutter
- by Tomas Enebo
- The first idea for JRuby: [ruby-talk:13703] Ruby on a JVM - good or bad idea?
- Jan Ame Peterson, the first developer of JRuby
- Java One 2006 JRuby 0.9.0 rails runnning barely
- Charles and Tom are hired to work full-time JRuby development by Sun
- JavaOne 2007 JRuby 1.0
- Normal Rails application run ok
- 2008 Jan. JRuby 1.1 : Very Stable / Production OK
- 2009 Aug. Chalres and Tom and NickSieger move to EngineYard
- 2009 Oct. JRuby 1.4
- 2009 Nov 1st JRubyConf
- JRuby 1.5.2 in this week : 100% green Rails test runs
- 4 demos
- RUBOTO
- JRuby on Android
- Using ruboto-irb
- Using ruboto-core
- Using NexusOne presented by Tim Bray
- Develop the irb suggestion for less key-typing because cell's key is quite small.
- You can find ruboto-irb in Marlecplace
- gem install ruboto-core
- Build horizontal GUI and vertical GUI at once by writing DSL
- Calling Tom's Android: 3 dollar for 1 minute because of under the international roaming, it's expensive demo :-)
- Native C Extensions
- Ruby SoC
- C Extension wrapped by JNI
- Available from JRuby 1.6
- Manage the gem having Native C Extension from JMX
- Win32OLE
- Demo for operating IE8 on WindowsXP on MacOSX's VirtualBox
- Compatible for Ruby 1.9 mode
- Performance
- Dynamic optimizations: -J-DJRuby.compile.dynopt=true
- Available from JRuby 1.6
- We continue porting C-only libs/exts to Java
- Ad for our book : "Using JRuby"
- Now writing 2 years, still in beta.
- Want to use Ruby from Java? RedBridge makes it pretty easy! (JRubyKaigi)
- by Yoko Harada
- I'm coming from Michigan
- I was a specialist of Java Servlet in Japan at several years ago.
- There are many cases using Java from JRuby.
- I this theme: using JRuby from Java
- This demo is my first rails application on GAE
- I'm the commiter of pure-Java porting of nokogiri
- JRuby is just Java application
- Most valuable case for "Write Once Run Anywhere"
- You can write one-liner with launching from jruby.jar
- You can give JVM command options.
- Giving bootclasspath argument improves performance of JRuby so much
- You can est Java application using Cucumber via JRuby
- RegBridge: A part of JRuby
- embed-core
- BSF on embed-core
- JSR223 on embed-core
- Why I create RedBridge despite JSR223 is already there?
- The API of JSR223 is not friendly for Ruby
- VariableType is Global
- At that time, JSR223's license was not redistributable
- RedBridge Demo
- Spawn .rb program file from Java class
- Load Ruby class from Java class
- Run DataMapper from another JVM language(closure) Demo
- More about embed-core, See the JRuby Wiki!
- Rubyist, it's time to develop your Rails app on Google App Engine (JRubyKaigi)
- by Takeru SASAKI
- What is GAE?
- Google' cloud, PaaS
- At 2008, Python available
- At 2009, Java available
- Scalable
- Used in frontend of Google services
- Datastore is BigTable
- Mail environment is GMail
- No need to consider server administration
- In Java development
- HTTP tier: Servlet
- Datastore tier: JDO / JPA
- cron tier, taskqueue tier and mail/xmpp tier: HTTP Handlers
- Dashboard
- Default UI that is good-enough and good-looking
- fee free until 5 million page views per month
- Things we cannot do
- write native codes
- multithread
- socket
- daemon
- write to any filesystems
- streaming
- full ACID
- Only handling simple KVS
- How do we them on JRuby?
- gem install google-appengine
- dm-appengine
- rails-appengine
- rails-dm-appeigine
- etc.
- Applications what are working on Rack work also on GAE
- Sinatra, Ramaze and so on
- Datastore: It is one and only important matter
- KVS
- Entity: there are no schema
- Query & index: manipulate many entities at once
- EntityGroup : Automatic shareing by handling prefix of the entity
- Same EntityGroup guarantees ACID fully
- Another EntityGroups don't guarantees ACID
- It's NOT compatible with ActiveRecord
- TinyDS: ActiveRecord-looking library I develop
- dm-appengine
- Create your own library with low-level API by yourself
- Ruby API is Improved Unix API
Movie(Japanese)
- by Akira Tanaka
- Ruby's IO APIs are almostly base on stdio from Ruby 1.4
- These are relied on Unix and its atomosphere
- So Ruby belongs to Unix atomosphere
- Ruby is useful for Unix users
- EOF
- feof() : befavior of C : have read EOF already?
- Ruby's eof? : behavior of Pascal : Will next be eof?
- In fact, feof() is almostly not required, that is written in FAQ of C
- In fact, There are not any EOF check methods in Python
- From Ruby 1.9, we have stopped relying stdio in somewhere
- So we don't implement any EOF flags
- IO.select
- Unix's select does not consider any inner buffers of stdio.
- Ruby 1.8's IO.select had been implemented with considering inner buffers of stdio.
- Ruby 1.9's IO.select implements original inner buffers instead of stdio.
- read
- For stdio, It is difficult to read what amount we need, like streaming.
- We can do it by IO#sysread (behavior of Perl).
- This Goes mostly.
- But this is not considered about NIO because that stdio is not so.
- Ruby 1.8's IO#sysread behaves diffrently in combination of [blocking, non-blocking] and [singlethread, multithread]
- We hesitate to use it because we have to know what library is using backgroud thread at all.
- This behavior is more worsen than Unix' one.
- In Ruby 1.8, the combination using IO#sysread with method using inner buffers of stdio occures error: For instance, SSL Proxy on HTTP CONNECT
- Use IO#readpartial
- Blocking if non-blocking IO is used while data are empty
- Able to combine with method using inner buffers of stdio
- IO#read_nonblocking, IO#write_nonblocking
- Non-blocking IO, and never block while data are empty
- find -depth
- Unix's find command includes 'depth' option
- Ruby's find library does not have the feature corresponding 'depth' option
- But, Unix's 'depth' option is also wrong because of not searching by depth
- So we keep current find behavior and oppose to 'depth' feature as searching by depth
- We will define PID as object
- Lightning talks
Movie(Japanese) 01
Movie(Japanese) 02
Movie(Japanese) 03
Movie(English) 04
Movie(Japanese) 05
Movie(Japanese) 06
Movie(Japanese) 07
Movie(English) 08
Movie(Japanese) 09
Movie(Japanese) 10
Movie(Japanese) 11
I surprised that I can write one-liner with launching from jruby.jar:
$ java -jar /opt/local/share/java/jruby/lib/jruby.jar -e "puts 'Hello World'" Hello World
No comments:
Post a Comment