| Conference Link: | www.rubycentral.org/conference/ |
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.
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")
To control a service …
Service.stop(name) Service.start(name) Service.pause(name) Service.resume(name) Service.delete(name)
To create a service …
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
To register a service
serv = Service.new
serv.create_service { |s|
s.service_name = "aba"
s.display_name = "aba"
s.binary_path_name = "c:\\..."
}
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.
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.
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.
After lunch, the afternoon was open for talking, programming or whatever else suits your fancy. Here’s some of the stuff I participated in.
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.
Wow, I can’t wait till next year!