<?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/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
>

<channel>
	<title>Geek Mama &#187; Ruby on Rails</title>
	<atom:link href="http://blogs.law.harvard.edu/lianaleahy/category/professional/ruby-on-rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.law.harvard.edu/lianaleahy</link>
	<description>exploits of a mom on rails</description>
	<lastBuildDate>Wed, 25 Nov 2009 18:11:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
		<item>
		<title>Testing Newbie</title>
		<link>http://blogs.law.harvard.edu/lianaleahy/2009/11/25/testing-newbie/</link>
		<comments>http://blogs.law.harvard.edu/lianaleahy/2009/11/25/testing-newbie/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 16:36:04 +0000</pubDate>
		<dc:creator>lianaleahy</dc:creator>
				<category><![CDATA[Professional]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/lianaleahy/?p=365</guid>
		<description><![CDATA[It&#8217;s embarrassing to admit, but I know I&#8217;m not the only one.  I know this because last Spring I hosted a talk by Jon Yurek and Dan Croak of thoughtbot, inc entitled &#8220;Test Driven Development with Ruby on Rails&#8221;.  And it was PACKED!!!
Many folks understand the importance of testing, the value-add, the business benefits of [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s embarrassing to admit, but I know I&#8217;m not the only one.  I know this because last Spring I hosted a talk by Jon Yurek and Dan Croak of <a href="http://thoughtbot.com/">thoughtbot, inc</a> entitled &#8220;Test Driven Development with Ruby on Rails&#8221;.  And it was PACKED!!!</p>
<p>Many folks understand the importance of testing, the value-add, the business benefits of <a href="http://en.wikipedia.org/wiki/Test-driven_development">TDD</a>, that&#8217;s why we were all there.  We got a thorough overview of the numerous testing products.  And there&#8217;s a LOT out there&#8230; or maybe it just seems that way.  But once I was back at my desk facing my app, I still didn&#8217;t understand how to get started.</p>
<p>Yeah, I&#8217;ve tried a few tutorials but they often only utilize the <a href="http://en.wikipedia.org/wiki/Interactive_Ruby_Shell">irb</a> command line and don&#8217;t really explain how everything fits into a real live rails application.</p>
<p>I&#8217;ve been told that testing is just one of those things where you have to just dive in and go for it.  That being said, let me share with you my recent endeavors using the <a href="http://guides.rubyonrails.org/testing.html">Rails Guides</a> and the little knowledge I&#8217;ve pieced together so far.</p>
<p>1.  <strong>Open your current ruby on rails project</strong><br />
Yeah, I said open your <strong><em>current</em> </strong>project.  If you don&#8217;t get started today, working every day, it&#8217;ll never happen right?  But if you don&#8217;t have a current rails app and need some help getting started check out this <a href="http://fairleads.blogspot.com/2007/12/rails-20-and-scaffolding-step-by-step.html">Rails 2.0 step by step tutorial</a>.</p>
<p>Okay now that we&#8217;re set up, we&#8217;re going to create a brand new model for the purposes of this testing tutorial:</p>
<pre class="brush: ruby">
&gt;&gt;ruby script/generate scaffold CoinChanger
</pre>
<p>By the way, don&#8217;t let anyone dissuade you from using scaffold.  It&#8217;s much improved over older versions since 2.0 and comes packed with all kinds of goodies incredibly helpful to the newbie.  You can always delete the files you don&#8217;t need later.</p>
<p>2.  <strong>Write a Test</strong><br />
What already?  Yeah.</p>
<pre class="brush: ruby">
&gt;&gt; cd test/unit
</pre>
<p>You should see the stub of a test already here:</p>
<pre class="brush: ruby">
require &#039;test_helper&#039;
class CoinChangerTest &lt; ActiveSupport::TestCase
# Replace this with your real tests.
test &quot;the truth&quot; do
assert true
end
end
</pre>
<p>I didn&#8217;t find this too terribly helpful in getting me started.  Let&#8217;s instead replace the stub code with this:</p>
<pre class="brush: ruby">
require &#039;test_helper&#039;

class CoinChangerTest &lt; ActiveSupport::TestCase

def test_return_correct_change
#setup
#exercise
#verify
#teardown
end

end
</pre>
<p>So, <i>require &#8216;test_helper&#8217;</i> specifies the default configuration to run our tests.  It appears in every default test file.  Doesn&#8217;t seem DRY to me.  I betcha there&#8217;s a config file in the augmented testing frameworks where this would belong.  But for now, we&#8217;ve leave it.</p>
<p>Next, you&#8217;ll notice that our <i>CoinChangerTest</i> class is extended by <i>ActiveSupport::TestCase</i>.  Now, this is a little different than what you might find in those irb examples I mentioned before.  Those examples extend <i>Test::Unit::TestCase</i>.  Now that&#8217;s totally fine when you&#8217;re running a bunch of isolated files in a tutorial, but not when you&#8217;re working with a real rails app.  </p>
<p>The class <i>ActiveSupport::TestCase</i> extends <i>Test::Unit::TestCase</i> and gives you all the testing goodness you need to run fixtures.  We won&#8217;t be playing with data and fixtures in this tutorial (stayed tuned for future blog posts) but we&#8217;ll use the ActiveSupport class since we&#8217;re testing a full fledged rails application. </p>
<p>After that we see a pattern that will guide us through every test we write:</p>
<ul>
<li>setup</li>
<li>exercise</li>
<li>verify (assert expectations)</li>
<li>teardown</li>
</ul>
<p>So, here is an example of a unit test:</p>
<pre class="brush: ruby">
require &#039;test_helper&#039;

class CoinChangerTest &lt; ActiveSupport::TestCase

def test_return_correct_change_in_pennies
   #setup
   @changer = CoinChanger.new
   #exercise
   hash = @changer.change_me(&quot;$5.87&quot;)
   #verify
   assert_equal 2, hash[:pennies]
   #teardown
   # delete files, close network/database connections
end

end
</pre>
<p>In the example above, we setup an instance of my model class:</p>
<pre class="brush: ruby">
@changer = CoinChanger.new
</pre>
<p>Then we exercise the method which should return a hash:</p>
<pre class="brush: ruby">
hash = @changer.change_me(&quot;$5.87&quot;)
</pre>
<p>Then verify that the implementation works correctly by asserting expectations :</p>
<pre class="brush: ruby">
assert_equal 2, hash[:pennies]
</pre>
<p>Finally it&#8217;s time to clean up. There is nothing to teardown in this example. If the test were creating files or network/database connections, then we&#8217;d use the teardown method to close out:</p>
<pre class="brush: ruby">
assert_equal 2, hash[:pennies]
</pre>
<p>3.  <strong>Run a Test</strong><br />
Go ahead.  Try it out.</p>
<pre class="brush: ruby">
&gt;&gt; cd test
&gt;&gt; ruby unit/coin_changer_test.rb
</pre>
<p>Oh, dang!  Get an error message?  When you&#8217;re testing a rails application, you need to be sure that your database.yml is set up and pointing to a valid database.  Those of you who just created a brand new rails app, you&#8217;ll need to edit your database.yml file.  I&#8217;ll assume you can do this on your own, seriously, take a look at the <a href="http://fairleads.blogspot.com/2007/12/rails-20-and-scaffolding-step-by-step.html">Rails 2.0 step by step tutorial</a>.</p>
<p>Let&#8217;s try again.</p>
<pre class="brush: ruby">
Loaded suite unit/coin_changer_test
Started
E
Finished in 0.219 seconds.

  1) Error:
test_return_correct_change(CoinChangerTest):
NoMethodError: undefined method `change_me&#039; for #
    unit/coin_changer_test.rb:11:in `test_return_correct_change&#039;

1 tests, 0 assertions, 0 failures, 1 errors
</pre>
<p>Uh, oh.  We forgot to create our <i>change_me</i> method in our CoinChanger model. Let&#8217;s do that now.</p>
<pre class="brush: ruby">
class CoinChanger
  def change_me( dollar_string )

    #transform dollar string into change
    return {}

  end
end
</pre>
<p>And rerun our test:</p>
<pre class="brush: ruby">
Loaded suite unit/coin_changer_test
Started
F
Finished in 0.344 seconds.

  1) Failure:
test_return_correct_change(CoinChangerTest) [u
 expected but was
.

1 tests, 1 assertions, 1 failures, 0 errors
</pre>
<p>Well, now we&#8217;re getting somewhere!  The test failed because it&#8217;s returning an empty hash.  Let&#8217;s give our test what it wants:</p>
<pre class="brush: ruby">
  def change_me( dollar_string )

    #transform dollar string into change
    return {:pennies =&gt; 587}

  end
</pre>
<p>So, now if we run the test again&#8230; hopefully we see this:</p>
<pre class="brush: ruby">
Loaded suite unit/coin_changer_test
Started
.
Finished in 0.219 seconds.

1 tests, 1 assertions, 0 failures, 0 errors
</pre>
<p>This means the test passed and was successful.  Yay!</p>
<p>Hopefully this is enough to get started.  Stay tuned for more on testing!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/lianaleahy/2009/11/25/testing-newbie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Windows and Github</title>
		<link>http://blogs.law.harvard.edu/lianaleahy/2009/11/17/windows-and-github/</link>
		<comments>http://blogs.law.harvard.edu/lianaleahy/2009/11/17/windows-and-github/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 15:56:38 +0000</pubDate>
		<dc:creator>lianaleahy</dc:creator>
				<category><![CDATA[Professional]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/lianaleahy/?p=331</guid>
		<description><![CDATA[I&#8217;ve been bumping into weirdness when I click on links to download various plugins from Github.  Even when I script/plugin install, all I get is an empty folder.
Turns out that this is just more wacky Windows behavior.   RubyizednRailified explains in his post,  Installing Rails plugin from Github on Windows.  Thanks!
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been bumping into weirdness when I click on links to download various plugins from <a href="https://github.com/">Github</a>.  Even when I <em>script/plugin install</em>, all I get is an empty folder.</p>
<p>Turns out that this is just more wacky Windows behavior.   <a href="http://rubyizednrailified.blogspot.com">RubyizednRailified</a> explains in his post,  <a href="http://rubyizednrailified.blogspot.com/2009/07/installing-rails-plugin-from-github-on.html">Installing Rails plugin from Github on Windows</a>.  Thanks!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/lianaleahy/2009/11/17/windows-and-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Arabic Charset and RedCloth</title>
		<link>http://blogs.law.harvard.edu/lianaleahy/2009/10/23/arabic-charset-and-redcloth/</link>
		<comments>http://blogs.law.harvard.edu/lianaleahy/2009/10/23/arabic-charset-and-redcloth/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 19:35:47 +0000</pubDate>
		<dc:creator>lianaleahy</dc:creator>
				<category><![CDATA[Professional]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/lianaleahy/?p=321</guid>
		<description><![CDATA[The Berkman Center has friends all over the world and just about every website we have requires language support.
We recently had an issue with RedCloth and the Arabic character set.  When saving content, line breaks disappear when you create a new RedCloth object.  It&#8217;s as if the Arabic line break character is ignored.
I cut and paste my [...]]]></description>
			<content:encoded><![CDATA[<p>The Berkman Center has friends all over the world and just about every website we have requires language support.</p>
<p>We recently had an issue with <a href="http://redcloth.org/">RedCloth</a> and the Arabic character set.  When saving content, line breaks disappear when you create a new RedCloth object.  It&#8217;s as if the Arabic line break character is ignored.</p>
<p>I cut and paste my Arabic document into the text area box on the front page of the RedCloth site.  And the line breaks show up fine there.  So, the ajaxy bit works fine.  Perhaps the culprit lies in the <strong>.to_html </strong>method.</p>
<p>This could be an issue with the Windows-1256 charset for Arabic.  I wouldn&#8217;t be suprised if the problem doesn&#8217;t occur on a Mac which I assume uses ISO 8859-6.</p>
<p>Anyway, the workaround is easy.  Just use html line breaks: <strong>&lt;br /&gt;</strong></p>
<p><strong><span style="color: #ff0000">UPDATE</span>:</strong> Had friends test this out on the mac using a variety of browsers and still had the same problem.  On either Windows or Mac, typing the enter key using the Arabic charset uses a strange character that RedCloth/Textile doesn&#8217;t understand<strong>.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/lianaleahy/2009/10/23/arabic-charset-and-redcloth/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>OpenID authentication plugin: bugs and quirks</title>
		<link>http://blogs.law.harvard.edu/lianaleahy/2009/10/21/openid-authentication-plugin-bugs-and-quirks/</link>
		<comments>http://blogs.law.harvard.edu/lianaleahy/2009/10/21/openid-authentication-plugin-bugs-and-quirks/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 15:28:55 +0000</pubDate>
		<dc:creator>lianaleahy</dc:creator>
				<category><![CDATA[Professional]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/lianaleahy/?p=288</guid>
		<description><![CDATA[My current ror project at Berkman is a new Herdict website being released later this week.  It is an extension of the BadwareBusters.org project that has been released to GitHub as LittleVoice.  My work in LittleVoice primarily involves restful authentication and scoring model methods, but for this new project I&#8217;ve been tasked with adding Twitter, [...]]]></description>
			<content:encoded><![CDATA[<p>My current ror project at Berkman is a <a href="http://discuss.herdict.org/">new Herdict website</a> being released later this week.  It is an extension of the <a href="http://badwarebusters.org/">BadwareBusters.org</a> project that has been released to <a href="https://github.com/">GitHub</a> as <a href="http://github.com/berkmancenter/LittleVoice/">LittleVoice</a>.  My work in LittleVoice primarily involves restful authentication and scoring model methods, but for this new project I&#8217;ve been tasked with adding Twitter, OpenId and anonymous authentication.</p>
<p>In retrospect, I might have been better off implementing <a href="http://www.binarylogic.com/2009/03/30/authlogic-2-0-with-some-openid-goodness/">Authlogic</a>.  But since I had already implemented <a href="http://railsforum.com/viewtopic.php?id=14216">Restful Authentication with all the bells and whistles</a> in LittleVoice, it seemed to make more sense to simply throw in the <a href="http://github.com/rails/open_id_authentication">open_id_authentication</a> and the <a href="http://github.com/corbanbrook/twitter_authentication">twitter_authentication</a> plugins and be done with it.  Mistake #1</p>
<p>Redirecting to OpenID and Twitter via the form_remote_tag form doesn&#8217;t work.  The app just hangs.  I tried various <a href="http://learningrubyonrails.blogspot.com/2008/02/formremotetag-with-ajax-and-none-ajax.html">options and incantations</a> of form_remote_tag to no avail.  Forunately, I could just bypass this nuisance issue with a simple form_for.</p>
<p>Otherwise, Twitter worked well out of the box except for the fact that the api does not return a user&#8217;s email address after authentication for security reasons.  This bummed me out because the LittleVoice app has a business rule requiring all users to have a unique email address.  But problem easily solved by requesting email up front as part of my authentication form.  No big deal.</p>
<p>Open ID however has a number of quirks that caused me great pain to work out.  And in researching these quirks and issues, I had a hard time finding information short of digging into the OpenID api.  And who wants to dig into the api?  I don&#8217;t have time for that!  Mistake #2</p>
<p><span style="background-color: #ffffff">Next, I found that my login and signup pages were working fine.  But authenticating via OpenID on the fly didn&#8217;t.  LittleVoice allows users to write a post before logging in, and rather than &#8220;submit&#8221; be able to login in-line.  But logging in via OpenID in the middle of my controller just wouldn&#8217;t work right.</span></p>
<p>What the heck was different between these two methods?  This is a great example of why it pays to be DRY.  But I digress&#8230;</p>
<p>In my sessions controller, I invoked OpenID in a form_tag that redirected to the open_id_logon named route.  In my other controller, I invoked OpenID by directly calling the authenticate_with_open_id plugin method.  Mistake #3</p>
<p>What wasn&#8217;t apparent right away is the fact that the authenticate_with_open_id method needs to be called twice.  This method redirects to the OpenID url entered by the user.  When the OpenID website is ready to return back to your site, you need to make sure that it calls authenticate_with_open_id again so you can grab the result, identity_url and registration object.  By calling the method directly in another controller, my return_to url was my controller method rather than the authenticate_with_open_id method.  Simply using the named route at all times, solves this issue.  But there&#8217;s another way.</p>
<p>There is a little known option for the authenticate_with_open_id.  You can set the return_to directly like this:</p>
<pre class="brush: ruby">
authenticate_with_open_id(openid_url, :return_to =&gt; open_id_logon_url) do |result, identity_url|
...
end
</pre>
<p>But here&#8217;s the really painful part.  When you try to use the return_to option you get an error message.</p>
<blockquote><p>OpenID::Server::UntrustedReturnURL</p></blockquote>
<p>There is a bug in the open_id_redirect_url method of the OpenIdAuthentication module.  The current module code looks like this:</p>
<pre class="brush: ruby">
def open_id_redirect_url(open_id_request, return_to = nil, method = nil)
...
open_id_request.redirect_url(requested_url, return_to || requested_url)
end
</pre>
<p>But it needs to be this:</p>
<pre class="brush: ruby">
def open_id_redirect_url(open_id_request, return_to = nil, method = nil)
...
open_id_request.redirect_url(return_to || requested_url, return_to || requested_url)
end
</pre>
<p>*sigh*  I can&#8217;t wait to close this ticket.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/lianaleahy/2009/10/21/openid-authentication-plugin-bugs-and-quirks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>rorw4w a success!</title>
		<link>http://blogs.law.harvard.edu/lianaleahy/2009/10/21/rorw4w-a-success/</link>
		<comments>http://blogs.law.harvard.edu/lianaleahy/2009/10/21/rorw4w-a-success/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 13:46:50 +0000</pubDate>
		<dc:creator>lianaleahy</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Professional]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/lianaleahy/?p=281</guid>
		<description><![CDATA[The Ruby on Rails Workshop for Women event that I spent the last two months organizing went flawlessly!  Teachers, Sarah Allen compared the event to the Stone Soup fable and Andy Gregorowicz wrote about the workshop from his perspective. The tweet stream was also fabulously positive.
Here&#8217;s some of the feedback received:
So cool that folks travelled to Boston from as far [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://blogs.law.harvard.edu/genderandtech/ruby-on-rails-workshop-for-women/">Ruby on Rails Workshop for Women</a> event that I spent the last two months organizing went flawlessly!  Teachers, <a href="http://www.ultrasaurus.com">Sarah Allen</a> compared the event to the <a href="http://www.ultrasaurus.com/sarahblog/2009/10/stone-soup-workshop/">Stone Soup</a> fable and <a href="http://gregorowicz.blogspot.com/">Andy Gregorowicz</a> wrote about <a href="http://gregorowicz.blogspot.com/2009/10/teaching-at-ruby-on-rails-workshop-for.html">the workshop from his perspective</a>. The <a href="http://search.twitter.com/search?q=rorw4w">tweet stream</a> was also fabulously positive.</p>
<p>Here&#8217;s some of the feedback received:</p>
<blockquote><p>So cool that folks travelled to Boston from as far away as PA to attend Ruby on Rails Workshop for Women!!</p></blockquote>
<blockquote><p>&#8230;it makes a huge difference to be able to ask someone stupid ?s.</p></blockquote>
<blockquote><p>I like being able to say that I deployed my first Rails application today before lunchtime <img src='http://blogs.law.harvard.edu/lianaleahy/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  like running a half marathon.</p></blockquote>
<blockquote><p>Totally impressed with the amount of Ruby and Rails info the students absorbed.</p></blockquote>
<blockquote><p>I want to thank the teaching assistants at #rorw4w. You were never judgmental and always patient.</p></blockquote>
<blockquote><p>You know what&#8217;s a lot of fun? TAing at #rorw4w.</p></blockquote>
<blockquote><p>It was indeed entirely attitude-free, as promised &#8211; unique in my experience! I appreciated that so much, and I had a lot of fun, as well.</p></blockquote>
<p>I was truly impressed with the number of ror rockstars in the Boston community who were willing to give up their weekend to help some newbies.  I have a new mantra:  MINSBRAN &#8211; Matz Is Nice So Boston Rubyists Are Nice.  I will never fear going to another boston.rb or hackfest event again.</p>
<p>Sarah mentions all the<a href="http://www.ultrasaurus.com/sarahblog/2009/10/stone-soup-workshop/"> awesome volunteers by name</a> in her blog post, so here I&#8217;ll thank Berkman folk for their support in making this happen: Urs Gasser, Colin Maclay, Amar Ashar, Carey Andersen, Seth Young, Catherine Bracy, Jason Callina, Brandon Palmen, Dharmishta Rood, Daniel Jones, and the Gender and Technology committee.  I should also thank our CRCS supporters, Margo Seltzer and Salil Vadhan.</p>
<p>Tonight we gather again at the <a href="http://blogs.law.harvard.edu/genderandtech/ruby-on-rails-workshop-for-women/open-source-code-crunch/">Open Source Code Crunch</a> event at the Berkman Center. This is going to be a monthly event <span style="background-color: #ffffff">promoting mixed gender collaboration. Programmers will meet monthly and use their skills towards open source projects in a welcoming, collaborative, attitude-free, newbie-safe environment.  Looking forward to it.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/lianaleahy/2009/10/21/rorw4w-a-success/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Ruby on Rails Workshop for Women This Weekend!</title>
		<link>http://blogs.law.harvard.edu/lianaleahy/2009/10/16/ruby-on-rails-workshop-for-women-this-weekend/</link>
		<comments>http://blogs.law.harvard.edu/lianaleahy/2009/10/16/ruby-on-rails-workshop-for-women-this-weekend/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 14:46:21 +0000</pubDate>
		<dc:creator>lianaleahy</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Professional]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/lianaleahy/?p=278</guid>
		<description><![CDATA[I am sooo excited!  It feels like opening night.  Wow, haven&#8217;t had these jitters in a long while.
I would like to personally thank all of our generous sponsors who are making this weekend&#8217;s Ruby on Rails Workshop for Women possible.  Thanks to them, attendees needn&#8217;t leave the workshop in search of coffee and food. [...]]]></description>
			<content:encoded><![CDATA[<p>I am sooo excited!  It feels like opening night.  Wow, haven&#8217;t had these jitters in a long while.</p>
<p>I would like to personally thank all of our generous sponsors who are making this weekend&#8217;s <a href="http://blogs.law.harvard.edu/genderandtech/ruby-on-rails-workshop-for-women/">Ruby on Rails Workshop for Women</a> possible.  Thanks to them, attendees needn&#8217;t leave the workshop in search of coffee and food.  But more importantly, we will be webcasting the event live!  <a href="http://blogs.law.harvard.edu/genderandtech/ruby-on-rails-workshop-for-women/webcast/">More details here</a>.</p>
<p>While all our sponsors were enthusiastic about contributing towards childcare costs, <a href="http://www.news.harvard.edu/gazette/2004/09.16/05-bigpic.html">Julia Ashmun </a>was our sole individual contributor earmarking her donation to waive referral fees for attendees in need of sitter services.</p>
<p>Our first sponsor <a href="http://www.hashrocket.com/">Hashrocket</a> has got to be one of the coolest dev shops on the planet. (I am such a fangirl!)  If only because <a href="http://www.desimcadam.com/">Desi Mcadam</a> works there, founder of <a href="http://www.devchix.com/2009/03/24/ada-lovelace-day-finding-ada/" target="_blank">DevChix</a>.  Thanks for all your support, Desi!</p>
<p>Congratulations to <a href="http://www.engineyard.com/">EngineYard</a> who just raised 19 Million with new investors.  Nice to hear good karma coming back to good people.</p>
<p>We also send thanks to <a href="https://github.com/">GitHub</a>, <em>the</em> most popular Git hosting site.  Brought to you by <a href="http://logicalawesome.com/">Logical Awesome</a>.  Don&#8217;t you just love that name?</p>
<p>And lastly we are grateful to <a href="http://railsbridge.org/">RailsBridge</a> for inspiring these workshops and reaching out to individuals and groups who are underrepresented in the community.</p>
<p>Thanks so much!!  Can&#8217;t wait to meet everyone tonight!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/lianaleahy/2009/10/16/ruby-on-rails-workshop-for-women-this-weekend/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>&#8230;to encourage mixed gender collaboration</title>
		<link>http://blogs.law.harvard.edu/lianaleahy/2009/10/01/to-encourage-mixed-gender-collaboration/</link>
		<comments>http://blogs.law.harvard.edu/lianaleahy/2009/10/01/to-encourage-mixed-gender-collaboration/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 19:59:01 +0000</pubDate>
		<dc:creator>lianaleahy</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Professional]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/lianaleahy/?p=265</guid>
		<description><![CDATA[So the controversy over whether or not the Ruby on Rails Workshop for Women is sexist has made for an unproductive week. I do have a full time programming job here people! Nevertheless, it’s resulted in some very interesting responses. Check out the conversation on Hacker News.
The focus of the event is to encourage women [...]]]></description>
			<content:encoded><![CDATA[<p>So the controversy over whether or not the <a href="http://blogs.law.harvard.edu/genderandtech/ruby-on-rails-workshop-for-women/">Ruby on Rails Workshop for Women</a> is sexist has made for an unproductive week. I do have a full time programming job here people! Nevertheless, it’s resulted in some very interesting responses. Check out the conversation on <a href="http://news.ycombinator.com/item?id=851364">Hacker News</a>.</p>
<p>The focus of the event is to encourage women to participate in open source development. So workshop coordinators made the request that men who wish to attend find a woman to sign up who might not otherwise have considered checking out a tech event. There was never any intention to exclude men from the event, but rather enlist their help in broadening the community.</p>
<p>What happens when you want to encourage mixed gender collaboration but your female friends and family are already annoyed with the amount of time you spend on the computer? And I suppose it’d be rather creepy to troll the highschool for geek girls. What’s a boy to do?</p>
<p>MINSWAN everyone. We&#8217;re opening the event up to anyone who would like to attend.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/lianaleahy/2009/10/01/to-encourage-mixed-gender-collaboration/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Dear Minority Fringe,</title>
		<link>http://blogs.law.harvard.edu/lianaleahy/2009/09/30/dear-minority-fringe/</link>
		<comments>http://blogs.law.harvard.edu/lianaleahy/2009/09/30/dear-minority-fringe/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 19:54:44 +0000</pubDate>
		<dc:creator>lianaleahy</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Professional]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/lianaleahy/?p=256</guid>
		<description><![CDATA[So, you&#8217;re annoyed that you&#8217;ve been asked to go to the effort of finding that rare woman who&#8217;ll spend a whole day in a tech class with you.  But since the event is FREE, why not consider this effort to be the price of admission?
The majority of the response to the Ruby on Rails Workshop [...]]]></description>
			<content:encoded><![CDATA[<p>So, you&#8217;re annoyed that you&#8217;ve been asked to go to the effort of finding that rare woman who&#8217;ll spend a whole day in a tech class with you.  But since the event is FREE, why not consider this effort to be the price of admission?</p>
<p>The majority of the response to the Ruby on Rails Workshop for Women has been encouraging and supportive.  Even<a href="http://www.loudthinking.com/about.html">DHH</a> himself tweeted about it:</p>
<blockquote><p><em>Rails workshop for women at Harvard University on October 16-17:</em><a rel="nofollow" href="http://bit.ly/2pglhW" target="_blank"><em>http://bit.ly/2pglhW</em></a><em> &#8212; very cool!</em></p></blockquote>
<p>Folks are really excited about it.  In fact, response is so great that I am seeking a larger venue for the THIRD time.</p>
<p>One of the reasons I love Ruby on Rails is because of its community. One of its treasured tennants is MINSWAN (<a href="http://en.wikipedia.org/wiki/Yukihiro_Matsumoto">Matz</a> is nice, so we are nice).  This is what working in <a href="http://en.wikipedia.org/wiki/Open_source">Open Source</a> is all about.</p>
<p><span style="background-color: #ffffff">I&#8217;m proud to say that many of the local ror rockstars will be at the workshop to TA.  And many of them are interested in pairing up with newbies of all genders at the monthly open source events we plan to host.  Why?  Because they believe that reaching out to folks who are underrepresented in the community produces better code.  And who doesn&#8217;t love better code?</span></p>
<p><span style="background-color: #ffffff">You gotta be nice to be a real ror rockstar.  And there are a lot of nice people of all genders involved in this event.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/lianaleahy/2009/09/30/dear-minority-fringe/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>SRSLY Redux</title>
		<link>http://blogs.law.harvard.edu/lianaleahy/2009/09/30/srsly-redux/</link>
		<comments>http://blogs.law.harvard.edu/lianaleahy/2009/09/30/srsly-redux/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 17:42:27 +0000</pubDate>
		<dc:creator>lianaleahy</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/lianaleahy/?p=231</guid>
		<description><![CDATA[Today&#8217;s Horoscope: 
Mercury remains in the spotlight today, prompting emotionally charged interactions with your friends at work. &#8230;No kidding.
Thanks so much for organizing the workshop. I hope to attend. I love the idea, think these workshops are necessary, and would love to help out in the future if you need. 
Personally, however, I do feel [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Today&#8217;s Horoscope: </strong><br />
Mercury remains in the spotlight today, prompting emotionally charged interactions with your friends at work. <strong>&#8230;No kidding.</strong></p>
<blockquote><p>Thanks so much for organizing the workshop. I hope to attend. I love the idea, think these workshops are necessary, and would love to help out in the future if you need. </p>
<p>Personally, however, I do feel that the following, &#8220;Men are warmly welcomed when they find a woman who wants to learn Ruby on Rails who will register and bring a guest.&#8221; is exclusionist. </p>
<p>I have been in scientific software development for many years. I am also a wife and a mother of two. I agree full-heartedly that women in technology and certain areas of science face many struggles, discrimination, and blatant sexism. We might bridge the gap better though with more welcoming attempts that seek to include, but educate men in our struggles. We can&#8217;t do this though if they cannot join our events &#8211; outright. Perhaps in the future, you could just sell the event as simply women-in-technology focused, but leave the door open for men as well?</p></blockquote>
<blockquote><p>I understand the need, but the registration restriction is illegal:</p>
<p>&#8220;No person in the United States shall, on the basis of sex, be excluded from participation in, be denied the benefits of, or be subjected to discrimination under any education program or activity receiving Federal financial assistance&#8230;&#8221;</p>
<p>Title IX of the Education Amendments of 1972 </p></blockquote>
<p>Folks, I do not consider this workshop to be exclusionary especially considering that the current ratio of women to men is 2:1.</p>
<p><strong>The point of the event is to encourage women developers.  So the caveat that a man is asked to encourage a woman to sign him up as her guest feels <em>entirely</em> appropriate.</strong></p>
<p>Besides, there are many many other tech events that are primarily male driven.  And sadly many of these events do tend to be exclusionary to women through subtle competitive atmospheres and in some cases not so subtle sexist comments.  Just check out the <a href="http://geekfeminism.wikia.com/wiki/Sexualized_presentations">geekfeminism wiki</a> regarding recent tech events for more notable examples.</p>
<p>Starting in November, we will be having a regular Wednesday evening event pairing newbies with ruby on rails rockstars to work on open source projects in a welcoming, collaborative, mixed gendered environment. (Meaning that men are very welcome to attend on their own.)  The idea is to encourage learning rather than the competitiveness found in other tech events.  And &#8220;educate men in our struggles&#8221; by working alongside them.</p>
<p>No.  I will not rescind the “come as a guest” request for this ONE event.  It is my understanding that making a &#8220;request&#8221; is entirely legal.</p>
<p><em>p.s. Boston ruby group is a lovely group of people and I do not include them as part of the exclusionary tech events referred to above.</em></p>
<blockquote><p>
How can it not be exclusionary when you advertise that a man is only allowed to attend if accompanied by a woman, but a lone women is fine?</p>
<p>It most certainly IS illegal, even just to advertise it in that way.<br />
Consult a lawyer unless you wish to risk Harvard losing federal funding:</p>
<p>Title IX is administered by the Office for Civil Rights in the U.S. Department of Education (OCR).[3] It applies to an entire school or institution if any part of that school receives federal funds; hence, athletic programs are subject to Title IX, even though there is very little direct federal funding of school sports.[4] The regulations implementing Title IX require all institutions receiving federal funds to conduct self-evaluations of whether they offer equal opportunities based on sex[5] and to provide written assurances to the Dept. of Education that the institution is in compliance for the period that the federally funded equipment or facilities remain in use.</p>
<p>The intention is admirable, but the implementation is legally flawed.<br />
Just because it &#8220;feels entirely appropriate&#8221; doesn&#8217;t make it legal!
</p></blockquote>
<p>I appreciate you pointing the legalities of the event.  I&#8217;ve contacted our clinical office to confirm.</p>
<p>But I won&#8217;t allow you to ignore the more important part of my message regarding the exclusionary tactics of other &#8220;open&#8221; tech events.  </p>
<p>Rather than welcoming men as guests, perhaps we should simply make sexist comments and harass them into not attending.  Apparently, that must be completely legal since it happens regularly.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/lianaleahy/2009/09/30/srsly-redux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>SRSLY??</title>
		<link>http://blogs.law.harvard.edu/lianaleahy/2009/09/29/srsly/</link>
		<comments>http://blogs.law.harvard.edu/lianaleahy/2009/09/29/srsly/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 03:35:33 +0000</pubDate>
		<dc:creator>lianaleahy</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/lianaleahy/?p=210</guid>
		<description><![CDATA[For the past month and a half, I&#8217;ve been working on putting together a free ruby on rails workshop for women.  This event has generated a lot of excitement and already we&#8217;re nearing room capacity.
This evening, the announcement was sent out via the internal Harvard ABCD group list which emails all the techies working [...]]]></description>
			<content:encoded><![CDATA[<p>For the past month and a half, I&#8217;ve been working on putting together a free <a href="http://blogs.law.harvard.edu/genderandtech/ruby-on-rails-workshop-for-women/">ruby on rails workshop for women</a>.  This event has generated a lot of excitement and already we&#8217;re nearing room capacity.</p>
<p>This evening, the announcement was sent out via the internal Harvard ABCD group list which emails all the techies working at Harvard.  And I have to admit to being flabbergasted at the following responses sent to the entire ABCD community:</p>
<blockquote><p>This is blatant sexual discrimination. Are women considered too fragile to learn technical subjects in the same group as men?</p></blockquote>
<blockquote><p>For whatever it&#8217;s worth I think XXXX is right.<br />
Can you imagine the reaction if there was a technical conference for men only &#8211; and a women could only attend as the guest of a man?<br />
There are far too many grants/scholarships/opportunities that are explicitly only open to women or minorities (I&#8217;m a minority and it still bothers me). A hypothesis of implicit discrimination against group A does not justify explicit discrimination against group B.</p></blockquote>
<blockquote><p>This women&#8217;s Ruby workshop exists for the same reason this men&#8217;s knitting retreat exists &nbsp;<a href="http://www.menwhoknit.com/community/?q=node/6458" title="http://www.menwhoknit.com/community/?q=node/6458" target="_blank">http://www.menwhoknit.com/community/?q=n&#8230;</a>).  I have never heard a woman knitter complain about a men&#8217;s knitting class.</p></blockquote>
<blockquote><p>Well, to be fair, I think a male-only knitting group is just as bad an idea as the women-only RoR workshop <img src='http://blogs.law.harvard.edu/lianaleahy/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p></blockquote>
<p>This was my response:</p>
<blockquote><p>If anyone has concerns about this workshop, please email me directly as I am the coordinator.<br />
But I feel that I must add that for those of you who don&#8217;t understand the need for this sort of workshop, you might want to read this <a href="http://infotrope.net/blog/2009/07/25/standing-out-in-the-crowd-my-oscon-keynote/">keynote talk by Kirrily Robert</a>.</p></blockquote>
<p>A lot of people, still just don&#8217;t get it.  Folks don&#8217;t want to believe that there are still sexist jokes, <a href="http://geekfeminism.wikia.com/wiki/Sexualized_presentations">pornographic presentations at conferences</a>, harrassment, and all kinds of subtle discrimination going on in the tech community every day.  And the only way to combat it, is to encourage mixed gendered environments so that both sexes can learn from one another.</p>
<p>This workshop happens to be very male friendly.  At present, the women to men ratio is 2:1.  If you can&#8217;t find a mother, sister, daughter, friend or stranger to sign up with you for this class, then you have more problems than a one day programming course is gonna fix.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/lianaleahy/2009/09/29/srsly/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
	</channel>
</rss>
