<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>This is the personal blog of Nathan Colgate Clark.  I work at Brand New Box. I developed a content management system for churches.</description><title>Nathan Colgate</title><generator>Tumblr (3.0; @nathancolgate)</generator><link>http://www.nathancolgate.com/</link><item><title>What Version of Flash Am I Using?</title><description>&lt;a href="http://www.adobe.com/swf/software/flash/about/flashAbout_info_small.swf"&gt;What Version of Flash Am I Using?&lt;/a&gt;: &lt;p&gt;I seem to be referencing this frequently&lt;/p&gt;</description><link>http://www.nathancolgate.com/post/1021678124</link><guid>http://www.nathancolgate.com/post/1021678124</guid><pubDate>Fri, 27 Aug 2010 14:56:53 -0700</pubDate></item><item><title>mProjector 4 Windows Fixes</title><description>&lt;p&gt;We’re a mac shop.  Anytime we have to go back to a PC, I’m not a fan.  These are notes for any future development, and if you can get use out of them: great.&lt;/p&gt;
&lt;p&gt;Problem 1) We couldn’t get our mProjector apps to run on a PC.  They would compile, but not run.  And not even give the nice “Please go download adobe flash player” messages.  We were getting the full blown windows error.&lt;/p&gt;
&lt;p&gt;Turns out: we had installed flash player from firefox.  This, apparently, is not the same thing as installing the flash player from internet explorer.  Once we did that, we could run the applications.&lt;/p&gt;
&lt;p&gt;Problem 2) We certainly didn’t want our clients running into the same issues. Solution is to include flash player with the build, right?  Well, for some unknown reason, our app doesn’t like flash player 10.0.32.18 that comes bundled with mProjector. Opening &lt;a title="Flash Version Detector" href="http://www.adobe.com/swf/software/flash/about/flashAbout_info_small.swf"&gt;this page&lt;/a&gt; in IE showed that we were running 10.1.53.64 (Note visiting that link in FF shows that were were running 10.0.32.18).  But why couldn’t we choose that from the drop down?&lt;/p&gt;
&lt;p&gt;Turns out: This one took a call to ScreenTime’s Jim Roberts.  He pointed me in the direction of this folder on our PC:&lt;/p&gt;
&lt;p&gt;C:\Program Files\mProjector 4\Flash Players\Win&lt;/p&gt;
&lt;p&gt;Which has a bunch of .ocx files that correspond to the available flash players for inclusion in our projector.  He said I should find a newer .ocx file and see how it works.  With a little bit of searching I found this folder:&lt;/p&gt;
&lt;p&gt;C:\WINDOWS\system32\Macromed\Flash&lt;/p&gt;
&lt;p&gt;Which had a Flash10h.ocx file, which I copied to the mProjector flash players folder.  After restarting mProjector, I was able to choose Flash10h as a included player, and the app built and launched fine.&lt;/p&gt;
&lt;p&gt;Problem 3) The app is freaking slow-as-molasses on a PC! It’s speedy in the browser, speedy on my Mac, but on this PC it’s moving at about 0.5 fps. &lt;/p&gt;
&lt;p&gt;Turns out: I hate this kind of stuff.  I’m throwing in the towel here. If you have any insight into what we can do to speed this application up, please let me know.&lt;/p&gt;</description><link>http://www.nathancolgate.com/post/726460597</link><guid>http://www.nathancolgate.com/post/726460597</guid><pubDate>Tue, 22 Jun 2010 13:29:38 -0700</pubDate></item><item><title>S3 SWF Upload Gem for Rails 3</title><description>&lt;a href="http://vimeo.com/11363680"&gt;S3 SWF Upload Gem for Rails 3&lt;/a&gt;: &lt;p&gt;&lt;a href="http://vimeo.com/11363680" title="S3 SWF Upload Gem for Rails 3"&gt;&lt;img src="http://ats.vimeo.com/621/692/62169200_200.jpg" alt="S3 SWF Upload Gem for Rails 3"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://github.com/nathancolgate/s3-swf-upload-plugin" target="_blank" rel="nofollow"&gt;github.com/nathancolgate/s3-swf-upload-plugin&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;
The good stuff starts around 7:30!&lt;br/&gt;&lt;br/&gt;
S3SwfUpload allows user to upload a file to S3 directly, so you can save the cost of uploading process…&lt;/p&gt;</description><link>http://www.nathancolgate.com/post/564343381</link><guid>http://www.nathancolgate.com/post/564343381</guid><pubDate>Sat, 01 May 2010 17:05:26 -0700</pubDate></item><item><title>Rails 3 ActionMailer and Delayed Job</title><description>&lt;p&gt;What I’d like to do:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;message = Notifier.password_reset_instructions(self)&lt;br/&gt;Delayed::Job.enqueue MailerJob.new(message)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;What happens when I do:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;TypeError in Public/password resetsController#create&lt;br/&gt;can’t dump anonymous class Class&lt;br/&gt;…&lt;br/&gt;/lib/delayed/backend/base.rb:61:in `payload_object=’&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Problem line 61:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;self[‘handler’] = object.to_yaml&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Console confirms:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&gt; user = User.find(:first)&lt;br/&gt;&gt; message = Notifier.password_reset_instructions(user)&lt;br/&gt;&gt; message.to_yaml&lt;br/&gt;TypeError: can’t dump anonymous class Class&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;How I fixed it. Note: all of my notifier methods take a user argument, so I thought this was a little cleaner than coming up with a new job class for every email method:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Delayed::Job.enqueue NotifierJob.new(:password_reset_instructions,user_id)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And my lib/notifier_job.rb file:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;class NotifierJob &lt; Struct.new(:notifier_method,:user_id)&lt;br/&gt;  def perform&lt;br/&gt;    user = User.find(user_id)&lt;br/&gt;    Notifier.send(notifier_method,user).deliver&lt;br/&gt;  end&lt;br/&gt;end &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Hope that helps.&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;</description><link>http://www.nathancolgate.com/post/538810601</link><guid>http://www.nathancolgate.com/post/538810601</guid><pubDate>Wed, 21 Apr 2010 12:05:53 -0700</pubDate></item><item><title>Stephenson Intro Video</title><description>&lt;a href="http://vimeo.com/10128902"&gt;Stephenson Intro Video&lt;/a&gt;: &lt;p&gt;&lt;a href="http://vimeo.com/10128902" title="Stephenson Intro Video"&gt;&lt;img src="http://ts.vimeo.com.s3.amazonaws.com/521/053/52105308_200.jpg" alt="Stephenson Intro Video"/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cast: &lt;a href="http://vimeo.com/user352197" style="color: #2786c2; text-decoration: none;"&gt;Nathan Colgate&lt;/a&gt;&lt;/p&gt;</description><link>http://www.nathancolgate.com/post/444951302</link><guid>http://www.nathancolgate.com/post/444951302</guid><pubDate>Fri, 12 Mar 2010 23:06:55 -0800</pubDate></item><item><title>The Cooper Residence - For the home files.</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_kyz8skRc9m1qz6v8po1_250.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a href="http://www.contemporist.com/2010/02/25/the-cooper-residence-by-randy-weinstein/"&gt;The Cooper Residence&lt;/a&gt; - For the home files.&lt;/p&gt;</description><link>http://www.nathancolgate.com/post/435059917</link><guid>http://www.nathancolgate.com/post/435059917</guid><pubDate>Mon, 08 Mar 2010 11:00:00 -0800</pubDate></item><item><title>How to Rename a File on S3 with right_aws and Keep Permissions</title><description>&lt;p&gt;Because this took way too much time to figure out:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;s3=RightAws::S3Interface.new(S3SwfUpload::S3Config.access_key_id, S3SwfUpload::S3Config.secret_access_key)
old_name = "tmp/#{self.video_file_name}"
new_name = original_video_file_path
bucket = S3SwfUpload::S3Config.bucket
(1..5).each do |try|
  begin
    acl_prop = s3.get_acl(bucket, old_name)
    s3.rename(bucket, old_name, new_name)
    s3.put_acl(bucket, new_name, acl_prop[:object])
    break
  rescue Exception =&gt; e
    self.video_log += "Problem renaming file, trying again... #{e}\n"
    sleep 1
  end
end&lt;/code&gt;&lt;/pre&gt;</description><link>http://www.nathancolgate.com/post/323781568</link><guid>http://www.nathancolgate.com/post/323781568</guid><pubDate>Fri, 08 Jan 2010 12:17:07 -0800</pubDate></item><item><title>Video</title><description>&lt;object width="400" height="231"&gt;&lt;param name="movie" value="http://www.hulu.com/embed/avBP_fL1-sPN_CoKWv5GOw/785/831" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed src="http://www.hulu.com/embed/avBP_fL1-sPN_CoKWv5GOw/785/831" type="application/x-shockwave-flash" allowfullscreen="true" width="400" height="231"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br/&gt;&lt;br/&gt;</description><link>http://www.nathancolgate.com/post/202833113</link><guid>http://www.nathancolgate.com/post/202833113</guid><pubDate>Fri, 02 Oct 2009 13:58:12 -0700</pubDate></item><item><title>Dealing with Exception Notifier and Rails 2.3.3</title><description>&lt;p&gt;I installed Exception Notifier on one of our Apps running Rails 2.3.3 and kept running into this error:&lt;/p&gt;
&lt;pre&gt;Net::SMTPFatalError (555 5.5.2 Syntax error..&lt;/pre&gt;
&lt;p&gt;A little &lt;a href="http://www.nabble.com/how-to-avoid-%28Net::SMTPFatalError%29-%22555-5.5.2-Syntax-error-td23191043.html"&gt;bit of insight&lt;/a&gt; provided this heads up:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;But as of Rails 2.3.3, the from email address will get the angle brackets added, so it can only contain the address.&lt;/p&gt;
&lt;p&gt;Rails 2.3.4 is/was supposed to fix that, and includes tests so it will be ensured in future versions.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A quick look at the Exception Notifier README and I tried this:&lt;/p&gt;
&lt;pre&gt;ExceptionNotifier.sender_address = %("app.error@myapp.com)&lt;/pre&gt;
&lt;p&gt;Success!&lt;/p&gt;</description><link>http://www.nathancolgate.com/post/184773667</link><guid>http://www.nathancolgate.com/post/184773667</guid><pubDate>Thu, 10 Sep 2009 14:34:17 -0700</pubDate></item><item><title>Adding Email and User Verification to AuthLogic</title><description>&lt;p&gt;The Session&lt;/p&gt;
&lt;pre&gt;class UserSession &lt; Authlogic::Session::Base&lt;br/&gt;&lt;br/&gt;  validate :check_if_verified&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;  private&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;  def check_if_verified&lt;br/&gt;&lt;br/&gt;    errors.add(:base, "You have not yet verified your account") unless attempted_record &amp;&amp; attempted_record.verified&lt;br/&gt;&lt;br/&gt;  end&lt;br/&gt;&lt;br/&gt;end&lt;br/&gt;&lt;br/&gt;&lt;/pre&gt;
&lt;p&gt;The Migration&lt;/p&gt;
&lt;pre&gt;class AddVerifiedToUser &lt; ActiveRecord::Migration&lt;br/&gt;&lt;br/&gt;  def self.up&lt;br/&gt;&lt;br/&gt;    add_column :users, :verified, :boolean, :default =&gt; false&lt;br/&gt;&lt;br/&gt;  end&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;  def self.down&lt;br/&gt;&lt;br/&gt;    remove_column :users, :verified&lt;br/&gt;&lt;br/&gt;  end&lt;br/&gt;&lt;br/&gt;end&lt;br/&gt;&lt;br/&gt;&lt;/pre&gt;
&lt;p&gt;The User Controller&lt;/p&gt;
&lt;pre&gt;class UsersController &lt; ApplicationController&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;  ...&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;  def create&lt;br/&gt;&lt;br/&gt;    @user = User.new(params[:user])&lt;br/&gt;&lt;br/&gt;    if @user.save&lt;br/&gt;&lt;br/&gt;      flash[:notice] = "Thanks for signing up, we've delivered an email to you with instructions on how to complete your registration!"&lt;br/&gt;&lt;br/&gt;      @user.deliver_verification_instructions!&lt;br/&gt;&lt;br/&gt;      redirect_to root_url&lt;br/&gt;&lt;br/&gt;    else&lt;br/&gt;&lt;br/&gt;      render :action =&gt; :new&lt;br/&gt;&lt;br/&gt;    end&lt;br/&gt;&lt;br/&gt;  end&lt;br/&gt;&lt;br/&gt;end&lt;br/&gt;&lt;br/&gt;&lt;/pre&gt;
&lt;p&gt;The Verification Controller&lt;/p&gt;
&lt;pre&gt;class UserVerificationsController &lt; ApplicationController&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;  before_filter :load_user_using_perishable_token&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;  def show&lt;br/&gt;&lt;br/&gt;    if @user&lt;br/&gt;&lt;br/&gt;      @user.verify!&lt;br/&gt;&lt;br/&gt;      flash[:notice] = "Thank you for verifying your account. You may now login."&lt;br/&gt;&lt;br/&gt;    end&lt;br/&gt;&lt;br/&gt;    redirect_to root_url&lt;br/&gt;&lt;br/&gt;  end&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;  private&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;  def load_user_using_perishable_token&lt;br/&gt;&lt;br/&gt;    @user = User.find_using_perishable_token(params[:id])&lt;br/&gt;&lt;br/&gt;    flash[:notice] = "Unable to find your account." unless @user&lt;br/&gt;&lt;br/&gt;  end&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;end&lt;br/&gt;&lt;br/&gt;&lt;/pre&gt;
&lt;p&gt;The User Model&lt;/p&gt;
&lt;pre&gt;class User &lt; ActiveRecord::Base&lt;br/&gt;&lt;br/&gt;  acts_as_authentic&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;  def deliver_password_reset_instructions!  &lt;br/&gt;&lt;br/&gt;    reset_perishable_token!  &lt;br/&gt;&lt;br/&gt;    Notifier.deliver_password_reset_instructions(self)  &lt;br/&gt;&lt;br/&gt;  end&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;  def verify!&lt;br/&gt;&lt;br/&gt;    self.verified = true&lt;br/&gt;&lt;br/&gt;    self.save&lt;br/&gt;&lt;br/&gt;  end&lt;br/&gt;&lt;br/&gt;&lt;/pre&gt;
&lt;p&gt;The Mailer&lt;/p&gt;
&lt;pre&gt;class Notifier &lt; ApplicationMailer&lt;br/&gt;&lt;br/&gt;  default_url_options[:host] = "www.myurl.org"  &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;  def verification_instructions(user)&lt;br/&gt;&lt;br/&gt;    subject       "Email Verification"&lt;br/&gt;&lt;br/&gt;    from          "myurl"&lt;br/&gt;&lt;br/&gt;    recipients    user.email&lt;br/&gt;&lt;br/&gt;    sent_on       Time.now&lt;br/&gt;&lt;br/&gt;    body          :verification_url =&gt; user_verification_url(user.perishable_token)&lt;br/&gt;&lt;br/&gt;  end&lt;br/&gt;&lt;br/&gt;end&lt;br/&gt;&lt;br/&gt;&lt;/pre&gt;
&lt;p&gt;The Mailer View&lt;/p&gt;
&lt;pre&gt;Thank you for signing up for this site. Please click the following link to verify your email address:&lt;br/&gt;&lt;br/&gt;&lt;%= @verification_url %&gt;&lt;br/&gt;&lt;br/&gt;If the above URL does not work, try copying and pasting it into your browser. If you continue to have problems, please feel free to contact us.&lt;br/&gt;&lt;br/&gt;&lt;/pre&gt;</description><link>http://www.nathancolgate.com/post/184694426</link><guid>http://www.nathancolgate.com/post/184694426</guid><pubDate>Thu, 10 Sep 2009 12:26:00 -0700</pubDate></item><item><title>Flickering Vizio HD LCD TV</title><description>&lt;a href="http://vimeo.com/6403904"&gt;Flickering Vizio HD LCD TV&lt;/a&gt;: &lt;p&gt;&lt;a href="http://vimeo.com/6403904" title="Flickering Vizio HD LCD TV"&gt;&lt;img src="http://ts.vimeo.com.s3.amazonaws.com/240/051/24005173_200.jpg" alt="Flickering Vizio HD LCD TV"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Use Case Scenario: Watching movies on the TV via my Laptop. MacBook with Mini-DV to RGB adapter. RGB and 1/8” stereo headphone jack run to back of TV. Input: RGB. After about 15 minutes of…&lt;/p&gt;</description><link>http://www.nathancolgate.com/post/178539482</link><guid>http://www.nathancolgate.com/post/178539482</guid><pubDate>Wed, 02 Sep 2009 21:42:42 -0700</pubDate></item><item><title>Custom Generators That Work in all of your Rails Apps</title><description>&lt;p&gt;Go here:&lt;/p&gt;
&lt;p&gt;/Library/Ruby/Gems/1.8/gems/rails-X.X.X/lib/rails_generator/generators/components/&lt;/p&gt;</description><link>http://www.nathancolgate.com/post/167479929</link><guid>http://www.nathancolgate.com/post/167479929</guid><pubDate>Thu, 20 Aug 2009 11:11:43 -0700</pubDate></item><item><title>Trouble with Deprec Setting up Apache and Passenger</title><description>&lt;p&gt;I was getting this error a lot:&lt;/p&gt;
&lt;p&gt;VirtualHost *:80 — mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results&lt;/p&gt;
&lt;p&gt;The fix:&lt;/p&gt;
&lt;p&gt;I had to remove the default site:&lt;/p&gt;
&lt;p&gt;cd /etc/apache2/sites-enabled/&lt;/p&gt;
&lt;p&gt;sudo rm 000-default&lt;/p&gt;
&lt;p&gt;The file is still available here:&lt;/p&gt;
&lt;p&gt;/etc/apache2/sites-available/&lt;/p&gt;
&lt;p&gt;But is not conflicting with the config files that deprec sets up.&lt;/p&gt;</description><link>http://www.nathancolgate.com/post/166910361</link><guid>http://www.nathancolgate.com/post/166910361</guid><pubDate>Wed, 19 Aug 2009 17:52:39 -0700</pubDate></item><item><title>Update to YUI Editor Code View Problem</title><description>&lt;p&gt;I over complicated things in my previous solution, and found a better solution while trying to get the WYSIWYG editor to work inside an AJAX form using rails’ remote_form_for.&lt;/p&gt;
&lt;p&gt;Using the YUI editor example, set handleSubmit to false and add this right after the MyEditor.render();&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;// Nate's better Handle Submit
function myHandleFormSubmit(e){ 
  if(state == 'off') {
    myEditor.cleanHTML();
  };
};	
Event.on(myEditor.get('element').form, 'submit', myHandleFormSubmit, myEditor, true);&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;When doing this and using a AJAX form, try this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;// Nate's better Handle Submit (AJAX version)
function myHandleFormSubmit(e){ 
  if(state == 'off') {
    myEditor.cleanHTML();
  };
  Connect.setForm(e.target);
  Connect.asyncRequest('POST', e.target.action, callback, '_method=put'); 
  Event.stopEvent(e);
};	
var handleSuccess = function(o){ eval(o.responseText); };
var callback = { success:handleSuccess };
Event.on(myEditor.get('element').form, 'submit', myHandleFormSubmit, myEditor, true);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Hope this helps&lt;/p&gt;</description><link>http://www.nathancolgate.com/post/99470586</link><guid>http://www.nathancolgate.com/post/99470586</guid><pubDate>Thu, 23 Apr 2009 17:20:00 -0700</pubDate></item><item><title>Trying to use the YUI WYSIWYG RTE as a code editor</title><description>&lt;p&gt;Our &lt;a href="http://www.citygates.org/"&gt;CityGates&lt;/a&gt; app uses the &lt;a href="http://developer.yahoo.com/yui/editor/"&gt;YUI WYSIWYG Rich Text Editor&lt;/a&gt; to for all large text areas.  Unfortunately, it does not have code / source editing support out of the box.  To implement it, you must use some &lt;a href="http://developer.yahoo.com/yui/examples/editor/code_editor.html"&gt;custom code&lt;/a&gt; to toggle the textarea / WYSIWYG visibility.&lt;/p&gt;
&lt;p&gt;The example from YUI does not use handleSubmit. This means that when a user submits the form from the WYSIWYG editor the textarea does not get updated with the modified information from the iframe when the form is submitted. &lt;b&gt;The user must toggle to the code view&lt;/b&gt; to trigger the update to the textarea. Result: a broken WYSIWYG editor.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://static.nathancolgate.com/sandbox/yui_code_editor/A.html"&gt;See example.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The obvious solution: set handleSubmit to “true”. But this causes the converse bad behavior to kick in: When submitting from the code view, the textarea is updated with outdated information from the iframe before the form is submitted. &lt;b&gt;The user must toggle to the WYSIWYG view&lt;/b&gt; to update the WYSIWYG. Result: a broken code editor.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://static.nathancolgate.com/sandbox/yui_code_editor/B.html"&gt;See example.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is what we had setup, and our users were starting to notice.&lt;/p&gt;
&lt;p&gt;So a couple of weeks ago I spent some time trying to figure out what was going on, and figured out a crude way to toggle between the handleSubmit behaviors when the user toggles between the views. It isn’t very pretty, but it works.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://static.nathancolgate.com/sandbox/yui_code_editor/C.html"&gt;See solution.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I’m looking forward to when this gets integrated into the final RTE.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Side Note on Our Choice of Editor&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;We chose to use the YUI RTE because of it’s ability to integrate into any backend system and support image upload and inserting.  We love using TinyMCE and their slick uploader on PHP projects, but CityGates is Ruby on Rails.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.nathancolgate.com/post/99470586/"&gt;Updated April 23, 2009&lt;/a&gt;&lt;/p&gt;</description><link>http://www.nathancolgate.com/post/97273651</link><guid>http://www.nathancolgate.com/post/97273651</guid><pubDate>Fri, 17 Apr 2009 12:41:00 -0700</pubDate></item><item><title>jQuery Cycle Different Effects for Previous and Next</title><description>&lt;p&gt;jQuery Cycle plugin is fantastic.  However, there is a little bit of inconsistantcy when using it as a left/right slideshow.  You click the next arrow, it goes right. You click the previous arrow, it goes &lt;strike&gt;left&lt;/strike&gt; right.  The following code allows you to have different effects based on previous/ next button clicks.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://clients.brandnewbox.com/itag/blink/homepage.html"&gt;Demo&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;jQuery(document).ready(function(){




		$('#blink_headlines').cycle({ 

	    fx:      	'scrollBothWays',

			next:   	'#cycle_next_blue',

			prev: 		'#cycle_prev_blue',

	    speed:  	1000,

	    timeout: 	0,

			pause:   	1,

			easeIn:   'easeOutBack',

			easeOut:  'easeOutBack'

		});

});





$.fn.cycle.transitions.scrollBothWays = function($cont, $slides, opts) {

	$cont.css('overflow','hidden');

	opts.before.push($.fn.cycle.commonReset);



	// custom transition fn (trying to get it to scroll forward and backward)

	opts.fxFn = function(curr, next, opts, cb, fwd) {

		

		var w = $cont.width();

		opts.cssFirst = { left: 0 };

		opts.animIn	  = { left: 0 };

		

		if(fwd){

			opts.cssBefore= { left: w, top: 0 };

			opts.animOut  = { left: 0-w };

		}else{

			opts.cssBefore= { left: -w, top: 0 };

			opts.animOut  = { left: w };

		};

		

		var $l = $(curr), $n = $(next);

		var speedIn = opts.speedIn, speedOut = opts.speedOut, easeIn = opts.easeIn, easeOut = opts.easeOut, animOut = opts.animOut, animIn = opts.animIn;

		$n.css(opts.cssBefore);

		var fn = function() {$n.show();$n.animate(animIn, speedIn, easeIn, cb);};

		$l.animate(animOut, speedOut, easeOut, function() {

			if (opts.cssAfter) $l.css(opts.cssAfter);

			if (!opts.sync) fn();

		});

		if (opts.sync) fn();

	};

};&lt;/code&gt;&lt;/pre&gt;</description><link>http://www.nathancolgate.com/post/96953675</link><guid>http://www.nathancolgate.com/post/96953675</guid><pubDate>Thu, 16 Apr 2009 15:10:00 -0700</pubDate></item><item><title>My Dreams Concern Me</title><description>Nathan: Why are you here?&lt;br /&gt;&#13;
German1: We're looking for Marius Deboucher.&lt;br /&gt;&#13;
Nathan: Who?&lt;br /&gt;&#13;
German2: Marius Deboucher. You know. The chess player.&lt;br /&gt;&#13;
Nathan: ...&lt;br /&gt;&#13;
German1: Marius Deboucher, the greatest offensive castling chess player in the world!&lt;br /&gt;&#13;
Nathan: I'm afraid not.&lt;br /&gt;&#13;
German1 and German2: (singing a jingle) "Knight to check. Rook to Queen's pawn six. Checkmate. You've been Marius Debouched!"&lt;br /&gt;&#13;
Nathan: ...</description><link>http://www.nathancolgate.com/post/72106264</link><guid>http://www.nathancolgate.com/post/72106264</guid><pubDate>Wed, 21 Jan 2009 09:29:33 -0800</pubDate></item><item><title>Prototype AutoSelect with Category Subdivision</title><description>&lt;a href="http://vimeo.com/2487244"&gt;Prototype AutoSelect with Category Subdivision&lt;/a&gt;: &lt;p&gt;&lt;a href="http://vimeo.com/2487244" title="Prototype AutoSelect with Category Subdivision"&gt;&lt;img src="http://images.vimeo.com/21/44/95/214495971/214495971_160.jpg" alt="Prototype AutoSelect with Category Subdivision"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Proof of Concept
&lt;/p&gt;
&lt;p&gt;Cast: &lt;a href="http://vimeo.com/user352197" style="color: #2786c2; text-decoration: none;"&gt;Nathan Colgate&lt;/a&gt;&lt;/p&gt;</description><link>http://www.nathancolgate.com/post/64156814</link><guid>http://www.nathancolgate.com/post/64156814</guid><pubDate>Wed, 10 Dec 2008 12:44:57 -0800</pubDate></item><item><title>TinyMCE ImageManager and Symbolic Links</title><description>&lt;p&gt;Solved:&lt;br/&gt;&lt;br/&gt;If using capistrano and you have a symlinked shared directory which exists between deployments.&lt;br/&gt;set preview.wwwroot to /var/www/apps/application/shared/&lt;br/&gt;and filesystem.rootpath to /var/www/apps/application/shared/system&lt;br/&gt;&lt;br/&gt;(assuming you want to save files in system).&lt;br/&gt;&lt;br/&gt;This avoids the symlinks and allows tinymce to translate the paths properly.&lt;/p&gt;
&lt;p&gt;-via &lt;a href="http://tinymce.moxiecode.com/punbb/viewtopic.php?pid=24794#p24794"&gt;pyrat&lt;/a&gt;&lt;/p&gt;</description><link>http://www.nathancolgate.com/post/59746926</link><guid>http://www.nathancolgate.com/post/59746926</guid><pubDate>Fri, 14 Nov 2008 16:40:00 -0800</pubDate></item><item><title>nathancolgate: Currently not a fan of the lack of good YUI documentation: this.getRecordSet().getRecord(this.getSelectedRows()[0])._oData.Index</title><description>&lt;a href="http://twitter.com/nathancolgate/statuses/949876808"&gt;nathancolgate: Currently not a fan of the lack of good YUI documentation: this.getRecordSet().getRecord(this.getSelectedRows()[0])._oData.Index&lt;/a&gt;</description><link>http://www.nathancolgate.com/post/53514417</link><guid>http://www.nathancolgate.com/post/53514417</guid><pubDate>Tue, 07 Oct 2008 14:20:46 -0700</pubDate></item></channel></rss>
