<?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>WaterstreetGM</title>
	<atom:link href="http://waterstreetgm.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://waterstreetgm.org</link>
	<description>Virtual home of Terry Sutton&#039;s General Mercantile. Take a stroll down the aisles.</description>
	<lastBuildDate>Wed, 20 Mar 2013 19:00:20 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Room for less</title>
		<link>http://waterstreetgm.org/room-for-less/</link>
		<comments>http://waterstreetgm.org/room-for-less/#comments</comments>
		<pubDate>Wed, 20 Mar 2013 19:00:20 +0000</pubDate>
		<dc:creator>saltcod</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://waterstreetgm.org/?p=2550</guid>
		<description><![CDATA[The latest Crome Canary comes with a few minor tweaks to search interface. The missing search bar being the most notable. The most interesting thing for me is the search menu (Web, Images, Maps, and eventually, More). It&#8217;s interesting because there&#8217;s room on that bar to fit more (between &#8220;Search tools&#8221; and the gear icon [...] <a href="http://waterstreetgm.org/room-for-less/"> Continue &#8594;</a>]]></description>
				<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-2553" alt="Screen shot 2013-03-20 at 4.25" src="http://waterstreetgm.org/wp-content/uploads/2013/03/Screen-shot-2013-03-20-at-4.25.png" width="1281" height="882" /></p>
<p>The latest Crome Canary comes with a few minor tweaks to search interface. The missing search bar being the most notable.</p>
<p>The most interesting thing for me is the search menu (Web, Images, Maps, and eventually, More). It&#8217;s interesting because there&#8217;s room on that bar to fit more (between &#8220;Search tools&#8221; and the gear icon way over to the right) , but Google has opted for sparseness and hidden all the rest in a menu item.</p>
<p>There&#8217;s so much room for less in everything we design. Let&#8217;s avail of it.</p>
]]></content:encoded>
			<wfw:commentRss>http://waterstreetgm.org/room-for-less/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learn to make, don&#8217;t learn to code</title>
		<link>http://waterstreetgm.org/learn-to-make-dont-learn-to-code/</link>
		<comments>http://waterstreetgm.org/learn-to-make-dont-learn-to-code/#comments</comments>
		<pubDate>Thu, 14 Mar 2013 00:37:26 +0000</pubDate>
		<dc:creator>saltcod</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://waterstreetgm.org/?p=2543</guid>
		<description><![CDATA[The agony of learning: You sign up for Codecademy. You spend 3 months deciding between Python and Ruby, because you heard Django was more powerful or something but Rails had better community support or something. You in fact have no idea what that means. You maybe do a tutorial or two. Oh wait, I should [...] <a href="http://waterstreetgm.org/learn-to-make-dont-learn-to-code/"> Continue &#8594;</a>]]></description>
				<content:encoded><![CDATA[<p>The agony of learning: </p>
<blockquote><p>
You sign up for Codecademy. You spend 3 months deciding between Python and Ruby, because you heard Django was more powerful or something but Rails had better community support or something. You in fact have no idea what that means. You maybe do a tutorial or two. Oh wait, I should be learning Node.js. It’s the future. Then… hey what’s that shiny thing over there?
</p></blockquote>
<p>—<a href="http://www.jakelevine.me/blog/2013/03/dont-learn-how-to-code-learn-how-to-make-things/" target="_blank">Jake Levine</a> </p>
<p>Boy-o-boy does this ever ring true. My experience was precisely like that—learning to code is simply that—learning to code. Until you actually learn to build something, you&#8217;ll never get anywhere. I went from Ruby to Python to Javascript back to Ruby back to Javascript—it never ended.</p>
<p>But I remember the moment when some of it finally clicked: I was learning PHP a few years back, I kept falling asleep during the Lynda.com videos, so I bought a book. The book put me to sleep too. I followed tutorials that mostly didn&#8217;t work or were outdated, and tried everything else out there to help beat it into my head. </p>
<p>One day, I was trying to dynamically create a menu in WordPress using a query—I had to create a function to get the page id, hand that off to another function to get that page&#8217;s children, and then to another to get the last item in an array to determine the page&#8217;s ancestors. It was all there—strings, numbers, arrays, functions, passing values around. No doubt it was a Frankenstein of code, but it worked, and did it ever feel good!</p>
<p>Until you actually start <em>making</em> something, you&#8217;re just going through the motions—you&#8217;re not learning.</p>
]]></content:encoded>
			<wfw:commentRss>http://waterstreetgm.org/learn-to-make-dont-learn-to-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Switching to Dvorak</title>
		<link>http://waterstreetgm.org/switching-to-dvorak/</link>
		<comments>http://waterstreetgm.org/switching-to-dvorak/#comments</comments>
		<pubDate>Mon, 11 Feb 2013 01:19:17 +0000</pubDate>
		<dc:creator>saltcod</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Dvorak]]></category>

		<guid isPermaLink="false">http://waterstreetgm.org/?p=2535</guid>
		<description><![CDATA[You WordPressers will know about the Dvorak keyboard layout, but others might not. You can read the seminal piece from WordPress founder, Matt Mullenweg on why you might want to switch. I won&#8217;t get into any of it here, but will say that I&#8217;m switching  for the potential ergonomic improvements. I just wanted to keep [...] <a href="http://waterstreetgm.org/switching-to-dvorak/"> Continue &#8594;</a>]]></description>
				<content:encoded><![CDATA[<p>You WordPressers will know about the Dvorak keyboard layout, but others might not. You can read the <a href="http://ma.tt/2003/08/on-the-dvorak-keyboard-layout/" target="_blank">seminal piece</a> from WordPress founder, Matt Mullenweg on why you might want to switch. I won&#8217;t get into any of it here, but will say that I&#8217;m switching  for the potential ergonomic improvements.</p>
<p>I just wanted to keep track of my progress as I went along. Thus:</p>
<h3>Week 1:</h3>
<ul>
<li>They said it would be hellish. They didn&#8217;t lie. Remapping your brain after so long is extremely slow and frustrating. Having said that&#8230;</li>
<li>In just over a week, here I am typing this email. I&#8217;m not fast, but it&#8217;s still cool.</li>
<li>The Dvorak layout is exponentially better than QWERTY. Of course it should be, but I never expected such a difference. There&#8217;s just so much less travelling for your fingers to do</li>
<li>Dvorak+Cmd is actually the layout you want to try (instead of straight Dvorak). This allows the cmd key to override Dvorak and switch back to QWERTY while pressed, thus preserving your common left-hand keystrokes (copy, paste, close, etc)</li>
<li>For it to work at all, you need to really to 100% switch. I haven&#8217;t gone back to QWERTY since last week. It&#8217;s been an epic pain, but I&#8217;m already way better because of it</li>
<li>Typing is one thing, coding is quite another. Re-learning to type PHP, CSS, HTML and dozens of terminal commands is extremely hard on your head (I type the word &#8216;git&#8217; dozens and dozens of times every day, but I just can&#8217;t seem to get the pattern to sink in!)</li>
</ul>
<p>And that&#8217;s it for week one!</p>
<h3>Week 2:</h3>
<p>Things are slowly getting better. And I mean slowly. Here&#8217;s the take-aways from week 2:</p>
<ul>
<li>I hadn&#8217;t realized how much of the keyboard layout I had stored in my muscle memory (as opposed to my actual memory). Turns out that it&#8217;s a lot. I start almost from scratch every morning until I type a few lines and remind my muscles what we&#8217;re doing. Hence&#8230;.</li>
<li>Start each day with by typing a few &#8220;quick&#8221; paragraphs</li>
<li>Writing code is absolutely brutal. Writing &lt;?php if () {}; ?&gt; still takes extreme concentration</li>
<li>Using the terminal is just as brutal—cd, mv, mkdir, ls, ls-la, git, etc—I was so quick with these before, they&#8217;re all very difficult to remap in my head</li>
<li>Overall, it is getting slowly getting better — it feels a little like learning Ruby after only knowing PHP. The syntax is so short and readable. Still completely foreign at first, but it just <em>feels </em>like it&#8217;s going to<em> </em>better in the long-run</li>
<li>I can definitely tell that the layout is 100% better. Your fingers travel <em>way</em> less.  But I&#8217;m far from experiencing any ergonomic benefit—typing this slowly means that you&#8217;ll have your hands and wrists in typing mode all the time, which gets tiring quickly</li>
<li>Last: I hope my backspace key is good and strong! I hit it at least every third letter!</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://waterstreetgm.org/switching-to-dvorak/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The trouble with learning Javascript</title>
		<link>http://waterstreetgm.org/the-trouble-with-learning-javascript/</link>
		<comments>http://waterstreetgm.org/the-trouble-with-learning-javascript/#comments</comments>
		<pubDate>Wed, 30 Jan 2013 17:32:28 +0000</pubDate>
		<dc:creator>saltcod</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Learning]]></category>

		<guid isPermaLink="false">http://waterstreetgm.org/?p=2514</guid>
		<description><![CDATA[So, I&#8217;ve been trying to actually learn Javascript this year. I say actually in italics like that because I&#8217;ve actually been trying to learn Javascript for years. Maybe I&#8217;ll actually get there this year—who knows. Anyway, Tom MacWright recently tweeted a link to these fantastic slides from Max Ogden (you can watch the video too). You know, Max Ogden the Javascript for [...] <a href="http://waterstreetgm.org/the-trouble-with-learning-javascript/"> Continue &#8594;</a>]]></description>
				<content:encoded><![CDATA[<p>So, I&#8217;ve been trying to <em>actually</em> learn Javascript this year. I say <em>actually </em>in italics like that because I&#8217;ve <em>actually</em> been trying to learn Javascript for years. Maybe I&#8217;ll <em>actually </em>get there this year—who knows.</p>
<p>Anyway, <a href="http://macwright.org/" target="_blank">Tom MacWright </a>recently tweeted a link to these <a href="http://maxogden.github.com/slides/empirejs/index.html#0" target="_blank">fantastic slides</a> from <a href="http://maxogden.com/" target="_blank">Max Ogden</a> (you can watch the video <a href="http://www.youtube.com/watch?v=GeCWaTML3D0" target="_blank">too</a>). You know, Max Ogden the <a href="http://jsforcats.com/" target="_blank">Javascript for Cats</a> guy. He brings up dozens of well thought out points, but I want to pull out just a few of the first ones:</p>
<blockquote>
<ol>
<li>We need better introductory materials [for teaching JS]</li>
<li>the better you get, the worse you get at teaching</li>
<li>people are going nuts over programming education</li>
</ol>
</blockquote>
<p>Let&#8217;s start at the end—that one is very hard to refute. The world (that I live in) is basically going nuts over programming education. There are dozens of very good sites to go learn about programming specifically, and Computer Science in general. Codecademy, Codeschool, Hacker School, The Starter League, open courses from Stanford and MIT, Udacity, and many, many more. Here&#8217;s <a href="http://thenextweb.com/dd/2012/10/21/so-you-want-to-be-a-programmer-huh-heres-25-ways-to-learn-online/" target="_blank">25 brand new options for you</a>. The choice is paralyzing.</p>
<p>That dilemma of choice, leads us to item #2 above: &#8220;the better you get&#8230;the worse you get&#8221; idea. I couldn&#8217;t agree more with this one. Just go have a look at <a href="http://www.manning.com/bibeault2/" target="_blank">jQuery in Action</a> for a perfect example of this. The authors certainly mean well, but the book is so needlessly dense and technical (at least for me) that I found myself quickly turned off. This problem isn&#8217;t pervasive or all that limiting, however. There are still lots of amazing teachers out there—<a href="https://tutsplus.com/course/30-days-to-learn-jquery/" target="_blank">Jeffrey Way</a> for example, is as good a teacher as you&#8217;ll find anywhere.</p>
<p>So far then, our greatest issues are the overabundant choice of resources, and teachers who have lost touch with their beginner roots. But again, given the variety out there, these are fairly minor issues. What about #1? Do we need better introductory materials? I certainly don&#8217;t think so. <a href="http://jsforcats.com/" target="_blank">JS for Cats</a> is superb, <a href="http://jqfundamentals.com/" target="_blank">jQuery Fundamentals</a> is excellent, as is <a href="https://tutsplus.com/course/30-days-to-learn-jquery/" target="_blank">30 Days to jQuery</a>, Lynda.com has great stuff, Codecademy and Codeschool are both great, and then there&#8217;s the mountain of good books out there. There are many, many, many fantastic places for beginners to learn the basics of both Javascript and jQuery. Within a few weeks of moderate effort, you can learn all kinds about the basics of Javascript and move your way up to doing pretty cool interaction-y things with jQuery. The main things you&#8217;ll cover in all the basic Javscript courses are right here (pretty much):</p>
<pre class="brush: jscript; title: ; notranslate">

// Basic stuff
var myStringVariable = &quot;I am a string!&quot;;
var myNumberVariable = 5;
var combined = &quot;Strings and numbers like &quot; + myNumberVariable + &quot; can coexist! &quot;

// Arrays
var animals = [ 'cat', 'dog', 'sheep', 'cow' ];
console.log(animals[0]);

// Loops
for ( i=0; i &lt; animals.length; i++ ){
	console.log(&quot;I love my pet &quot; + animals[i]);
}

// Objects
var cat = {
	name: &quot;Harold&quot;,
	favouriteFood: &quot;bacon&quot;,
	favouriteSleepSpot: 'couch'
};

console.log(&quot;The name of my cat is &quot; + cat.name)

// Logic

if( cat.name === &quot;Harold&quot; ){
	console.log(&quot;That sure is a great name for a cat!&quot;)
}

// Functions
var area = function(length, width){
	return length * width;
}

// And last, the holy grail for basics: mixing objects and functions
var cat = {
	name: &quot;Harold&quot;,
	favouriteFood: &quot;bacon&quot;,
	favouriteSleepSpot: 'couch',
	weight: function(pounds){
		console.log(&quot;Your cat is called &quot; + name + &quot;. And he weighs &quot; + weight + )
	}
};
</pre>
<p>This isn&#8217;t everything—by a long shot— but there&#8217;s a lot of basics in there. And once you&#8217;ve gotten all of these, you&#8217;re well on your way to Javascript zen (right?). Not so fast.</p>
<h2>So what is the problem with learning Javascript then?</h2>
<p>The trouble I keep running into, is moving from all this basic stuff to that "next level." I feel like I've come a good ways with the basics—though it's all fairly unimpressive stuff, I wrote all that sample code above, without any examples to go by, and I definitely could not have done that last month. But I'm finding that I just can't make that next step. It feels like all the gold these days is in ajax, JSON, and APIs, but I just find much of that stuff to be over my head right now. I've spent a fair amount of time studying the fundamentals, and I think that with practice, things like arrays and objects and loops will all become second nature. But at this stage, I really don't know how I'm going to get from here to where I want to be.</p>
<h3>A bridge too far</h3>
<p>The trouble with progressing with your Javascript knowledge is that there's no bridge between the fundamentals and the gold. The internet that I live on is certifiably obsessed with this gold—APIs, open data, Node.js, Backbone, and the <a href="http://addyosmani.github.com/todomvc/" target="_blank">75,000</a> Backbone alternatives—but I've found it almost impossible to sort out how to get started with any of them. I still dont' actually know what Node is/does, I can't figure out why/when/where you'd need something like Backbone, and <em>every single </em>API I've looked at has its own domain-specific quirks. To top off the issues with APIs, they change <em>so</em> fast. A Twitter API tutorial from 2 or 3 years ago is almost useless now, for example.</p>
<p>As for Backbone, I came across a fantastic piece of evidence to support my theories the other day.  This tutorial from Ramakrishna Nadella wants go step by step from <a href="https://github.com/kjbekkelund/writings/blob/master/published/understanding-backbone.md/" target="_blank">jQuery to Backbone</a>—it seemed perfect for me! Let's just say that it wasn't. I was lost from the very first code example—well before he began talking about "separating DOM and Ajax (whatever that means).</p>
<h2>Where next?</h2>
<p>Speaking of Tom MacWright, I was looking at his <a href="https://github.com/tmcw/dc-government" target="_blank">dc-government repo</a> the other day, and was really interested in what I saw on first glance. It looked like he was connecting some simple json data with an equally simple html page. I thought, "Hey! This is a perfect place to start!"  I thought I'd be able to figure out how to gather up some of my own data, do some of my fancy Javascripting on it, and append it to my own magical web page somehow. Spoiler: <em>I couldn't. </em></p>
<p>But I think something like this is a perfect place to start on what I'll call <em>Generation II Javascript Learning</em>. A course centered around this kind of project would be absolutely perfect for me at this stage. I've been playing with jQuery for a few years (and know it reasonably well), and now I have a fairly good grasp of Javascript basics.  Basically, something in the middle of jQuery and Node/Backbone is what I'm looking for, and I've found very little. I'd love it if I could come across a site or program that looked something like this:</p>
<h3>Generation II Javascript Learning (for Intermediates)</h3>
<ol>
<li><strong>Basics</strong> — what you should know (Javascript and  jQuery basics)</li>
<li><strong>$.ajax</strong> — Ajax is always an add-on chapter in jQuery books. It shouldn't be.</li>
<li><strong>$.each</strong> — Loops are covered in great detail in beginners guides, but $.each is never covered. It's very important when dealing with #4 below.</li>
<li><strong>JSON</strong> — creating it, accessing it, looping through it, filtering what you find</li>
<li><strong>APIs</strong> — Just focus on GET requests from one single API. Pick Facebook or Twitter or Flickr or something, and focus on it. No POSTs, just GET. POST involves a whole pile of other stuff that you don't need at this stage. Just focus on the easier part (GET) and build from there.</li>
<li><strong>Project A — </strong>Build a tweet-fetcher or a Flickr picture getter, or something like that using a well-established API. STEP BY STEP.</li>
<li><strong>Project B</strong> — Build an interface that does something with an actual json data source. IE: Read from a json file into variables, do calculations and fancy things with those variables, and append the results to a web page.  Perhaps a Dashboard of some kind that reads static json data, does some calculations, builds some charts, etc</li>
</ol>
<h2>In conclusion</h2>
<p>This has been long enough. Let's quickly summarize:</p>
<ol>
<li><span style="line-height: 13px;">There's an enormous wealth of materials out there for beginners. Enormous. Choice is both a blessing and a curse here, but if you're just starting out, it's a blessing. If one site isn't keeping you interested, try another. </span></li>
<li>There's little out there to help bridge people from <em>Beginner</em> to <em>Intermediate </em>level. I'm not saying that it isn't hard work, I'm suggesting that there's way more material out there for beginners than for people who know the basics.</li>
<li>Learning Ajax is more difficult than it should be, and learning about JSON and APIs is still completely wild-west. The info that currently exists is mostly for people who already know this stuff, not for beginners.</li>
<li>It would help if learning materials defined this new audience and marketed to them. Learning about Ajax and JSON in the same detail as in beginner courses would be amazing.</li>
</ol>
<p>I'd love to other beginners' thoughts on this, as well as from more seasoned Javascript developers  How did you get over the hump? Maybe I'm the only one finding myself stuck in these predictable ruts with learning Javascript. Maybe. But I doubt it.I don't have comments here because...well...you know...but please send me a reply on <a href="https://twitter.com/saltcod" target="_blank">Twitter</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://waterstreetgm.org/the-trouble-with-learning-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>We all benefit from better design.</title>
		<link>http://waterstreetgm.org/we-all-benefit-from-better-design/</link>
		<comments>http://waterstreetgm.org/we-all-benefit-from-better-design/#comments</comments>
		<pubDate>Thu, 24 Jan 2013 20:07:31 +0000</pubDate>
		<dc:creator>saltcod</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://waterstreetgm.org/?p=2510</guid>
		<description><![CDATA[Great story on Google&#8217;s evolving design language and the team behind it. We all benefit from better design. theverge.com/2013/1/24/3904… &#8212; Doug Bowman (@stop) January 24, 2013 The last line of this tweet hit me right in the face today. We all benefit from better design. I guess I&#8217;ve never really thought about it before, but [...] <a href="http://waterstreetgm.org/we-all-benefit-from-better-design/"> Continue &#8594;</a>]]></description>
				<content:encoded><![CDATA[<blockquote class="twitter-tweet" width="550"><p>Great story on Google&#8217;s evolving design language and the team behind it. We all benefit from better design. <a href="http://t.co/OgwU3ZUR" title="http://theverge.com/2013/1/24/3904134/google-redesign-how-larry-page-engineered-beautiful-revolution">theverge.com/2013/1/24/3904…</a></p>
<p>&mdash; Doug Bowman (@stop) <a href="https://twitter.com/stop/status/294516158420365312">January 24, 2013</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<p>The last line of this tweet hit me right in the face today. <em>We all benefit from better design</em>.</p>
<p>I guess I&#8217;ve never really thought about it before, but &#8220;modern design&#8221; or a &#8220;modern aesthetic&#8221; is like a fluid, always-moving glacier. New stuff and old stuff constantly grind against it, and somewhere in the middle there&#8217;s a loose convergence of colour, style, shape, feeling, experience.</p>
<p>What I like most about it is that it enables us to imagine a modern aesthetic. I know that that isn&#8217;t an actual thing that you can point to or print off, and you&#8217;d probably never get two people to agree on it, but it does provide some weight to your opinions. At the moment, for example, its flat, has muted colours, and often has thin sans-serif type. You can love or hate it, agree or disagree, but it&#8217;s true. In a year&#8217;s time, it will <em>generally</em> be something different. Again, the older and the newer will still be there, but we&#8217;ll still have a new, pervading &#8220;modern aesthetic.&#8221;</p>
<p>What excites me about this most is the weight it lends to a new design of your&#8217;s. When you present a prospective design to a client or boss, and they hate it because it&#8217;s &#8220;grey&#8221; or because it&#8217;s &#8220;boring&#8221; and &#8220;flat&#8221;, you can point them to something huge like Google and tell them to get with the times.</p>
<p>This excites me quite a bit.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://waterstreetgm.org/we-all-benefit-from-better-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Please don&#8217;t help my kids</title>
		<link>http://waterstreetgm.org/please-dont-help-my-kids/</link>
		<comments>http://waterstreetgm.org/please-dont-help-my-kids/#comments</comments>
		<pubDate>Wed, 23 Jan 2013 15:17:23 +0000</pubDate>
		<dc:creator>saltcod</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://waterstreetgm.org/?p=2504</guid>
		<description><![CDATA[I want them to tire of their own limitations and decide to push past them and put in the effort to make that happen — Kate Bassford Baker From a fantastic piece on life, parenting and the nature of self-discovery through disappointment. via Kottke]]></description>
				<content:encoded><![CDATA[<blockquote><p>I want them to tire of their own limitations and decide to push past them and put in the effort to make that happen</p></blockquote>
<p>— <a href="http://alameda.patch.com/blog_posts/please-dont-help-my-kids">Kate Bassford Baker</a></p>
<p>From a fantastic piece on life, parenting and the nature of self-discovery through disappointment. via <a href="http://kottke.org/13/01/please-dont-help-my-kids">Kottke</a></p>
]]></content:encoded>
			<wfw:commentRss>http://waterstreetgm.org/please-dont-help-my-kids/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Functions in Javascript (are objects too!)</title>
		<link>http://waterstreetgm.org/functions-in-javascript-are-objects-too/</link>
		<comments>http://waterstreetgm.org/functions-in-javascript-are-objects-too/#comments</comments>
		<pubDate>Wed, 23 Jan 2013 13:27:08 +0000</pubDate>
		<dc:creator>saltcod</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://waterstreetgm.org/?p=2499</guid>
		<description><![CDATA[I meant to post this great piece from John Resig last year when I came across it, but forgot. Better late than never! If you&#8217;re still in the beginning stages with Javascript, like me, you&#8217;ve read countless times that &#8220;everything is an object.&#8221; That&#8217;s pretty cool, I guess. But what does that actually mean? Is everything, [...] <a href="http://waterstreetgm.org/functions-in-javascript-are-objects-too/"> Continue &#8594;</a>]]></description>
				<content:encoded><![CDATA[<p>I meant to post this <a href="http://ejohn.org/blog/javascript-as-a-first-language/">great piece from John Resig</a> last year when I came across it, but forgot. Better late than never! If you&#8217;re still in the beginning stages with Javascript, like me, you&#8217;ve read countless times that &#8220;everything is an object.&#8221; That&#8217;s pretty cool, I guess. But what does that actually mean? Is <em>everything, </em>everything an object? What encompasses <em>everything</em> anyway? Are variables objects? Strings? Numbers? Arrays?</p>
<p>Though it all sounds pretty cool, the problem with the &#8220;everything is an object&#8221; for beginners is that it&#8217;s still fairly abstract. You still don&#8217;t know what you can even do with objects—you just know that everything is one.  Seeing that functions were objects was a ground-breaking moment for me. It came when I read these few lines:</p>
<blockquote><p>// Don&#8217;t do this: function getData() { }</p>
<p>// Do this instead: var getData = function() { };</p></blockquote>
<p>There it is. Plain as day. That function you&#8217;re creating can be used just like any old variable. Though there&#8217;s no real difference between the two, it&#8217;s a fantastic way for beginners (like me!) to think about functions.</p>
<p>Functions are one of the biggest stumbling block for beginners, imo. Getting to the point where you can pass the return value(s) from one function to another is really a holy grail and indicates that you&#8217;re actually &#8220;getting it.&#8221; Hopefully this will help with that.</p>
]]></content:encoded>
			<wfw:commentRss>http://waterstreetgm.org/functions-in-javascript-are-objects-too/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Myth of Lance Armstrong</title>
		<link>http://waterstreetgm.org/the-myth-of-lance-armstrong/</link>
		<comments>http://waterstreetgm.org/the-myth-of-lance-armstrong/#comments</comments>
		<pubDate>Thu, 17 Jan 2013 12:41:55 +0000</pubDate>
		<dc:creator>saltcod</dc:creator>
				<category><![CDATA[Articles]]></category>

		<guid isPermaLink="false">http://waterstreetgm.org/?p=2488</guid>
		<description><![CDATA[Lance Armstrong was not a man, he was an idea; an American myth like Honest Abe and Johnny Appleseed. He was the little engine, brutalized by illness and then savaged by opponents, who could anyway, somebody who shrugged off hate and always took the high road. —Michael Specter, The New Yorker]]></description>
				<content:encoded><![CDATA[<blockquote><p>Lance Armstrong was not a man, he was an idea; an American myth like Honest Abe and Johnny Appleseed. He was the little engine, brutalized by illness and then savaged by opponents, who could anyway, somebody who shrugged off hate and always took the high road.</p></blockquote>
<p>—<a href="http://www.newyorker.com/online/blogs/sportingscene/2013/01/what-lance-armstrong-did.html" target="_blank">Michael Specter, The New Yorker</a></p>
]]></content:encoded>
			<wfw:commentRss>http://waterstreetgm.org/the-myth-of-lance-armstrong/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Git: Why you should never commit directly to master</title>
		<link>http://waterstreetgm.org/git-why-you-should-never-commit-directly-to-master/</link>
		<comments>http://waterstreetgm.org/git-why-you-should-never-commit-directly-to-master/#comments</comments>
		<pubDate>Wed, 09 Jan 2013 15:02:09 +0000</pubDate>
		<dc:creator>saltcod</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Git]]></category>

		<guid isPermaLink="false">http://waterstreetgm.org/?p=2484</guid>
		<description><![CDATA[I&#8217;ve known for a while that you shouldn&#8217;t commit to your master branch in Git. I&#8217;ve seen random tweets about it, read a blog post or two when someone talked through their workflow, but it never really clicked why you wouldn&#8217;t want to commit to master all the time. Until yesterday. The scenario: So, I [...] <a href="http://waterstreetgm.org/git-why-you-should-never-commit-directly-to-master/"> Continue &#8594;</a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve known for a while that you shouldn&#8217;t commit to your master branch in Git. I&#8217;ve seen random tweets about it, read a blog post or two when someone talked through their workflow, but it never really clicked why you wouldn&#8217;t want to commit to master all the time. Until yesterday.</p>
<p><strong>The scenario: </strong>So, I was working on a website that has been live for a few months now. I&#8217;ve been regularly pushing fixes and new features by just committing to the master branch and pushing that: Add some new footer info, change a few css styles, add a few lines of jQuery, etc. No sweat.  I&#8217;d just make the changes, commit and push them, and then they were live. The trouble reared its head yesterday as I was working on a fairly large new feature. The changes spanned about 5 different files, and nothing was ready to go live yet. My coworker messaged me saying—&#8221;I just added a table to a page, but it&#8217;s completely unstyled. Do you need to add some css?&#8221;</p>
<p>Here I was, with a ton of changes made to a pile of different files, my local master is about 10 commits ahead of my live master, and I need to push about 5 lines of css.</p>
<p><strong>What did I do? </strong>In the end, I was able to use <a href="http://mac.github.com/" target="_blank">Github&#8217;s app</a> to select and commit <em>only</em> the lines I needed in my css file, and run <code>git push origin XXXXXXXXXX:master</code> with the latest commit id. The problem was that I ended up doing that all day. Pushing individual commits to the live server all day is really, really stupid.</p>
<p><strong>What I should have done: </strong>A month ago, when I started working on that new big feature, I should have created a new branch for it. If I&#8217;d done this, pushing those table styles yesterday would have been really painless. Basically, I would have had three branches yesterday:</p>
<ol>
<li>master</li>
<li>new_feature</li>
<li>table_styles</li>
</ol>
<p>I would have worked in the <code>table_styles</code> branch, writing all my css there, and then merged the changes into <code>master</code> before pushing it live. When I was done merging, all I needed to do was delete the <code>table_styles</code> branch, and I&#8217;m all set to continue working in <code>new_feature</code>.</p>
<p><strong>The takeaway advice: </strong>(Clearly) I&#8217;m no Git expert, but next time you commit to <code>master</code>, ask yourself if what you&#8217;re working on shouldn&#8217;t be happening in a new branch, and get merged into <code>master</code> when you&#8217;re done. My new practice is creating a new branch for <em>every </em>new thing I work on. This way, master will always be ready for quick hotfixes and minor changes.</p>
<p><em>I&#8217;m a complete noob, I know! Maybe I didn&#8217;t know before, or maybe it was just laziness, but yesterday was literally my first a-ha moment with this. If you&#8217;re just starting with Git, you should really get into the habit of using branches. The <a href="http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging" target="_blank">official guide</a> will do a great job of showing you how to use branches, and I hope I&#8217;ve just done an ok job at showing you why you should. </em></p>
]]></content:encoded>
			<wfw:commentRss>http://waterstreetgm.org/git-why-you-should-never-commit-directly-to-master/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On Contributing to WordPress</title>
		<link>http://waterstreetgm.org/on-contributing-to-wordpress/</link>
		<comments>http://waterstreetgm.org/on-contributing-to-wordpress/#comments</comments>
		<pubDate>Mon, 10 Dec 2012 16:09:43 +0000</pubDate>
		<dc:creator>saltcod</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://waterstreetgm.org/?p=2469</guid>
		<description><![CDATA[WordPress 3.5 was the first release that I&#8217;ve had any meaningful involvement in as a contributor. Before this, I&#8217;d spent time lurking around in IRC and browsing around tickets in Trac, but with no real purpose or intention. With 3.5, I really wanted to try and see what I could contribute. The result? Well, if [...] <a href="http://waterstreetgm.org/on-contributing-to-wordpress/"> Continue &#8594;</a>]]></description>
				<content:encoded><![CDATA[<p>WordPress 3.5 was the first release that I&#8217;ve had any meaningful involvement in as a contributor. Before this, I&#8217;d spent time lurking around in IRC and browsing around tickets in Trac, but with no real purpose or intention. With 3.5, I really wanted to try and see what I could contribute.</p>
<p>The result? Well, if you look real close in the screen below, you&#8217;ll see my name in the bright lights near the bottom. Seeing my name on this page was <em>extremely</em> exciting.</p>
<h3><img class="alignnone size-full wp-image-2470" title="Screen shot 2012-12-10 at 10.48.51 AM" src="http://waterstreetgm.org/wp-content/uploads/2012/12/Screen-shot-2012-12-10-at-10.48.51-AM.png" alt="" /></h3>
<h3>But then the guilt</h3>
<p>Truthfully, although my name does magically appear on the credits page, I must confess that I did very close to nothing to help out with the development and release of WordPress 3.5. Very early on, I participated in some discussions on a new look for the Welcome screen, I very briefly popped in to talk about the &#8220;Page on front&#8221; workflow, I suggested that icons <a href="http://core.trac.wordpress.org/ticket/21368" target="_blank">might be nice</a> on the welcome panel, and I thought that a border <a href="http://core.trac.wordpress.org/changeset/21265" target="_blank">might be nice</a> under h2 tags in the Twenty Twelve theme. Like I said, in the scope of this thing, I contributed almost nothing.</p>
<h3>Why didn&#8217;t I do more?</h3>
<p>There are two main answers here:  A) I just didn&#8217;t. Simple as that. And, B) the technical reasons.</p>
<p>Before I say anything about B), I want to make it absolutely clear that I <em>did not</em> do all I could to overcome the technical hurdles I faced when trying to contribute. I didn&#8217;t read as much as I should have, I didn&#8217;t reach out enough when I ran into issues or got confused, I didn&#8217;t develop a deep enough understanding of Trac, I didn&#8217;t step up and claim ownership of issues I could actually help fix. I want to make that crystal clear that I personally did not do enough to overcome the issues I ran into. Ok, so onto B: the technical issues.</p>
<h3>Technical Overhead</h3>
<p>Contributing to WordPress comes with a lot of overhead. Knowing how to setup a local install of the latest version, keeping that up to date, creating patches, applying patches, and I haven&#8217;t even mentioned <a href="http://core.trac.wordpress.org/" target="_blank">Trac</a> yet. A lot of the issues I had have already been pointed out in the notes from the <a href="http://make.wordpress.org/summit/2012/11/14/engaging-retaining-new-community-devs/" target="_blank">&#8220;Engaging/Retaining New Community Devs&#8221;</a> at this year&#8217;s community summit, but I want to<br />
specifically go through a few of the issues/questions I had here:</p>
<p>1. <strong>I use Git</strong>. Is that ok? Should I just learn svn already? Update: <em>Scribu posted a great, concise <a href="http://scribu.net/wordpress/contributing-to-wordpress-using-github.html" target="_blank">how-to</a>. Sounds like you&#8217;ll never need svn again.</em></p>
<p>2. <strong>Making patches.</strong> <a href="http://helenhousandi.com/" target="_blank">Helen</a> very kindly walked me through the process of making a patch. Very soon after, however, with no practice, I&#8217;d forgotten the basic steps</p>
<p>3. <strong>Keeping my repo in sync.</strong> So, I clone WordPress from Github per <a href="http://markjaquith.wordpress.com/2011/05/26/developing-on-wordpress-using-git/" target="_blank">Mark Jaquith&#8217;s instructions</a> and start working on a ticket. As soon as touch a single line of code, my repo is out of step. What do I do now? I&#8217;m positive I&#8217;m not doing this right, but I don&#8217;t the right way to do it.</p>
<p>4. <strong>#Trac. </strong>How people can find and sort tickets to issues is just beyond me. I find Trac to be almost a complete mystery. How do I find open tickets? How can I get a list of tickets that I might be able to work on?</p>
<p>5. <strong>#wordpress-dev. </strong>The folks who inhabit #wordpress-dev on IRC are extremely knowledgeable and helpful. They&#8217;re also very busy and focused. This definitely isn&#8217;t the place for questions like &#8220;how do I make a patch&#8221; when we&#8217;re right in the middle of heavy development. But outside of there, I don&#8217;t really know where else to ask that question.</p>
<p>6. <strong>Foraging for resources. </strong>I wish there was one good, comprehensive guide to contributing that brought you through all the steps. Everything from cloning the repo, making changes and not &#8216;breaking&#8217; the repo, searching Trac for a ticket, creating/applying a patch, etc, etc. There are a lot of great resources out there, but they&#8217;re scattered around and sometimes not easy to find.</p>
<h3>A few ideas</h3>
<p>I can&#8217;t just create a list of problems without suggesting some ideas to help fix them. Two things stand out for me as being potentially huge for new-comers like me:</p>
<p>1. <strong>Mentoring. </strong>The word mentoring is loaded, I know. It comes with connotations of a long, arduous and time-consuming process but it doesn&#8217;t need to be. My suggestion? Create a place where a mentor can help walk you through three tickets. That&#8217;s it. In the process of working through these three tickets, the mentor can teach the new person how to set up a local repo, create/apply patches, and give them the basics of Trac. I think three tickets would be more than enough to get someone started.</p>
<p>So&#8230;..the real question here is — where do we get these tickets?</p>
<p>2. <strong>Identifying/tagging &#8216;easy&#8217; tickets</strong>. Early in the release development cycle, you see lots of &#8220;easy&#8221; tickets floating around Trac. I&#8217;ve seen some that require changing a single line of css! Tickets like this would make a perfect starting point for someone new. Here&#8217;s how it might work:  A ticket would be tagged as &#8220;easy&#8221; or &#8220;beginner&#8221; and a mentor would assign it to their new student. Tagging a ticket with &#8220;beginner&#8221; would mean that an experienced person should leave the ticket alone until a new person has had a crack at it.</p>
<p>This process would really get to the root of my issues pretty fast. Having three easily solvable issues assigned to me, with the support of an experienced mentor would be huge.</p>
<h3>A brief afterword</h3>
<p>As I hope I&#8217;ve already made perfectly clear, many of the issues I encountered in the past few months could have been solved by simply trying harder and persisting more. That said, there really is a lot to learn, and the biggest part for me was finding something small and &#8220;easy&#8221; to learn with. As you would expect, as soon as a simple ticket shows up, someone has a patch created in a few minutes. I really think that leaving some of these easier issues in reserve for new-comers, and actually assigning them, would be extremely helpful. While I recognize that this would slow down development, I think it would really be worthwhile, at least early in the cycle, to have new-comers get their feet wet with actual tickets.</p>
]]></content:encoded>
			<wfw:commentRss>http://waterstreetgm.org/on-contributing-to-wordpress/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
