Monthly Archives: April 2007

4H with David

David and I did our 4H today in his office. We were working through his issues on the jEdit sensor. Following a trail from the jEdit Activity Log, we determined that his plugin was not getting loaded by jEdit. After unjaring some other plugins, we determined that the path to the plugin class was being inferred by the names of properties in the required plugin properties file in the jar (shame jEdit!). This was not obvious because the example plugin uses the default package so it was not clear that the property names had to include the whole package path to the plugin class.

After changing the properties file, jEdit was able to load the plugin so at least that hurdle has been resolved. Sounds like jEdit needs better documentation on writing a decent plugin (what’s up with using the default package, that’s amateur Java programming).

Happy Hacking Half-Hour with Pavel

Pavel and I did our 4H on Friday. I was in the driver’s seat, and decided to finish up the Rails tutorial that I presented the first portion of last Wednesday at the CSDL meeting.

We used the CSDL meeting area for our 4H, and since we were working through a tutorial we used the projector as a second monitor rather than a mirrored display: tutorial web page on the projector, Eclipse on the laptop display. This worked pretty well I think, and I would encourage it as an option for other 4Hs.

As for what was learned, the rest of the tutorial had more actual Rails coding and went more into modifying view pages in RHTML.

P.S. I forgot that we were supposed to spend the last 5 minutes blogging about it, so this is a belated blog entry.

Nightly Webkit Safari builds

For those that use Safari as their browser and want to check out the nightly builds of WebKit (the browser engine in Safari) that are wrapped in the latest Safari application. Work on WebKit (including bugfixes and website compatibility mods) is happening all the time, but it only gets pushed into official Safari releases very infrequently.

This blog entry explains about nightly builds, while the actual depot for the nightly disk images is here.

If you want to make the WebKit nightly your default browser, just to into its preferences, select the General tab, and select WebKit from the drop down menu.

MySQL installation and configuration

Most Rails tutorials use MySQL as their canonical database. Locomotive includes SQLite, but not MySQL.

The consensus seems to be that installing MySQL via the official Mac OS X MySQL installer is the best way. It installs in /usr/local/ and includes a System Preferences pane for easy startup and shutdown.

MySQL installs with 4 accounts (including 2 root accounts) that have no password. While the default install only allows connections from localhost, it’s still a good idea to set the passwords to something. MySQL AB has a help page on Securing the Initial MySQL Accounts.

For manipulating MySQL databases directly, the open source CocoaMySQL seems nice. I used it to secure the initial MySQL accounts: Tools->Edit User.

Ruby on Rails tutorials

Here’s a bunch of RoR tutorials from the web. The canonical book on the topic is Agile Web Development with Rails.

Ruby on Rails development on Mac OS X

Getting RoR installed is pretty easy with Locomotive, an entirely self-contained RoR environment for Mac OS X (there is a Windows equivalent called Instant Rails). This means no installing all the pieces, and no messing up of anything in Mac OS X (which includes Ruby these days). You just drag the application into your Applications folder and you are good to go. However, it also means that any other tool or application that needs to call Ruby has to be configured to use the version installed inside Locomotive (which is really a bundle that includes the application and all the RoR components).

The hip text editor for RoR on the Mac is TextMate. However, it’s a commercial application and has no API for Hackystat hooks, so I’m avoiding it for now.

The best alternative (for Eclipse users) appears to be RadRails. It’s available as a standalone editor (a customized version of Eclipse) or as an Eclipse plugin. Annoyingly, RadRails is currently in transition as Aptana (a company that makes an open source JavaScript/AJAX editor plugin for eclipse) takes over the development from the original developers. This means the documentation and website is a bit of a mess right now.

Pieced together from various web pages, here is how to get up and running with RoR on Mac OS X (assuming you have Eclipse 3.2.X already installed):

  1. Download Locomotive and drag the Locomotive icon into your Applications folder.
  2. Install RDT and RadRails Eclipse plugins. Aptana has the links in their RadRails docs.
  3. Configure RadRails to use RoR embedded in Locomotive. Due to the RadRails documentation transition right now the wiki with the instructions is only available from Google’s cache, but here it is from some blog. Note that Preferences will be under the Eclipse menu (not RadRails, the customized Eclipse version), and that the exact paths will be different based on what version of Locomotive you have (the release date is part of the path, ugh) and whether you are on an Intel-based Mac (select “i386” path) or a PowerMac (select “powerpc” path).

After following my instructions I was still getting weird errors in RadRails when trying to create a HelloWorld project. I think the key is to do the RadRails configuration before creating any projects. Remember that Eclipse configuration follows the workspace, so if you create a new Workspace for RoR work then make sure you do that before you configure RadRails to use the Locomotive paths.