<?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>Sarah Mei &#187; workshops</title>
	<atom:link href="http://www.sarahmei.com/blog/tag/workshops/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sarahmei.com/blog</link>
	<description></description>
	<lastBuildDate>Sun, 22 Jan 2012 20:16:25 +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>LARubyConf Slides Posted</title>
		<link>http://www.sarahmei.com/blog/2010/02/20/larubyconf-slides-posted/</link>
		<comments>http://www.sarahmei.com/blog/2010/02/20/larubyconf-slides-posted/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 21:39:55 +0000</pubDate>
		<dc:creator>sarahmei</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[larubyconf]]></category>
		<category><![CDATA[teaching]]></category>
		<category><![CDATA[workshops]]></category>

		<guid isPermaLink="false">http://www.sarahmei.com/blog/?p=309</guid>
		<description><![CDATA[Just finished my LA Ruby Conf talk on teaching Ruby to kids. Here are a few further resources: Shoes &#8211; a simple way to create desktop applications in Ruby. Cross-platform, pure awesome. (code on github) Hackety Hack &#8211; built on Shoes, this is a toolkit specifically for learning how to program. Small Ruby &#8211; learn [...]]]></description>
			<content:encoded><![CDATA[<p>Just finished my LA Ruby Conf talk on teaching Ruby to kids. Here are a few further resources:<br />
<span id="more-309"></span></p>
<ul>
<li><a href="http://shoes.heroku.com/">Shoes</a> &#8211; a simple way to create desktop applications in Ruby. Cross-platform, pure awesome. (<a href="http://github.com/shoes/shoes">code on github</a>)</li>
<li><a href="http://hacketyhack.heroku.com/">Hackety Hack</a> &#8211; built on Shoes, this is a toolkit specifically for learning how to program.</li>
<li>Small Ruby &#8211; learn to program for the smaller set &#8211; think turtle drawing. Coming soon.</li>
<li><a href="http://www.sarahmei.com/blog/wp-content/uploads/2010/03/LARubyConf.pdf">PDF version of the slides</a> (exactly the same as slides below)</li>
</ul>
<div style="width:425px;text-align:left;padding-left:15px;" id="__ss_3233891"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/sarahmei/teaching-ruby-to-kids" title="Teaching Ruby to Kids">Teaching Ruby to Kids</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=larubyconf-100220140747-phpapp01&#038;stripped_title=teaching-ruby-to-kids" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=larubyconf-100220140747-phpapp01&#038;stripped_title=teaching-ruby-to-kids" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more presentations from <a style="text-decoration:underline;" href="http://www.slideshare.net/sarahmei">Sarah Mei</a>.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.sarahmei.com/blog/2010/02/20/larubyconf-slides-posted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The First 2010 Ruby Outreach Workshop</title>
		<link>http://www.sarahmei.com/blog/2010/02/19/the-first-2010-ruby-outreach-workshop/</link>
		<comments>http://www.sarahmei.com/blog/2010/02/19/the-first-2010-ruby-outreach-workshop/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 17:37:54 +0000</pubDate>
		<dc:creator>sarahmei</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[childcare]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[sfruby]]></category>
		<category><![CDATA[workshops]]></category>

		<guid isPermaLink="false">http://www.sarahmei.com/blog/?p=301</guid>
		<description><![CDATA[&#8230;is now open for registration. Last year Sarah Allen and I did three workshops for women and this year we&#8217;re going for four. So, if you&#8217;d like to learn Rails and can come BOTH Friday, February 26th in the evening AND Saturday, February 27th during the day, go sign up! There are only a few [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_171" class="wp-caption alignright" style="width: 210px"><img src="http://www.sarahmei.com/blog/wp-content/uploads/2009/07/ruby.jpg" alt="Copyright 2006 by Yukihiro Matsumoto" title="ruby" width="200" class="size-full wp-image-171" /><p class="wp-caption-text">LEARN ME</p></div>
<p>&#8230;is now <a href="http://www.meetup.com/sfruby/calendar/12605445/">open for registration</a>.  Last year <a href="http://ultrasaurus.com">Sarah Allen</a> and I did three workshops for women and this year we&#8217;re going for four.  So, if you&#8217;d like to learn Rails and can come BOTH Friday, February 26th in the evening AND Saturday, February 27th during the day, <a href="http://www.meetup.com/sfruby/calendar/12605445/">go sign up</a>! There are only a few spots left.</p>
<p>And yep, still free.</p>
<p>We&#8217;re also seeking Rails developers (of any gender) to assist as TAs. <a href="http://www.meetup.com/sfruby/calendar/12605400/">Tell us about that here</a>.  Past TAs and teachers have found it quite rewarding. Plus you get a drink ticket for the afterparty. <img src='http://www.sarahmei.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>And finally, some logistics: it&#8217;ll be in an office space in downtown San Francisco, near transit. Next week we&#8217;ll send out the exact address. We&#8217;ll have informal childcare and space for pumping or nursing &#8211; please tell us if you think you&#8217;ll be using those services when you register.</p>
<p>See you there! </p>
]]></content:encoded>
			<wfw:commentRss>http://www.sarahmei.com/blog/2010/02/19/the-first-2010-ruby-outreach-workshop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Teaching Ruby to High School Girls</title>
		<link>http://www.sarahmei.com/blog/2009/08/15/teaching-ruby-to-high-school-girls/</link>
		<comments>http://www.sarahmei.com/blog/2009/08/15/teaching-ruby-to-high-school-girls/#comments</comments>
		<pubDate>Sun, 16 Aug 2009 03:28:59 +0000</pubDate>
		<dc:creator>sarahmei</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[shoes]]></category>
		<category><![CDATA[workshops]]></category>

		<guid isPermaLink="false">http://www.sarahmei.com/blog/?p=195</guid>
		<description><![CDATA[Please post your comments here on my Teaching Kids article. I wrote an article for the RailsBridge Teaching Kids site about my experience teaching Ruby to high school girls a few weeks ago. Go read it over there! That site doesn&#8217;t have comments, though, so I&#8217;m linking back here because I&#8217;d like to hear your [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Please post your comments here on my Teaching Kids article.</strong></p>
<p>I wrote an article for the <a href="http://teachingkids.railsbridge.org/2009/08/15/teaching-ruby-to-high-school-girls.html">RailsBridge Teaching Kids site</a> about my experience teaching Ruby to high school girls a few weeks ago. Go read it over there! </p>
<p>That site doesn&#8217;t have comments, though, so I&#8217;m linking back here because I&#8217;d like to hear your comments and suggestions for improving the program.</p>
<p>Thanks!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sarahmei.com/blog/2009/08/15/teaching-ruby-to-high-school-girls/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>July/August Ruby workshop registration open!</title>
		<link>http://www.sarahmei.com/blog/2009/07/06/julyaugust-ruby-workshop-registration-open/</link>
		<comments>http://www.sarahmei.com/blog/2009/07/06/julyaugust-ruby-workshop-registration-open/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 04:02:11 +0000</pubDate>
		<dc:creator>sarahmei</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[pivotal]]></category>
		<category><![CDATA[sfruby]]></category>
		<category><![CDATA[workshops]]></category>

		<guid isPermaLink="false">http://www.sarahmei.com/blog/?p=166</guid>
		<description><![CDATA[Registration is now open for the free Ruby workshop for women that Sarah Allen and I are running at the end of July. Please RSVP soon &#8211; the last workshop filled up less than 3 days after registration opened. This is a two-day event open to total programming novices, system administrators, and developers in other [...]]]></description>
			<content:encoded><![CDATA[<p>Registration is now open for the free Ruby workshop for women that Sarah Allen and I are running at the end of July. Please RSVP soon &#8211; the last workshop filled up less than 3 days after registration opened.</p>
<div id="attachment_171" class="wp-caption alignright" style="width: 210px"><img src="http://www.sarahmei.com/blog/wp-content/uploads/2009/07/ruby.jpg" alt="Copyright 2006 by Yukihiro Matsumoto" title="ruby" width="200" class="size-full wp-image-171" /><p class="wp-caption-text">LEARN ME</p></div>
<p>This is a two-day event open to total programming novices, system administrators, and developers in other languages. In other words &#8211; everyone! All the details are on the meetup pages.</p>
<p>RSVP yes for <strong>both </strong>Friday and Saturday to reserve your spot.<br />
<strong>Day 1, Friday 7/31:</strong> <a href="http://www.meetup.com/sfruby/calendar/10804417">http://www.meetup.com/sfruby/calendar/10804417</a><br />
<strong>Day 2, Saturday 8/1:</strong> <a href="http://www.meetup.com/sfruby/calendar/10804438">http://www.meetup.com/sfruby/calendar/10804438</a></p>
<p>As before, men are welcome to register as the +1 of a woman doing the workshop. So guys, I know there&#8217;s a woman somewhere in your life who you&#8217;ve always thought would make a great programmer. Recruit her and you can come along too. </p>
<p>The workshop includes dinner on Friday, and breakfast and lunch on Saturday. Child care and private space for nursing and/or pumping are available. Partners are welcome to stay with the kids but that&#8217;s not required.</p>
<p>We are looking for experienced Rails developers of all genders to volunteer at the event. This time we have a separate volunteer coordinator so that things run more smoothly. Volunteering will be fun and educational, plus it&#8217;ll be a great networking opportunity. <img src='http://www.sarahmei.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Stay tuned for info on how to get on the volunteer list.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sarahmei.com/blog/2009/07/06/julyaugust-ruby-workshop-registration-open/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Why childcare matters at tech events</title>
		<link>http://www.sarahmei.com/blog/2009/06/30/why-childcare-matters-at-tech-events/</link>
		<comments>http://www.sarahmei.com/blog/2009/06/30/why-childcare-matters-at-tech-events/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 17:47:37 +0000</pubDate>
		<dc:creator>sarahmei</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[childcare]]></category>
		<category><![CDATA[workshops]]></category>

		<guid isPermaLink="false">http://www.sarahmei.com/blog/?p=153</guid>
		<description><![CDATA[A few weeks ago, I co-hosted a Ruby on Rails workshop for women in San Francisco. High on my list of requirements, even before free lunch, was available childcare. In the spirit of doing the simplest thing that could possibly work, I implemented it as my husband in a mildly baby-proofed conference room with a [...]]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago, I co-hosted a <a href="http://www.sarahmei.com/blog/2009/06/14/the-first-rails-workshop/">Ruby on Rails workshop for women in San Francisco</a>. High on my list of requirements, even before free lunch, was available childcare.</p>
<p>In the spirit of doing the simplest thing that could possibly work, I implemented it as <a href="http://www.thriff.org">my husband</a> in a mildly baby-proofed conference room with a Wii, Mario Kart, a Shrek DVD, and an assortment of (analog) toys.</p>
<p>Out of 60+ attendees, three brought kids. (When they registered, we asked people if they were bringing kids, and we got several responses like &#8220;GOD, no.&#8221; I laughed.) So was it a waste of a conference room (and spousal brownie points) that might have been put to better use?</p>
<p>Well, it might appear so to some, but a dozen or so people &#8211; that&#8217;s about 20% of the attendees &#8211; told me they registered specifically because it was available. Ultimately, these parents found someone to watch their kids, or they arranged a playdate, but if those plans had fallen through, they had a backup plan.</p>
<p>&#8220;Childcare available&#8221; meant they could RSVP yes and mean it. That&#8217;s not a waste.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sarahmei.com/blog/2009/06/30/why-childcare-matters-at-tech-events/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>August Workshop Dates Confirmed!</title>
		<link>http://www.sarahmei.com/blog/2009/06/28/august-workshop-dates-confirmed/</link>
		<comments>http://www.sarahmei.com/blog/2009/06/28/august-workshop-dates-confirmed/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 23:06:29 +0000</pubDate>
		<dc:creator>sarahmei</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[pivotal]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[sfruby]]></category>
		<category><![CDATA[workshops]]></category>

		<guid isPermaLink="false">http://www.sarahmei.com/blog/?p=145</guid>
		<description><![CDATA[Pivotal Labs will be hosting our next workshop on July 31st and August 1st &#8211; that&#8217;s Friday evening and Saturday all day. The format will be similar to our first workshop: Friday night is a mixer and installfest. Attendees bring their laptops, and, with the help of our volunteers, install anything they&#8217;re missing to run [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://pivotallabs.com/">Pivotal Labs</a> will be hosting our next workshop on <strong>July 31st and August 1st</strong> &#8211; that&#8217;s Friday evening and Saturday all day.</p>
<p>The format will be similar to our first workshop: Friday night is a mixer and installfest. Attendees bring their laptops, and, with the help of our volunteers, install anything they&#8217;re missing to run Rails. Saturday is the workshop itself, starting with a short general presentation at 10am. Then we&#8217;ll break into smaller groups for the workshop itself. Lunch is included, and child care and nursing/pumping space is available.</p>
<p>If you came to the first workshop, you&#8217;re welcome to return for this one! Newcomers are likewise encouraged to register. When you register, you&#8217;ll be asked to answer some questions that will help us figure out how to allocate the class space we have.</p>
<p>The June event generated some great word-of-mouth, so I&#8217;m expecting this one to fill up quickly once registration is open. To find out when you can register, watch this space, check out the new site <a href="http://sfrubyworkshops.com">sfrubyworkshops.com</a>, and join the low-traffic announcement-only mailing list (hosted by Google):</p>
<table style="padding: 5px; background-color: #ffffff;" border="0" cellspacing="0">
<form action="http://groups.google.com/group/sf-ruby-workshop-announce/boxsubscribe">
<tbody>
<tr>
<td style="padding-left: 5px;">Email address:</td>
<td style="padding-left: 5px;">
<input name="email" type="text" />
<input name="sub" type="submit" value="Subscribe" /></td>
</tr>
</tbody>
</form>
</table>
<p>Lastly, we&#8217;re looking for sponsors to help us make this event fantastic. If your company or organization would like to assist, please email rubyworkshop at gmail dot com, which goes to both me and Sarah Allen.</p>
<p>UPDATE: The fine folks at <a href="http://www.engineyard.com/">Engine Yard</a> are buying lunch. Thanks EY!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sarahmei.com/blog/2009/06/28/august-workshop-dates-confirmed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Post-Workshop Hack Session July 1st</title>
		<link>http://www.sarahmei.com/blog/2009/06/20/post-workshop-hack-session-july-1st/</link>
		<comments>http://www.sarahmei.com/blog/2009/06/20/post-workshop-hack-session-july-1st/#comments</comments>
		<pubDate>Sat, 20 Jun 2009 17:56:45 +0000</pubDate>
		<dc:creator>sarahmei</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[citizenspace]]></category>
		<category><![CDATA[sfruby]]></category>
		<category><![CDATA[workshops]]></category>

		<guid isPermaLink="false">http://www.sarahmei.com/blog/?p=132</guid>
		<description><![CDATA[For those of you who attended the June workshop, or wish you had, come join me on July 1st for a hack session at Citizen Space. If you haven&#8217;t been to a hack session before, make this your first! A hack session is unstructured time to work on a project or learn something new from [...]]]></description>
			<content:encoded><![CDATA[<p>For those of you who attended the June workshop, or wish you had, come join me on July 1st for a hack session at Citizen Space.</p>
<p><iframe align="right" width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=425+2nd+St,+San+Francisco&amp;sll=37.78179,-122.391064&amp;sspn=0.004494,0.013819&amp;ie=UTF8&amp;ll=37.794186,-122.390528&amp;spn=0.023739,0.036478&amp;z=14&amp;iwloc=A&amp;output=embed"></iframe></p>
<p>If you haven&#8217;t been to a hack session before, make this your first! A hack session is unstructured time to work on a project or learn something new from the other attendees. Bring your laptop and a project to work on, continue the suggest-o-rama app we started at the workshop, or find a project once you get here. Usually there are at least a few startup people hacking on something cool. Maybe you&#8217;re one of them.</p>
<p>We&#8217;ll probably have some impromptu presentations on whatever people seem interested in. There&#8217;s child care, and older kids with projects of their own are welcome as participants. My 4-year-old is bringing her XO and has volunteered to show anyone who asks how to play &#8220;Implode.&#8221;</p>
<p>Register over at the <a href="http://www.meetup.com/sfruby/calendar/10685547/">SF Ruby Meetup site</a>. See you there!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sarahmei.com/blog/2009/06/20/post-workshop-hack-session-july-1st/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The First Rails Workshop</title>
		<link>http://www.sarahmei.com/blog/2009/06/14/the-first-rails-workshop/</link>
		<comments>http://www.sarahmei.com/blog/2009/06/14/the-first-rails-workshop/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 02:35:23 +0000</pubDate>
		<dc:creator>sarahmei</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[devchix]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[railsbridge]]></category>
		<category><![CDATA[sfruby]]></category>
		<category><![CDATA[workshops]]></category>

		<guid isPermaLink="false">http://www.sarahmei.com/blog/?p=109</guid>
		<description><![CDATA[Two months ago, Sarah Allen and I started planning a Ruby on Rails outreach workshop for women. Our goal: each participant leaves with a fully-functional development environment, a working application, and some space online to show off their work. As we got into it we realized it was really, really ambitious. But I am profoundly [...]]]></description>
			<content:encoded><![CDATA[<p>Two months ago, <a title="Sarah Allen" href="http://www.ultrasaurus.com">Sarah Allen</a> and I started planning a <a href="http://www.meetup.com/sfruby/calendar/10377288/">Ruby on Rails outreach workshop</a> for women. Our goal: each participant leaves with a fully-functional development environment, a working application, and some space online to show off their work.</p>
<p>As we got into it we realized it was really, really ambitious. But I am profoundly thrilled to report that the SF Ruby community came together this weekend and <strong>made it happen</strong>.</p>
<p style="text-align: center;">
<div id="attachment_110" class="wp-caption aligncenter" style="width: 650px"><img class="size-full wp-image-110" title="workshop-bosco-so" src="http://www.sarahmei.com/blog/wp-content/uploads/2009/06/workshop-bosco.jpg" alt="O HAI NEW RAILS PPL" width="640" height="480" /><p class="wp-caption-text">O HAI NEW RAILS PPL</p></div>
<p>It was really, really incredible. More than 60 people spent their Friday evening installing Rails. Then <em>they came back</em> on Saturday and learned how to use it. A lot of them had never programmed before, but now they have <a href="http://github.com">Github</a> accounts and a URL on <a href="http://heroku.com">Heroku</a>. Watch out world!</p>
<p>I&#8217;ll be following up in this space with more lessons learned (and some further events), but for now, I want to share some feedback we got last night from one of the participants:</p>
<blockquote><p>In addition to learning way more than I expected, I enjoyed the tone of the entire weekend. It was the only attitude-free, newbie-safe and mama-friendly tech event I have ever attended.</p></blockquote>
<p>There were lots of things I could have organized better &#8211; projectors, class allocations, installation instructions &#8211; but I&#8217;m really happy that these folks got to experience a bit of the Ruby <a href="http://on-ruby.blogspot.com/2008/03/gracious-dave-and-minswan.html">MINASWAN</a>. In fact, I think something just got in my eye. *sniff*</p>
<p>So a million thanks to our sponsors, our volunteers, and the entire SF Ruby community for making this happen. Seriously. You ROCK.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sarahmei.com/blog/2009/06/14/the-first-rails-workshop/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Heroku on Windows</title>
		<link>http://www.sarahmei.com/blog/2009/05/24/using-heroku-on-windows/</link>
		<comments>http://www.sarahmei.com/blog/2009/05/24/using-heroku-on-windows/#comments</comments>
		<pubDate>Mon, 25 May 2009 06:37:01 +0000</pubDate>
		<dc:creator>sarahmei</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[heroku]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[workshops]]></category>

		<guid isPermaLink="false">http://www.sarahmei.com/blog/?p=92</guid>
		<description><![CDATA[Next month, 80 people with laptops are going to show up and expect me to teach them something about Rails. I want them to see the app they&#8217;re writing on the web, but I only have six hours in the workshop (including lunch!) and deployment could easily take that much time by itself. Apache and [...]]]></description>
			<content:encoded><![CDATA[<p>Next month, 80 people with laptops are going to show up and expect me to <a href="http://www.meetup.com/sfruby/calendar/10377288/">teach them something about Rails</a>. I want them to see the app they&#8217;re writing on the web, but I only have six hours in the workshop (including lunch!) and deployment could easily take that much time by itself. Apache and nginx and Passenger and Capistrano and memcached and&#8230;yeah. These are beginners.</p>
<p>So I&#8217;m super stoked about <a href="http://heroku.com">Heroku</a>, who&#8217;s come to put the easy into Rails deployment. Register, install the gem, and deploying &#8211; with a real URL and everything &#8211; is as easy as <code>git push heroku</code>.</p>
<p>Sounds great! But it turns out that using the Heroku client on Windows <a href="http://groups.google.com/group/heroku/browse_thread/thread/59053cd0f593a775/c8d4e1ebffafb5c6?lnk=gst#c8d4e1ebffafb5c6">is</a> <a href="http://groups.google.com/group/heroku/browse_thread/thread/7e96d84ba0193484">slightly</a> <a href="http://groups.google.com/group/heroku/browse_thread/thread/3480e0f2a55be760/944c811616162be6?lnk=gst#944c811616162be6">problematic</a>. With the standard Rails crowd, I wouldn&#8217;t worry, but it looks like about half the attendees will bring some flavor of Windows. So my choices were either make it work on Windows, or scrap the idea of, you know, putting apps on the internet.<br />
<span id="more-92"></span><br />
So I fixed it. It turned out to be relatively straightforward. The shell method, which takes a command and returns its output, was doing this:</p>
<p><code>`cd '#{Dir.pwd}' &#038;&#038; #{cmd}`</code></p>
<p>Windows thinks <code>'</code> is a perfectly good character for directory names, so all calls to shell in Windows generated this error:</p>
<p><code>The filename, directory name, or volume label syntax is incorrect.</code></p>
<p>How helpful. In any case, it won&#8217;t be doing that anymore. My changes are <a href="http://github.com/sarahmei/heroku/tree/master">up on github</a>, and I&#8217;ve sent the official heroku client a pull request.</p>
<p>The client still has two spec failures on Windows (running within MsysGit&#8217;s Git Bash) that are unrelated to this change, and actually represent fairly significant cross-platform challenges.</p>
<p><code><br />
'Heroku::Command::Auth sets ~/.heroku/credentials to be readable only by the user' FAILED<br />
expected: 16832,<br />
     got: 16877 (using ==)<br />
./spec/commands/auth_spec.rb:49:<br />
</code></p>
<p>The client fails to chmod your credentials file to user-only read, because File.chmod doesn&#8217;t do anything. As I&#8217;m sure you&#8217;re aware, there are <a href="http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/AccessControls.html">significant differences</a> between POSIX-style file permissions and Windows ACLs (access control lists). </p>
<p>So your credentials file, which has your Heroku username and password in plaintext, may be readable by other users. This generally isn&#8217;t as much of an issue on Windows as it is on *nix but it&#8217;s something to be aware of. You may want to adjust the ACLs by hand if you&#8217;re on a multi-user system.</p>
<p><code><br />
NotImplementedError in 'Heroku::Command::App Git Integration before(:all)'<br />
fork() function is unimplemented on this machine<br />
./spec/commands/app_spec.rb:103:<br />
</code></p>
<p>Yep, as the error message suggests, <code>Kernel::fork</code> is not implemented in Windows Ruby. The Heroku client does not use fork &#8211; it&#8217;s in one of the gems, Session, which is used by Rush, which the Heroku test framework uses to create a sandbox git installation.</p>
<p>I haven&#8217;t looked too extensively at this one, but it might be possible to rewrite it to work on Windows. Rush does have some code specific to Windows, and there are alternate ways to sandbox the git install as well.</p>
<p>So given that neither of these failures affects the functioning of the client, I&#8217;m confident it&#8217;ll be usable on everyone&#8217;s laptop. I&#8217;m also super excited that one of the Heroku engineers, Pedro, has volunteered to help out with installation at the workshop! </p>
<p>We&#8217;re still looking for other volunteers &#8211; if you&#8217;re interested please email ruby workshop at gmail dot com.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sarahmei.com/blog/2009/05/24/using-heroku-on-windows/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

