Notes from the First NovaRug Meetup

January 26, 2006

Tonight I went to the first Northern Virginia Ruby Users Group (NOVARUG). Here are my semi-distilled notes and commentary on the evening:

  • Rich Kilmer spent most of the time giving a presentation on Alph, and talking about his experience doing a functional prototype interface for mid-air plane refueling. He also talked about bridging Ruby and ActionScript. The Ruby-related content was similar to the presentation he gave at RubyConf 2004, so I didn't bother taking too many notes on the actual application.
  • ~44 people. There were roughly 60 people at RubyConf 2002, and maybe 100 at RubyConf 2004. 40+ people in for a straight NOVA/DC meetup kind of puts the recent exponential growth of Ruby in perspective. David Black (dblack) and I talked about that a few months ago on IRC, but I didn't appreciate the magnitude of the increase until this evening.
  • While fiddling around on my laptop without Internet, I just discovered that the never-released Gemini still works :D. Gemini is a GTK package management GUI for RubyGems, written in (suprise!) Ruby. Is anyone interested in this thing? I could probably touch it up and have it release-ready in about a week if there's still a desire.
  • Rich mentioned MTASC, which is a fast, open source, ActionScript to SWF compiler written in OCaml. Apparently it's noticably better than Macromedia's (now Adobe) tools
  • Talked about ActionStep, a Flash-based OpenStep/Cocoa API
  • Rich apparently didn't know what freebasing was when he named FreeBase (I wondered about that at RubyConf 2002).
  • Rich noted that he's using camelCase instead of underscores for method names in Alph because the methods are actually RMI calls from Ruby to ActionScript. He noted that underscores are generally the Ruby way, and that people outside the US (especially Japanese people) have a lot of trouble reading camelCase code because they don't recognize the case and, by extension, can't distinguish the words. If you think about it, it makes sense. Can you tell two similar Kanji glyphs apart?
  • Rich's presentation uses code like 60.days and 24.hours. He mentioned that that's an extension to Integer, but I hope he misspoke, because that makes a whole lot more sense as an extension to Numeric, because that way it gets picked up by Bignum, Fixnum, and Float for free.
  • Rich showed off Indi, a cross-platform Flash-based PIM for USB drives. It requires Flash 8, so by cross-platform he really means OSX and Windows, at least until Macromedia/Adobe release Flash 8 for Linux.
  • Apparently the current Flash runtime doesn't do JIT internally (I asked about this, apparently it parses, then walks the AST, similar to Ruby 1.8. If they're doing that, then they really shouldn't be calling SWF files bytecode). According to Rich, the upcoming runtime will JIT, which means an approximate 10x speed boost at the cost of an upgrade and increased disk footprint of roughly 200k. Not too shabby.
  • Thought: Indi for Linux could use the evil shell script stuff to build an all-in-one equivalent to a OSX .app (they'd need to statically compile stuff to make it truly portable).
  • Some group conversation about OpenLaszlo), an XML-based platform (IDL, IDE, etc), and how it compares to Alph. The difference between Alph and OpenLaszlo is that the former parses XML at runtime (similar to Mozilla's XUL and Microsoft's XAML (Avalon)), while the latter compiles the XML IDL to a Flash SWF.
  • ActionScript 1 was a prototype-based language (e.g. like JavaScript). apparently now it's class-based.
  • Question about why not Alph isn't using SVG for the runtime, especially since it has the advantage of being open. Rich explained that SVG requires a plugin (which isn't quite true, Firefox 1.5 doesn't require a plugin to display SVG, but it's implementation needs some work). Regarding licensing, Macromedia/Adobe aren't likely to make any major licensing changes, since that would screw their established user base.
  • Last year Adobe open-sourced Adam and Eve, the C++-based core interface framework for Photoshop and several other Adobe applications

And that's all I've got for Rich Kilmer's presentation. Afterwards he gave the group an opportunity to talk about their projects. I didn't catch anyones' names, and Google failed me, so I couldn't find references to these projects online.

  • Guy who works at NIST, demoing app to model PCB standards, in 3D. You can zoom in and out and rotate the PCB around. Got oohs and aahs from the crowd :).
  • "Pippen" apparently marshals data to XML, and there was another app called "Genie", but I didn't catch what it did.
  • He made several references to fiducials, which I thought sounded neat, so I looked it up on Wikipedia.
  • Everything his group at NIST does is public domain, so people are more than welcome to try this stuff out.
  • Someone asked about the state of Ruby OpenGL, since it's listed as a prerequisite for his demo application. Apparently it's working just fine for everything he's tried, except for tesselation.

Someone else (again, no name, although he made a passing reference to the DC XP users group) talked briefly about a Rails-based social networking tool:

  • Allows animal rescue people to coordinate on a national level.
  • Someone suggested that he use Google Maps, and he said he is thinking about it, but the more important aspect of the application is route-planning and commentary (he doesn't want to stop at the wrong McDonalds and meet up with Ted Bundy).

Finally, one person to the right of me (hiding in the back, along with all the other real introverts. Either that or he was late like me :D) mentioned an abstract Rails authentication plugin he was working on. No name, and no project name (he didn't provide either), so that's the most information I can give you.

After that, there was some miscellaneous conversation about future NOVARUG, specifically times and frequency. It sounds like they're going to be monthly, on Thursday evenings (because otherwise it conflicts with my poker night!), and start at 7:00 (or 6:30 if you want the free pizza). There was one comment about starting earlier, but the general consensus seems to be that 7:00 is just fine; any earlier and traffic becomes a serious problem. Personally, I'm hoping we can find a venue that's closer to the Fairfax area, mainly because I'm selfish and lazy, but also because that would make NOVARUG more DC and Maryland accessible. Also, the Metro doesn't run out to Reston, which means people have to drive or carpool.

(Of course, when I say "drive", I mean "sitting in stopped traffic on 495 for 30 minutes, staring at the silhouette mudflaps on the semi in front of you and hoping the drivers on both sides don't notice you picking the gunk out of your eyes or hear you jamming out to Madonna").

There was some talk about setting up a NOVARUG mailing list. Apparently there are already a couple Yahoo groups, but both are essentially dead, and the owner of one is MIA. Rich and Tom are going to set something up on the novarug.org domain, and provide the details on the NOVARUG blog.

Rich mentioned something about Paul Graham speaking at the upcoming RailsConf in Chicago. Personally, I have no real interest in Rails — I think it's a great, I just don't use it personally — so I can't justify the cost of the conference. I like Paul Graham's writing (although I'm only aware of one Ruby reference), so I'd love to hear him speak. Hopefully that'll go better than Brad Cox at RubyConf 2004 (which was actually really interesting, until he tried to talk about his new proprietary DRM system...to an all open source crowd).

Afterwards, a couple of 3-5 person groups coalesced and talked for about 30 minutes. I eavesdropped in on the group around Rich Kilmer and even offered a bit of commentary. Rich Kilmer said Fox is ugly on some platforms, and I said "no, Fox is ugly on every platform" (it is. I've seen stuff I've written on themed XP systems, and it basically looks like a Tk-based app does on every platform: teeth-gnashingly ugly). RubyGems and RubyForge both came up a couple of times in conversation, so I'll mention them here: RubyGems and RubyForge. And don't forget this amusing IRC quote about RubyGems.

On the way out I got a chance to talk to Tom Copeland, who I haven't seen since he made me feel like a celebrity by recognizing me as "the Pablotron guy!" at Baja Fresh. He liked the excessively verbose description of my XHTML patch on ruby-core, and also noticed how it's difficult to get patches through on ruby-core. I realize that's mainly a language/cultural barrier and not any sort of malice,, but it's still frustrating to be on the short side of the stick. Rich suggested I send RDoc patches directly to Dave Thomas (those particular patches have already been silently accepted into 1.9, but not the XHTML ones).

That's it for my notes. You know the drill: let me know if you see any gratuitous errors. I'll definitely be at the next schindig; maybe I'll even have something to present!

Update: The colorful language about Fox isn't meant to downplay the usefulness of the library; I think the API is really straightforward, and that it looks and feels nicer than Tk and a slew of other non-native widget libraries. That said, non-native widget toolkits don't mimic the look and feel of the native system, and that almost always looks terrible to me. That goes for Mozilla under, well, pretty much everything, Gimp and Gaim in Windows and, of course, Fox. Firefox seems to look okay to me for some reason, except under MacOS. Go figure. Anyway, my comment above was intended less as an to insult the Fox developers, and more as a light-hearted jab from someone at 10,000 feet who hasn't taken the time and effort required to design, create, and maintain a cross-platform widget toolkit.

Even Later Update (2006-02-27): The "anonymous guy talking about an authorization plugin" was Bill Katz, and his Rails authorization plugin is available here.