Rather than enjoying a long awaited Spring Saturday in New York, I was at the first–and hopefully annual–Gotham Ruby Conference. Although the great weather was enticing, the conference was well worth the day spent indoors. The fact that it was at Google’s NYC office didn’t hurt.
The organizers of this conference deserve a huge, collective pat on the back for a job well done. This was one of the best organized events I’ve attended. No small task for a group of people that have day jobs and many extracurricular activities. Nice work all.
Here are my brief notes, for more detailed coverage of the talks, check out Bryan Helmkamp’s blog.
Adhearsion is a Ruby layer on top of Asterisk. This talk got a lot of people in the room excited about the possibility of doing VoIP with Ruby. That’s good because Jay said he would like to hook up with some rails developers that are interested in Asterisk integration. This is very cool stuff. I personally would welcome one of the items off of Jay’s “future” slide: RSpec testing… for a PBX!
- sipphone.com for cheap POTS/VoIP integration
- voip-info.org for general VoIP information
JRuby is a version of Ruby that runs on the Java Virtual Machine. JRuby running in interpreted mode is still a bit slower than C Ruby. However, in compiled mode, it tends to run a bit faster in many cases. Release 0.9.9 should be available next week.
Camping is a web microframework (4K) and in short, it’s “Rubylicious”. It is a MVC framework, but unlike rails, all of the application code goes in one file by default. Camping is good for those occasions when Rails is just too fat. Some other differences are that views are constructed in Markaby rather than ERb and Camping defaults to SQLite but using another RBDMS is certainly possible. Jeremy is working on porting some other very useful Rails modules to Camping.
This is a topic I am currently very interested in. Document categorization is used quite a bit for spam detection today. It is also quite useful for language identification, news categorization and sentiment detection.
At a very high level, the steps for machine categorization are as follows:
- Get training data
- Document preprocessing
- Feature selection (optional, increases accuracy)
- Train the Classifier
- Test and update
Yes, that is very high level. Once again, get the details of the talk here.
For those wishing to get started with document categorization, Paul suggested the Naive Bayes Classifier since it is fast and forgiving. He
said he would post has posted some of his categorization code on his site, including his Chi Squared feature selector.
Trotter’s talk was very detailed and chock full of examples, my notes are quite sparse here though. The best thing I took away from it was to avoid going nuts when writing tests. Basically, test thoroughly and ensure good coverage, but be careful not to write too many tests or make them too brittle. Also, sometimes it is better to create a class for testing rather than to use mocks and stubs.
The idea behind Business Natural Language (BNL) is to put the power of changing business rules into the business expert’s hands rather than involving software developers for every change. Jay’s BNL site explains this much better than I can, so I won’t attempt to go into detail here.
One final note: Having the Lightning Talks directly after lunch was a great idea. It can be difficult to stay focused, or awake, during a long presentation after lunch. Short, five minute presentations by different people keep it lively.
Technorati tag: goruco2007