Continuing with the semi-real time blogging of RubyConf.new(2004)…
RubyX (John Knight)
John gave a short presentation about the RubyX project, which is a linux
distribution that uses Ruby in some manner. I’m a little unclear on
exactly how Ruby is used in the project, but John is advocating
that folks who are interested take a look at it and supported it.
Ruby on Windows (Dan Berger)
Dan has been using Ruby on windows and realized Ruby seriously lagged
behind both Perl and Python in supporting the windows platform. Dan has
been working on the win32util project on RubyForge to address that
disparity. Daniel did include the disclaimer that he is not a Microsoft
Employee, nor is he paid for this
Dan first talked about setting up services. I’m grabbing a lot of his
example code because I have an immediate use for this.
To query about services …
require "wind32/service"
include Win32
Service.services { |service| p service}
Service.status("ClipSrc")
Service.getdisplayname("ClipsSrv")
require 'win32/service"
include Win32
class MyDaemon < Daemon
def service_main
# Service code goes here
rescue Exception => e
logfile.puts "ERROR: #{e.message}"
exit
end
end
d = MyDaemon.new
d.mainloop
Daniel covered a number of other utils. In particular he identified a
number of things that just work differently, but they are working on
unifying the APIs between the two platforms. In particular, the RubyGems
team is interested in the popen3 api so that our functional tests could be
run on a Windows platform.
How Dynamic Can You Get? (Jamis Buck)
Jamis had the challenging task of convincing a bunch of dynamic language
enthuisists that dependency injection can make their already flexible
language even more flexible. While dependency injection in a huge advantage
in a language like Java, there some questions to how much it adds to Ruby.
Copland, a framework for Dependency Injection/Inversion of Control, is very
patterned after a Java based framework. I think it would be interesting to
Ruby-ize the framework and see what falls out.
Code generation with Ruby in a heterogenous network application (Gorden James Miller)
Gorden needed to get a largish C++ application running on a hardened
computer network with a small memory footprint. There are a number of
messages involved in the network solution. He used XML to describe the
nature of the message and the structures sent with the message. Reading the
XML with REXML, he used ERB to provide templates for C++ code generation to
handle the messages. I found it fascinating to use ERB for code generation
rather than web pages.
There are some more interesting details the type of network they are
testing/simulating. The network is only up for brief periods of time and
must survive as much as a 90% packet loss.
Lunch
Self-Organizing Afternoon Activities
After lunch, the afternoon was open for talking, programming or whatever
else suits your fancy. Here’s some of the stuff I participated in.
Jim Freeze and I (and later Rich Kilmer) worked up a reasonable Ruby-based
domain language for Jim to use to specify some work related config files.
This is one of the themes I heard over and over again during the
conference.
David Heinemeier Hansonn decided to include a "Builder style"
view into Rails. If your view directory contains a
".rbuild" file, then the file will be invoked with a XML
Builder object that you can use to programmatically build your html page.
This is an alternative to the rhtml ERB files. Builder probably isn’t
a good choice where you have a page designer involved, but it might make
sense for a programmer only project, or for generating an RSS style page.
David also mentioned something about doing web services with Rails. Now
that would be cool.
Finally, I worked with Chad Fowler and Bruce Williams on the design of the
new RubyGems.org website. Chad had a prototype app built, and Bruce started
helping him refine it Me? I kibitz-ed and watched for the most part.
Conference Summary
What a weekend! There was an energy about this conference that I
hadn’t felt before. The entire community was excited about apps like
Rails and the proto-Rite VM (YARV). The ability to talk to folks actually
using your software and getting feedback is quite a rush. I received all
kinds of good ideas and suggestions. Unfornately, my plate is already full
of things to do, so who know when I will get to all these ideas.