<?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>Blog &#124; The Working Group</title>
	<atom:link href="http://blog.twg.ca/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.twg.ca</link>
	<description></description>
	<lastBuildDate>Fri, 23 Jul 2010 01:09:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Viognier&#8217;s big comeback &#8211; July 23rd</title>
		<link>http://blog.twg.ca/2010/07/viogniers-big-comeback-july-23rd/</link>
		<comments>http://blog.twg.ca/2010/07/viogniers-big-comeback-july-23rd/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 16:07:00 +0000</pubDate>
		<dc:creator>Andrés</dc:creator>
				<category><![CDATA[Friday]]></category>
		<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://blog.twg.ca/?p=653</guid>
		<description><![CDATA[This Friday July 23rd TWG will host our third installment of &#8216;good people drinking wine and talking to each other&#8217;. This event has quickly become a beloved tradition around the office. It&#8217;s our chance to gather a group of good people &#8211; friends, colleagues, and super interesting bon-vivants &#8211; to drink and learn about a great [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://twg.ca/wine"><img class="size-full wp-image-659 alignnone" title="good people drinking wine and  talking to each other" src="http://blog.twg.ca/wp-content/uploads/2010/07/wine.jpg" alt="good people drinking wine and  talking to each other" width="524" height="274" /></a></p>
<p>This Friday July 23rd TWG will host our third installment of &#8216;good people drinking wine and talking to each other&#8217;. This event has quickly become a beloved tradition around the office. It&#8217;s our chance to gather a group of good people &#8211; friends, colleagues, and super interesting bon-vivants &#8211; to drink and learn about a great wine, eat some delicious things, and enjoy three short, yet spell-binding, presentations.</p>
<p><strong>THIS FRIDAY&#8217;S PRESENTERS:</strong></p>
<p><strong>Dominic Bortolussi</strong>: Will recount the exhilarating tale of a white grape that was driven to near extinction from abuse and neglect. Viognier, a perfumed, and delicious white wine from the south of France is my summertime guzzler.. maybe you&#8217;ll like it too. Why not find out.</p>
<p><strong>Shamez Amlani (<a title="La Palette" href="http://www.lapalette.ca/" target="_blank">La Palette</a></strong><strong>, Kensington Sundays)</strong>: Topic: Social engagement. Shamez stirs a lot of pots these days, between running La Palette to helping organize Kensington Pedestrian Sundays. Shamez will regale us with real-life stories from the trenches and remind us why it&#8217;s important to stay connected to community.</p>
<p><strong>Mike Schaus (<a href="http://stichmedia.ca">stichmedia.ca</a>)</strong>: Mike will present a synopsis and razor sharp analysis of the  recent Old Spice commercial and online campaign. He&#8217;s pretty sure that online branding just jumped the shark with this one, and he wants to  argue loudly with anyone who disagrees.</p>
<p><strong>Pete Forde (<a href="http://dataliteracy.org" target="_blank">dataliteracy.org</a></strong><strong>)</strong>: Pete believes that Open Data isn&#8217;t just for geeks and economists anymore, and that Data Literacy for all would change the world. He&#8217;s writing a future Oprah&#8217;s Book Club title about how to get rich, expose corruption and win the Order of Canada using just Excel, some rope and a stick of gum.</p>
<p><strong>Rebecca Baran (<a href="http://rebeccabaran.com" target="_blank">rebeccabaran.com</a></strong><strong>)</strong>: Who takes great photos of great people, in natural light, and who has recently launched her own website, will (very likely) be here at the studio, taking photo portraits of the fully clothed or soft nudes.</p>
<p>&#8212;</p>
<p>Interested in attending future events? Sign-up at: <a href="http://twg.ca/wine">twg.ca/wine</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.twg.ca/2010/07/viogniers-big-comeback-july-23rd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JSONimal &#8211; Elegant DOM construction with jQuery</title>
		<link>http://blog.twg.ca/2010/07/jsonimal-elegant-dom-construction-with-jquery/</link>
		<comments>http://blog.twg.ca/2010/07/jsonimal-elegant-dom-construction-with-jquery/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 16:04:34 +0000</pubDate>
		<dc:creator>jamie</dc:creator>
				<category><![CDATA[Friday]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://blog.twg.ca/?p=648</guid>
		<description><![CDATA[As part of my co-op term here at TWG, I&#8217;ve had the opportunity to try out new technology, approach interesting technical problems, and develop useful bits of code outside of client work. JSONimal was created on one of my &#8216;lab days&#8217; focused on innovation and experimentation. The purpose of JSONimal is to take the pain [...]]]></description>
			<content:encoded><![CDATA[<p>As part of my co-op term here at TWG, I&#8217;ve had the opportunity to try out new technology, approach interesting technical problems, and develop useful bits of code outside of client work.  JSONimal was created on one of my &#8216;lab days&#8217; focused on innovation and experimentation.</p>
<p>The purpose of JSONimal is to take the pain out of constructing HTML using Javascript.</p>
<p>What&#8217;s it do? This example should demonstrate my goal fairly well.</p>
<pre class='prettyprint'>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:500px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$(function() {<br />
&nbsp; &nbsp; $.mktag(&quot;#demo&quot;).jsonimal([<br />
&nbsp; &nbsp; &nbsp; &nbsp; [&quot;h1&quot;, {text: &quot;JSONimal!&quot;}],<br />
&nbsp; &nbsp; &nbsp; &nbsp; [&quot;table&quot;,{style: 'border: 1px solid black'},[<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [&quot;thead&quot;,[<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [&quot;tr&quot;,{style: 'text-transform: uppercase'},[<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [&quot;th&quot;, {text: &quot;one&quot;}],<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [&quot;th&quot;, {text: &quot;two&quot;}],<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [&quot;th&quot;, {text: &quot;three&quot;}]<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ]]<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ]],<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [&quot;tbody&quot;, [<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [&quot;tr&quot;,[<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [&quot;td&quot;, {html: &quot;&lt;u&gt;a&lt;/u&gt;&quot;}],<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [&quot;td&quot;, {text: &quot;b&quot;}],<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [&quot;td&quot;, {text: &quot;c&quot;}]<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ]],<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [&quot;tr&quot;,[<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [&quot;td&quot;,[<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [&quot;a&quot;, {href: &quot;http://www.google.ca&quot;, text: &quot;Google&quot;}]<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ]],<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [&quot;td&quot;, {text: &quot;b&quot;}],<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [&quot;td&quot;, {text: &quot;c&quot;}]<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ]],<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [&quot;tr&quot;,[<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [&quot;td&quot;, {text: &quot;a&quot;}],<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [&quot;td&quot;, {text: &quot;b&quot;}],<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [&quot;td&quot;, {text: &quot;c&quot;}]<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ]]<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ]]<br />
&nbsp; &nbsp; &nbsp; &nbsp; ]]<br />
&nbsp; &nbsp; ]).appendTo(&quot;body&quot;);<br />
});</div></td></tr></tbody></table></div>
</pre>
<p>Which will add this to the body:</p>
<h1>JSONimal!</h1>
<table style="border: 1px solid black;">
<thead>
<tr style="text-transform: uppercase;">
<th>one</th>
<th>two</th>
<th>three</th>
</tr>
</thead>
<tbody>
<tr>
<td><u>a</u></td>
<td>b</td>
<td>c</td>
</tr>
<tr>
<td><a href="http://www.google.ca" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.google.ca');">Google</a></td>
<td>b</td>
<td>c</td>
</tr>
<tr>
<td>a</td>
<td>b</td>
<td>c</td>
</tr>
</tbody>
</table>
<p>For more information and examples, check out the github page: <a href="http://github.com/phleet/JSONimal" onclick="javascript:pageTracker._trackPageview('/outbound/article/github.com');">JSONimal @ github</a>.</p>
<p>I also posted it as on the jQuery plugins page &#8211; but that just points to the github page anyway. <a href="http://plugins.jquery.com/project/jsonimal" onclick="javascript:pageTracker._trackPageview('/outbound/article/plugins.jquery.com');">JSONimal @ plugins.jquery.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.twg.ca/2010/07/jsonimal-elegant-dom-construction-with-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rails Web Developer Quiz</title>
		<link>http://blog.twg.ca/2010/07/rails-web-developer-quiz/</link>
		<comments>http://blog.twg.ca/2010/07/rails-web-developer-quiz/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 20:43:53 +0000</pubDate>
		<dc:creator>Dominic</dc:creator>
				<category><![CDATA[Friday]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://blog.twg.ca/?p=631</guid>
		<description><![CDATA[A web developer quiz, with special focus on Ruby on Rails]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a quiz we ran last year, at Employment.nil, Toronto first Ruby job fair.</p>
<p>See if you can get them all, I&#8217;ll post the answers in a couple weeks, and if you have your own favorite trick questions, post them here.</p>
<h3><strong>Javascript</strong></h3>
<p>1. An external JavaScript must contain the &lt;script&gt; tag, true or false?</p>
<p>2. What is the purpose of the the SWFObject javascript library?<br />
<strong> </strong></p>
<h3><strong>Ruby</strong></h3>
<p>3. Given:</p>
<div class="codecolorer-container ruby default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">a = <span style="color:#996600;">'foo'</span><br />
b = <span style="color:#0000FF; font-weight:bold;">nil</span><br />
<br />
first = a <span style="color:#006600; font-weight:bold;">&amp;&amp;</span> b<br />
second = a <span style="color:#9966CC; font-weight:bold;">and</span> b</div></td></tr></tbody></table></div>
<p>Are <code class="codecolorer text default"><span class="text">first</span></code> and <code class="codecolorer text default"><span class="text">second</span></code> equal?</p>
<p>4. True or false?</p>
<div class="codecolorer-container ruby default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">/</span><span style="color:#006666;">2</span> == <span style="color:#006666;">0.5</span></div></td></tr></tbody></table></div>
<p>5. If <code class="codecolorer ruby default"><span class="ruby"><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'1'</span>..<span style="color:#996600;">'10'</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">to_a</span></span></code> returns:</p>
<p><code class="codecolorer ruby default"><span class="ruby"><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">&quot;1&quot;</span>, <span style="color:#996600;">&quot;2&quot;</span>, <span style="color:#996600;">&quot;3&quot;</span>, <span style="color:#996600;">&quot;4&quot;</span>, ..... <span style="color:#996600;">&quot;10&quot;</span><span style="color:#006600; font-weight:bold;">&#93;</span></span></code></p>
<p>What does <code class="codecolorer ruby default"><span class="ruby"><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'2'</span>..<span style="color:#996600;">'10'</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">to_a</span></span></code> return?</p>
<h3>Rails</h3>
<p>6. Given the following class:</p>
<div class="codecolorer-container ruby default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color:#9966CC; font-weight:bold;">class</span> Monkey <span style="color:#006600; font-weight:bold;">&lt;&lt;</span> <span style="color:#6666ff; font-weight:bold;">ActiveRecord::Base</span><br />
has_many <span style="color:#ff3333; font-weight:bold;">:bananas</span>, <span style="color:#ff3333; font-weight:bold;">:order</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'size ASC'</span><br />
<br />
named_scope <span style="color:#ff3333; font-weight:bold;">:starting_from_massive</span>, <span style="color:#ff3333; font-weight:bold;">:order</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'size DESC'</span><br />
<span style="color:#9966CC; font-weight:bold;">end</span></div></td></tr></tbody></table></div>
<p>What SQL is generated for the following queries:</p>
<div class="codecolorer-container ruby default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color:#0066ff; font-weight:bold;">@monkey</span>.<span style="color:#9900CC;">bananas</span><br />
<span style="color:#0066ff; font-weight:bold;">@monkey</span>.<span style="color:#9900CC;">bananas</span>.<span style="color:#9900CC;">starting_from_massive</span><br />
<span style="color:#0066ff; font-weight:bold;">@monkey</span>.<span style="color:#9900CC;">bananas</span>.<span style="color:#9900CC;">all</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:order</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#0000FF; font-weight:bold;">nil</span><span style="color:#006600; font-weight:bold;">&#41;</span></div></td></tr></tbody></table></div>
<h3><strong>XHTML:</strong></h3>
<p>7. The DOCTYPE declaration has no closing tag, true or false?</p>
<p>8. All XHTML tags and attributes must be in lower case, true or false?</p>
<p>9. There is a way of describing XML data, how?</p>
<p>10. What does DTD stand for?</p>
<h3><strong>AJAX:</strong></h3>
<p>11. AJAX functionality is achieved by using what object?</p>
<h3><strong>CSS:</strong></h3>
<p>12. Should you clear floats?</p>
<p>13. How do you properly clear floats?</p>
<p>14. How do you write IE specific css?<br />
Bonus: what is the problem with this?</p>
<h3><strong>Everything &#8211; Multiple Choice</strong></h3>
<p>15. Rails: Which of the following is not a form helper method?</p>
<p>a. <code class="codecolorer text default"><span class="text">text_field_tag</span></code><br />
b. <code class="codecolorer text default"><span class="text">text_input_tag</span></code><br />
c. <code class="codecolorer text default"><span class="text">text_area_tag</span></code><br />
d. <code class="codecolorer text default"><span class="text">hidden_field_tag</span></code></p>
<p>16. What&#8217;s the default REST HTTP action verb for updating an existing record?</p>
<p>a. PUT<br />
b. UPDATE<br />
c. POST<br />
d. PUSH</p>
<p>17. Which of the following is not a core Rails package?</p>
<p>a. ActionMailer<br />
b. ActionController<br />
c. ActiveRecord<br />
d. ActiveResource</p>
<p>18. Which of the following is not an instance method of Object?</p>
<p>a. <code class="codecolorer text default"><span class="text">to_a</span></code><br />
b. <code class="codecolorer text default"><span class="text">to_i</span></code><br />
c. <code class="codecolorer text default"><span class="text">taint</span></code><br />
d. <code class="codecolorer text default"><span class="text">hash</span></code></p>
<p>19. Which of the following is not a valid render option?</p>
<p>a. <code class="codecolorer text default"><span class="text">:update</span></code><br />
b. <code class="codecolorer text default"><span class="text">:partial</span></code><br />
c. <code class="codecolorer text default"><span class="text">:string</span></code><br />
d. <code class="codecolorer text default"><span class="text">:file</span></code></p>
<p>20. Which of the following is not a valid ActionController filter declaration?</p>
<p>a. <code class="codecolorer text default"><span class="text">before_filter</span></code><br />
b. <code class="codecolorer text default"><span class="text">clear_filter</span></code><br />
c. <code class="codecolorer text default"><span class="text">after_filter</span></code><br />
d. <code class="codecolorer text default"><span class="text">around_filter</span></code></p>
<p>21. Which of the following is not a valid ActiveRecord callback type?</p>
<p>a. <code class="codecolorer text default"><span class="text">before_create</span></code><br />
b. <code class="codecolorer text default"><span class="text">before_validation_on_create</span></code><br />
c. <code class="codecolorer text default"><span class="text">after_destroy</span></code><br />
d. <code class="codecolorer text default"><span class="text">before_validation_on_destroy</span></code></p>
<p>22. XML is to XHTML as <em>this</em> is to HTML.</p>
<p>23. The keys of a model&#8217;s attributes are stored using this data type.</p>
<p>24. This is the RFC 2324 definition for HTTP status code 418.</p>
<p>24. Bonus: what does this do???</p>
<div class="codecolorer-container ruby default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">data.<span style="color:#CC0066; font-weight:bold;">gsub</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">/</span><span style="color:#006600; font-weight:bold;">&#91;</span>^\d<span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">/</span>, <span style="color:#996600;">''</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#CC0066; font-weight:bold;">split</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">''</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">reverse</span>.<span style="color:#9900CC;">enum_with_index</span>.<span style="color:#9900CC;">collect</span><span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006600; font-weight:bold;">|</span>x, i<span style="color:#006600; font-weight:bold;">|</span> &nbsp;<span style="color:#006600; font-weight:bold;">&#40;</span>i<span style="color:#006600; font-weight:bold;">%</span>2!=<span style="color:#006666;">0</span><span style="color:#006600; font-weight:bold;">&#41;</span>? <span style="color:#006600; font-weight:bold;">&#40;</span>x.<span style="color:#9900CC;">to_i</span><span style="color:#006600; font-weight:bold;">*</span><span style="color:#006666;">2</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">to_s</span>.<span style="color:#CC0066; font-weight:bold;">split</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">''</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">inject</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">0</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006600; font-weight:bold;">|</span>sum, i<span style="color:#006600; font-weight:bold;">|</span> sum <span style="color:#006600; font-weight:bold;">+</span> i.<span style="color:#9900CC;">to_i</span><span style="color:#006600; font-weight:bold;">&#125;</span> : &nbsp;x.<span style="color:#9900CC;">to_i</span><span style="color:#006600; font-weight:bold;">&#125;</span>.<span style="color:#9900CC;">inject</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">0</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006600; font-weight:bold;">|</span>sum, i<span style="color:#006600; font-weight:bold;">|</span> sum <span style="color:#006600; font-weight:bold;">+</span> i<span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">%</span>10 != <span style="color:#006666;">0</span></div></td></tr></tbody></table></div>
<p><script type="text/javascript">// <![CDATA[
 tag
false</p>
<p>R or RoR:
----</p>
<p>1. Ruby:
Given:
a = 'foo'
b = nil</p>
<p>first = a &#038;&#038; b
second = a and b
Are first and second equal?
No. first one equals nil, second equals foo</p>
<p>2. Ruby:
True or false: 1/2 == 0.5
false 1/2 is int, .5 is float
1/2 is equal to zero because it is an int divided by an int, they don't have the precision to give the correct answer</p>
<p>3. Ruby:
If ('1'..'10').to_a returns :</p>
<p>["1", "2", "3", "4", ..... "10"]</p>
<p>what does ('2'..'10').to_a return?</p>
<p>answer: empty array because '10' precedes '2'</p>
<p>It's ordering by string representation, not integer</p>
<p>4. Rails:</p>
<p>class Monkey << ActiveRecord::Base   has_many :bananas, :order => 'size ASC'</p>
<p>  named_scope :starting_from_massive, :order => 'size DESC'
end</p>
<p>What is the SQL for</p>
<p>@monkey.bananas
@monkey.bananas.starting_from_massive
@monkey.bananas.all(:order => nil)</p>
<p>Answer:
1: select * from monkeys order size ASC
2. select * from monkeys order size ASC, size DESC
3. select * from monkeys order size ASC</p>
<p>5. What does the H in DHH stand for? Spell it?
Hein</p>
<p>----
4. XHTML:
The DOCTYPE declaration has no closing tag
False</p>
<p>5. All XHTML tags and attributes must be in lower case
true</p>
<p>6. There is a way of describing XML data, how?
Document Type Definition</p>
<p>7. What does DTD stand for?
Document Type Definition</p>
<p>Javascript:
----
8. What is the purpose of the the swf object javascript library?
To work around the judgement against Microsoft regarding the Eolas patent defining "Embedded Objects Linked Across Systems".</p>
<p>Ajax:
A little bit tougher now: AJAX functionality is achieved by using what object?
XMLHttpRequest</p>
<p>CSS:
----
1.
Should you clear floats?
yes</p>
<p>2.
How do you properly clear floats?
overflow: hidden;
_height: 1%;</p>
<p>3.
How do you write ie specific css?
_element are for ie6
*element are for ie7</p>
<p>Bonus: what is the problem with this?</p>
<p>Multiple Choice</p>
<p>Which of the following is not a form helper method?</p>
<p>	text_field_tag
	text_input_tag
	text_area_tag
	hidden_field_tag</p>
<p>What's the default REST HTTP action verb for updating an existing record?</p>
<p>	PUT
	UPDATE
	POST
	PUSH</p>
<p>Which of the following is not a core Rails package?</p>
<p>	ActionMailer
	ActionController
	ActiveRecord
	ActiveResource</p>
<p>Which of the following is not an instance method of Object?</p>
<p>	to_a
	to_i
	taint
	hash</p>
<p>Which of the following is not a valid render option?</p>
<p>	:update
	:partial
	:string
	:file</p>
<p>Which of the following is not a valid ActionController filter declaration?</p>
<p>	before_filter
	clear_filter
	after_filter
	around_filter</p>
<p>Which of the following is not a valid ActiveRecord callback type?</p>
<p>	before_create
	before_validation_on_create
	after_destroy
	before_validation_on_destroy</p>
<p>Simple Answers</p>
<p>This is the "H" in "DHH". </p>
<p>	What is Heinemeier?
	(Spelling can count)</p>
<p>XML is to XHTML as this is to HTML.</p>
<p>	What is SGML?</p>
<p>The keys of a model's attributes are stored using this data type.</p>
<p>	What is String?
	or
	What are Strings?</p>
<p>This is the RFC 2324 definition for HTTP status code 418.</p>
<p>	What is "I'm a teapot"?
// ]]&gt;</script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.twg.ca/2010/07/rails-web-developer-quiz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>World Cup at TWG!</title>
		<link>http://blog.twg.ca/2010/06/world-cup-at-twg/</link>
		<comments>http://blog.twg.ca/2010/06/world-cup-at-twg/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 15:31:56 +0000</pubDate>
		<dc:creator>Georges</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.twg.ca/?p=618</guid>
		<description><![CDATA[We have people with ancestry from Italy, Ukraine, Belarus, England, China, Iceland, France, Portugal, El Salvador, and Egypt. We&#8217;ve been anticipating the tournament for a while now and have a pretty nice set up for keeping up with the matches while getting things done. Here&#8217;s an inside look at TWG HQ on a beautiful day [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.twg.ca/wp-content/uploads/2010/06/day_at_twg.jpg"><img class="size-medium wp-image-619 alignright" style="padding: 0px 0px 15px 15px; float: right;" title="Just another day at TWG HQ" src="http://blog.twg.ca/wp-content/uploads/2010/06/day_at_twg-300x225.jpg" alt="Just another day at TWG HQ" width="300" height="225" /></a></p>
<p>We have people with ancestry from Italy, Ukraine, Belarus, England, China, Iceland, France, Portugal, El Salvador, and Egypt. We&#8217;ve been anticipating the tournament for a while now and have a pretty nice set up for keeping up with the matches while getting things done.</p>
<p>Here&#8217;s an inside look at TWG HQ on a beautiful day in downtown Toronto during World Cup 2010&#8230;<br />
<br clear="both" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.twg.ca/2010/06/world-cup-at-twg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Good People Drinking Wine and talking to each other &#8211; Rioja Recap</title>
		<link>http://blog.twg.ca/2010/05/good-people-drinking-wine-and-talking-to-each-other-rioja-recap/</link>
		<comments>http://blog.twg.ca/2010/05/good-people-drinking-wine-and-talking-to-each-other-rioja-recap/#comments</comments>
		<pubDate>Tue, 11 May 2010 16:37:28 +0000</pubDate>
		<dc:creator>Andrés</dc:creator>
				<category><![CDATA[Friday]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[TWG News]]></category>
		<category><![CDATA[good people]]></category>
		<category><![CDATA[Lopez De Heredia]]></category>
		<category><![CDATA[Rebecca Baran]]></category>
		<category><![CDATA[Sibling Rivalry]]></category>
		<category><![CDATA[Timeraiser]]></category>
		<category><![CDATA[wine]]></category>

		<guid isPermaLink="false">http://blog.twg.ca/?p=600</guid>
		<description><![CDATA[Good people; check. Drinking (great) wine; double check. Talking to each other; yep! The May installment of Good people drinking wine and talking to each other was a bunch of fun..]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.twg.ca/2010/05/good-people-drinking-wine-and-talking-to-each-other-rioja-recap"><img class="alignnone size-full wp-image-610" title="gpdw_rioja" src="http://blog.twg.ca/wp-content/uploads/2010/05/gpdw_rioja.jpg" alt="" width="640" height="363" /></a></p>
<p>Good people; check. Drinking (great) wine; double check. Talking to each other; yes!</p>
<p>TWG would like to thank:</p>
<p><strong>Anil Patel</strong>: for sharing his expertise in working with Google Apps/Salesforce.com/Echosign.com and other SaaS tools for his small, yet influential non-profit, Timeraiser.ca. Check out their full IT portal here: <a title="timeriaser it portal" href="http://it.timeraiser.ca" target="_blank">http://it.timeraiser.ca</a>. AND a big thanks for pitching in a case of the delicious Ontario white wine blend called <a title="Sibling Rivalry White Wine Ontario" href="http://www.siblingrivalrywine.ca/" target="_blank">Sibling Rivalry</a>.</p>
<p><strong>Rob Ballantyne</strong>: for sharing his photos, experiences, and deep rooted passion for Rioja wines. Not to mention the delicious bottle of 1987 <a title="Lopez De Heredia Rioja wine" href="http://www.lopezdeheredia.com/" target="_blank">Lopez de Heredia</a>, Viña Tondonia Gran Reserva, and the bottle of 1995 Gravonia by Lopez De Heredia.</p>
<p><strong>Rebecca Baran</strong>: for her flattering photo booth shots, and persistence in getting all our guest&#8217;s in front of her lens. Check her out at <a title="Rebecca Baran photographer" href="http://rebeccabaran.com" target="_blank">http://rebeccabaran.com</a></p>
<p>And to all of you; our guests, colleagues, neighbours, and fellow creative professionals: thank you for making the second installment of &#8220;Good People Drinking Wine and Talking to Each Other&#8221; a resounding success.</p>
<p>Until next time, (we&#8217;re thinking 2 months)<br />
Your friends at TWG.</p>
<p><em>*all photos by Rebecca Baran</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.twg.ca/2010/05/good-people-drinking-wine-and-talking-to-each-other-rioja-recap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>May 7th &#8211; Good people drinking wine and talking to each other</title>
		<link>http://blog.twg.ca/2010/05/may-7th-good-people-drinking-wine-and-talking/</link>
		<comments>http://blog.twg.ca/2010/05/may-7th-good-people-drinking-wine-and-talking/#comments</comments>
		<pubDate>Mon, 03 May 2010 22:17:58 +0000</pubDate>
		<dc:creator>Dominic</dc:creator>
				<category><![CDATA[Friday]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[TWG News]]></category>
		<category><![CDATA[good people]]></category>
		<category><![CDATA[rioja]]></category>
		<category><![CDATA[wine]]></category>

		<guid isPermaLink="false">http://blog.twg.ca/?p=585</guid>
		<description><![CDATA[Friday May 7th: Another jam-packed installment of &#8216;good people drinking wine and talking to each other&#8217; Please RSVP to join a hand-picked group of good people &#8211; friends, colleagues, and super interesting bon-vivants &#8211; to drink some great wine, eat some delicious things, have your photo taken, and enjoy three short, yet spell-binding, presentations. PRESENTERS: [...]]]></description>
			<content:encoded><![CDATA[<p><img title="TWG Wine Party" src="http://assets.twg.ca/logo_2column.jpg" border="0" alt="TWG Wine Party" align="center" /></p>
<h2><strong><span style="color: #fa1857;">Friday May 7th:</span><br />
Another jam-packed installment of &#8216;good people drinking <span style="color: #fa1857;">wine</span> and <span style="color: #fa1857;">talking</span> to each other&#8217;</strong></h2>
<p>Please <a href="mailto:wine@twg.ca">RSVP</a> to join a hand-picked group of good people &#8211; friends, colleagues, and super interesting bon-vivants &#8211; to drink some great wine, eat some delicious things, have your photo taken, and enjoy three short, yet spell-binding, presentations.</p>
<h3><span style="color: #fa1857;">PRESENTERS:</span></h3>
<p><strong>Dominic Bortolussi &amp; Rob Ballantyne: </strong>Will talk about and offer wines from the magical kingdom of Rioja. Where new world meets old world, unicorns run wild, and where countless people found their first love of wine. Maybe you will too. For the first dozen or so people who arrive, there will be tasting glasses of a &#8217;1987 Tondonia Gran Reserva&#8217; from the renowned Lopez de Heredia vineyard. For those who arrive later, you&#8217;ll also get crazy good wine, but it won&#8217;t be 23years old.</p>
<p><strong>Anil Patel:</strong> Topic: Decision-making when thinking about Software As A Service (SaaS) tools. There&#8217;s a difference between Open-source versus an Open-Architecture, and connecting people and content is what matters most, not who owns the software.</p>
<p><strong>Andres Aquino: </strong>Will announce the impending launch of our brand spanking new commercial web-application. <a title="PostageApp - email from your app" href="http://postageapp.com" target="_blank">PostageApp</a> &#8211; &#8220;The easier way to send email from web apps&#8221;.  PostageApp, which started as a side-project to solve our own email problems, seemed a good candidate to sell as a service. Andres will highlight the major pain points in PostageApp&#8217;s development and how we overcame them.</p>
<p><strong>Rebecca Baran:</strong> Who has recently launched her <a title="Rebecca Baran Photography" href="http://rebeccabaran.com" target="_blank">eponymous</a> website, will be here at the studio, taking photo portraits of the fully clothed or soft nudes.</p>
<h3><span style="color: #fa1857;">SUMMARY:</span></h3>
<p><strong>It&#8217;s an early thing. Short and sweet. There will be tasting glasses of wine, as well as other alcoholic and non-alcoholics things. Cheeses and good nibbles will be all around, but it&#8217;s not meant to spoil your supper.</strong></p>
<p><strong>And then &#8230; at 7:00 pm, our encounter will end, and you will all move on to your dinner reservations and vegetarian yoga classes, full of cheese and ideas, a good wine buzz, and fun people to stalk on Twitter or Facebook over the weekend.</strong></p>
<h3><span style="color: #fa1857;">THE VENUE:</span></h3>
<p>Our studio, in the Burroughes building, at 639 Queen Street West. Suite 502. We&#8217;ll jimmy the door to stay open, but buzz us at 5002 if it&#8217;s locked when you arrive.</p>
<h3><span style="color: #fa1857;">THE TIME:</span></h3>
<p>Friday, May 7th<br />
5:00 pm &#8211; 7:00 pm</p>
<h3><span style="color: #fa1857;">ATTENDEES:</span></h3>
<p>There will be neighbors in the building, entrepreneurs, graphic designers, fashion designers, industrial designers, web developers, animators, film-makers, gamers, writers, musicians, painters, wine lovers, comic book lovers, maybe even foot lovers &#8211; all stylish, vivacious and friendly people. So you should be here.</p>
<p><strong><em>You&#8217;re strongly encouraged to bring along equally amazing people too.</em></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.twg.ca/2010/05/may-7th-good-people-drinking-wine-and-talking/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>TWG&#8217;s graduating class</title>
		<link>http://blog.twg.ca/2010/04/twgs-graduating-class/</link>
		<comments>http://blog.twg.ca/2010/04/twgs-graduating-class/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 03:05:04 +0000</pubDate>
		<dc:creator>Dominic</dc:creator>
				<category><![CDATA[TWG News]]></category>
		<category><![CDATA[Team]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Sean Lerner]]></category>

		<guid isPermaLink="false">http://blog.twg.ca/?p=569</guid>
		<description><![CDATA[Three years ago, Sean came in our door, like a friendly stray cat; slightly disheveled, a bit wide eyed, but hungry for interesting work and some tech camaraderie. We liked him a lot, and so we asked if we could keep him. He said 'sure'. ]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">It is with great pride mixed with a bit of sadness that TWG offers a big congratulations and fond farewell to a long time team member &#8211; Sean Lerner.</p>
<p style="text-align: left;"><a href="http://blog.twg.ca/wp-content/uploads/2010/04/screen-capture.png"><img class="size-full wp-image-570 aligncenter" title="Sean Lerner - programmer, comedian, great guy" src="http://blog.twg.ca/wp-content/uploads/2010/04/screen-capture.png" alt="" width="254" height="207" /></a></p>
<p style="text-align: left;">Three years ago, Sean came in our door, like a friendly stray cat; slightly disheveled, a bit wide eyed, but hungry for interesting work and some tech camaraderie. We liked him a lot, and so we asked if we could keep him. He said &#8216;sure&#8217;. After a few short weeks, Sean was an integral part of the team, jumping in to help on projects, inspiring us with his idealism, earnestness, entrepreneurial thinking, and occasionally brilliant improv and comedy skills.</p>
<p>Sean always went above and beyond to help TWG as we went through our growing pains. He was (and still is) a handyman who could pitch in on any project, and Sean could always be relied on make sure that checklists were completed, and clients were contacted with updates. Sean was the inventor of our first Customer Data Management System (the infamous cdms) which housed all of our easy to forget passwords, for the umpteen servers and services we ran over the years.</p>
<p>I know that as Sean sets out on his new journey as a freelance internet consultant, we&#8217;ll be crossing paths now and then, and I also know that I speak for everyone at TWG when I say &#8216;good luck&#8217; and &#8216;thanks for &#8220;forgetting&#8221; that mac-mini box full of broken glass under your monitor&#8217; :P</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.twg.ca/2010/04/twgs-graduating-class/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>We&#8217;re big in Japan!</title>
		<link>http://blog.twg.ca/2010/03/were-big-in-japan/</link>
		<comments>http://blog.twg.ca/2010/03/were-big-in-japan/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 15:09:04 +0000</pubDate>
		<dc:creator>Georges</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.twg.ca/?p=553</guid>
		<description><![CDATA[Well, PostageApp is. We were very happy to wake up this morning to see that PostageApp has spread to Japan! The folks over at 100shiki.com posted a little introduction and overview (here it is in English) of PostageApp and helped to introduce us to our first overseas audience. Thanks guys! For any of you who [...]]]></description>
			<content:encoded><![CDATA[<p>Well, <a title="PostageApp" href="http://www.postageapp.com">PostageApp</a> is. We were very happy to wake up this morning to see that PostageApp has spread to Japan!</p>
<p>The folks over at 100shiki.com posted <a title="PostageApp at 100shiki.com" href="http://www.100shiki.com/archives/2010/03/postageapp.html">a little introduction and overview</a> (<a title="english translation" href="http://translate.google.com/translate?js=y&amp;prev=_t&amp;hl=en&amp;ie=UTF-8&amp;layout=1&amp;eotf=1&amp;u=http%3A%2F%2Fwww.100shiki.com%2Farchives%2F2010%2F03%2Fpostageapp.html&amp;sl=ja&amp;tl=en">here it is in English</a>) of PostageApp and helped to introduce us to our first overseas audience. Thanks guys!</p>
<p style="text-align: center;"><a href="http://www.100shiki.com/archives/2010/03/postageapp.html"><img class="size-full wp-image-549 aligncenter" title="Big in Japan!" src="http://blog.twg.ca/wp-content/uploads/2010/03/biginjapan-thumb.png" alt="" width="300" height="426" /></a></p>
<p>For any of you who are new to <a title="PostageApp" href="http://www.postageapp.com">PostageApp</a>, it&#8217;s the easier way to send email from web apps. You can use it from any <a title="PostageApp Rails API" href="http://postageapp.com/docs/rails">Rails</a> or <a href="http://postageapp.com/docs/php">PHP</a> app, or you can use our <a title="PostageApp API" href="http://postageapp.com/docs/api">JSON API</a> directly from the framework of your choice.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.twg.ca/2010/03/were-big-in-japan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TWG Kicks Off 2010 with Scrum!</title>
		<link>http://blog.twg.ca/2010/02/twg-kicks-off-2010-with-scrum/</link>
		<comments>http://blog.twg.ca/2010/02/twg-kicks-off-2010-with-scrum/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 15:47:17 +0000</pubDate>
		<dc:creator>todd</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[TWG News]]></category>
		<category><![CDATA[Team]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[sales]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://blog.twg.ca/?p=444</guid>
		<description><![CDATA[TWG would like to formally welcome you to 2010 and talk a little bit about something we&#8217;ve decided to kick off the new year with: Scrum! Scrum is an agile framework that allows teams to become self organizing and focus on delivering high business value. In 2010, TWG is committed to delivering working, high business [...]]]></description>
			<content:encoded><![CDATA[<p>TWG would like to formally welcome you to 2010 and talk a little bit about something we&#8217;ve decided to kick off the new year with: Scrum!</p>
<p>Scrum is an agile framework that allows teams to become self organizing and focus on delivering high business value.</p>
<p>In 2010, TWG is committed to delivering working, high business value, high quality software, faster.  This is something Scrum enables us to do.</p>
<h2>Why Change?</h2>
<p>While TWG has previously used plenty of agile practices, the time has come to formalize the process so that we can get all the benefits of being an agile organization.</p>
<h2>How Is Agile Different?</h2>
<p>Many agencies and web development companies typically insist on gathering every single requirement up front, locking them down, forcing the client to sign off, swearing that these requirements will never change.  We now know better.  Requirements will change, we learn as we go, and we will inevitably discover new and more valuable features as the project comes together.  TWG is using Scrum to build partnering relationships with our clients, so that we can see and adapt to requirements as they emerge, and deliver better and more useful websites and software.</p>
<h2>Build Less Software&#8230;</h2>
<p>So how do you build high value, high quality software, quickly?  Build less, but build it better!</p>
<p>This may seem unusual, but remember, when you start a project, application or a web site, you don&#8217;t really know what you or your users want until you get your hands on it and start playing with it.  This is normal.  So instead of trying to plan it all up front, we&#8217;re going to be working on building the things you know right now, and get them done, Done, DONE!</p>
<p>Nothing gets feedback better than working software, so why wait until the end of your project to see it?  Once you&#8217;ve seen it and learned from it, you can add to it, change it or even scrap it!</p>
<p>At TWG, we&#8217;re starting Scrum with 1 week sprints.  These are time boxed working periods where at the end, our goal is to deliver working software, as opposed to things like documents, mock-ups or in-progress features.  This is a tough, aggressive process that we&#8217;re working on, but we feel in the end it will enable us to deliver better, more valuable software, faster.</p>
<h2>&#8230;Get more value (rather than a laundry list).</h2>
<p>Many web development companies will work with you to look around at all the sites that are out there, collect a large laundry lists of  possible features that you might want your system to do, and then give a quote on building that.  You sign off, and the work gets started.  You wait potentially months until all the features are built, the schedule might slip two or three times, and when you finally get it, you discover you really didn&#8217;t end up with the software you really hoped for or needed.</p>
<p>Not only that, but while the software was being built, the market changed and some features became irrelevant or new features became more critical.  Too late to change now.  I guess you&#8217;re stuck.</p>
<p>What if you had your list of features prioritized in order of importance/ROI and what if you got the most important features first each iteration &#8211; say every week?  Maybe you&#8217;d find out you didn&#8217;t need to build those last few features since they weren&#8217;t all that valuable anyway, or maybe you&#8217;d find you could swap some of those less valuable ones out for new ones.  Who wouldn&#8217;t want that kind of flexibility?</p>
<h2>What Comes Next?</h2>
<p>This transition is a work in progress and we&#8217;re going to give you regular updates and insights into our experiences with Scrum.  You&#8217;ll get to see some of the nitty-gritty details like our task board, and burn up charts, as well as some of the struggles and discoveries we make as we go down this road.  We hope you&#8217;ll keep your eye on our blog and provide us with any feedback or experiences you&#8217;ve had.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.twg.ca/2010/02/twg-kicks-off-2010-with-scrum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hump-Day: Whose website sucks less?</title>
		<link>http://blog.twg.ca/2010/02/hump-day-whose-website-sucks-less/</link>
		<comments>http://blog.twg.ca/2010/02/hump-day-whose-website-sucks-less/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 16:15:25 +0000</pubDate>
		<dc:creator>Andrés</dc:creator>
				<category><![CDATA[Hump-Day]]></category>

		<guid isPermaLink="false">http://blog.twg.ca/?p=500</guid>
		<description><![CDATA[North 44 &#8211; One of Toronto&#8217;s best fine dining restaurants, or Taquerias El Farolito &#8211; Serves excellent Mexican food and has 9 locations in California. Note: their website is a giant .gif of their menu, and the site says it&#8217;s still under construction. Survey says&#8230; North44 sucks more! Dear North44, Your restaurant is divine, but [...]]]></description>
			<content:encoded><![CDATA[<p><a title="North 44" href="http://north44restaurant.com" target="_blank">North 44</a> &#8211; One of Toronto&#8217;s best fine dining restaurants,</p>
<p><a href="http://north44restaurant.com" target="_blank"><img class="size-large wp-image-536 alignnone" title="North44" src="http://blog.twg.ca/wp-content/uploads/2010/02/North44-1024x767.png" alt="North44" width="614" height="460" /></a><br />
or<br />
<a title="Taquerias El Farolito" href="http://elfarolitoinc.com/" target="_blank">Taquerias El Farolito</a> &#8211; Serves excellent Mexican food and has 9 locations in California.<br />
Note: their website is a giant .gif of their menu, and the site says it&#8217;s still <em>under construction</em>.</p>
<p><a href="http://elfarolitoinc.com/" target="_blank"><img class="alignnone size-large wp-image-537" title="El_Farolito" src="http://blog.twg.ca/wp-content/uploads/2010/02/El_Farolito-1024x955.png" alt="El_Farolito" width="614" height="573" /></a></p>
<p>Survey says&#8230; North44 sucks more!</p>
<div style="float:left;padding:0 10px 10px 0;"><img class="alignleft size-full wp-image-505" title="North44_fail" src="http://blog.twg.ca/wp-content/uploads/2010/02/North44_fail.jpg" alt="North44_fail" width="192" height="288" /></div>
<p>Dear North44,<br />
Your restaurant is divine, but your website sucks. Skip the intro, lose the flash, and show me your phone number/address within 0.25secs of my arrival on your web page.</p>
<p>Look what your site did to my iPhone!</p>
<p>Thank you,<br />
The Internet Police</p>
<p>P.S. If you want a better website, call me (416.850.2500)</p>
<p>P.S.S. If you don&#8217;t understand what I&#8217;m talking about read this gem from <a title="VenomousPorridge" href="http://venomousporridge.com/post/389785000/a-conversation-i-have-every-month-or-so#disqus_thread" target="_blank">venomousporridge.com</a></p>
<p><strong>Me:</strong> <em>(tries to visit a local restaurant’s website via iPhone)</em><br />
<strong>Restaurant website:</strong> I require Flash. Fuck off.<br />
<strong>Me:</strong> I just want to know how late you’re open.<br />
<strong>Website:</strong> Nope.<br />
<strong>Me:</strong> But I’m on my phone. Don’t you have a little “HTML Version” link up in the corner or something?<br />
<strong>Website:</strong> I’m ignoring you.<br />
<strong>Me:</strong> What if I’m on my phone because I’m <em>out, looking for a place to eat? </em>Didn’t that ever occur to you?<br />
<strong>Website:</strong> Fuck entirely off.<br />
<strong>Me:</strong> <em>(gives up, switches to computer)</em><br />
<strong>Website:</strong> Oh! Hi! What can I help you with today?<br />
<strong>Me:</strong> What are your —<br />
<strong>Website:</strong> Hang on, I’m loading the music. <a title="VenomousPorridge.com" href="http://venomousporridge.com/post/389785000/a-conversation-i-have-every-month-or-so#disqus_thread" target="_blank">Read more&#8230;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.twg.ca/2010/02/hump-day-whose-website-sucks-less/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
