<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Engine Yard Blog &#187; Joe Arnold</title>
	<atom:link href="http://www.engineyard.com/blog/author/joearnold/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.engineyard.com/blog</link>
	<description></description>
	<lastBuildDate>Tue, 07 Feb 2012 01:49:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Cross Site Scripting (XSS) Vulnerability In Rails 2.x on Ruby 1.8.x</title>
		<link>http://www.engineyard.com/blog/2009/cross-site-scripting-vulnerability-in-rails-2-x-on-ruby-1-8-x/</link>
		<comments>http://www.engineyard.com/blog/2009/cross-site-scripting-vulnerability-in-rails-2-x-on-ruby-1-8-x/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 18:35:25 +0000</pubDate>
		<dc:creator>Joe Arnold</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.engineyard.com/blog/?p=2208</guid>
		<description><![CDATA[<p>A cross site scripting <a href="http://weblog.rubyonrails.org/2009/9/4/xss-vulnerability-in-ruby-on-rails">vulnerability</a> in Rails was publicly reported yesterday that affects everyone running Rails 2.x on versions of Ruby before 1.9. The vulnerability occurs in the escaping code for form helpers in Ruby on Rails.  Attackers who can inject deliberately malformed Unicode strings into the form helpers can defeat the escaping checks and inject arbitrary <span>HTML</span>.</p>
<p>A fix for this problem has been incorporated in a new release (Rails 2.3.4), and patches are now available for <a href="http://weblog.rubyonrails.org/2009/9/4/xss-vulnerability-in-ruby-on-rails">all minor versions of Rails 2.x (2.0, 2.1, 2.2 and 2.3)</a>.</p>
<p>Please read the<a href="http://groups.google.com/group/rubyonrails-security/msg/7f57cd7794e1d1b4?pli=1"> full posting on the Rails Security Group </a>for more details. For more information on the process for how Rails vulnerabilities are handled, read the <a href="http://rubyonrails.org/security">Rails security process document</a>.</p>
<p>(Engine Yard customers are being contacted via email about this vulnerability with instructions on how to obtain the upgrade.)
<p><a href="http://www.engineyard.com/blog"><img height="98" width="61" title="logo-engineyard" alt="" class="attachment-post-thumbnail wp-post-image" src="http://www.engineyard.com/blog/wp-content/uploads/logo-engineyard.png"/></a></p>
]]></description>
		<wfw:commentRss>http://www.engineyard.com/blog/2009/cross-site-scripting-vulnerability-in-rails-2-x-on-ruby-1-8-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pair-Programming Should Be Co-Programming</title>
		<link>http://www.engineyard.com/blog/2009/pair-programming-should-be-co-programming/</link>
		<comments>http://www.engineyard.com/blog/2009/pair-programming-should-be-co-programming/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 14:00:12 +0000</pubDate>
		<dc:creator>Joe Arnold</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Extreme Programming]]></category>
		<category><![CDATA[Pair-Programming]]></category>

		<guid isPermaLink="false">http://www.engineyard.com/blog/?p=1276</guid>
		<description><![CDATA[<p>Back in 2005 a pair of Stanford students asked me if they could observe the pair-programming environment at the company I was working for. They were working on a project to challenge the notion that two people pair-programming had separate roles of "driver" and "navigator"  a common notion of how pair-programming should work at the time.  Back then, we had a traditional pair-programming setup: 1 desk, 1 keyboard and mouse, 1 computer and (of course) 2 people. What they observed was downright painful!</p>
<p>As one example, they recorded a session where someone was verbally dictating syntax and keyboard actions to their pair:</p>
<blockquote><p><strong>Hugh</strong>: So…<br />
<strong>Ilya</strong>: Parenthesis. So percent, getNewArgs… [Hugh types.]<br />
Exactly. So save off those two lines in the new method.<br />
<strong>Hugh</strong>: Uh…<br />
<strong>Ilya</strong>: Right…down, down, down, there we go.<br />
<strong>Hugh</strong>: So we…<br />
<strong>Ilya</strong>: So, percent getNewArgs equals percent args [Hugh<br />
types this line to terminal.] Uh, I think that's it.<br />
<strong>Hugh</strong>: This?<br />
<strong>Ilya</strong>: Yeah, that's all we want to do. Get rid of the blank line<br />
and close the new.</p>
<p class="footnote"><em>From a pair programming session revealing the perils where one person "drives" while the other "navigates." Excerpt from "<a href="http://www.ipd.uka.de/Tichy/uploads/folien/134/chongSocialDynamicsofPairProgrammingICSE07.pdf">The Social Dynamics of Pair Programming</a>"</em></p>
<p><em></em></p></blockquote>
<p>This was clearly the wrong way to go about pair-programming. "Driver" and "navigator" was turning out to be closer to "driver" and "back-seat driver" and like all experiences of back-seat driving, it could be frustrating for the driver, and generally unproductive. What we've found at Engine Yard is that it's far better to optimize the pair-programming environment not for a "driver" and "navigator," but for <strong>co-programming</strong>.</p>
<p><img class="alignnone size-full wp-image-1284" src="http://www.engineyard.com/blog/wp-content/uploads/ey-pair-programming.jpg" alt="Jon Crosby and Ezra Zygmuntowicz pair-programming at Engine Yard" width="480" height="322" /> <em></em></p>
<p><em>Jon Crosby and Ezra Zygmuntowicz pair-programming</em></p>
<p>A good co-programming environment should reduce the friction for any task, and has three rules:</p>
<ol>
<li>Create a shared environment, where the pair can fully immerse itself in the problem at hand.</li>
<li>Make it easy for a member of the pair to 'fork' off and not interrupt flow.</li>
<li>Remove any obstacles that get in the way of completing each other's <span style="text-decoration: line-through;">syntaxes</span> sentences.</li>
</ol>
<p><strong>The Engine Yard Pair-Programming Setup</strong></p>
<p><strong>Two keyboard and mouse sets:</strong> This alone dramatically improves a pairing environment. Often we see one member of the pair 'hovering' over the keyboard -- a non-verbal cue indicating that they want to take over. It's amazing how effective code can be in expressing an idea over a verbal description or notepad sketches. No more oral syntax descriptions!</p>
<p><strong>Dedicated pair-workstations:</strong> Identical workstations with identical configurations, including editor. We use iMacs with nice big screens. Similar environments make it easy for pair switch-up. Everyone is familiar with the environment on the pair-stations, so there is no re-learning a new environment depending on who you happen to be pairing with.</p>
<p><strong>3-Computer Setup:</strong> Each pair brings their laptop to dock alongside the pairing station. This enables any pair to perform research, and kick-off long running processes, without losing context on the dedicated workstation. While it takes more discipline to stay on task, we think it's worth the flexibility.</p>
<p>I don't claim that this is the perfect environment for all situations; but it's something that works well for us.
<p><a href="http://www.engineyard.com/blog"><img height="98" width="61" title="logo-engineyard" alt="" class="attachment-post-thumbnail wp-post-image" src="http://www.engineyard.com/blog/wp-content/uploads/logo-engineyard.png"/></a></p>
]]></description>
		<wfw:commentRss>http://www.engineyard.com/blog/2009/pair-programming-should-be-co-programming/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>BigDecimal Vulnerability in Ruby 1.8.6 and 1.8.7</title>
		<link>http://www.engineyard.com/blog/2009/bigdecimal-vulnerability-in-ruby-186-and-187/</link>
		<comments>http://www.engineyard.com/blog/2009/bigdecimal-vulnerability-in-ruby-186-and-187/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 17:06:33 +0000</pubDate>
		<dc:creator>Joe Arnold</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[1.8.6]]></category>
		<category><![CDATA[BigDecimal]]></category>
		<category><![CDATA[DoS]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Rubyspec]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Solo]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://www.engineyard.com/blog/?p=1267</guid>
		<description><![CDATA[<p>Yesterday, the first security vulnerability since Engine Yard took over maintenance of Ruby 1.8.6 was reported. It is a <a href="http://www.ruby-lang.org/en/news/2009/06/09/dos-vulnerability-in-bigdecimal/" rel="nofollow">Denial of Service vulnerability in BigDecimal</a>, by which an attacker can cause a segmentation fault by providing a very large number as input. ActiveRecord relies on BigDecimal, but this is not Rails specific.</p>
<p>Today, as part of our <a href="http://www.engineyard.com/blog/2009/engineyard_ruby186_maintenance/">maintainer role for 1.8.6</a>, we published a fix as part of <a href="ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p369.tar.gz" rel="nofollow">Ruby 1.8.6 patch-level 369</a> and as a part of <a href="ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p173.tar.gz" rel="nofollow">Ruby 1.8.7 patch-level 173</a>.</p>
<p>The issue was initially discovered and fixed in the Ruby 1.9.1 trunk. We backported the fix to 1.8.6 by writing a test, watching it fail, then making it pass (the same way we always do). As part of our test-driven approach, Kirk Haines then added a <a href="http://github.com/rubyspec/rubyspec/commit/95c0abbe07bf350f83d2454eb080b0bd315d59d4" rel="nofollow">test</a> in <a href="http://rubyspec.org/" rel="nofollow">RubySpec</a> to test for the condition. We ran the test suite on OSX, RedHat Enterprise 3, CentOS 4, 32 and 64 bit <a href="http://www.engineyard.com/solo">Engine Yard Solo</a> instances, and an Engine Yard Slice to verify the fix.</p>
<p>Engine Yard customers have been notified about the vulnerability via email with instructions on how to upgrade. Engine Yard Solo customers can get the new, patched version of Ruby 1.8.6 simply by <a href="http://www.grabup.com/uploads/9c78be6e8b72d9c0e6ee7240fb874cf3.png?direct" rel="nofollow">redeploying</a> their environments. In the future, new Engine Yard deployments will automatically get the new version.
<p><a href="http://www.engineyard.com/blog"><img height="98" width="61" title="logo-engineyard" alt="" class="attachment-post-thumbnail wp-post-image" src="http://www.engineyard.com/blog/wp-content/uploads/logo-engineyard.png"/></a></p>
]]></description>
		<wfw:commentRss>http://www.engineyard.com/blog/2009/bigdecimal-vulnerability-in-ruby-186-and-187/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Engine Yard Lowering Pricing for Rails in the Cloud*</title>
		<link>http://www.engineyard.com/blog/2009/engine-yard-lowering-pricing-for-rails-in-the-cloud/</link>
		<comments>http://www.engineyard.com/blog/2009/engine-yard-lowering-pricing-for-rails-in-the-cloud/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 13:08:15 +0000</pubDate>
		<dc:creator>Joe Arnold</dc:creator>
				<category><![CDATA[Engine Yard Cloud]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Solo]]></category>

		<guid isPermaLink="false">http://blog.engineyard.com/2009/04/01/engine-yard-lowering-pricing-for-rails-in-the-cloud</guid>
		<description><![CDATA[<p>In January of this year we announced the first product in our budding suite of <a href="http://www.engineyard.com/cloud-services">cloud management</a> solutions: <a href="http://www.engineyard.com/cloud-services/solo">Engine Yard Solo</a>. Since then, there have been frequent feature pushes, and lots of communication with our customers. That communication included feedback, feature requests and some really good advice.</p>
<p>As a result of that great feedback (thanks!), we have another announcement to make &#8211; and we think this one might get you even more excited than the others&#8230;</p>
<p>As of today&#8217;s feature push, we&#8217;ve completed the first generation of features (and bug-fixes) for Engine Yard Solo! Since launching, we&#8217;ve added support for custom recipes, volume snapshots, crontab management and many other essential features for managing a business-quality rails site. We&#8217;ve also improved our user interface and added help guides to the Solo support site.</p>
<p>On to the shiny parts: Solo is ready for a broader audience, and to enable that, we&#8217;re lowering pricing <em>significantly</em>. What are the main changes, you ask?</p>
<h2>New $25 Monthly Minimum</h2>
<p>We know that once you try Solo, you&#8217;ll love it, so we want to make it a lot more accessible. Before today, the monthly minimum charge for Engine Yard Solo was $129; based on your feedback, we&#8217;ve lowered that minimum to $25.</p>
<h2>New Lower Usage Pricing</h2>
<p>Solo is a great solution for applications that need the resource of a larger sized instance, so we thought we&#8217;d lower your costs a bit. An XL instance used to be $1.42 per hour; now it&#8217;s $0.90 per hour. A standard instance used to be $0.18 per hour, now it&#8217;s $0.16 per hour. Existing customers will automatically inherit this new pricing starting today.</p>
<p>Engine Yard prides itself on being at the cutting edge of <a href="http://www.engineyard.com/technology">Ruby and Rails technologies</a>. Our customers are headed to the cloud, and we&#8217;ll be there waiting with great products and the expertise they&#8217;ve come to rely on us for.</p>
<p>We&#8217;ve just begun to scratch the surface, so keep an eye out: there are even more exciting developments on the way!</p>
<p>*not an April Fools&#8217; Day joke!</p>
<p><a href="http://www.engineyard.com/blog"><img height="98" width="61" title="logo-engineyard" alt="" class="attachment-post-thumbnail wp-post-image" src="http://www.engineyard.com/blog/wp-content/uploads/logo-engineyard.png"/></a></p>
]]></description>
		<wfw:commentRss>http://www.engineyard.com/blog/2009/engine-yard-lowering-pricing-for-rails-in-the-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

