CFWheels Dictionary for Mac OS X

Working with any framework involves learning many things like file structure, information flow, etc. One of the most critical aspects of being proficient in a framework is how well one has learned the API. And this holds true of CFWheels as well.

CFWheels provides a simple API that one has to refer to time and again as one learns and develops with it. The CFWheels website has a great section on documentation which lists various API calls. And this helps the process of learning/working with the framework. But…

There were a couple of occasions when I was offline and a few when my connectivity not too good. Under those circumstances it was proving a little slow to figure out various API calls.

So I was browsing around a few months back and came across the ColdFusion 9 dictionary for Mac. That got me thinking that I should probably do something like that for CFWheels. The nice thing about a dictionary is that it is a desktop application, so it is very quick, has a very nice search, and most importantly, integrates very well with native Mac apps.

So here it is!

Download: CFWheels Dictionary for Mac

Installation is simple.

  • Unzip the zip file
  • Copy CFWheels.dictionary to either /Library/Dictionaries OR ~/Library/Dictionaries.

Fire up the Dictionary app, and you should see the CFWheels dictionary in the list of dictionaries available.

A few tips:

  • Once the CFWheels dictionary is installed, you can search for the word “api” and it lists a page where all CFWheels API calls are available. You can select what you want.
  • If you use a native Mac app like Panic’s Coda or TextMate the Mac dictionary service integrates beautifully with them. What that means is that you can select a word and right-click it and then “Look Up in Dictionary”. It opens dictionary and information about the text you selected.
  • Setup a keyboard shortcut (through System Preferences > Keyboards > Keyboard Shortcuts) for “Look Up in Dictionary” so that you can fire it up through keyboard.
  • If you want you can enable/disable various dictionaries through the Preferences menu of the Dictionary app. I find that to be quite handy.

Have fun! And do drop me a line if you like it! Or if you find any bugs/issues.

Update: Source Available on GitHub

The source for the dictionary is now on GitHub: https://github.com/indynagpal/CFWheels-Mac-Dictionary

Hello WordPress!

So I’ve finally given in, I’ve switched my blog to run on WordPress.Wordpress

This is the fourth time in six-odd years of blogging that I’ve had to change the blogging software.

For the last couple of years, my blog was been running on MangoBlog. It is really nice and I quite liked the fact that it was running on ColdFusion. More important, it was nicely customizable.

Prior to MangoBlog I had been using BlogCFC, and had found a bit restricting in terms of theme support etc. MangoBlog made it easy to re-theme the blog, plus has a nice plugin architecture.

I had toyed with moving to WordPress an year or so back. But wasn’t too convinced. But when I re-evaluated it in detail last month, I was struck by its maturity and the dizzying number of really useful plugins and themes.

This weekend I gave it a whirl and setup a dev instance on an Amazon Micro instance. It didn’t take too long for me to decide that the time had come to switch.

The process of migration from MangoBlog to WordPress was quite simple.

I had to write a couple of simple scripts that gathered data from MangoBlog tables and inserted it into WordPress tables. I also set up a couple redirects so that old links continue to work. And I updated the Feedburner feed details so that the feed from the old blog points to the feed from the new blog.

And here it is! Shiny and new with a decent theme!

While moving the blog across, I decided to do away with the many categories I had in the previous blog. I’m going to now categorize posts based on what broad areas like “Software Development”, “Photography”, etc. This reflects the change in the nature of my blogging. Till now I’ve been quite focused on tech blogging. But I’m going to broaden the scope a bit. And I’ll be using tags to categorize posts as more detailed mechanism of categorization.

The other major change I made was to change the permalink structure of blog entries. It is now extremely simple and minimalistic — server name followed by the slug (e.g., http://blog.nagpals.com/hello-wordpress).

The more I’ve played with Ruby on Rails, Grails, and CFWheels, the more I’ve become a fan of simplicity in URIs. For me they are windows into an application — they give a sneak peak on how well an application is structure. I even go a step further and say that if you look carefully, they give you a view of the mind of the application developer! But more on that in another blog post.

For now, the migration from MangoBlog to WordPress is over. It was very smooth and painless. And I’m quite happy to be getting back to blogging again!

The RSS Feeds for the blog are:

If you don’t want to be bothered with other ramblings, just subscribe to the Software Development category RSS.

Do drop me a line if you have any questions/issues with the new blog.


Shado and ColdFusion Workshop

RailoI’m conducting a Shado/ColdFusion workshop in the last week of January 2011 in Auckland, New Zealand

It is going to cover things like:

  • Developing Shado templates
  • Developing applications using the Shado framework
  • Hidden secrets in Shado
  • Advanced ColdFusion concepts
  • Some Railo tricks/tip

If there are aspects of Shado that you’d like to know more about, do let me know and I can try and cover those areas.

I am still in the process of figuring out the full agenda, and exact dates. But it is going to be a 2-3 day event, in Auckland in the last week of January 2011.

Drop me a line if you are interested in participating.

It’s going to be a very hands-on, practical event and will be loads of fun (as much fun as sitting in a room with other nerds like me can be!)

My CFWheels Presentation at CFObjective ANZ

Had a great time at CFObjective ANZ down in Melbourne.

I presented on CFWheels, a beautiful ColdFusion framework, inspired by Ruby on Rails.

Mine was the first presentation on day one, and in a way it worked nicely as I could then enjoy others with full attention. This is what I covered in the presenation.

CFWheels is a new-ish ColdFusion (CF) framework inspired by Ruby on Rails.

With its emphasis on convention over configuration, simple code organizing principles, a beautiful Model-View-Controller (MVC) architecture, and a pretty neat Object Relational Mapping (ORM) framework, CFWheels brings agility into applications written in CF.

In this talk, Indy takes you through the building blocks of a CFWheels application. He then shares his experience of learning and developing with CFWheels — an experience he thinks every CF developer should go through.

Come, have a listen, and see how CFWheels brings agility into CF development. And how you end up writing beautiful code, while having loads of fun as you develop.

I’ve added the presentation to Slideshare. Have a look.

Using Different SSH Keys for Different Servers

I use Unfuddle a lot for the various projects that I work on.

Yesterday I had a situation where I need to use another SSH key for connecting up to the Git repository at Unfuddle.

Googled and googled… no simple answer. Then found a couple of pages that explained how to do this in such technical terms that it took a while to figure it out.

So this is what you got to do…

(I use Mac so, can’t say if it works on Linux/Windows).

So create a new SSH key. Unfuddle have a good explanation on how to do this. Create a key that does not have the default name. By default the keys are stored in ~/.ssh directory.

Now to use this newly created key with the Git repos on Unfuddle, create a file called “config” in the ~/.ssh folder.

Add the following to the file and save.

Host yourappname.unfuddle.com
User git
IdentityFile /Users/yourfolder/.ssh/yourcustomname_id_rsa.pub

Oh and by the way, Unfuddle takes a few minutes to register the ssh key added in your account section.