Half-Penny For Your Thoughts

rounded down to the nearest cent



Categories


Recent Articles




Computing

RadRails

A few weeks ago, I broke down and bought a laptop. My first two computers were laptops, but once I hit college, I decided the cost outweighed the benefits. But over the the past few months, I’ve realized that I move from computer to computer enough that having a laptop instead would be a boon to my productivity.

I decided to leave Windows on the laptop and do most of my development within colinux. I’ve struggled to find an editor for developing within windows that I really like. While I’ve used Crimson Editor quite a bit, it’s out of active development and occassionally leaves me very frustrated (FTP issues in particular, which is not much of an issue for me now). So, I’d planned to use KDE’s Kate editor within colinux.

You can ignore the preceding two paragraphs. They’re merely anecdotal.

Then, I stumbled across RadRails. It’s an extension of Eclipse, which I know I’ve looked at before, but apparently dissavowed for reasons forgotten. While RadRails is pre-1.0, I’ve been extremely pleased. The stand-alone version comes with the SVN plugin bundled, so it’s been near to perfect for me. One of my favorite features is the ability to start/stop my development servers directly from RadRails.

Now that I’ve used RadRails on my WinXP laptop, I decided that for many functions, I like it better than Kate. And I definately like it’s SVN integration better than kdesvn (Although I have had a couple of weird errors that I can’t now remember). You can also just install three plugins on top of Eclipse to get all the RadRails functionality (listed here), which I found useful because I wasn’t sure how to go about installing the stand-alone on Ubuntu. This way, I used apt to get Eclipse, then installed the three plugins. For anyone like me new to Eclipse, to install the plugins, open Eclipse, and go to Help->Software Updates->Find and Install. Pretty self-explanatory after that, but I didn’t think to check the help menu until after a bit of Googling.

One more tip for the Plugin install for those new to Eclipse: To get the full Rails goodies, go to Window->Open Perspective->Other… then click “Rails” and “OK”. Gives you, for example, the servers list.

Update 10/11/06: I guess I should have looked earlier, but the RadRails community page has a lot of helpful tips, including an article about setting up RadRails in WinXP. (Particularly helped me in getting rake tasks to work).


Books

Version Control for Novels

I don’t know if anyone’s noticed, but I write in this blog almost exactly twice a week. Once for a general blog entry, once for a From Genesis entry. Basically, my reason for blogging is to give me an excuse to write, and I make sure that I take the time to do that twice a week. But I’m not sure what to discuss this week.

Okay, here’s a thought. Version control for writing, say, a novel. I’ve actually written the first draft to one full novel and have fifty-plus pages (I think) of a couple of others, as well as several dozen (I imagine) lesser attempts.

One of the downsides is that I’ll tend to work on one for a while, then stop, then pick it back up later. Leaving me with the question of whether I copy and start a new file (or, in most cases for me, a new database record) and have multiple copies or lose the historical record of what I originally wrote (and I like historical records).

So, naturally, when I discovered subversion, and started using it with source code, I began to ponder using it with novels. The major upside is that it deals well with the issues of the previous paragraph. The downside is that I’m not sure how to make the best use of it. Specifically: as best I understand, subversion (or diff, I suppose) checks lines for changes in text files. This is great for source code, but in a novel, a “line” is a paragraph. Seems inefficient, and might make checking changes more difficult. On the other hand, saving it as an ODF text document would lead to a binary diff (and I have no clue on how that works), which could be more efficient, and allows formatting (not that I would use it), but probably removes the possibility of just glancing through a change set.

Anybody have any thoughts? Experience with this? Anywho, I’m planning to start giving it a try with a collection of novels and stories I’ve been working on for several years.


Computing

Collaboas, Collaboas, everywhere

There’s sort of a point to this article, but it may take me a few paragraphs. Feh, isn’t blogging great? I could write an appropriately structured article, but since I am the lone editor here, I can also conduct a non-quite stream-of-conciousness discourse, then, at the last possible moment, suddenly introduce a thesis. And you say, thanks for that meandering and irrelevant comment.

For those of you using subversion for version control, particularly for your rails applications, Collaboa is a useful tool. It includes repository browsing and a ticket system for projects stored in subversion, and is a rails application. Functionally, it’s similar to trac, but since I’m accustomed to rails, Collaboa is a better resource for me.

In reference to the title, there have actually been a couple of forks of Collaboa.

  • Titra, if I remember right, was forked in order to add in time tracking features. I’ve never tried it.
  • Retrospectiva is a fork created a month or two ago, with some different design goals, I guess.

Anyway, probably all three are good tools, although Collaboa is what I use for lack of any pressing reason to switch.

One issue that interests me is that none of these projects aim to provide a functionality like sourceforge, rubyforge or Google code, that is to provide the functionality for multiple, disassociated projects (To clarify, at least Collaboa has multiple projects support, but it’s a web application that organizations install and use, rather than a web service hosting multiple projects. Right, if that made sense.). Another thing I’ve noticed is how projects hosted by these large web service sites tend to have much less attractive and functional repository browsing than that offered by the above projects.

Okay, actually approaching the point. Despite telling myself I should do so, I haven’t contributed anything to Collaboa. However, I did get the bug this week to start playing around with a rails project interacting with a subversion repository. Collaboa uses Subversion bindings for ruby via SWIG (or that’s my understanding) to interact with a repository on the local machine. I wanted (for fun) to set up to interact with a remote repository via svn-serve. Once I found the protocol specification it was quite simple, by which I mean, I had no idea what I was doing. But, over the past couple of days, I’ve learned a lot about Ruby’s TCPSocket library, and about Subversion. The code I’ve written can actually do a directory listing now. So, it’s been a lot of fun, and maybe I can release it someday. I think I saw that Collaboa will soon have the repository interaction abstracted, so other repository types can be used, so maybe this will be something I can contribute. We’ll see, eh?


Computing

canofcode re-release announcement

For those of you using canofcode (for the record, that’s me and googlebot), it is back up. There’s a story to that statement, of course.

I discovered, oh, maybe a month ago that my impression that the Subversion to Ruby SWIG bindings did not support remote repositories was just plain wrong. Had I looked at the code, I would have found the Svn::Ra module. Relying heavily on the unit tests, I started work on creating a library that used the Svn::Ra library to replace my previous work on directly implementing the svn and svn-over-WebDAV protocols.

About this time, googlebot started roaming through the site and errors started showing up regularly in my email box (I’d done a few, but obviously imperfect, unit tests). A number of these were directly related to my aforementioned implementations, so rather than fix them, I took down the site until I had the new Ra-based library ready. And now it is!

My next step for canofcode is to work on the UI (such as making some ‘potential’ links into actual links), along with better functional testing, etc. I will also continue working on CVS and Darcs implementations.

In addition, I am nearing completion on a CSCM adapter using Svn::Ra. CSCM is a library that has recently been created by Johan Sørensen, creator of Collaboa, assumedly for future use in Collaboa. I’m considering using the CSCM library for canofcode, part of the reason I’m developing the aforementioned library.


Computing

Repository Browing Resources

A couple of weeks ago, I mentioned that I started working on a for-fun project to interact with a remote subversion repository using svnserve. I’ve continued working on it (probably more than I ought to), and have started to add support for access via WebDAV. That said, I’m going to list some of the resources I’ve been utilizing, for anyone interested, and for my future reference. So, basically, a content-less blog post. Yay!

Subversion Repository Access

I have the impression that the Ruby SWIG bindings can’t be used for remote repositories, because I haven’t seen it happen, but I may be wrong on that (Update 2007-02-26. I was wrong. See here). I need to investigate more. After all, if I can use the SWIG bindings for all types of access, I needn’t develop the SVN and WebDAV options, except for fun.

Web-based Repository Browsing Projects

Some projects I’ve looked at for inspiration:

These are all open-source. The last three are rails projects. I believe those three all use the SWIG bindings. I generally like the interfaces for all but ViewVC.