#feather

Posted by Michael Leung
on May 07, 08

El started up an IRC channel for us (#feather) on freenode. El and I are going to be hanging in there as much as we can so if you have a question about installation, working on your plugin or whatever, feel free to jump in. Or if you want to just shoot the shit, that’s cool too.

Thoughts To Blog

Posted by Michael Leung
on May 05, 08

Jake migrated his blog over to feather today! Congrats bro. He used his super slick feather-mephisto plugin to get the job done! Props dude.

Cribfinder Redux

Posted by Michael Leung
on May 03, 08

In the market for real estate? Live on Facebook? If you answered yes to either of these two questions, mosey on over to Cribfinder, and let all your real estate dreams become reality… urr… or something.

In all seriousness, we just redid a lot of the layout, and general navigation, so it should be infinitely easy to browse for rentals or, arrange an appointment to checkout a house that strikes your fancy.

Conversely, if you’re trying to rent a place out, or sell your house, we have a plethora of great lead tracking stuff for you.

Rails Envy + Feather = Good Times

Posted by Michael Leung
on May 02, 08

The guys over at Rails Envy mentioned feather in their latest podcast. That so rocks! They had some good suggestions for us, so we have to get cracking on new feather features in the near future. I’ve just been really busy with my day jobs lately, which has not been super conducive to getting that much done on fun open source projects.

In other Feather news (wow this blog is turning into all things feather.), my boy Jake is just about done with a really useful plugin for importing directly from a Mephisto database. I can’t wait for him to roll that out! From what Jake tells me, it’ll make shifting from Mephisto to Feather a breeze.

Good times.

Contribution!

Posted by Michael Leung
on Apr 27, 08

We opened up the feather repository this past Friday, and have so far received a very warm response. There are 28 watchers on feather-core, and 12 on feather-plugins, as of the time of this writing. Not bad at all for the first few days.

The real big news however, is the fact that we got our first commit by someone other than El, or myself. mbleigh, a rails developer, and designer, got the admin side of feather passing XHTML validation, and added some nice styling to the tables of feather-core’s administration side. We want to give a big shout out to mbleigh for this contribution!

We also have a gentleman who is working on some specs for us, which is outstanding news.

God I love the Ruby community!

Feather Goes Gold

Posted by Michael Leung
on Apr 25, 08

We’ve finally opened up the proverbial reins on the feather git repository. We can’t wait for all you stellar rubyist to start cranking out the patches and/or plugins!

Focus your browser on this!

Committers

Posted by Michael Leung
on Apr 18, 08

I’ve been giving a lot of thought of late as to how to handle committers on feather. I think the approach Evan Phoenix has taken with Rubinius is pretty sweet. Basically if someone submits two patches, and we decide to integrate them into our codebase, that person will subsequently hold the keys to the kingdom, so to speak; full commit rights from then on out. Of course if they start mucking up the code, we always retain the right to usurp that person’s ability to contribute.

I envision feather as being a community effort. El and I have taken the initiative, but really want to see the ruby community drive it home. Hopefully tons of people will start creating plugins and sending us github pull requests to integrate their forks into feather-core.

Unlocking of the feather repo is planned for next Friday night, sometime in the EST time zone. That’s April 25th for calendar impaired amongst you.

I’d love to hear some opinions about this method of managing committers. Currently we have two repos: feather-core and feather-plugins. Do you think we should make the commit rights mutually exclusive? In other words, should people have to submit two pull requests to each? Or should we carry over rights? I’m leaning towards treating them as two separate projects.

For further information about this method of managing contributions on an open source project, feast your eyes and ears on Evan’s talk from this year’s Mountain West Ruby Conf. Interesting stuff.

Birds of a Feather

Posted by Michael Leung
on Apr 18, 08

My friend Jake brought a blog engine called Chyrp to my attention the other day. Interestingly enough, they call their plugins or modules: feathers. How very coincidental. Cest La Vie.

merb-manage

Posted by Michael Leung
on Apr 16, 08

El’s been working on this really nifty gem to manage merb instances. It’s a lot like mongrel_cluster, but it’s adapter agnostic, so it works with thin, evented mongrel, or whatever else merb supports.

It’s really hot shit. Check it.

Shiny #1 - Reopening Classes

Posted by Michael Leung
on Apr 15, 08

This is the first article in a new series I’m beginning outlining code or concepts I think are “shiny”. Every article will feature Ruby, Rails, Merb or JavaScript. Sorry .NET developers, but no C# here.

I thought I’d kick this off proper-like with a concept in Ruby which I really quite adore: reopening existing classes at runtime and adding functionality. If you’re new to Ruby, and particularly if you have a background working with statically typed languages, this concept is going to seem sort of foreign to you, as it did to me when I was first indoctrinated to the glamourous world of Ruby development.

So you may be scratching your head at this point, and wondering why the heck you’d want to reopen a class while the app is running. Shouldn’t all the code for each class be typed into TextMate before the VM has a chance to parse it? The answer is: not always. This technique lets you do some really interesting things that can’t be achieved with statically typed, compiled languages.

Say for some utterly insane reason (which could potentially alert the boys in white coats to come out to your coding lair and scoop you up for all eternity), you think Ruby’s String class should have a to_java method. To add this in at runtime, all you have to do is reopen Ruby’s String class, and wang in (that’s a technical term by the way), your method. There are two ways to accomplish this.

The first way is to simply define the string class in your code and write your method thusly:

class String
    def to_java
        # Put pure, unadulterated insanity code here 
        # to output a string as Java.
    end
end

The second way, is just as trivial to implement:

String.class_eval do 
    def to_java
        # Put pure, unadulterated insanity code here 
        # to output a string as Java.
    end
end

In your code, you can do one of these:

s = “public void iLoveJava() { }”.to_java

This will now just magically work. Pretty effing cool, huh? I’ve used this concept for a number of things. In fact, I’m using it in the feather-tagging plugin, to add associations and fields to my article model. It simply rocks, nuff said!