<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Treehouse Blog</title>
	
	<link>http://blog.teamtreehouse.com</link>
	<description>Learn skills to change the world today!</description>
	<lastBuildDate>Sat, 25 May 2013 17:30:34 +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>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/teamtreehouse" /><feedburner:info uri="teamtreehouse" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Should You Learn to Program?</title>
		<link>http://feedproxy.google.com/~r/teamtreehouse/~3/Zo-uHTlQhIA/should-you-learn-to-program</link>
		<comments>http://blog.teamtreehouse.com/should-you-learn-to-program#comments</comments>
		<pubDate>Sat, 25 May 2013 17:30:34 +0000</pubDate>
		<dc:creator>Spencer Fry</dc:creator>
				<category><![CDATA[Learn to Code]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Spencer Fry]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://blog.teamtreehouse.com/?p=21786</guid>
		<description><![CDATA[<p>A lot of people ask me if they should learn to program. They’ve seen that learning to program in 2012 allowed me to launch my new startup, Uncover, just a year later. Mainly I’ve heard from aspiring entrepreneurs who have &#8230;<span class="continue-reading"><a href="http://blog.teamtreehouse.com/should-you-learn-to-program">Continue reading <span class="meta-nav">&#8594;</span></a></span></p><p>The post <a href="http://blog.teamtreehouse.com/should-you-learn-to-program">Should You Learn to Program?</a> appeared first on <a href="http://blog.teamtreehouse.com">Treehouse Blog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>A lot of people ask me if they should learn to program. They’ve seen that learning to program in 2012 allowed me to launch my new startup, <a href="http://uncover.com" title="Uncover">Uncover</a>, just a year later. Mainly I’ve heard from aspiring entrepreneurs who have had a <a href="http://blog.teamtreehouse.com/how-learning-to-program-got-me-a-technical-co-founder">difficult time finding a technical co-founder</a>. They ask me if learning to program is their best bet for getting their idea off the ground. But plenty of regular folks from around the world are asking me: “Will I be left behind in five years if I don’t learn basic programming?”</p>
<p> The simple answer is: yes, learn to program.</p>
<p>I believe that everyone should at least learn basic programming skills. Programming is a language like any other, and as the world becomes more and more technical, I’d go as far as to say that in the years to come programming will replace Spanish, French and other languages as a second language in schools. It’ll be more useful, as technology becomes the world’s language.</p>
<p>In <em>Program or Be Programmed: Ten Commands for a Digital Age</em>, Douglass Rushkoff argues that now more than ever it’s time to learn to program: “Understanding programming &#8212; either as a real programmer or even, as I’m suggesting, as more of a critical thinker &#8212; is the only way to truly know what’s going on in a digital environment, and to make willful choices about the roles we play.”</p>
<p>For those of you who aspire to understand technology &#8212; and if you’re reading this then that’s most of you &#8212; there’s no better way to do that then to build things. As a builder of software, you see first-hand what goes into making something work. Even those of you who do not aspire to make things for a living will come away with a more critical understanding of the way the world works.</p>
<p>Not only can I build whatever ideas pop into my head, but also, since learning to program, I look at the world in a different light. How so? Well, as a programmer you learn to think about problems both objectively and by taking into account all outcomes. There are only positive outcomes that can come from learning a new skill, and programming is the skill of our future.</p>
<p>The post <a href="http://blog.teamtreehouse.com/should-you-learn-to-program">Should You Learn to Program?</a> appeared first on <a href="http://blog.teamtreehouse.com">Treehouse Blog</a>.</p><img src="http://feeds.feedburner.com/~r/teamtreehouse/~4/Zo-uHTlQhIA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.teamtreehouse.com/should-you-learn-to-program/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.teamtreehouse.com/should-you-learn-to-program?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=should-you-learn-to-program</feedburner:origLink></item>
		<item>
		<title>Great Application Design Comes Before the Pixels</title>
		<link>http://feedproxy.google.com/~r/teamtreehouse/~3/e3vVdfj5GfM/great-application-design-comes-before-the-pixels</link>
		<comments>http://blog.teamtreehouse.com/great-application-design-comes-before-the-pixels#comments</comments>
		<pubDate>Sat, 25 May 2013 13:30:21 +0000</pubDate>
		<dc:creator>Mat Helme</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Make a Website]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[Web Industry]]></category>
		<category><![CDATA[app design]]></category>
		<category><![CDATA[brainstorming]]></category>
		<category><![CDATA[mat helme]]></category>
		<category><![CDATA[sketching apps]]></category>
		<category><![CDATA[wireframing]]></category>
		<category><![CDATA[wireframing applications]]></category>

		<guid isPermaLink="false">http://blog.teamtreehouse.com/?p=21784</guid>
		<description><![CDATA[<p>A couple weeks back I wrote an article titled 5 Reasons Sketching Wireframes in Groups is So Important. I explained the importance of wireframing on paper and why working in groups is so crucial to your app&#8217;s success. In this article &#8230;<span class="continue-reading"><a href="http://blog.teamtreehouse.com/great-application-design-comes-before-the-pixels">Continue reading <span class="meta-nav">&#8594;</span></a></span></p><p>The post <a href="http://blog.teamtreehouse.com/great-application-design-comes-before-the-pixels">Great Application Design Comes Before the Pixels</a> appeared first on <a href="http://blog.teamtreehouse.com">Treehouse Blog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>A couple weeks back I wrote an article titled <a href="http://blog.teamtreehouse.com/5-reasons-sketching-wireframes-in-groups-is-so-important">5 Reasons Sketching Wireframes in Groups is So Important</a>. I explained the importance of wireframing on paper and why working in groups is so crucial to your app&#8217;s success. In this article I would like to present you with my process for successful wireframing. Just so we’re clear, there isn’t an absolute way to wireframe. Everyone has their own process when it comes to specific projects. This is my process I&#8217;ve constructed after years of experience in web design and development. Let&#8217;s first talk about the tools needed and then discuss the process.</p>
<h2>The Tools</h2>
<p>I have used just about every digital wireframing application on every device known and nothing compares to tangible tools. Applications are entirely too time consuming and I have become infatuated with detail, thus diverting me away from the purpose of being there. Here are my top five tools for wireframing in order.</p>
<ol>
<li>Sharpie + Printer Paper</li>
<li>Jumbo Marker + Oversized Craft Paper</li>
<li>Dry Erase Marker + Dry Erase Board</li>
<li>Chalk + Chalkboard</li>
<li>Paint Marker + Wall</li>
</ol>
<p>You’ll notice a similarity with all of these grouped objects. The utensils are blunt and the surfaces are blank. There is no need for grids, dots or lines. Save that paper for your logo or icons sketches.</p>
<h2>The Process</h2>
<p>Whether I’m working alone or working in a group, I use the same process. Here is my ten-step process for wireframing success.</p>
<h2>Step 1: Write Down Your End Goal</h2>
<p>In one or two sentences state your goal with the app. Be as specific and short-winded as possible. This is the most important step as it will determine the app&#8217;s direction. If this changes, everything changes. Make sure to nail this down before moving forward. Here are a couple of examples.</p>
<p style="padding-left: 30px">Bob’s Bakery Website:<br />
This application will portrait Bob’s Bakery as a fun, connected, brand for everyone to enjoy. The viewer will feel connected and in need of their products.</p>
<p style="padding-left: 30px">Mobile Weather App:<br />
This application will provide the weather in the simplest way possible.</p>
<p>From these two examples you can see the applications are completely different. The first is a bakery website and the second is a mobile weather app. However they both have three things in common. They both use emotion to describe the application. Also they don’t use functionality to describe the product. This is really important when creating your app goal. Don’t get hung up on the details and functionality, we’ll be here all day. Use emotion to explain your application. Lastly, they both start off with “This application will&#8230;”, this ensures guarantee that your application will exist and acquire these characteristics. By starting this way, you&#8217;ve just brought your application to life.</p>
<h2>Step 2: List Your Content</h2>
<p>I like to refer to this step as puking on the page. I like to take three to ten minutes depending on the project and just write anything and everything you think needs to be in the app. I use sticky notes for this step. This is where features, graphics, copy, video, products, etc&#8230; go. Simply make a long list and understand that nothing is wrong, just write it down.</p>
<p>Then once you have a massive list together start organizing it. Categorize everything into sections. They don’t need to have specific titles but certain things will feel better together than others. Simply rearrange your sticky notes.</p>
<h2>Step 3: Prioritize Your Content</h2>
<p>After you feel you have your notes arranged accordingly, prioritize them by importance. Whatever feels most important goes on top and what feel least important goes on the bottom. Always refer to your main app goal when questioning importance.</p>
<h2>Step 4: Turn Your Content into Shapes</h2>
<p>We are now ready for our Wireframe tools. Grab your blunt object and approach the blank surface. From your list of prioritized content, start making shapes or blob of where you think this should go on the page. So each group turns into a page. Remember we read left to right, top to bottom. If you’d like, you could place your sticky notes in the areas. If not, it doesn&#8217;t matter, just make sure to label it.</p>
<p>Start with your most important categories and then move down the list. If we are dealing with a web application like Bob’s Bakery, never start with a home page layout. That should be the last thing you complete. The home page should be a synopsis of the application, especially if it&#8217;s content heavy.</p>
<h2>Step 5: Make More Options</h2>
<p>Don’t be afraid to make multiple layouts per category section. Maybe it all doesn&#8217;t go in the layout, maybe it tiers down. Give yourself options. If it helps to give yourself a time limit, then do it that way. Create a small deadline, say 10 minutes, and just puke wireframes. Pay no attention to detail, simply communicate and document your idea.</p>
<h2>Step 6: Narrow Down Your Options</h2>
<p>This step works great when doing this in groups. Everyone could make their own layouts and then meet up after 10-15 minutes depending on the project and discuss their options. You will find more often than not, individuals will come up with the same layouts. This immediately flushes out bad UI hence a better UX. By then end of this step you should decide on the direction you want to go in.</p>
<h2>Step 7: Document Your Process</h2>
<p>Don’t throw anything away just yet. Now we have a bunch of content and wireframes we don&#8217;t want to use. Make sure you document them though before getting rid of them. Document each one of your steps and your final layouts before proceeding to the next step. Take photos of the work as they happen.</p>
<h2>Step 8: Break &amp; Revisit</h2>
<p>At this point we’re ready to stop and take a break. Change your focus for at least 15 minutes before revisiting the project. This could be something like getting a cup of coffee or calling it a day. I personally like to exercise at least once a day to change my thought process. There is something about elevating your heart rate that really alters my focus. It&#8217;s almost like a forget about the project. Then when I go back to it, I’m fresh and will immediately know if I or we made the right decision when we narrowed down our options. If something seems off simply look back into your documented process.</p>
<h2>Step 9: Create a Final Rough</h2>
<p>Again using the same tools recreate your final decided layouts. Spend a little more time on it then your original design. Don&#8217;t be bothered with detail just make it more legible. At this point you should have rough final wireframe(s).</p>
<h2>Step 10: Get Digital</h2>
<p>Now it&#8217;s time to crack open an app of your choice and layout your wireframes. This could be Photoshop, Illustrator, Balsamic, Mockingbird, Framer or any other wireframing app. Again, document the process and get ready to start the development process.</p>
<h2>Conclusion</h2>
<p>By having a clear vision of what you want the app to be, we can easily go through the wireframing process step by step and flush out the unnecessary content and layouts. I strongly encourage completing this ten-step process in a group rather than by yourself. If you are building the app yourself, simply buy your friends lunch and ask them to take part as you value their opinion.</p>
<p>Another valid point I would like to leave with is this. The majority of designers are under the assumption that the constructive process of an app is like that of a painting. You take your time and place every pixel in place, then when you launch the app you think you&#8217;re done. This is unfortunately on the contrary, you’ve just begun. Yeah you might you nailed the brand identity, yeah the multi-device functionality is there, but the user experience has just started. Now it&#8217;s time to tweak and tweak until it&#8217;s this amazing piece of digital nector that truly fulfills your app&#8217;s goals.</p>
<blockquote><p>Great application design happens before the pixels and after launch, everything in between is just a manufactured process.</p></blockquote>
<p>The post <a href="http://blog.teamtreehouse.com/great-application-design-comes-before-the-pixels">Great Application Design Comes Before the Pixels</a> appeared first on <a href="http://blog.teamtreehouse.com">Treehouse Blog</a>.</p><img src="http://feeds.feedburner.com/~r/teamtreehouse/~4/e3vVdfj5GfM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.teamtreehouse.com/great-application-design-comes-before-the-pixels/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.teamtreehouse.com/great-application-design-comes-before-the-pixels?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=great-application-design-comes-before-the-pixels</feedburner:origLink></item>
		<item>
		<title>Keeping Your Time in Check</title>
		<link>http://feedproxy.google.com/~r/teamtreehouse/~3/zWmBHtGgRAU/keeping-your-time-in-check</link>
		<comments>http://blog.teamtreehouse.com/keeping-your-time-in-check#comments</comments>
		<pubDate>Fri, 24 May 2013 16:03:00 +0000</pubDate>
		<dc:creator>Josh Long</dc:creator>
				<category><![CDATA[Productivity]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[productivity tips]]></category>

		<guid isPermaLink="false">http://blog.teamtreehouse.com/?p=21782</guid>
		<description><![CDATA[<p>Time is our most valuable resource. We’re losing it all of the time and they’re not making any more of it. It’s sobering to think every moment that passes, is a moment we’ll never get again. I have to remind &#8230;<span class="continue-reading"><a href="http://blog.teamtreehouse.com/keeping-your-time-in-check">Continue reading <span class="meta-nav">&#8594;</span></a></span></p><p>The post <a href="http://blog.teamtreehouse.com/keeping-your-time-in-check">Keeping Your Time in Check</a> appeared first on <a href="http://blog.teamtreehouse.com">Treehouse Blog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Time is our most valuable resource. We’re losing it all of the time and they’re not making any more of it. It’s sobering to think every moment that passes, is a moment we’ll never get again.</p>
<p>I have to remind myself that life is short. Anything that isn’t a life experience, time with friends or family, or time spent going for our dreams, should be called into question.</p>
<p>That being said, the little sneaky time-suckers like tweets, texts, emails, notifications, and meetings, always have a way of finding their way back into our routines. </p>
<p>Every few weeks I have to re-assess my time and hit the productivity reset button. Here are a few strategies I use. I hope they can help you in some way. </p>
<h2>Identify the Critical 3</h2>
<p>It is important to spend the time we do have, accomplishing something of note. It has been my experience that people can rarely do more than three major projects at a time and do them well. </p>
<p>I always stop and make sure that I’m clear on the top three projects or goals that I want to accomplish. This is important because I find that time typically fits into one of three categories: </p>
<ul>
<li>core time</li>
<li>support time</li>
<li>waste of time</li>
</ul>
<p>“Core time” means you’re in the zone and you’re actively working, focused on a core task for great work. “Support time” is the necessary emails, tweets, texts, calls and meetings to do your work. “Waste of time” is the unnecessary emails, tweets, texts, calls, articles, Youtube videos and meetings.</p>
<p>In order to have the most “core time” possible, you have to first identify what that time is and what goals that time needs to accomplish. Decide on your three best projects now and set them as the backbone of your productivity. </p>
<h2>Know When You Are Your Best</h2>
<p>I tend to be my “sharpest” in the early part of the day. This is the time when I need to be writing, coding, and designing (my critical 3). We’re only capable of a few hours of maximum productivity each day and I like to spend that precious time doing the things that are most important to long-term goals. </p>
<p>With carefully planned recovery and downtime throughout  the day, I’m still able to be focused and productive, but just not at the levels I am in the morning. The afternoon is good for learning, building relationships, tackling emails and sharing on Twitter. </p>
<p>Knowing when I perform best has been a huge factor for my career. It’s hard to keep the discipline to keep that time sacred, but it’s entirely necessary. Know yourself and identify when you are at your best. I promise it will help you set your best possible routine. </p>
<h2>Don’t Be So Accessible</h2>
<p>We tend to really care about what people think, and we genuinely want to be someone that can be counted on to be there for our teammates. The problem with this is that there are no boundaries and you’ve left yourself vulnerable to distractions and not getting anything critical done.</p>
<p>In the end, you and your team only <em>truly</em> want one thing: that you get your work done. Educating yourself and the people you work with on how to maximize “core time”, will help you set boundaries and hold your time sacred. </p>
<p>The fact of the matter is that people respect those that <em>command</em> it. Be someone that is disciplined with your time and be sure to let everyone know it. What you do with your time is crucial and we can’t make it up like we tend to try to tell ourselves we can.</p>
<h2>Conclusion</h2>
<p>I use these points to keep my time in check. It’s a very difficult thing to do because there is so much opportunity out there and so many cool things to watch, read, and discuss. </p>
<p>I hope that these have flipped some light switches in your own mind and that they’ve provided the start of a new productivity strategy for you. </p>
<p>Be smart and disciplined with your time. It will really show by the end of next year.</p>
<p>The post <a href="http://blog.teamtreehouse.com/keeping-your-time-in-check">Keeping Your Time in Check</a> appeared first on <a href="http://blog.teamtreehouse.com">Treehouse Blog</a>.</p><img src="http://feeds.feedburner.com/~r/teamtreehouse/~4/zWmBHtGgRAU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.teamtreehouse.com/keeping-your-time-in-check/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.teamtreehouse.com/keeping-your-time-in-check?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=keeping-your-time-in-check</feedburner:origLink></item>
		<item>
		<title>How to Write a Module in JavaScript – Quick Tip</title>
		<link>http://feedproxy.google.com/~r/teamtreehouse/~3/fqRZf4V2w4w/how-to-write-a-module-in-javascript-quick-tip</link>
		<comments>http://blog.teamtreehouse.com/how-to-write-a-module-in-javascript-quick-tip#comments</comments>
		<pubDate>Thu, 23 May 2013 14:02:16 +0000</pubDate>
		<dc:creator>Jim Hoskins</dc:creator>
				<category><![CDATA[Quick Tips]]></category>
		<category><![CDATA[JavaScript Modules]]></category>
		<category><![CDATA[treehouse quick tips]]></category>

		<guid isPermaLink="false">http://blog.teamtreehouse.com/?p=21780</guid>
		<description><![CDATA[<p>In this Treehouse Quick Tip, teacher Jim Hoskins will show you how to write a simple JavaScript module. Modules are useful in writing JavaScript, because they allow us to write code that is less likely to interfere with other code &#8230;<span class="continue-reading"><a href="http://blog.teamtreehouse.com/how-to-write-a-module-in-javascript-quick-tip">Continue reading <span class="meta-nav">&#8594;</span></a></span></p><p>The post <a href="http://blog.teamtreehouse.com/how-to-write-a-module-in-javascript-quick-tip">How to Write a Module in JavaScript &#8211; Quick Tip</a> appeared first on <a href="http://blog.teamtreehouse.com">Treehouse Blog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>In this Treehouse Quick Tip, teacher Jim Hoskins will show you how to write a simple JavaScript module. Modules are useful in writing JavaScript, because they allow us to write code that is less likely to interfere with other code on our page. </p>
<p>It allows us to selectively expose parts of the code to other programs running on our page. This makes our JavaScript code more resilient and easier to maintain.</p>
<p><iframe width="853" height="480" src="http://www.youtube.com/embed/xOh1ZA4pZMo" frameborder="0" allowfullscreen></iframe></p>
<p>The post <a href="http://blog.teamtreehouse.com/how-to-write-a-module-in-javascript-quick-tip">How to Write a Module in JavaScript &#8211; Quick Tip</a> appeared first on <a href="http://blog.teamtreehouse.com">Treehouse Blog</a>.</p><img src="http://feeds.feedburner.com/~r/teamtreehouse/~4/fqRZf4V2w4w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.teamtreehouse.com/how-to-write-a-module-in-javascript-quick-tip/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.teamtreehouse.com/how-to-write-a-module-in-javascript-quick-tip?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=how-to-write-a-module-in-javascript-quick-tip</feedburner:origLink></item>
		<item>
		<title>Tall Tales From A Large Man – Interview with Aaron Draplin</title>
		<link>http://feedproxy.google.com/~r/teamtreehouse/~3/1PSuaVuGpGw/tall-tales-from-a-large-man-interview-with-aaron-draplin</link>
		<comments>http://blog.teamtreehouse.com/tall-tales-from-a-large-man-interview-with-aaron-draplin#comments</comments>
		<pubDate>Wed, 22 May 2013 20:08:45 +0000</pubDate>
		<dc:creator>Treehouse</dc:creator>
				<category><![CDATA[Treehouse Friends]]></category>
		<category><![CDATA[aaron draplin]]></category>

		<guid isPermaLink="false">http://blog.teamtreehouse.com/?p=21779</guid>
		<description><![CDATA[<p>Aaron Draplin is a graphic designer and founder of the Draplin Design Company. He&#8217;s done work for everyone from his friend&#8217;s hot dog company to President Obama himself. He&#8217;s also a speaker and co-creator of Field Notes, a popular notebook &#8230;<span class="continue-reading"><a href="http://blog.teamtreehouse.com/tall-tales-from-a-large-man-interview-with-aaron-draplin">Continue reading <span class="meta-nav">&#8594;</span></a></span></p><p>The post <a href="http://blog.teamtreehouse.com/tall-tales-from-a-large-man-interview-with-aaron-draplin">Tall Tales From A Large Man &#8211; Interview with Aaron Draplin</a> appeared first on <a href="http://blog.teamtreehouse.com">Treehouse Blog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Aaron Draplin is a graphic designer and founder of the <a href="http://draplin.com">Draplin Design Company</a>. He&#8217;s done work for everyone from his friend&#8217;s hot dog company to President Obama himself. He&#8217;s also a speaker and co-creator of Field Notes, a popular notebook series among designers. He&#8217;s bold, outspoken, and unapologetic about being awesome. </p>
<p>He took a minute to talk with expert teacher, Mat Helme, and threw some knowledge bombs at him. Enjoy! </p>
<p><iframe width="853" height="480" src="http://www.youtube.com/embed/SgsCTjdu3dA" frameborder="0" allowfullscreen></iframe></p>
<p>The full interview will be available tomorrow to all <a href="http://teamtreehouse.com" title="Treehouse">Treehouse Gold Members</a>.</p>
<p>The post <a href="http://blog.teamtreehouse.com/tall-tales-from-a-large-man-interview-with-aaron-draplin">Tall Tales From A Large Man &#8211; Interview with Aaron Draplin</a> appeared first on <a href="http://blog.teamtreehouse.com">Treehouse Blog</a>.</p><img src="http://feeds.feedburner.com/~r/teamtreehouse/~4/1PSuaVuGpGw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.teamtreehouse.com/tall-tales-from-a-large-man-interview-with-aaron-draplin/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.teamtreehouse.com/tall-tales-from-a-large-man-interview-with-aaron-draplin?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=tall-tales-from-a-large-man-interview-with-aaron-draplin</feedburner:origLink></item>
		<item>
		<title>Developing over the YouTube API with JSON</title>
		<link>http://feedproxy.google.com/~r/teamtreehouse/~3/VPWVo-md2YI/developing-over-the-youtube-api-with-json</link>
		<comments>http://blog.teamtreehouse.com/developing-over-the-youtube-api-with-json#comments</comments>
		<pubDate>Wed, 22 May 2013 13:30:31 +0000</pubDate>
		<dc:creator>Jake Rocheleau</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Learn to Code]]></category>

		<guid isPermaLink="false">http://blog.teamtreehouse.com/?p=21770</guid>
		<description><![CDATA[<p>The process to understand API development is generally complicated but should become easier with practice. Social networks like Twitter and YouTube offer XML/RSS/JSON feeds without the requirement of an API key. However, other smaller networking websites like Instagram and Etsy &#8230;<span class="continue-reading"><a href="http://blog.teamtreehouse.com/developing-over-the-youtube-api-with-json">Continue reading <span class="meta-nav">&#8594;</span></a></span></p><p>The post <a href="http://blog.teamtreehouse.com/developing-over-the-youtube-api-with-json">Developing over the YouTube API with JSON</a> appeared first on <a href="http://blog.teamtreehouse.com">Treehouse Blog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>The process to understand API development is generally complicated but should become easier with practice. Social networks like Twitter and YouTube offer XML/RSS/JSON feeds without the requirement of an API key. However, other smaller networking websites like Instagram and Etsy will require developers to sign up for a new API key before allowing them to make requests from the server.</p>
<p>In this tutorial I want to demonstrate a really simple HTML/CSS/JS web application building over the YouTube API. This demo will list a number of YouTube channels which you may click and pull out all the latest videos, plus their related metadata such as views and comments. All of this dynamic page content will be handled via jQuery so you do not need to host anything on a web server. Check out my sample demo to get an idea of what we are building.</p>
<p><!-- more --></p>
<p><a href="http://byjakewithlove.com/treehouse/yt-json-api/"><img src="http://blog.teamtreehouse.com/wp-content/uploads/2013/05/treehouse-youtube-api-json-tutorial-preview.png" alt="preview tutorial youtube api json demo javascript jquery"></a></p>
<p><strong><a href="http://byjakewithlove.com/treehouse/yt-json-api/">Live Demo</a></strong> &#8211; <strong><a href="http://blog.teamtreehouse.com/wp-content/uploads/2013/05/youtube-json-api-source-code.zip">Download Source Code</a></strong></p>
<h2>Getting Started</h2>
<p>I will skip a lot of the boring HTML so that we can focus more deeply on the YouTube response and how we handle this in JavaScript. The most important HTML section you should recognize is the navigation along with the inner videos content div. I have used specific IDs so that we can target each element and check whenever the user clicks a link, then display that content inside <strong>#videos</strong>.</p>
<pre>    &lt;nav id="usersnav"&gt;
      &lt;ul&gt;
        &lt;li&gt;&lt;a href="#gotreehouse"&gt;gotreehouse&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href="#thenextweb"&gt;thenextweb&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href="#TEDxTalks"&gt;TEDxTalks&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href="#wearechange"&gt;wearechange&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href="#RTAmerica"&gt;RTAmerica&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href="#G4ZDTechTV2"&gt;G4ZDTechTV2&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href="#NovaCrystallisDotCom"&gt;NovaCrystallisDotCom&lt;/a&gt;&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/nav&gt;
    
    &lt;div id="videos"&gt;
      &lt;!-- vids go here --&gt;
    &lt;/div&gt;
</pre>
<p>In order for the whole process to work we will need a copy of the latest jQuery library. My demo includes this file from within the ./js/ directory so you won&#8217;t need to re-download anything. Also I have kept my custom-written jQuery codes inside the index file instead of moving them to an external JS script. It would obviously be easier to do so when you are running this on a live website, but for my demo it is quicker  to study these codes from within the same page.</p>
<h2>Pulling Results with jQuery</h2>
<p>The first step is to define a set of variables which we need in the script. Then we can handle a click event from the user which is interfacing with any of the navigation links. Each of the anchor elements is using an HREF value containing a hash symbol plus username we need. It is important that we stop this default href from loading by using <strong>e.preventDefault()</strong> and then pull the value out so we can get the YouTube feed results.</p>
<pre>$(function(){
  $('#usersnav ul li a').on('click', function(e){
    e.preventDefault();
    var htmlString  = '&lt;ul id="videoslisting"&gt;';
    var channelname = $(this).attr('href').substring(1);
    var ytapiurl    = 'http://gdata.youtube.com/feeds/api/users/'+channelname+'/uploads?alt=json&amp;max-results=10';
</pre>
<p>The handy JavaScript <strong>substring()</strong> method will create a new string variable starting from the character marker 1(marker 0 is the first character). This removes our hash symbol so that we can now place the username into a generic API call which looks like this: <em>http://gdata.youtube.com/feeds/api/users/CHANNELNAME/uploads?alt=json&amp;max-results=10</em></p>
<p>The user&#8217;s channel name can be accessed to query YouTube and pull out their latest uploads. I am referencing a max results value of 10 and since we are not using pagination. I have not included any other callback methods, either. JSON is the response type we need so that way it&#8217;ll be easier parsing all this content inside jQuery.</p>
<h2>Building a Loop</h2>
<p>PHP and Rails and other programming languages often use logic loops to iterate through data patterns. While loops, for loops, do loops, and other common ideas are not as strict when you would compare them with JavaScript. However the methods for <a href="http://api.jquery.com/jQuery.parseJSON/">.parseJSON()</a> and <a href="http://api.jquery.com/jQuery.each/">jQuery.each()</a> offer the perfect system for looping through all of these results.</p>
<pre>    $.getJSON(ytapiurl, function(data) {
      $.each(data.feed.entry, function(i, item) {                                
        var title    = item['title']['$t'];
        var videoid  = item['id']['$t'];
      
        var pubdate  = item['published']['$t'];
        var fulldate = new Date(pubdate).toLocaleDateString();
      
        var thumbimg = item['media$group']['media$thumbnail'][0]['url'];
        var tinyimg1 = item['media$group']['media$thumbnail'][1]['url'];
        var tinyimg2 = item['media$group']['media$thumbnail'][2]['url'];
        var tinyimg3 = item['media$group']['media$thumbnail'][3]['url'];
      
        var vlink    = item['media$group']['media$content'][0]['url'];
        var ytlink   = item['media$group']['media$player'][0]['url'];
        var numviews = item['yt$statistics']['viewCount'];
        var numcomms = item['gd$comments']['gd$feedLink']['countHint'];
      
        htmlString +='&lt;li class="clearfix"&gt;&lt;h2&gt;' + title + '&lt;/h2&gt;';
        htmlString +='&lt;div class="videothumb"&gt;&lt;a href="' + ytlink + '" target="_blank"&gt;&lt;img src="' + thumbimg + '" width="480" height="360"&gt;&lt;/a&gt;&lt;/div&gt;';
        htmlString +='&lt;div class="meta"&gt;&lt;p&gt;Published on &lt;strong&gt;' + fulldate + '&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Total views: &lt;strong&gt;' + commafy(numviews) + '&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Total comments: &lt;strong&gt;'+ numcomms +'&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="'+ ytlink +'" class="external" target="_blank"&gt;View on YouTube&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="'+ vlink +'" class="external" target="_blank"&gt;View in Fullscreen&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Alternate Thumbnails&lt;/strong&gt;:&lt;br&gt;&lt;img src="'+ tinyimg1 +'"&gt; &lt;img src="' + tinyimg2 + '"&gt; &lt;img src="'+ tinyimg3 +'"&gt;&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;';
      }); // end each loop
    
      $('#videos').html(htmlString + "&lt;/ul&gt;");
    }); // end json parsing
</pre>
<p>This code block seems very large but the majority of the content is generating variable names. YouTube will return a lot more information than we need so it would be foolish to create an array containing all the keys. Instead we should make new variables strictly for the content which will be used inside the layout, and then we create a final HTML string to return to the browser.</p>
<p>Each variable block will contain an important section of the final display. We will need the video title, original publishing date, the full-size thumbnail along with each of the 3 mini-thumbs, direct video URL, view count, and also the comments count. The HTML is displayed using an unordered list of items which finishes by applying the HTML content into the <strong>#videos</strong> container. This is easily accomplished by using the jQuery <a href="http://api.jquery.com/html/">.html()</a> method.</p>
<h2>Parsing &amp; Formatting Numbers</h2>
<p>One other final point I&#8217;d like to bring up is the ability to parse through each view counter. Return data for videos which have over 1000 views will not include the comma between each set of 3 numbers. I found an <a href="http://stackoverflow.com/a/6785438/477958">excellent solution on Stack Overflow</a> written using pure JavaScript. The function name is <strong>commafy()</strong> which is wrapped around each of the view count numbers. This will check if the digits are higher than 4 and automatically place a comma where it should be.</p>
<p>These codes are wonderful to use in any number of JavaScript solutions. The questions and solutions on Stack Overflow are always helpful with these kinds of matters. I think it is worth noting that you could write a much simpler function using jQuery or handling this method inside the <strong>.each()</strong> loop. But if everything is kept inside a separate file then you may not worry as much about the syntax or number of lines.</p>
<p><a href="http://byjakewithlove.com/treehouse/yt-json-api/"><img src="http://blog.teamtreehouse.com/wp-content/uploads/2013/05/treehouse-youtube-api-json-tutorial-preview.png" alt="preview tutorial youtube api json demo javascript jquery"></a></p>
<p><strong><a href="http://byjakewithlove.com/treehouse/yt-json-api/">Live Demo</a></strong> &#8211; <strong><a href="http://blog.teamtreehouse.com/wp-content/uploads/2013/05/youtube-json-api-source-code.zip">Download Source Code</a></strong></p>
<h2>Final Thoughts</h2>
<p>Many developers who are not familiar with JSON should hit Google and read a few articles on the subject. It is basically JavaScript code which is written in a certain way so that the syntax can be read as data-value pairs. YouTube can present JSON data from their server and using jQuery it is possible to organize this data into the page dynamically. I hope this tutorial may prove useful to anybody who has been interested in developing over YouTube&#8217;s API, or any API for that matter. Feel free to download a copy of my demo and see if you can implement a similar method elsewhere in your own projects.</p>
<p>The post <a href="http://blog.teamtreehouse.com/developing-over-the-youtube-api-with-json">Developing over the YouTube API with JSON</a> appeared first on <a href="http://blog.teamtreehouse.com">Treehouse Blog</a>.</p><img src="http://feeds.feedburner.com/~r/teamtreehouse/~4/VPWVo-md2YI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.teamtreehouse.com/developing-over-the-youtube-api-with-json/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.teamtreehouse.com/developing-over-the-youtube-api-with-json?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=developing-over-the-youtube-api-with-json</feedburner:origLink></item>
		<item>
		<title>Creating Vanity URLs in Rails</title>
		<link>http://feedproxy.google.com/~r/teamtreehouse/~3/pYWrJZOrg8E/creating-vanity-urls-in-rails</link>
		<comments>http://blog.teamtreehouse.com/creating-vanity-urls-in-rails#comments</comments>
		<pubDate>Tue, 21 May 2013 17:30:09 +0000</pubDate>
		<dc:creator>Andrew Chalkley</dc:creator>
				<category><![CDATA[Learn to Code]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[tutorials for vanity urls in rails]]></category>
		<category><![CDATA[vanity urls in rails]]></category>
		<category><![CDATA[vanity urls in ruby on rails]]></category>

		<guid isPermaLink="false">http://blog.teamtreehouse.com/?p=21752</guid>
		<description><![CDATA[<p>A vanity URL is a search engine optimized (SEO) URL. Instead of having a meaningless URL like http://storeofthefuture.com/products/2015 wouldn&#8217;t http://storeofthefuture.com/products/hoverboard be better and more meaningful? It&#8217;s fairly straightforward to make URLs nicer in Rails. I&#8217;ll walk you through the process. &#8230;<span class="continue-reading"><a href="http://blog.teamtreehouse.com/creating-vanity-urls-in-rails">Continue reading <span class="meta-nav">&#8594;</span></a></span></p><p>The post <a href="http://blog.teamtreehouse.com/creating-vanity-urls-in-rails">Creating Vanity URLs in Rails</a> appeared first on <a href="http://blog.teamtreehouse.com">Treehouse Blog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>A vanity URL is a search engine optimized (SEO) URL. Instead of having a meaningless URL like <code>http://storeofthefuture.com/products/2015</code> wouldn&#8217;t <code>http://storeofthefuture.com/products/hoverboard</code> be better and more meaningful?</p>
<p>It&#8217;s fairly straightforward to make URLs nicer in Rails. I&#8217;ll walk you through the process.</p>
<h2>Baby Steps</h2>
<p>In Rails the models have a method called <code>to_param</code>. This method gets called when you pass a model into a URL helper like:</p>
<pre><code>&lt;%= link_to product.name, product %&gt;
</code></pre>
<p>Or:</p>
<pre><code>&lt;%= link_to product.name, product_path(product) %&gt;
</code></pre>
<p>By default the <code>to_param</code> returns the id as a <code>String</code> rather than a <code>Fixnum</code>. Under the hood Rails is calling <code>to_s</code> on the <code>id</code> attribute, which allows us to override this with our own string. To do this we define the <code>to_param</code> method.</p>
<pre><code>class Product &lt; ActiveRecord::Base
  attr_accessible :description, :name

  def to_param

  end
end
</code></pre>
<p>Within the <code>to_param</code> method, let&#8217;s set a string with the <code>id</code> followed by the <code>name</code> separated with a dash.</p>
<pre><code>class Product &lt; ActiveRecord::Base
  attr_accessible :description, :name

  def to_param
    "#{id}-#{name}"
  end
end
</code></pre>
<p>This would generate a URL of <code>/products/2015-Hoverboard</code> for a product with the name of &#8220;Hoverboard&#8221;.</p>
<p>Now what happens in the <code>show</code> action in the <code>ProductsController</code>? The <code>params[:id]</code> is the <code>String</code> of &#8220;2015-Hoverboard&#8221; and when you do a <code>Product.find(params[:id])</code> the <code>find</code> method calls <code>to_i</code>. In Ruby when you call <code>to_i</code> on a <code>String</code> it grabs the first part of the <code>String</code> that looks like an integer. So <code>Product.find("2015-Hoverboard")</code> is exactly the same as calling <code>Product.find(2015)</code>.</p>
<p>However, there&#8217;s an issue with names that contain a space. For example, a product with the name of &#8220;Flux Capacitor&#8221; would generate <code>/1955-Flux%20Capacitor/</code>, which isn&#8217;t very friendly. We should format the names so that we get them all lowercase and replace the spaces with dashes.</p>
<p>We can do that by creating a method called <code>slug</code>. The word <a href="http://en.wikipedia.org/wiki/Clean_URL#Slug">slug</a> describes the part of a URL that is made up of human-readable keywords.</p>
<pre><code>class Product &lt; ActiveRecord::Base
  attr_accessible :description, :name

  def slug
    name.downcase.gsub(" ", "-")  
  end

  def to_param
    "#{id}-#{slug}"
  end
end
</code></pre>
<p>So as you can see we just <code>downcase</code> the <code>name</code> and then <code>gsub</code> out the spaces with a dash and then swap the <code>name</code> with <code>slug</code> in the <code>to_param</code>.</p>
<p>So now the URLs are <code>/2015-hoverboard</code> and <code>/1955-flux-capacitor</code>.</p>
<p>Much nicer.</p>
<h2>Taking it Further</h2>
<p>Now we&#8217;ve done only a little bit of work and haven&#8217;t altered the database or the controller. Let&#8217;s say we wanted to ditch the <code>id</code>s completely from the URLs.</p>
<p>We&#8217;ll do this by generating a new attribute called <code>slug</code>, and then manually or programmatically update all the existing products to have a slug.</p>
<p>We&#8217;ll first need to create and run the migration.</p>
<pre><code>rails g migration AddSlugToProducts slug:string
rake db:migrate
</code></pre>
<p>Then update your model to have <code>:slug</code> as an <code>attr_accessible</code> and validate its presence while ditching the <code>slug</code> method from the previous implementation. We can also just return the <code>slug</code> in the <code>to_param</code> method like this:</p>
<pre><code>class Product &lt; ActiveRecord::Base
  attr_accessible :description, :name, :slug

  validates_presence_of :slug

  def to_param
    slug
  end
end
</code></pre>
<p>Next fire up your <code>rails console</code> and cycle through each <code>product</code> and update the <code>slug</code> in each existing <code>product</code>.</p>
<pre><code>&gt;&gt; Product.all.each do |product|
?&gt; product.slug = product.name.downcase.gsub(" ", "-")
&gt;&gt; product.save
&gt;&gt; end
</code></pre>
<p>Now that we&#8217;ve done that, we need to modify the controller. The <code>find</code> method looks up products by the <code>id</code>, so for all instances in your controller where you <code>find(params[:id])</code> on the <code>@product</code> you&#8217;d want to <code>find_by_slug(params[:id])</code>. This is because the <code>:id</code> is  defined in the <code>routes.rb</code>, not because it <em>is</em> the <code>:id</code> of the object.</p>
<pre><code>$ rake routes
    ...
    product GET    /products/:id(.:format)      products#show
    ...        
</code></pre>
<p>So in the <code>show</code> action in the <code>ProductsController</code> is should look something like this:</p>
<pre><code>def show
  @product = Product.find_by_slug(params[:id])
  respond_to do |format|
    format.html # show.html.erb
    format.json { render json: @product }
  end
end
</code></pre>
<p>Depending on how you&#8217;re using the model in other actions in your controller, you may need update those too.</p>
<p>You&#8217;ll also want to update any forms to include a <code>slug</code> field as this is now required to generate a new model. It&#8217;s required because without it you won&#8217;t be able to generate a URL or find any existing models.</p>
<p>This implementation of creating clear, human-readable and friendly URLs will yield the urls <code>/products/hoverboard</code> and <code>/products/flux-capacitor</code>, which is exactly what we wanted!</p>
<h3>A Small Note on Performance</h3>
<p>The <code>id</code> column of databases are normally indexed, if not the first things to be checked and indexed when performance issues occur. Finding by <code>id</code> is a fast method for looking them up. However if you have lots of models it may be worth adding an index on the <code>slug</code> to improve performance.</p>
<p>Here&#8217;s what you&#8217;d add to a migration:</p>
<pre><code>add_index :products, :slug
</code></pre>
<h2>Conclusion</h2>
<p>Depending on how clean you want your URLs, or how much effort you want to go in to cleaning up existing URLs, either one of these strategies will work for you.</p>
<p>The post <a href="http://blog.teamtreehouse.com/creating-vanity-urls-in-rails">Creating Vanity URLs in Rails</a> appeared first on <a href="http://blog.teamtreehouse.com">Treehouse Blog</a>.</p><img src="http://feeds.feedburner.com/~r/teamtreehouse/~4/pYWrJZOrg8E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.teamtreehouse.com/creating-vanity-urls-in-rails/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		<feedburner:origLink>http://blog.teamtreehouse.com/creating-vanity-urls-in-rails?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=creating-vanity-urls-in-rails</feedburner:origLink></item>
		<item>
		<title>iTunes Scrolling and Mobile Shelving – Treehouse Show Ep 40</title>
		<link>http://feedproxy.google.com/~r/teamtreehouse/~3/vjYlkFwUdUA/itunes-scrolling-and-mobile-shelving-treehouse-show-ep-40</link>
		<comments>http://blog.teamtreehouse.com/itunes-scrolling-and-mobile-shelving-treehouse-show-ep-40#comments</comments>
		<pubDate>Tue, 21 May 2013 14:02:20 +0000</pubDate>
		<dc:creator>Treehouse</dc:creator>
				<category><![CDATA[Treehouse Show]]></category>
		<category><![CDATA[jQuery Shapeshift]]></category>
		<category><![CDATA[packery]]></category>
		<category><![CDATA[sly]]></category>
		<category><![CDATA[treehouse show]]></category>

		<guid isPermaLink="false">http://blog.teamtreehouse.com/?p=21774</guid>
		<description><![CDATA[<p>In this episode of The Treehouse Show, Nick Pettit (@nickrp) and Jason Seifer (@jseifer) talk about iTunes Scrolling and Mobile Shelving. Here are the links for the week: Quick &#8216;n dirty iTunes 11 style scroller &#8211; CodePen http://codepen.io/vaskemaskine/pen/DrdJE Sly http://darsa.in/sly/ &#8230;<span class="continue-reading"><a href="http://blog.teamtreehouse.com/itunes-scrolling-and-mobile-shelving-treehouse-show-ep-40">Continue reading <span class="meta-nav">&#8594;</span></a></span></p><p>The post <a href="http://blog.teamtreehouse.com/itunes-scrolling-and-mobile-shelving-treehouse-show-ep-40">iTunes Scrolling and Mobile Shelving &#8211; Treehouse Show Ep 40</a> appeared first on <a href="http://blog.teamtreehouse.com">Treehouse Blog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>In this episode of The Treehouse Show, Nick Pettit (@nickrp) and Jason Seifer (@jseifer) talk about iTunes Scrolling and Mobile Shelving.</p>
<p><iframe width="853" height="480" src="http://www.youtube.com/embed/QTw1iuUi6i4" frameborder="0" allowfullscreen></iframe></p>
<h2>Here are the links for the week:</h2>
<p>Quick &#8216;n dirty iTunes 11 style scroller &#8211; CodePen<br />
<a href="http://codepen.io/vaskemaskine/pen/DrdJE">http://codepen.io/vaskemaskine/pen/DrdJE</a></p>
<p>Sly<br />
<a href="http://darsa.in/sly/">http://darsa.in/sly/</a></p>
<p>jQuery.Shapeshift<br />
<a href="http://mcpants.github.io/jquery.shapeshift/">http://mcpants.github.io/jquery.shapeshift/</a></p>
<p>Packery<br />
<a href="http://packery.metafizzy.co/">http://packery.metafizzy.co/</a></p>
<p>Pure CSS Peeling Sticky &#8211; CodePen<br />
<a href="http://codepen.io/patrickkunka/pen/axEgL">http://codepen.io/patrickkunka/pen/axEgL</a></p>
<p>Package Managers: An Introductory Guide For The Uninitiated Front-End Developer &#8211; Tech.Pro<br />
<a href="http://tech.pro/tutorial/1190/package-managers-an-introductory-guide-for-the-uninitiated-front-end-developer">http://tech.pro/tutorial/1190/package-managers-an-introductory-guide-for-the-uninitiated-front-end-developer</a></p>
<p>Niice. A search engine with taste.<br />
<a href="http://www.niice.co/">http://www.niice.co/</a></p>
<p>jakiestfu/Snap.js · GitHub<br />
<a href="http://github.com/jakiestfu/Snap.js/">http://github.com/jakiestfu/Snap.js/</a></p>
<p>The post <a href="http://blog.teamtreehouse.com/itunes-scrolling-and-mobile-shelving-treehouse-show-ep-40">iTunes Scrolling and Mobile Shelving &#8211; Treehouse Show Ep 40</a> appeared first on <a href="http://blog.teamtreehouse.com">Treehouse Blog</a>.</p><img src="http://feeds.feedburner.com/~r/teamtreehouse/~4/vjYlkFwUdUA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.teamtreehouse.com/itunes-scrolling-and-mobile-shelving-treehouse-show-ep-40/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.teamtreehouse.com/itunes-scrolling-and-mobile-shelving-treehouse-show-ep-40?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=itunes-scrolling-and-mobile-shelving-treehouse-show-ep-40</feedburner:origLink></item>
		<item>
		<title>How Learning to Program Got Me A Technical Co-Founder</title>
		<link>http://feedproxy.google.com/~r/teamtreehouse/~3/H2SHi2SRsh0/how-learning-to-program-got-me-a-technical-co-founder</link>
		<comments>http://blog.teamtreehouse.com/how-learning-to-program-got-me-a-technical-co-founder#comments</comments>
		<pubDate>Mon, 20 May 2013 13:30:21 +0000</pubDate>
		<dc:creator>Spencer Fry</dc:creator>
				<category><![CDATA[Learn to Code]]></category>
		<category><![CDATA[Start a Business]]></category>
		<category><![CDATA[Spencer Fry]]></category>
		<category><![CDATA[Technical Co-founders]]></category>
		<category><![CDATA[Uncover]]></category>

		<guid isPermaLink="false">http://blog.teamtreehouse.com/?p=21768</guid>
		<description><![CDATA[<p>When I started learning to program back in February 2012 in order to build Uncover, I simply wanted to be able to see my ideas through to a solid prototype that customers could use. Nothing else mattered. I’d watch tutorials, &#8230;<span class="continue-reading"><a href="http://blog.teamtreehouse.com/how-learning-to-program-got-me-a-technical-co-founder">Continue reading <span class="meta-nav">&#8594;</span></a></span></p><p>The post <a href="http://blog.teamtreehouse.com/how-learning-to-program-got-me-a-technical-co-founder">How Learning to Program Got Me A Technical Co-Founder</a> appeared first on <a href="http://blog.teamtreehouse.com">Treehouse Blog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>When I started learning to program back in February 2012 in order to build <a href="http://uncover.com" title="Uncover">Uncover</a>, I simply wanted to be able to see my ideas through to a solid prototype that customers could use. Nothing else mattered. I’d watch tutorials, read books, practice exercises, deploy code, fail and repeat&#8211;until I collapsed on my keyboard. Every day I’d wake up with a strong sense of accomplishment.</p>
<p>But no matter how much progress I made, I still knew I’d need to find a talented technical co-founder to work with. I’ve been around the block enough times to know that a year of programming wouldn’t make me a CTO. But what I couldn’t have anticipated was that learning to program up to the level I’ve achieved would make finding a technical co-founder ten times easier. Sure, it’s sort of a kick in the face knowing that one day, with any product success, you’ll have to pass the lead to someone more capable than you. But again, the huge consolation is that it’s a lot easier to find someone once you’ve learned to code. </p>
<p>For me, with a prototype in September 2012 and happy customers already in place, that time had come.</p>
<p>Because I’ve asked Mike (my Uncover co-founder) to be candid about it, I can say without a doubt that we’d never have teamed up if I hadn’t spent 2012 learning to code. Mike and I had known each other for five years before we decided to work together. It wasn’t until I was months into learning to code, when he saw my dedication and saw that I’d successfully built a prototype, that he began to entertain the idea.</p>
<p>Even during the first few months of coding, I’d badger Mike about working together over frequent afternoon coffees, but he’d shrug off the idea. He wasn’t looking to be someone’s code monkey. He wanted to work with someone who understood programming, who could contribute, and who had proven that he really wanted to push himself ahead technically. The person Mike would be willing to work with had to build something first.</p>
<p>For Mike it was more than me being able to contribute code to our product. It was about the psychological connection we’d have. There’s a special bond that exists between developers. People who can build product look at what’s built in a different way. “You can code? Welcome to the club.”</p>
<p>Mike welcomed me. He then pushed me. He taught me. He made me a better developer than I could ever have been on my own. And ultimately he agreed to join Uncover as a co-founder because I had proven myself and managed to get into the club.</p>
<p>The post <a href="http://blog.teamtreehouse.com/how-learning-to-program-got-me-a-technical-co-founder">How Learning to Program Got Me A Technical Co-Founder</a> appeared first on <a href="http://blog.teamtreehouse.com">Treehouse Blog</a>.</p><img src="http://feeds.feedburner.com/~r/teamtreehouse/~4/H2SHi2SRsh0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.teamtreehouse.com/how-learning-to-program-got-me-a-technical-co-founder/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<feedburner:origLink>http://blog.teamtreehouse.com/how-learning-to-program-got-me-a-technical-co-founder?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=how-learning-to-program-got-me-a-technical-co-founder</feedburner:origLink></item>
		<item>
		<title>Sharing What You Know – Interview with Ben Callahan</title>
		<link>http://feedproxy.google.com/~r/teamtreehouse/~3/MmP3T7Nd1xE/sharing-what-you-know-interview-with-ben-callahan</link>
		<comments>http://blog.teamtreehouse.com/sharing-what-you-know-interview-with-ben-callahan#comments</comments>
		<pubDate>Fri, 17 May 2013 19:58:54 +0000</pubDate>
		<dc:creator>Treehouse</dc:creator>
				<category><![CDATA[Treehouse Friends]]></category>
		<category><![CDATA[ben callahan]]></category>
		<category><![CDATA[treehouse friends]]></category>

		<guid isPermaLink="false">http://blog.teamtreehouse.com/?p=21765</guid>
		<description><![CDATA[<p>Ben Callahan is the CEO of Sparkbox, a writer, a designer, and a speaker on the subject of Responsive Web Design. Ben was nice enough to sit down with Allison for an extensive interview on Responsive Web Design for the &#8230;<span class="continue-reading"><a href="http://blog.teamtreehouse.com/sharing-what-you-know-interview-with-ben-callahan">Continue reading <span class="meta-nav">&#8594;</span></a></span></p><p>The post <a href="http://blog.teamtreehouse.com/sharing-what-you-know-interview-with-ben-callahan">Sharing What You Know &#8211; Interview with Ben Callahan</a> appeared first on <a href="http://blog.teamtreehouse.com">Treehouse Blog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://bencallahan.com/">Ben Callahan</a> is the CEO of <a href="http://seesparkbox.com/">Sparkbox</a>, a writer, a designer, and a speaker on the subject of Responsive Web Design. Ben was nice enough to sit down with Allison for an extensive interview on Responsive Web Design for the <a href="http://teamtreehouse.com">Gold Members</a> of Treehouse. Lucky for us here on the blog, Ben recorded a gem about the value in sharing what you know. </p>
<p><iframe width="853" height="480" src="http://www.youtube.com/embed/H1S7sE9conA" frameborder="0" allowfullscreen></iframe></p>
<p>The post <a href="http://blog.teamtreehouse.com/sharing-what-you-know-interview-with-ben-callahan">Sharing What You Know &#8211; Interview with Ben Callahan</a> appeared first on <a href="http://blog.teamtreehouse.com">Treehouse Blog</a>.</p><img src="http://feeds.feedburner.com/~r/teamtreehouse/~4/MmP3T7Nd1xE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.teamtreehouse.com/sharing-what-you-know-interview-with-ben-callahan/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.teamtreehouse.com/sharing-what-you-know-interview-with-ben-callahan?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=sharing-what-you-know-interview-with-ben-callahan</feedburner:origLink></item>
	</channel>
</rss>
