The core Ruby on Rails development team uses TextMate, a MacOSX (only) programming text editor that is apparently the greatest thing ever. A quick Google search reveals countless blog and forum posts devoted to finding something with similar functionality on Linux and Windows.
I am starting to develop with Ruby on Rails on Ubuntu and three of the suggested alternatives looked attractive to me. If you are planning to develop exclusively in Ruby/Ruby on Rails and want the lightest weight solution that is probably closest to the TextMate experience, Gedit is a good alternative. But if you want a fuller experience, or if you develop in multiple languages, jEdit and Eclipse are (I would argue) the two best options.
So, I’m sitting here learning Ruby and Rails, and a thought starts to emerge: I wonder if I could use things like ActiveRecord separate from Rails for writing command line database maintenance scripts in Ruby, for example? Then I start to see other Rails features that also might be very useful outside of a Web application, and then I start wondering if Rails could be used not just as a Web application framework, but as a general application framework, in the way that some people have used (or at least suggested using) Struts and Spring in the Java world.
I recently began designing a generalized front-end to Fedora, with the goal of allowing domain experts to easily input, share and re-use digital content while at the same time allowing information specialists to design the metadata framework used for those digital objects. In other words, the system can be thought of as a digital asset management system for faculty, facilitated by librarians.
Within the system, digital objects are complex, composed of a set of metadata and one or more files of various types. A digital object can belong to more than one collection, and a basic set of Dublic Core (DC) metadata can be assumed for every digital object, along with one or more metadata profiles, or templates that are defined by collection.
The metadata profiles will be designed by librarians and implemented with the help of developers informed by the needs of the faculty populating the collection. These metadata profiles will be designed to accommodate an arbitrary number of fields of arbitrary types, so the structure of any collection’s metadata can’t be known at (system) design time, as specifying this structure is a function of the system itself. Designing the data model for this aspect of the system began as an interesting puzzle that as I unraveled it, started to look like an increasingly elaborate version of the Entity-Attribute-Value (EAV) model…
It seems in the last few weeks, there has been an especially hot debate around Ruby on Rails (RoR) and Grails. The debate on both sides has been respectful, and most importantly, a lot of good ideas are being exchanged.
If you’ve scanned my blog in the past, you know that I am a big fan of Python and have been obsessed with Django recently, which to date is the most elegantly designed Web framework I have encountered. So far, other than using it on a very small project, I have mostly just been exploring Django and looking forward to using it on a more significant project that’s on my schedule for this summer. Unfortunately, it looks like I won’t be using it on that project after all, and the story behind it, which involves a good deal of office politics and my reasoning as I try to find a way through it, may be of interest to some.