<?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>AMY HAYWOOD</title>
	<atom:link href="http://www.amyhaywood.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.amyhaywood.com</link>
	<description>Dreamer. Doer. Designer. Programmer.</description>
	<lastBuildDate>Tue, 12 Nov 2019 13:13:01 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>Your Website Should be a Solution to a Problem</title>
		<link>http://www.amyhaywood.com/your-website-should-be-a-solution-to-a-problem/</link>
		<comments>http://www.amyhaywood.com/your-website-should-be-a-solution-to-a-problem/#comments</comments>
		<pubDate>Thu, 28 Jan 2016 13:00:00 +0000</pubDate>
		<dc:creator><![CDATA[Amy]]></dc:creator>
				<category><![CDATA[101]]></category>

		<guid isPermaLink="false">http://www.amyhaywood.com/?p=4241</guid>
		<description><![CDATA[<p>I had a potential client call me last week. Once we got past initial introductions and formalities, they told me, “We need a rebrand and a new website. Do you think you could help us?” That’s an easy answer, “Of course, I can!” — because of course, I can. But, you and I both know... <a class="view-article" href="http://www.amyhaywood.com/your-website-should-be-a-solution-to-a-problem/">View Article</a></p>
<p>The post <a rel="nofollow" href="http://www.amyhaywood.com/your-website-should-be-a-solution-to-a-problem/">Your Website Should be a Solution to a Problem</a> appeared first on <a rel="nofollow" href="http://www.amyhaywood.com">AMY HAYWOOD</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>I had a potential client call me last week. Once we got past initial introductions and formalities, they told me, “We need a rebrand and a new website. Do you think you could help us?”</p>
<p>That’s an easy answer, “Of course, I can!” — because of course, I can. But, you and I both know there’s far more going on behind the scenes than just “we need a rebrand and a new website.” One would be surprised to know that there also is a <a href="https://www.coral.team/Services/Salesforce/Consulting">Salesforce consulting company</a> involved. </p>
<p>There’s a pain point. Something happened that led them to call me. It could be a number of things. Sales hit a certain point (up or down)? They needed more visibility within the community? They needed online validation and social proof for their brick and mortar? Need I go on?</p>
<p>You know exactly what I’m talking about. You know because you’re right there with them. You think, “Maybe if I’m #1 on Google, I can attract more business.”</p>
<p>— And while that may be true, I think there’s a lot more that I have to offer your business than a shiny new website and a #1 spot Google ranking. </p>
<p>You see, at the end of the day, you’re not really buying a new website. Excuse </p>
<p>me? That’s right. I’ll say it again. You’re not buying a website. You’re buying a solution to a problem.</p>
<p>So, let’s address the real problem head on so I can deliver that solution. Be honest. What is your real problem, the pain point? What are your business goals for this project? What’s the bigger direction your company is moving in?</p>
<p>Hopefully you know: my goal is to make sure that you make more money on your site than I ever will.</p>
<p>My services are an investment, not a cost. What’s the difference, you ask? It’s more than semantics.</p


<blockquote>A cost is a reference to the total money, time and resources associated with a particular purchase or activity. On the other hand, an investment is a reference to the use of money for future profitability. Investments usually has more risk involved, but also could lead to more profitability (or reward) in the long run.</p></blockquote>
<div class="caption"><a href="http://charlestlee.com/investment-or-cost/">_ Investment or Cost</a></div>
<p>A cost is a one time transaction that is minimal. In the case of web design and development, get it done as fast and as cheaply as possible. </p>
<p>An investment, on the other hand, is a long term endeavor that offers future profitability. It evaluates processes holistically and delivers a complete strategy that fulfills your greater mission and purpose. Yes, the price tag may be greater, but in the long run the solution gives you far more room to grow and the ability to push forward and achieve greater success. Sounds like a no brainer to me.</p>
<hr />
<div class="box">So, I’ll ask you: <b>What is your pain point?</b> Whatever it is, I know it’s very real. It effects you every day — and the unfortunate truth: it will only continue to do so, unless it’s addressed. So, <a href="/contact">let’s talk about it&#8230;</a></div>
<p>The post <a rel="nofollow" href="http://www.amyhaywood.com/your-website-should-be-a-solution-to-a-problem/">Your Website Should be a Solution to a Problem</a> appeared first on <a rel="nofollow" href="http://www.amyhaywood.com">AMY HAYWOOD</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.amyhaywood.com/your-website-should-be-a-solution-to-a-problem/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Caught in the Wild – My Home Workspace</title>
		<link>http://www.amyhaywood.com/home-workspace/</link>
		<comments>http://www.amyhaywood.com/home-workspace/#comments</comments>
		<pubDate>Mon, 23 Feb 2015 06:00:00 +0000</pubDate>
		<dc:creator><![CDATA[Amy]]></dc:creator>
				<category><![CDATA[101]]></category>
		<category><![CDATA[Post]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[workspace]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[scanner]]></category>

		<guid isPermaLink="false">http://www.amyhaywood.com/?p=3939</guid>
		<description><![CDATA[<p>I’m always fascinated by other people’s workspaces. I’m not the only one. Plenty of posts and entire sites, even, have been devoted to this subject. You don’t have to look far on Tumblr, Pinterest, or Dribbble either. I thought I’d share my own. On the Wall Behind my computer, I have a bulletin board for... <a class="view-article" href="http://www.amyhaywood.com/home-workspace/">View Article</a></p>
<p>The post <a rel="nofollow" href="http://www.amyhaywood.com/home-workspace/">Caught in the Wild – My Home Workspace</a> appeared first on <a rel="nofollow" href="http://www.amyhaywood.com">AMY HAYWOOD</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>I’m always fascinated by other people’s workspaces. I’m not the only one. Plenty of <a href="http://webdesignledger.com/inspiration/17-designers-you-should-know-and-their-workspaces" title="17 Designers You Should Know and Their Workspaces">posts</a> and <a href="http://wherewedowhatwedo.com/" title="Where We Do What We Do">entire sites</a>, even, have been devoted to this subject. You don’t have to look far on <a href="http://workspaces.tumblr.com/" title="Workspace Inspiration on Tumblr">Tumblr</a>, <a href="https://www.pinterest.com/partise/inspired-work-spaces/" title="Workspace Inspiration on Pinterest">Pinterest</a>, or <a href="https://dribbble.com/search?q=workspace" title="Dribbble Search for Workspace">Dribbble</a> either.</p>
<p>I thought I’d share my own.</p>
<div class="break-out"><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/IMG_6915_cropped.jpg" alt="My Workspace" class="alignnone size-full wp-image-4028" /></div>
<hr class="space" />
<hr />
<h2>On the Wall</h2>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/playroomB650.jpg" alt="Soft Tiles" class="alignnone size-full wp-image-4020" /></p>
<p>Behind my computer, I have a bulletin board for inspiration and <a href="/designing-before-the-design-phase/" title="Designing before the Design Phase">mood boards</a>. It’s made out of <a href="http://www.softtiles.com/" title="Soft Tiles">Soft Tiles</a>, you know, the mats you put on the floor for kids to play on. We just hung it up on the wall with nails. Perfect.</p>
<hr class="space" />
<hr />
<h2>Rode Podcaster</h2>
<div class="break-out">
<div class="large-6 medium-6 columns">
<img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/Screen-Shot-2015-02-23-at-10.11.20-PM.png" alt="Rode Podcaster" class="alignnone size-full wp-image-4022" />
</div>
<div class="large-6 medium-6 columns">
<p>On the far left, I have a <a href="http://www.amazon.com/gp/product/B000JM46FY/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B000JM46FY&#038;linkCode=as2&#038;tag=ah0b3-20&#038;linkId=PLNNOUHD7E4X6252">Rode Podcaster</a><img src="http://ir-na.amazon-adsystem.com/e/ir?t=ah0b3-20&#038;l=as2&#038;o=1&#038;a=B000JM46FY" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
 on a <a href="http://www.amazon.com/gp/product/B001D7UYBO/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B001D7UYBO&#038;linkCode=as2&#038;tag=ah0b3-20&#038;linkId=MBOXZD44WVFNVT7D">Swivel Mount</a><img src="http://ir-na.amazon-adsystem.com/e/ir?t=ah0b3-20&#038;l=as2&#038;o=1&#038;a=B001D7UYBO" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> in the corner of my desk. One of my goals for 2015 is to start a podcast with my friend <a href="http://www.darrelgirardier.com" title="Darrel Girardier">Darrel Girardier</a>. It’s coming.</p>
</div>
</div>
<p><br clear="both" /></p>
<hr class="space" />
<hr />
<h2>Scanner</h2>
<div class="break-out">
<div class="large-6 medium-6 columns">
<img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/7076.jpg" alt="Epson V100 Perfection Scanner" class="alignnone size-full wp-image-4024" /></div>
<div class="large-6 medium-6 columns">
<p>Also on the far left (you can see the edge of it), I have a <a href="http://www.amazon.com/gp/product/B000H94WCG/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B000H94WCG&#038;linkCode=as2&#038;tag=ah0b3-20&#038;linkId=UO6AAL2H4VALZRFV">Epson Perfection V100 Photo Scanner</a><img src="http://ir-na.amazon-adsystem.com/e/ir?t=ah0b3-20&#038;l=as2&#038;o=1&#038;a=B000H94WCG" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />. It’s not the latest and greater scanner out there, but it’s more than perfect for what I use it for: scanning in textures, photos, and hand drawn illustrations — things that need to be scanned at a higher resolution.</p>
</div>
</div>
<p><br clear="both" /></p>
<p>For on the go, scanning, I’ve been really pleased with Evernote’s new app, <a href="https://evernote.com/products/scannable/">Scannable</a>.</p>
<p>For scanning receipts and documents quickly, I have a <a href="http://www.amazon.com/gp/product/B008HBFADQ/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B008HBFADQ&#038;linkCode=as2&#038;tag=ah0b3-20&#038;linkId=Q7NZSOQV77BMNHBX">Fujitsu ScanSnap Scanner</a><img src="http://ir-na.amazon-adsystem.com/e/ir?t=ah0b3-20&#038;l=as2&#038;o=1&#038;a=B008HBFADQ" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />.</p>
<hr class="space" />
<hr />
<h2>Tablets</h2>
<div class="break-out">
<div class="large-6 medium-6 columns">
<a href="http://www.amyhaywood.com/wp-content/uploads/2015/02/ipadmini1.jpg"><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/ipadmini1.jpg" alt="iPad Mini" class="alignnone size-full wp-image-4029" /></a>
</div>
<div class="large-6 medium-6 columns">
<p>I have an <a href="http://www.amazon.com/Apple-MD531LL-Wi-Fi-White-Silver/dp/B00746W9F2/ref=sr_1_1?s=pc&#038;ie=UTF8&#038;qid=1424754458&#038;sr=1-1&#038;keywords=ipad+mini">iPad Mini</a>. I was an early adopted and started out with a 3G iPad 1. Eventually, it started having issues where apps would randomly crash. I upgraded to a wireless iPad mini for Christmas. I love the smaller size. I use it for reading (and testing websites), so the smaller size makes complete sense.</p>
<p>It&#8217;s sitting on a <a href="http://www.amazon.com/gp/product/B00E3ALGVA/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B00E3ALGVA&#038;linkCode=as2&#038;tag=ah0b3-20&#038;linkId=DOB4N7YFFC35UJ7K">Twelve South HiRise.</a><img src="http://ir-na.amazon-adsystem.com/e/ir?t=ah0b3-20&#038;l=as2&#038;o=1&#038;a=B00E3ALGVA" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p>
<p>I also have a <a href="http://www.amazon.com/gp/product/B00J8DL6UI/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B00J8DL6UI&#038;linkCode=as2&#038;tag=ah0b3-20&#038;linkId=U3CJ5ZIYVXFL4NTV">Samsung Galaxy Tab 4</a><img src="http://ir-na.amazon-adsystem.com/e/ir?t=ah0b3-20&#038;l=as2&#038;o=1&#038;a=B00J8DL6UI" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
for testing websites. Even though I didn’t pay a ton of money for it, I know I don’t use enough to justify the purchase.</p>
</div>
</div>
<p><br clear="both" /></p>
<hr class="space" />
<hr />
<h2>Monitors</h2>
<div class="break-out">
<div class="large-6 medium-6 columns">
<img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/ACEV226HQLBBD.jpg" alt="Acer Monitor" class="alignnone size-full wp-image-4030" />
</div>
<div class="large-6 medium-6 columns">
<p>I have two <a href="http://www.amazon.com/gp/product/B005LJWJSG/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B005LJWJSG&#038;linkCode=as2&#038;tag=ah0b3-20&#038;linkId=Z5M5ZOI6CUT5DJHS">21&#8243; Acer Monitors</a><img src="http://ir-na.amazon-adsystem.com/e/ir?t=ah0b3-20&#038;l=as2&#038;o=1&#038;a=B005LJWJSG" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
21” acer monitors</a> that I bought at a really good price at a Black Friday sale. They’re mounted on <a href="http://www.amazon.com/gp/product/B002R9HQLI/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B002R9HQLI&#038;linkCode=as2&#038;tag=ah0b3-20&#038;linkId=YEHCXOO6Z3CFMMNU">Tyke Supply Dual LCD Monitor Stand</a><img src="http://ir-na.amazon-adsystem.com/e/ir?t=ah0b3-20&#038;l=as2&#038;o=1&#038;a=B002R9HQLI" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, which is <strong>so much better</strong> than the stack of books I had them on before. </p>
</div>
</div>
<p><br clear="both" /></p>
<p>They’re connected to my laptop via a <a href="http://www.amazon.com/gp/product/B000RMQZ96/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B000RMQZ96&#038;linkCode=as2&#038;tag=ah0b3-20&#038;linkId=YYRGGSZWRZZYMFXS">TripleHead2Go</a><img src="http://ir-na.amazon-adsystem.com/e/ir?t=ah0b3-20&#038;l=as2&#038;o=1&#038;a=B000RMQZ96" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />. (I wrote <a href="http://www.amyhaywood.com/the-ultimate-workspace-setup/" title="The Ultimate Workspace Setup">a post about the configuration</a>.) I can keep the laptop open, and run in a T configuration, but lately, I’ve enjoyed keeping my laptop in <a href="http://support.apple.com/en-us/HT201834" title="How to Use your Mac notebook in in closed clamshell mode">clamshell mode.</a> For whatever reason, I feel more productive instead of trying to manage more space.</p>
<hr class="space" />
<hr />
<h2>Speakers</h2>
<div class="break-out">
<div class="large-6 medium-6 columns">
<img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/Screen-Shot-2015-02-23-at-10.49.28-PM.png" alt="Harman/Kardon SoundSticks III Wireless Speaker System" class="alignnone size-full wp-image-4031" />
</div>
<div class="large-6 medium-6 columns">
<p>I just have a cheap pair of $35 speakers from Target. They seem to do the job just fine. Although, I&#8217;m not going to lie, I do have my eye on these <a href="">(Harman/Kardon SoundSticks III Wireless Speaker System)</a>.</p>
</div>
</div>
<p><br clear="both" /></p>
<hr class="space" />
<hr />
<h2>Wacom Tablet</h2>
<div class="break-out">
<div class="large-6 medium-6 columns">
<img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/wacom.jpg" alt="Wacom Intuous 5 Tablet" class="alignnone size-full wp-image-4032" />
</div>
<div class="large-6 medium-6 columns">
<p>I have a <a href="http://www.amazon.com/gp/product/B0076HMDQO/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B0076HMDQO&#038;linkCode=as2&#038;tag=ah0b3-20&#038;linkId=NLFXMH636G34TC4H">Intous 5 Touch Wacom Tablet.</a><img src="http://ir-na.amazon-adsystem.com/e/ir?t=ah0b3-20&#038;l=as2&#038;o=1&#038;a=B0076HMDQO" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> It’s fantastic when I do any heavy masking in Photoshop or Illustration work.</p>
</div>
</div>
<p><br clear="both" /></p>
<hr class="space" />
<hr />
<h2>MacBook Pro</h2>
<div class="break-out">
<div class="large-6 medium-6 columns">
<img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/339392-apple-macbook-pro-15-inch-2013.jpg" alt="Macbook Pro" class="alignnone size-full wp-image-4033" />
</div>
<div class="large-6 medium-6 columns">
<p>I have a 15” MacBook Pro (Retina), 2.6 GHz Intel Core i7, 16GB of Memory, with a 1TB Solid State drive. It’s been a great machine. It’s the 3rd Mac Laptop I’ve owned in the last 11 years. I ran its predecessor into the ground.</p>
<p>Even though I know I need the real estate and power for print projects…and I can’t imagine trying to run Chrome Inspector tools on a smaller screen, I still eye the <a href="http://www.amazon.com/Apple-MacBook-MD711LL-11-6-Inch-VERSION/dp/B00746YZS6/ref=sr_1_2?ie=UTF8&#038;qid=1424754832&#038;sr=8-2&#038;keywords=apple+air">Air</a>. I can’t get over how small and light it is!</p>
</div>
</div>
<p><br clear="both" /></p>
<p>I have a <a href="http://www.amazon.com/Apple-Wireless-Keyboard-MC184LL-B/dp/B005DLDO4U/ref=sr_1_1?s=pc&#038;ie=UTF8&#038;qid=1424754859&#038;sr=1-1&#038;keywords=apple+wireless+keyboard">wireless keyboard</a> and <a href="http://www.amazon.com/Apple-MC380LL-A-Magic-Trackpad/dp/B003XIJ3MW/ref=sr_1_1?s=electronics&#038;ie=UTF8&#038;qid=1424754890&#038;sr=1-1&#038;keywords=apple+trackpad">trackpad</a>. I try to get away with as few wires as possible. The track pad and I have a love hate relationship, so I’ll still pull out my <a href="http://www.amazon.com/Apple-MB829LL-A-Magic-Mouse/dp/B002TLTGM6/ref=sr_1_1?s=electronics&#038;ie=UTF8&#038;qid=1424754875&#038;sr=1-1&#038;keywords=apple+magic+mouse">Magic Mouse</a> (It’s not the track pad’s fault, it’s all me. I’m just old school like that.)</p>
<hr class="space" />
<hr />
<h2>Desk</h2>
<div class="break-out">
<div class="large-6 medium-6 columns">
<img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/vika-fagerlid.jpg" alt="ikea vika fagerlid" class="alignnone size-full wp-image-4026" />
</div>
<div class="large-6 medium-6 columns">
<p>My desk is an <a href="">Ikea</a> desk top (hollow) with Vika Fagerlid legs (apparently, they don’t sell them anymore). </p>
</div>
</div>
<hr class="space" />
<hr />
<h2>Moleskine</h2>
<div class="break-out">
<div class="large-6 medium-6 columns">
<img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/moleskine-kindle-1.jpg" alt="Moleskine" class="alignnone size-full wp-image-4034" />
</div>
<div class="large-6 medium-6 columns">
<p>Lastly, you’ll see my <a href="http://www.moleskine.com/us/" title="Moleskine">moleskine.</a> I do all design work, there, first. &#8211; ideas, wire frames, illustrations, everything. — And I’m kind of a pen snob, too. <a href="http://www.amazon.com/gp/product/B009Z6HIP0/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B009Z6HIP0&#038;linkCode=as2&#038;tag=ah0b3-20&#038;linkId=MS3GVAFE6RG32R3D">Pilot G2 0.7.</a><img src="http://ir-na.amazon-adsystem.com/e/ir?t=ah0b3-20&#038;l=as2&#038;o=1&#038;a=B009Z6HIP0" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</p>
</div>
</div>
<p><br clear="both" /></p>
<hr class="space" />
<hr />
<h4>In the Comments</h4>
<p>What are some of your favorite pieces of your workspace?</p>
<p>The post <a rel="nofollow" href="http://www.amyhaywood.com/home-workspace/">Caught in the Wild – My Home Workspace</a> appeared first on <a rel="nofollow" href="http://www.amyhaywood.com">AMY HAYWOOD</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.amyhaywood.com/home-workspace/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>A Modular Approach to WordPress Theming, Using Flexible Content</title>
		<link>http://www.amyhaywood.com/modular-wordpress-theming-flexible-content/</link>
		<comments>http://www.amyhaywood.com/modular-wordpress-theming-flexible-content/#comments</comments>
		<pubDate>Fri, 20 Feb 2015 14:00:00 +0000</pubDate>
		<dc:creator><![CDATA[Amy]]></dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Post]]></category>

		<guid isPermaLink="false">http://www.amyhaywood.com/?p=3943</guid>
		<description><![CDATA[<p>I do a lot of WordPress Development. I wouldn&#8217;t necessarily consider myself a WordPress developer, I have experience on other platforms, but I use whatever tool will meet the client&#8217;s needs best. Recently, that means WordPress.</p>
<p>The post <a rel="nofollow" href="http://www.amyhaywood.com/modular-wordpress-theming-flexible-content/">A Modular Approach to WordPress Theming, Using Flexible Content</a> appeared first on <a rel="nofollow" href="http://www.amyhaywood.com">AMY HAYWOOD</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>I do a lot of <a href="http://www.wordpress.org" title="Wordpress.org">WordPress</a> Development. I wouldn&#8217;t necessarily consider myself a WordPress developer, I have experience on other platforms, but I use whatever tool will meet the client&#8217;s needs best. Recently, that means WordPress.</p


<p>One of the things I&#8217;ve started doing is coding custom themes so they&#8217;re modular. What does this mean?</p>
<p>I just launched <a href="http://www.billseaver.com" title="Bill Seaver">billseaver.com</a>. On the home page, each &#8220;stripe&#8221; is considered a module. This gives Bill the freedom to rearrange the elements on the home page on the fly. If he has a podcast release that day, he can move the podcast stripe to the top, increasing its visibility.</p>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/acf_flexible_content_demo.gif" alt="ACF Flexible Content Demo" class="alignnone size-full wp-image-3977" /><br />
<br clear="both" /></p>
<p>As a designer, I don&#8217;t feel like the design of the site is being compromised because I&#8217;ve designed how each section should look. It&#8217;s just providing more flexibility and more value to my customers accommodating their digital strategy.</p>
<hr class="space" />
<h3>So, how did I pull this off?<br /></h3>
<p>The trick is the <a href="http://www.advancedcustomfields.com/" title="Advanced Custom Fields">Advanced Custom Fields</a> (ACF) plugin. — It&#8217;s one of <a href="http://amyhaywood.com/8-wordpress-plugins-i-put-on-all-my-sites/" title="8 WordPress Plugins I Put on all my Sites">those WordPress Plug Ins I could not live without.</a> </p>
<p>Let&#8217;s walk through the setup.</p>
<hr class="space" />
<h3>Within WordPress</h3>
<p>I have the <a href="http://www.advancedcustomfields.com/pro" title="Advanced Custom Fields Pro Plugin">ACF Pro Plugin</a> installed. Once it&#8217;s activated, it gives you a <strong>Custom Fields</strong> nav item in the left sidebar. Click on that and then the <strong>Add a New Field</strong> button.</p>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/new_field_in_acf.png" alt="Add a New Field within the Advanced Custom Fields plugin" class="alignnone size-full wp-image-3982" /></p>
<p>Let&#8217;s call this field group &#8220;Home Page&#8221; but you can really call it anything you like. This label is will be displayed on the &#8220;Edit Home Page&#8221; above our form fields.</p>
<div class="break-out">
<div class="large-6 columns">
<img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/field_group_name.png" alt="Naming the Field Group within ACF" class="alignnone size-full wp-image-3984" />
<div class="caption">On the new Field Group screen</div>
</p></div>
<div class="large-6 columns">
<img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/naming_flexible_content.png" alt="Naming Flexible Content Field" class="alignnone size-full wp-image-3998" /></p>
<div class="caption">How the field will be displayed on the Edit Home Page screen</div>
</p></div>
</div>
<hr class="space" />
<p>Before we start adding fields, let&#8217;s adjust our <strong>Location</strong> rules. I want this field group to display on the home page only. Meaning, Bill will have to click on <strong>Pages</strong> and then find the <strong>Home</strong> page to edit. There are several ways I could set the rules. </p>
<p>I could say if the <strong>Page is equal to Home</strong>.</p>
<div class="break-out">
<div class="large-12 columns">
<img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/options_location_page.png" alt="Locations within ACF" class="alignnone size-full wp-image-3986" />
	</div>
</div>
<p>or I could say if the <strong>Page Template is equal to Home</strong>.</p>
<div class="break-out">
<div class="large-12 columns">
<img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/options_location_page_template.png" alt="Locations Options within ACF" class="alignnone size-full wp-image-3987" />
	</div>
</div>
<p>Personally, I prefer the second option since the template itself is really dependent on these fields.</p>
<p>Then, in the <strong>Options</strong> box, below that, we can control the display and the other elements on the page. I try and hide all the elements I don&#8217;t need to minimize confusion:</p>
<ul>
<li>Content Editor (all content is within the stripes, no need for body copy which all means, no need for an Excerpt)</li>
<li>Excerpt</li>
<li>Comments</li>
<li>Author (don&#8217;t need to set an author for the home page)</li>
<li>Featured Image</li>
<li>Send Trackbacks</li>
<li>Custom Fields (this refers to the WordPress built in Custom Fields, not the Advanced Custom Fields we&#8217;re creating)</li>
<li>Format</li>
<li>Categories</li>
<li>Discussion</li>
<li>Tags</li>
</ul>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/acf_options.png" alt="Options within the Advanced Custom Fields" class="alignnone size-full wp-image-3988" /></p>
<p>Now for the fun part, the actual fields. Click the <strong>Add Field</strong> button. I&#8217;m going to name this &#8220;Home Page Content&#8221;, but call it whatever you like. </p>
<div class="break-out">
<div class="large-6 columns">
<img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/flexible_content_on_edit_screen.png" alt="The Flexible Content label within the Edit Page Screen" class="alignnone size-full wp-image-3983" /></p>
<div class="caption">On the new Field Group screen</div>
</p></div>
<div class="large-6 columns">
<img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/Screen_Shot_2015-02-19_at_9_12_45_PM.png" alt="Label on the Edit Home Page" class="alignnone size-full wp-image-4003" /></p>
<div class="caption">How the field will be displayed on the Edit Home Page screen</div>
</p></div>
</div>
<p><br clear="both" /></p>
<div class="box">
<h4>NOTE</h4>
<p>If you&#8217;re looking at my screenshots, I have a few other fields on the home page (background, subheading, and tertiary heading), in addition to the flexible content fields we&#8217;re creating. I don&#8217;t go into details about those fields, here, since our focus is on the flexible content.</p>
</div>
<p>You can see that the <strong>Field Name</strong> gets filled in automatically based on how you name the label field. I usually keep the default name unless it adds in dashes (&#8220;Home &#8211; Page&#8221; becomes home_-_page).</p>
<p>Select <strong>Flexible Content</strong> from the <strong>Field Type</strong> dropdown menu. </p>
<p>You can add instructions if you&#8217;d like. I usually leave this blank unless it&#8217;s a link (I&#8217;ll remind people to include the http://) or an image (I&#8217;ll include the image dimensions).</p>
<p>Within the <strong>Layout Row</strong> let&#8217;s start naming our stripes. We have 5.</p>
<p>Let&#8217;s name the first one &#8220;Receive Email Updates.&#8221; We don&#8217;t need any additional fields here since it&#8217;s simply a MailChimp Signup Form.</p>
<p>Click on the <strong>Add New</strong> link under Layout to add another row.</p>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/acf_add_new_row.png" alt="Add New Layout Row" class="alignnone size-full wp-image-3991" /></p>
<p>Name this one &#8220;New Podcast&#8221;. It will automatically pull in the most recent podcast. The only additional fields we might need is a background image. Click on the <strong>Add Field</strong> button. Name it (Podcast Background Image) and select <strong>Image</strong> from the <strong>Field Type</strong> dropdown menu. In this particular case, I&#8217;m going to select the <strong>Image URL</strong> radio button, but the <strong>Image Array</strong> option is useful when you want to grab a particular size and include the alt text.</p>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/podcast_background_image1.png" alt="Podcast Background Image within ACF" class="alignnone size-full wp-image-4005" /></p>
<p>Click on the <strong>Add New</strong> link under Layout to add another row. You get the idea. I went through the same process for the &#8220;Testimonials&#8221; (no input fields), &#8220;From the Blog&#8221; (no input fields), and the &#8220;Services&#8221; stripe with the following input fields:</p>
<ul>
<li>Column 1 Heading</li>
<li>Column 1 Content</li>
<li>Column 2 Heading</li>
<li>Column 2 Content</li>
<li>Column 3 Heading</li>
<li>Column 3 Content</li>
</ul>
<hr class="space" />
<h3>Within the Code</h3>
<p>Within my WordPress theme folder, I have a subfolder called <strong>partials</strong>. This includes smaller elements that I can reuse in other places on the site. In the case of Bill&#8217;s site, that folder contains a file for every stripe: </p>
<ul>
<li>stripe-email.php</li>
<li>stripe-podcast.php</li>
<li>stripe-services.php</li>
<li>stripe-testimonial.php</li>
<li>blog-excerpt.php</li>
</ul>
<div class="break-out">
<img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/wordpress_theme_folder_structure.png" alt="Wordpress Theme Folder Structure" class="alignnone size-full wp-image-3993" /></p>
<div class="caption">
<p>You&#8217;ll see the folder structure in the left pane and the code for the services stripe on the right.</p>
</div>
</div>
<hr class="space" />
<div class="box">
<h4>NOTE</h4>
<p>You&#8217;ll notice the &#8220;From the Blog&#8221; stripe is not prepended with &#8220;stripe&#8221;, that&#8217;s because that element is not only used on the home page, it&#8217;s also used to display a blog excerpt on the archives, categories, and tags pages.</p>
</div>
<p>My <strong>page-home.php</strong> template has this code. I tried to include comments, explaining what each section does:</p>
<pre class="language-php"><code class="language-php">&lt;main class=&quot;main&quot; role=&quot;main&quot;&gt;
&lt;?php // open the WordPress loop
if (have_posts()) : while (have_posts()) : the_post();

	// are there any rows within within our flexible content?
	if( have_rows(&#39;home_page_content&#39;) ): 

		// loop through all the rows of flexible content
		while ( have_rows(&#39;home_page_content&#39;) ) : the_row();

		// EMAIL UPDATES
		if( get_row_layout() == &#39;receive_email_updates&#39; )
			get_template_part(&#39;partials/stripe&#39;, &#39;email&#39;);

		// NEW PODCAST
		if( get_row_layout() == &#39;new_podcast&#39; )
			get_template_part(&#39;partials/stripe&#39;, &#39;podcast&#39;);

		// SERVICES STRIPE
		if( get_row_layout() == &#39;services&#39; )
			get_template_part(&#39;partials/stripe&#39;, &#39;services&#39;);

		// TESTIMONIAL
		if( get_row_layout() == &#39;testimonials&#39; )
			get_template_part(&#39;partials/stripe&#39;, &#39;testimonial&#39;);

		// FROM THE BLOG
		if( get_row_layout() == &#39;from_the_blog&#39; )
			get_template_part(&#39;partials/blog&#39;, &#39;excerpt&#39;);

		endwhile; // close the loop of flexible content
	endif; // close flexible content conditional

endwhile; endif; // close the WordPress loop ?&gt;
&lt;/main&gt;
</code></pre>
<hr class="space" />
<div class="box">
<h4>NOTE</h4>
<p>You&#8217;ll notice that my <code>if</code> statements do not have brackets (<code>{</code> and <code>}</code>). They&#8217;re not needed since there&#8217;s only one line of code after the condition. However, if you need to add additional lines within the statement, be sure to insert those brackets!</p>
</div>
<p>If you see the <code>have_rows()</code> and <code>get_row_layout()</code> functions, that&#8217;s all ACF. You can get additional documentation for <a href="http://www.advancedcustomfields.com/resources/flexible-content/">the Flexible Content fields on ACF&#8217;s site</a>. </p>
<p>The <code>get_template_part()</code> function is built into WordPress (more information within the <a href="http://codex.wordpress.org/Function_Reference/get_template_part">WordPress Codex</a>). The first parameter of the function is the folder name (partials) and the first part of the file name before the dash (remember I named my files stripe-email.php?). The second parameter is the fiel name after the dash (email).</p>
<p>The <code>get_template_part()</code> function is great for other places in your WordPress themes, not just within Flexible Content. I mentioned the blog-excerpt.php snippet is also used within the <strong>archive.php</strong> template:</p>
<pre class="language-php"><code class="language-php">&lt;?php if (have_posts()): while (have_posts()) : the_post(); ?&gt;
	&lt;!-- article --&gt;
	&lt;article id=&quot;post-&lt;?php the_ID(); ?&gt;&quot; &lt;?php post_class(); ?&gt;&gt;
		&lt;?php get_template_part(&#39;partials/blog&#39;, &#39;post&#39;); ?&gt; 
	&lt;/article&gt;
	&lt;!-- /article --&gt;
&lt;?php endwhile; ?&gt;
</code></pre>
<hr class="space" />
<p>The beauty in this method is if I need to change the way the blog excerpt is being displayed, I only have to change one file! I don&#8217;t have to remember every place that a blog excerpt is being implemented.</p>
<hr>
<h3>Other implementations</h3>
<p>This modular method is also useful for formatting content. I used it on the <a href="/portfolio">portfolio section</a> of my site.</p>
<p>I knew each page would need a different format depending on whether it was a website or a print project and what assets I have for each. </p>
<div class="break-out">
<div class="large-6 columns">
<img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/Jimmy_Needham_Splash_Page_-_AMY_HAYWOOD__20150219_.jpg" alt="Jimmy Needham Splash Page " class="alignnone size-full wp-image-3995" /></p>
<div class="caption"><a href="/portfolio/jimmy-needham-splash-page/">Landing page for Jimmy Needham</a></div>
</div>
<div class="large-6 columns">
<img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/Small_Groups_Handbook_-_AMY_HAYWOOD__20150219_.jpg" alt="Small Groups Handbook" class="alignnone size-full wp-image-3996" /></p>
<div class="caption"><a href="/portfolio/small-groups-handbook/">Small Groups Handbook</a></div>
</div>
</div>
<p><br clear="both" /></p>
<p>The post <a rel="nofollow" href="http://www.amyhaywood.com/modular-wordpress-theming-flexible-content/">A Modular Approach to WordPress Theming, Using Flexible Content</a> appeared first on <a rel="nofollow" href="http://www.amyhaywood.com">AMY HAYWOOD</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.amyhaywood.com/modular-wordpress-theming-flexible-content/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>How to Segment your MailChimp List into Groups</title>
		<link>http://www.amyhaywood.com/segment-mailchimp-list-groups/</link>
		<comments>http://www.amyhaywood.com/segment-mailchimp-list-groups/#respond</comments>
		<pubDate>Wed, 18 Feb 2015 14:00:00 +0000</pubDate>
		<dc:creator><![CDATA[Amy]]></dc:creator>
				<category><![CDATA[101]]></category>
		<category><![CDATA[Post]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[mailchimp]]></category>
		<category><![CDATA[email marketing]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://www.amyhaywood.com/?p=3852</guid>
		<description><![CDATA[<p>The “Problem” I know that I have a variety of interests and (for now) I want to blog about all of them in the same place. However, I’m not so naive as to believe that everything I’m writing about, is something you’re interested in too. I want to make sure I don’t bother you with... <a class="view-article" href="http://www.amyhaywood.com/segment-mailchimp-list-groups/">View Article</a></p>
<p>The post <a rel="nofollow" href="http://www.amyhaywood.com/segment-mailchimp-list-groups/">How to Segment your MailChimp List into Groups</a> appeared first on <a rel="nofollow" href="http://www.amyhaywood.com">AMY HAYWOOD</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/mailchimp_logo.png" alt="MailChimp" class="alignnone size-full wp-image-3948" /></p>
<h2>The “Problem”</h2>
<p>I know that I have a variety of interests and (for now) I want to blog about all of them in the same place. However, I’m not so naive as to believe that everything I’m writing about, is something you’re interested in too. I want to make sure I don’t bother you with content that’s not useful and interesting to you.</p>
<p>So…you may have noticed, if you sign up for my email updates, you have the ability to pick which categories you’d like to receive updates for.</p>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/Screen-Shot-2015-02-17-at-11.29.30-PM.png" alt="Sign up for Email Updates" class="alignnone size-full wp-image-3949" /></p>
<p>If you’re intersted in implementing a similar solution on your site, I thought I’d explain how I accomplished it on mine.</p>
<h3>Publishing within WordPress</h3>
<div class="break-out">
<div class="large-3 medium-3 columns">
<img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/Screen-Shot-2015-02-17-at-11.25.08-PM.png" alt="Categories within WordPress" class="alignnone size-full wp-image-3950" /></p>
</div>
<div class="large-9 medium-9 columns">
<ol>
<li>Each section (<a href="/category/content-category/photography/">Photography</a>, <a href="/category/content-category/one-hundred-one/">101</a>, <a href="/category/content-category/design/">Design</a>, <a href="/category/content-category/programming/">Programming</a>, <a href="/category/content-category/my-life/">My Life</a>, and <a href="/category/content-category/finders-keepers/">Finder’s Keepers</a>) is set up as a category within WordPress. When I’m posting, this makes it easy enough.</li>
</ol>
</div>
</div>
<h3>Creating a List within MailChimp</h3>
<ol start="2">
<li>Within <a href="http://mailchimp.com/">MailChimp</a> I have a single list for AMYHAYWOOD.com updates. Inside the list, I’ve created <strong>Groups</strong> for each category. To do so, go to the <strong>Lists</strong> page and click on the <strong>Create List</strong> button.</li>
</ol>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/create_a_list.png" alt="Create a List within MailChimp" class="alignnone size-full wp-image-3952" /></p>
<ol start="3">
<li>Fill in the form appropriately. (Note: You will probably be asked at some point to confirm that you have access to the <strong>Default “from” email</strong> so make sure it’s an inbox you have access to.)</li>
</ol>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/create_a_list_form.png" alt="Create a MailChimp List" class="alignnone size-full wp-image-3955" /></p>
<ol start="4">
<li>Next, under the <strong>Manage Subscribers</strong> dropdown, select <strong>Groups.</strong></li>
</ol>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/manage_subscribers_groups.png" alt="In MailChimp Manage Subscribers" class="alignnone size-full wp-image-3956" /></p>
<ol start="5">
<li>Click on the <strong>Create Groups</strong> button. </li>
</ol>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/create_groups.png" alt="MailChimp, Create Groups" class="alignnone size-full wp-image-3957" /></p>
<ol start="6">
<li>As you can tell from the form options, there are several ways you can implement groups on your signup forms. Obviously, I went with checkboxes. Then, just fill in the details. When you’re done, click on the <strong>Save</strong> button.</li>
</ol>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/create_group_details.png" alt="Create a Group in MailChimp" class="alignnone size-full wp-image-3958" /></p>
<ol start="7">
<li>I didn’t have any addresses to import, so I clicked the <strong>Done for Now</strong> button.</li>
</ol>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/groups_done_for_now.png" alt="MailChimp Groups, Done for Now" class="alignnone size-full wp-image-3959" /></p>
<h3>Creating a Campaign within MailChimp</h3>
<ol start="8">
<li>Then, within <strong>Campaigns</strong>, I have a Campaign set up for each category. On the Campaigns page, click on the “Create a Campaign” Button</li>
</ol>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/create_campaign.png" alt="MailChimp Create a Campaign" class="alignnone size-full wp-image-3960" /></p>
<ol start="9">
<li>Select an <strong>RSS-Driven Campaign</strong> from the menu</li>
</ol>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/type_of_campaign.png" alt="Choose a Type of Campaign within MailChimp" class="alignnone size-full wp-image-3953" /></p>
<ol start="10">
<li>From WordPress, I’m using a separate RSS feed set up for each category. <a href="http://codex.wordpress.org/WordPress_Feeds#Categories_and_Tags">This functionality</a> is actually built into WordPress by default. It’s just a matter of figuring out what your URL is.
<p>Once that’s been determined, enter the the feed URL into MailChimp. Choose when you want to send out updates and on what days. Then, click the next button in the bottom right.</li>
</ol>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/create_a_campaign_screen_1.png" alt="MailChimp, Create a Campaign" class="alignnone size-full wp-image-3961" /></p>
<ol start="11">
<li>Select the list you want to send to. Select <strong>Send to a new Segment</strong>. Then, select <strong>Group: Categories</strong> from the dropdown (<em>NOTE:</em> Instead of “Categories”, it may say whatever you labeled it as within the Campaign) and whatever category you want to send to. Click the next button in the bottom right.</li>
</ol>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/send_to_segment.png" alt="Send to a MailChimp segment" class="alignnone size-full wp-image-3963" /></p>
<ol start="12">
<li>On the next screen, name your campaign. There are several other settings you can modify, I tend to keep the defaults. Then, click the next button in the bottom right.</li>
</ol>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/campaign_details.png" alt="Modify MailChimp Campaign Details" class="alignnone size-full wp-image-3964" /></p>
<ol start="13">
<li>Select the Theme you want to use. I won&#8217;t go into email templating here, but there’s a good <strong>Basic RSS</strong> theme that accomplishes our purposes just fine. Click on the next button in the bottom right.</li>
</ol>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/select_theme.png" alt="Select a MailChimp Theme" class="alignnone size-full wp-image-3965" /></p>
<ol start="14">
<li>Make any tweaks to the design and content you want displayed. Then, click the next button.</li>
</ol>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/modify_design.png" alt="Modify the MailChimp Design Template" class="alignnone size-full wp-image-3966" /></p>
<ol start="15">
<li>On the last screen, make sure your settings are correct and there are no issues. If you’re good to go, click <strong>Start RSS</strong> button in the bottom right.</li>
</ol>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/confirm.png" alt="MailChimp Start RSS" class="alignnone size-full wp-image-3967" /></p>
<h3>Getting the Embed Form</h3>
<ol start="16">
<li>Within MailChimp, go back to the <strong>Lists</strong> page, next to your list, select <strong>Signup Forms</strong> from the Dropdown form.</li>
</ol>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/list_signup_form.png" alt="MailChimp List Signup Form" class="alignnone size-full wp-image-3968" /></p>
<ol start="17">
<li>I typically go with the <strong>Embedded Forms</strong> option.</li>
</ol>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/embedded_forms.png" alt="Embedded MailChimp Form" class="alignnone size-full wp-image-3969" /></p>
<ol start="18">
<li>Make any changes to the form being displayed, then, copy and paste the code onto your site.</li>
</ol>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/get_code.png" alt="Embedded MailChimp Form" class="alignnone size-full wp-image-3970" /></p>
<p>Badda-Boom! Badda-Bing!</p>
<p>The post <a rel="nofollow" href="http://www.amyhaywood.com/segment-mailchimp-list-groups/">How to Segment your MailChimp List into Groups</a> appeared first on <a rel="nofollow" href="http://www.amyhaywood.com">AMY HAYWOOD</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.amyhaywood.com/segment-mailchimp-list-groups/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting your Git On: A Beginner&#8217;s Guide to Git</title>
		<link>http://www.amyhaywood.com/beginners-guide-git/</link>
		<comments>http://www.amyhaywood.com/beginners-guide-git/#respond</comments>
		<pubDate>Mon, 16 Feb 2015 14:00:00 +0000</pubDate>
		<dc:creator><![CDATA[Amy]]></dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Post]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[bitbucket]]></category>
		<category><![CDATA[beanstalk]]></category>

		<guid isPermaLink="false">http://www.amyhaywood.com/?p=3895</guid>
		<description><![CDATA[<p>What is git anyway? Short answer: version control. Long answer: Think of it as having unlimited undos on your code. Or better yet, if you’re collaborating with another developer, it allows you to both work on the same project without overwriting each other’s code. Awesome! This has saved my butt on more than one occasion.... <a class="view-article" href="http://www.amyhaywood.com/beginners-guide-git/">View Article</a></p>
<p>The post <a rel="nofollow" href="http://www.amyhaywood.com/beginners-guide-git/">Getting your Git On: A Beginner&#8217;s Guide to Git</a> appeared first on <a rel="nofollow" href="http://www.amyhaywood.com">AMY HAYWOOD</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>What is git anyway? Short answer: version control. Long answer: Think of it as having unlimited undos on your code. Or better yet, if you’re collaborating with another developer, it allows you to both work on the same project without overwriting each other’s code. Awesome!</p>
<p>This has saved my butt on more than one occasion. I’ve vowed to always use source control, regardless of how big or small the project is.</p>
<div class="break-out"><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/header-git.png" alt="git" class="alignnone size-full wp-image-3910" /></div>
<p>So, now that you’re interested in git, where do you begin? To get started, you’ll need to install git on your local machine (don’t worry, I’ll explain). Eventually, you’ll want to use an online service to store your code, like <a href="http://www.github.com" title="GitHub">GitHub</a>, <a href="http://www.bitbucket.com" title="BitBucket">BitBucket</a>, or <a href="http://beanstalkapp.com/" title="Beanstalk App">Beanstalk</a>. (more on that below, too)</p>
<hr class="space" />
<hr />
<h2>Installing git Locally</h2>
<div class="box">
<h4>NOTE:</h4>
<p>I use a Mac, so unfortunately, I can only speak to that. However, if you’re using another operating system try <a href="http://git-scm.com/book/en/v2/Getting-Started-Installing-Git" title="Installing git">looking here.</a></p>
</div>
<p>The easiest way to to install Git on your Mac (if you’re on Mavericks or older) is to install the XCode Command Line Tools. This is as simple as trying to run <em>git</em> from the Terminal. </p>
<div class="box">
<h4>NOTE:</h4>
<p>Remember, when you’re working in the Command Line, the dollar sign ($) is the prompt and signifies a new line. No need to copy it.</p>
</div>
<pre class="language-terminal"><code class="language-terminal">$ git</code></pre>
<p>If you don’t have git installed already, it will prompt you to do so.</p>
<p>If you want a more up to date version, or would rather run the binary installer, you can grab that <a href="http://git-scm.com/download/mac" title="Binary git installer">here</a>.</p>
<div class="break-out"><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/git-osx-installer.png" title="Binary Installer for git on the Mac"/></div>
<p><a name="git-settings" id="git-settings"></a></p>
<p>The first thing you’ll want to do is configure your git settings.</p>
<pre class="language-terminal"><code class="language-terminal">$ git config --global user.name &quot;John Doe&quot;
$ git config --global user.email &quot;john@doe.org&quot;
$ git config --global color.ui auto</code></pre>
<hr />
<p>Git is typically run from the Terminal. However, as a designer, I tend to be a little leary of the Termianal. Granted I’ve <a href="http://www.amyhaywood.com/getting-started-with-the-terminal/" title="Getting Started with the Terminal">gotten more comfortable</a>, but I still prefer a GUI (Graphical User Interface) when I can get one.</p>
<p>I think the easiest thing to do is learn the vocabulary. Then, it doesn’t matter whether it’s the Terminal or GUI, the same concepts apply no matter what.</p>
<hr />
<h2>Learning the vocabulary</h2>
<div class="box">
<h4>NOTE</h4>
<p><a href="http://www.git-tower.com/blog/git-cheat-sheet/" title="Git Cheat Sheet">Here’s a cheat sheet</a> you can print out and keep handy.</p>
</div>
<p>Let’s walk through this as you would for a real project.</p>
<p>You’ll want to create a folder on your computer for your project. In my user folder, I have a folder called <strong>Code</strong>. Then, a subfolder called <strong>GIT</strong>. I keep all my project folders there.</p>
<div class="break-out"><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/folder-structure.png" alt="Code &gt; Git folder structure" class="alignnone size-full wp-image-3928" /></div>
<p>If you’re trying to do everything from the command line, these commands create a new folder and then navigates inside:</p>
<pre class="language-terminal"><code class="language-terminal">$ mkdir new_project
$ cd new_project</code></pre>
<p>Let’s <strong>init</strong>iatize our git repository. (All your git projects are called repositories.)</p>
<pre class="language-terminal"><code class="language-terminal">$ git init</code></pre>
<p>So what does initializing really do? It creates an <em>empty</em> repository in a hidden folder, <strong>.git</strong>. </p>
<div class="box">
<h4>NOTE:</h4>
<p>If you ever wanted to remove the repository, all you’d need to do is delete that .git subdirectory:</p>
<pre class="language-terminal"><code class="language-terminal">$ git rm -rf .git</code></pre>
</div>
<p>Notice, I said <em>empty</em>. It did <em>not</em> add the current content within your folder. You have to tell it to do that yourself.</p>
<p>All the content within your project folder is considered the <strong>working copy</strong>. Once you get to a place where you want to save those files, you’ll <strong>stage</strong> your changes and then <strong>commit</strong> them to your local repository.</p>
<hr class="space" />
<div class="break-out"><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/workflow.png" title="Working Copy, Staging, Local Repository"/></div>
<hr class="space" />
<p>The advantage here is not all of the files you’ve modified since your last commit have to be staged and committed.</p>
<hr class="space" />
<h4>Status</h4>
<p>Let’s get an overview of everything that has changed since we last committed:</p>
<pre class="language-terminal"><code class="language-terminal">git status</code></pre>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/git_status.png" alt="git status" class="alignnone size-full wp-image-3922" /></p>
<p>Git will put your changes into three main categories:</p>
<ul>
<li>Changes not staged for commit</li>
<li>Changes to be committed</li>
<li>Untracked files</li>
</ul>
<hr class="space" />
<h4>Add</h4>
<p>You can add all these changes by using:</p>
<pre class="language-terminal"><code class="language-terminal">git add .</code></pre>
<p>If you don’t want to add the changes you’ve made, but cherry pick files, you can list them out:</p>
<pre class="language-terminal"><code class="language-terminal">git add assets/dist/css/main.css assets/dist/js/production.js</code></pre>
<hr class="space" />
<h4>Remove</h4>
<p>If we removed a file, we’d need to confirm that too:</p>
<pre class="language-terminal"><code class="language-terminal">git rm something.html</code></pre>
<hr class="space" />
<h4>Commit</h4>
<p>Now, let’s commit our updates:</p>
<pre class="language-terminal"><code class="language-terminal">git commit -m &quot;Initial commit&quot;
</code></pre>
<p>The first commit, I usually title as “Initial commit” but as you continue to make changes and commit your code, you’ll want these messages to be meaningful. This will make it easier for you (or your teammates) to understand the changes you made later down the road.</p>
<p>Your message should include information like, “What was the motivation for the change? How does this differ from the previous version?”</p>
<p>If you need a longer commit message than 50 characters, you can leave out the “-m” parameter and Git will open an editor application for you to write a longer message.</p>
<p>Here are a few guidelines from <a href="http://www.git-tower.com/learn/ebook/command-line/basics/working-on-your-project#start">Tower’s eBook, <em>Learn Version Control with Git</em></a>:</p>
<ol>
<li><strong>Related Changes</strong> A commit should only contain changes from a single topic. Don’t mix up contents from different topics. This will make it harder to understand what happened.</li>
<li><strong>Completed Work</strong> Never commit something that is half-done. If you need to save your current work temporarily in something like a clipboard, you can use Git’s “Stash” feature. But don’t eternalize it in a commit.</li>
<li><strong>Tested Work</strong> You shouldn’t commit code that you <em>think</em> is working. Test it well — and before you commit it to the repository.</li>
<li><strong>Short and Descriptive Messages</strong> A good commit also needs a good message.</li>
</ol>
<hr class="space" />
<h4>Log</h4>
<p>If you want to review a history of all the commits that have been made to a project:</p>
<pre class="language-terminal"><code class="language-terminal">git log</code></pre>
<p>You’ll see a list in chronological order, beginning with the newest item.</p>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/git_log.png" alt="git log" class="alignnone size-full wp-image-3921" /></p>
<p>If there are more items than what can be displayed on one page, you’ll see a : at the bottom of the screen. You can go to the next page by hitting the &lt;SPACE&gt; key and quit with “q”.</p>
<p>You’ll notice from the log, every commit has:</p>
<ul>
<li><strong>Commit Hash</strong> This is that crazy long string of letters and numbers (i.e. aa093b890c78e9d0869a3f267b2530cf2cbeb83f)</li>
<li><strong>Author Name and Email</strong> Remember when we set our name and email address within the <a href="#git-settings">git configurations above</a>? This is where it gets used.</li>
<li><strong>Date</strong></li>
<li><strong>Commit Message</strong></li>
</ul>
<hr class="space" />
<h4>Remote</h4>
<p>Now that we’ve made a bunch of commits, let’s publish (or push) them online. First we need to tell Git where our <strong>remote</strong> repository is.</p>
<p>There’s several services you can use, three of the most popular ones are:</p>
<ul>
<li><a href="http://www.github.com">GitHub</a></li>
<li><a href="http://www.bitbucket.com">BitBucket</a></li>
<li><a href="http://beanstalk.com">Beanstalk</a></li>
</ul>
<p>I go into <a href="#remote-repositories">a little more detail on each service’s features below.</a></p>
<p>Regardless of the service you use, when you create a repository, they will give you an SSH address and HTTPS address.</p>
<p>You can use either:</p>
<pre class="language-terminal"><code class="language-terminal">$ git remote add origin git@bitbucket.org:ahhacreative/git_blog_post.git
</code></pre>
<p>OR</p>
<pre class="language-terminal"><code class="language-terminal">$ git remote add origin https://ahhacreative@bitbucket.org/ahhacreative/git_blog_post.git
</code></pre>
<p>In this case, we named our remote repository “origin.” This is the default within Git. However, I could just as easily name it something else. I usually name mine based on where the remote repository is. This makes it easy within Tower (my GUI of choice) to tell where it’s being saved:</p>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/tower_remote.png" alt="Git Remotes on Tower" class="alignnone size-full wp-image-3925" /></p>
<p>From the command line:</p>
<pre class="language-terminal"><code class="language-terminal">$ git remote add BITBUCKET git@bitbucket.org:ahhacreative/git_blog_post.git</code></pre>
<p>You can see a list of all your remotes:</p>
<pre class="language-terminal"><code class="language-terminal">git remote -v</code></pre>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/git_remote.png" alt="git remotes" class="alignnone size-full wp-image-3918" /></p>
<p>You’ll notice there are two URLs listed (fetch and push). One is for read access (fetch) and the other is for write (push). Uusally, the two URLs are the same, but you could use different URLs for security and performance issues.</p>
<hr class="space" />
<h4>Push</h4>
<p>Now, we need to <strong>push</strong> our code up to our remote:</p>
<pre class="language-terminal"><code class="language-terminal">$ git push origin master</code></pre>
<p>Hopefully, some of these things are starting to look familiar. <strong>origin</strong> is the name of the remote repository and <strong>master</strong> is the name of our branch. (We haven’t talked about branching yet. It’s OK, just trust me for now, but <a href="#branching">it’s coming</a>.)</p>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/git_push.png" alt="git push" class="alignnone size-full wp-image-3920" /></p>
<p>Let’s pause for a moment. I just want to take a moment to point out: you’re more than halfway there! It wasn’t that hard, was it?! You know everything you need to know to save, commit, and publish your files online! There’s still more topics to cover, but you already know the basics. That’s worth celebrating!</p>
<hr class="space" />
<h4>Pull</h4>
<p>OK. So far, we’ve just published our changes online. But, what if we’re collaborating with another developer? They’re publishing their changes too. How do we <strong>pull</strong> down there code?</p>
<p>First you may want to see what you’re pulling:</p>
<pre class="language-terminal"><code class="language-terminal">$ git fetch origin
$ git log origin/master</code></pre>
<p>If you want to integrate these changes into your local working copy:</p>
<pre class="language-terminal"><code class="language-terminal">$ git pull</code></pre>
<p>If you have multiple remotes and branches, you may need to specify:</p>
<pre class="language-terminal"><code class="language-terminal">$ git pull origin master</code></pre>
<hr class="space" />
<a id="branching" name="branching"></a></p>
<h4>Branching</h4>
<p>OK, so let’s (finally) talk about branching.</p>
<p>When you’re coding, there are usually several different contexts or “topics” you’re working with:</p>
<ul>
<li>features</li>
<li>bug fixes</li>
<li>experiments</li>
</ul>
<p>In the real world, these all happen simultaneously. You’re trying to fix a bug while a teammate is working on the new about page design.</p>
<p>If branching didn’t exist, how would you integrate some of these changes, but not all of them? You need to post the code for the bug fix, but your teammate isn’t ready to launch the new about page. You find out the new “members only” code you’ve been working on is going in a different direction, but you’ve already integrated that code in with everything else. How do you separate it out?</p>
<hr class="space" />
<div class="break-out"><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/no_branches.jpg" alt="no git branches" class="alignnone size-full wp-image-3917" /></div>
<hr class="space" />
<p>Branching!</p>
<p>You can create a branch to handle each of these topics. It stays separate from all the other contexts. When you make changes, they only apply to the current active branch.</p>
<hr class="space" />
<div class="break-out"><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/branching.png" alt="git branching" class="alignnone size-full wp-image-3911" /></div>
<hr class="space" />
<p>Your current branch can be referred to as the <strong>active</strong> branch, <strong>checked out</strong> branch, or <strong>HEAD</strong> branch. They all mean the same thing.</p>
<p>Whenever you run <code>git status</code>, it will tell you what branch you’re currently on.</p>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/current_branch.png" alt="current branch by running git status" class="alignnone size-full wp-image-3916" /></p>
<div class="box">
<h4>NOTE</h4>
<p>You may have noticed from my screenshots, that my Terminal shows me what branch I’m in and changes color based on whether I’ve there are uncommitted files or not.</p>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/git_ohmyzsh.png" alt="git inside iTerms2 and oh my zsh" class="alignnone size-full wp-image-3923" /></p>
<p>I’m running <a href="https://github.com/robbyrussell/oh-my-zsh" title="Oh My Zsh">Oh My Zsh</a> within <a href="http://iterm2.com/" title="iTerm2">iTerm2</a>. I have more details in <a href="">a blog post.</a></p>
</div>
<p>To create a new branch:</p>
<pre class="language-terminal"><code class="language-terminal">$ git branch feature/about-page</code></pre>
<p></p>
<div class="box">
<h4>NOTE:</h4>
<p>I like to name my branches my contexts. So, you’ll notice, I prepended my branch name (about-page) with “feature.” This is nice because within Tower, it treats these contexts as folders:</p>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/branches_in_tower.png" alt="branches within Tower" class="alignnone size-full wp-image-3912" />
</div>
<p>We’ve created a branch, but it’s still not our current branch. To change branches, you’ll need to <strong>checkout</strong>:</p>
<pre class="language-terminal"><code class="language-terminal">$ git checkout -b feature/about-page</code></pre>
<p>To view a list of all our branches:</p>
<pre class="language-terminal"><code class="language-terminal">$ git branch -v</code></pre>
<p>The <code>-v</code> (verbose) flag, provides more information, than just <code>git branch</code>.</p>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/git_list_branches.png" alt="git list branches" class="alignnone size-full wp-image-3913" /></p>
<p>Now, that you know how to create and change branches. What happens when you’re ready to commit that code to your main (master) branch?</p>
<p>First, you’ll want to navigate to your master branch. Then, merge in your new branch:</p>
<pre class="language-terminal"><code class="language-terminal">$ git checkout master
$ git merge feature/about-page</code></pre>
<p>Once a branch is merged and deployed, you no longer need it. To delete a local branch:</p>
<pre class="language-terminal"><code class="language-terminal">$ git branch -d feature/about-page </code></pre>
<hr class="space" />
<h4>Stashing</h4>
<p>Remember when we talked about not committing half done work? How do you get around that?</p>
<p>Stashing.</p>
<p><a href="http://www.git-tower.com/learn/ebook/command-line/branching-merging/stashing#start" title="Stash on git-tower.com">git-tower.com</a> explains it well:</p>
<blockquote><p>Think of the Stash as a clipboard on steroids: it takes all the changes in your working copy and saves them for you on a new clipboard. You’re left with a clean working copy, i.e. you have no more local changes.</p>
</blockquote>
<p>To stash your local changes:</p>
<pre class="language-terminal"><code class="language-terminal">$ git stash</code></pre>
<p>To see an overview of all your current stashes:</p>
<pre class="language-terminal"><code class="language-terminal">$ git stash list</code></pre>
<p>The most recent Stashes will always be listed first.</p>
<p>When you want to apply a Stash, you can run:</p>
<pre class="language-terminal"><code class="language-terminal">$ git stash pop</code></pre>
<p>This will pull the latest Stash and clear it from your clipboard. Or</p>
<pre class="language-terminal"><code class="language-terminal">$ git stash apply &lt;StashName&gt;</code></pre>
<p>This pulls the specified Stash, but unlike <code>pop</code>, it remains saved. To delete it, you’ll need to run <code>git stash drop &lt;StashName&gt;</code></p>
<hr class="space" />
<h4>Clone</h4>
<p>These things are all great, but what if you’re not starting from scratch? What if you’re joining a project that already exists? </p>
<p>Then, you’ll want to use <code>clone</code>.</p>
<pre class="language-terminal"><code class="language-terminal">$ git clone https://ahhacreative@bitbucket.org/ahhacreative/git_blog_post.git</code></pre>
<p>This will automatically set the remote to the “origin.” Anytime you <code>pull</code>, it will grab any updates made to the repository.</p>
<p>Sometimes, you’ll want to grab the code from a repository, but start with a clean history. To do so, simply add the flag <code>--bare</code>:</p>
<pre class="language-terminal"><code class="language-terminal">$ git clone --bare https://ahhacreative@bitbucket.org/ahhacreative/git_blog_post.git</code></pre>
<hr class="space" />
<h4>.gitignore</h4>
<p>There will be times when you don’t want to put all your code within your repository. For example, if you’re using bower, you probably don’t want the <strong>bower_components</strong> folder. Or, if you’re running grunt or gulp, you don’t need <strong>node_modules</strong>. A teammate only needs to run <code>bower init</code> or <code>npm install</code> to get those files. Committing them would only bloat your repository.</p>
<p>You can create a file called <code>.gitignore</code> and list all the files or folders to exclude. For example, here’s my .gitignore file for a WordPress project:</p>
<p><script src="https://gist.github.com/ahaywood/8f12eee136d9de33fd29.js"></script></p>
<hr />
<p><a id="remote-repositories" name="remote-repositories"></a></p>
<h2>Remote Repositories</h2>
<p>There are several services that you can use to host your remote repositories.</p>
<hr class="space" />
<h4>GitHub</h4>
<div class="break-out"><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/github.png" alt="GitHub" class="alignnone size-full wp-image-3915" /></div>
<p><a href="http://github.com">GitHub</a> is probably the most popular. If you make your repositories public, then you can create an unlimited number of repositories for free. You start paying when you create private repositories.</p>
<p>GitHub also has an excellent <a href="https://github.com/features">issue tracker built in</a> among several other great resources.</p>
<p>Even if you don’t plan on paying for a GitHub account, I would highly recommend signing up for an account anyway. GitHub has practically become a standard for developers. Meaning, if you’re applying for a programming job, your potential employer could ask to see examples on GitHub.</p>
<hr class="space" />
<h4>BitBucket</h4>
<div class="break-out"><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/bitbucket.png" alt="BitBucket" class="alignnone size-full wp-image-3914" /></div>
<p>I actually store all my code on <a href="http://www.bitbucket.com">BitBucket</a>. BitBucket does everything that GitHub does, but is missing the community that surrounds GitHub.</p>
<p>For me, the decision came down to $$. GitHub’s business model revolves around the number of private repositories you create. BitBucket’s bases its pricing tiers on the number of users. As long as you have under 5 users, it’s free.</p>
<p>As a one-woman web shop, I was easily in the top tier with GitHub. But, with BitBucket, I can have as many free private repositories as I want. That’s a no brainer.</p>
<hr class="space" />
<h4>BeanStalk</h4>
<div class="break-out"><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/beanstalk.png" alt="Beanstalk App" class="alignnone size-full wp-image-3909" /></div>
<p><a href="http://beanstalkapp.com" title="Beanstalk">BeanStalk</a> is another great service. Like GitHub, you’re paying based on the number of repositories you use. </p>
<p>It’s missing a lot of the features that the other two services provide, but the biggest benefit it has is built in deployment. Meaning, you can push changes to your repository and it will automatically send those updates to your server via FTP (or however you specify). That’s almost enough to make me switch. </p>
<p>In the meantime, I’m using <a href="http://dploy.io" title="dploy.io">dploy.io</a> instead. It’s made by the same company (WildBit) that makes Beanstalk. Dploy.io allows you to deploy commits from BitBucket or GitHub. Pricing is based on the number of repositories you’ve connected. </p>
<hr />
<h2>The Apps</h2>
<p>OK, now that you know the correct terminology, I want to introduce a few GUIs:</p>
<hr class="space" />
<h4>Tower</h4>
<div class="break-out"><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/towerapp.png" alt="Tower App" class="alignnone size-full wp-image-3933" /></div>
<p>I use <a href="http://www.git-tower.com/" title="Tower App">Tower</a>. IMHO, it’s the best. Just from glancing at the screenshot, you can see the buttons along the top for most of the vocabulary terms covered in this post. If you want a little more information, check out this screencast (from the Tower app team):</p>
<p><iframe width="900" height="506" src="http://www.youtube.com/embed/cyyuqf1m-2E?feature=oembed" frameborder="0" allowfullscreen></iframe></p>
<hr class="space" />
<h4>GitHub</h4>
<div class="break-out"><img src="http://www.amyhaywood.com/wp-content/uploads/2015/02/github_app.png" alt="GitHub on Mac" class="alignnone size-full wp-image-3932" /></div>
<p><a href="https://mac.github.com/" title="GitHub for the mac">GitHub has their own GUI.</a> Unlike Tower, it’s free. I’ve downlaoded it, but I rarely use it since I have Tower. </p>
<p>At the end of the day, it’s whatever you’re the most comfortable with. They all accomplish the same thing. My thing is don’t let the tools get in the way of making cool stuff.</p>
<hr class="space" />
<hr />
<h2>Additional Resources</h2>
<p>Granted, we’ve covered the basics, it should be enough to get you up and going. However, if you want to dig a little deeper, here are a few additional resources to check out:</p>
<ul>
<li><a href="http://www.git-tower.com/learn/">Learn Git from the people that make Tower</a></li>
<li><a href="https://try.github.io/levels/1/challenges/1">Try Git</a> &#8211; This is a resource created by <a href="https://www.codeschool.com/" title="Code School">CodeSchool</a>. It’s pretty great since it’s interactive. You can type commands into their web interface for feedback.</li>
</ul>
<p>The post <a rel="nofollow" href="http://www.amyhaywood.com/beginners-guide-git/">Getting your Git On: A Beginner&#8217;s Guide to Git</a> appeared first on <a rel="nofollow" href="http://www.amyhaywood.com">AMY HAYWOOD</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.amyhaywood.com/beginners-guide-git/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My SASS Extends, Mixins, and Functions</title>
		<link>http://www.amyhaywood.com/my-sass-extends-mixins-and-functions/</link>
		<comments>http://www.amyhaywood.com/my-sass-extends-mixins-and-functions/#comments</comments>
		<pubDate>Wed, 04 Feb 2015 02:26:49 +0000</pubDate>
		<dc:creator><![CDATA[Amy]]></dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Post]]></category>
		<category><![CDATA[sass]]></category>

		<guid isPermaLink="false">http://www.amyhaywood.com/?p=3900</guid>
		<description><![CDATA[<p>Last week, I wrote a little post about the SASS I have running on my site. Continuing on, I thought I’d share my SASS broilerplate with some of the mixins, functions, and extends. Naming Breakpoints In my SASS breakpoints file, I’m using Chris Coyier’s Breakpoint trick. — It’s a mixin within _2_helpers / _breakpoints.scss file.... <a class="view-article" href="http://www.amyhaywood.com/my-sass-extends-mixins-and-functions/">View Article</a></p>
<p>The post <a rel="nofollow" href="http://www.amyhaywood.com/my-sass-extends-mixins-and-functions/">My SASS Extends, Mixins, and Functions</a> appeared first on <a rel="nofollow" href="http://www.amyhaywood.com">AMY HAYWOOD</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Last week, I wrote a little post about <a href="http://www.amyhaywood.com/sites-sass-pants/" title="My SASS(y Pants)">the SASS I have running on my site</a>. Continuing on, I thought I’d share my SASS broilerplate with some of the mixins, functions, and extends.</p>
<hr />
<h2>Naming Breakpoints</h2>
<p>In my SASS breakpoints file, I’m using <a href="http://css-tricks.com/naming-media-queries/">Chris Coyier’s Breakpoint trick</a>. — It’s a mixin within <strong>_2_helpers / _breakpoints.scss</strong> file. It takes a break point name and builds out the media query for me.</p>
<pre class="language-css"><code class="language-css">@mixin breakpoint($point) 		{
	@if $point == zurb-xxlarge {
		@media (max-width: 1921px) { @content; }
	}
	@if $point == large-screen {
		@media (max-width: 1600px) { @content; }
	}
	@if $point == zurb-xlarge {
		@media (max-width: 1441px) { @content; }
	}
	@else if $point == retina {
		@media (-webkit-min-device-pixel-ratio: 2), screen and (max--moz-device-pixel-ratio: 2) { @content; }
	}
	@else if $point == regular-screen {
		@media (max-width: 1250px) { @content; }
  	}
  	@else if $point ==  zurb-medium {
		@media (max-width: 1024px)  { @content; }
  	}
	@else if $point ==  smaller-screen {
		@media (max-width: 800px)  { @content; }
  	}
	@else if $point ==  ipad-portrait {
		@media (max-width: 768px)  { @content; }
	}
	@else if $point ==  zurb-small {
		@media (max-width: 640px)  { @content; }
	}
	@else if $point ==  iphone-four {
		@media (max-width: 360px)  { @content; }
	}
	@else if $point ==  iphone {
		@media (max-width: 320px)  { @content; }
	}
}
</code></pre>
<p>I name my breakpoints according to the device (I know. I know.) I’m using: <code>ipad-landscape</code>, <code>ipad-portrait</code>, <code>smaller-screen</code>, <code>iphone</code>. I know the world exists outside of Apple and we are becoming (if not there already) device independent. However, I <em>think</em> in those dimensions.</p>
<p>I also have breakpoints for <code>zurb-medium</code> and <code>zurb-small</code>. I use the <a href="http://foundation.zurb.com/docs/">Zurb Foundation</a> framework and those breakpoints already exist within the framework. Since, the grid is already collapsing at those points, I need to be able to make adjustments in my code as well.</p>
<p>When I want to implement these breakpoints within my SASS, it will look like this:</p>
<pre class="language-css"><code class="language-css">.something {
	padding: 100px;

	@include breakpoint(zurb-small) {
		padding: 10px;
	}
}
</code></pre>
<p>I have <a href="http://www.amyhaywood.com/sublime-text-brain-dump/" title="A Brain Dump on Sublime Text 3">a snippet set up Sublime Text 3</a> that makes this really easy to implement.</p>
<hr class="space" />
<hr />
<h2>Arrows</h2>
<p>On CSS-Tricks, there’s <a href="http://css-tricks.com/snippets/css/css-triangle/">a post about creating triangles</a> in pure CSS. I decided to turn that into a mixin.</p>
<pre class="language-css"><code class="language-css">@mixin arrow ($direction, $size, $color) {
	@if $direction == up {
		border-left: $size solid transparent;
		border-right: $size solid transparent;
		border-bottom: $size solid $color;
	} @else if $direction == down {
		border-left: $size solid transparent;
		border-right: $size solid transparent;
		border-top: $size solid $color;
	} @else if $direction == right {
		border-top: $size solid transparent;
		border-bottom: $size solid transparent;
		border-left: $size solid $color;
	} @else if $direction == left {
		border-top: $size solid transparent;
		border-bottom: $size solid transparent;
		border-right:$size solid $color;
	}
}
</code></pre>
<p>Then, when I want to implement it:</p>
<pre class="language-css"><code class="language-css">.read-more { 
		&amp;:before {
			@include arrow (right, 3px, black);
		}
}
</code></pre>
<p>That’s easy enough.</p>
<hr class="space" />
<hr />
<h2>Color</h2>
<p>I have a set of functions for dealing with color:</p>
<pre class="language-css"><code class="language-css">@function darkest( $color ) 	{ @return darken($color,20%); }
@function darker( $color ) 		{ @return darken($color,13.333%); }
@function dark( $color ) 		{ @return darken($color,6.667%); }
@function light( $color ) 		{ @return lighten($color,16.667%); }
@function lighter( $color ) 	{ @return lighten($color,33.333%); }
@function lightest( $color ) 	{ @return lighten($color,50%); }
</code></pre>
<p>I can easily make the rollover color, a shade darker by using:</p>
<pre class="language-css"><code class="language-css">a {
	&amp;:hover {
		color: darker($red);
	}
}
</code></pre>
<p>I don’t have to open Photoshop or create an additional variable.</p>
<hr class="space" />
<hr />
<h2>Black and White (and Color)</h2>
<pre class="language-css"><code class="language-css">%black-and-white {
	filter: grayscale(100%);
}

%color {
	filter: grayscale(0%);
}
</code></pre>
<p>Now, I can easily convert anything to black and white:</p>
<pre class="language-css"><code class="language-css">.my-image {
	@extend %black-and-white;
}
</code></pre>
<p>Then, if I want to give it color, say on rollover:</p>
<pre class="language-css"><code class="language-css">.my-image {
		&amp;:hover {
			@extend %color;
		}
	}
</code></pre>
<hr class="space" />
<hr />
<h2>Columns</h2>
<pre class="language-css"><code class="language-css">@mixin columns ($columns: 2, $gap: 90px) {
	column-count: $columns;
	column-gap: $gap;
}
</code></pre>
<p>This mixin makes it easy to implement columns. You can tell from the code that I have defaults set for 2 columns with 90px between each column. Meaning, I can implement it without adding any parameters:</p>
<pre class="language-css"><code class="language-css">.two-columns {
	@include columns();
}
</code></pre>
<p>Or if I want to over ride it I can:</p>
<pre class="language-css"><code class="language-css">.three-columns {
		@include columns(3, 30px);
}
</code></pre>
<p>If I want to get crazy, I can even use some of my mixins together:</p>
<pre class="language-css"><code class="language-css">.two-columns {
	@include columns();

	@include breakpoint(zurb-small) {
		@include columns(1);
	}
}
</code></pre>
<p>This just says that the two column class will display 2 columns, unless we’re on mobile. Then, display 1 column.</p>
<hr class="space" />
<hr />
<h3>path</h3>
<p>I have a path function that makes it easy to include images within my SCSS:</p>
<pre class="language-css"><code class="language-css">@function path($src, $dir: img) {
	$src: unquote($src);
	@return url(unquote(&quot;..&quot;)/$dir/$src);
}
</code></pre>
<p>When I set a background image, it might look like this:</p>
<pre class="language-css"><code class="language-css">.background-image {
	background: path(&quot;my-background-image.jpg&quot;) center top no-repeat;
}
</code></pre>
<p>By default, it puts my images within a <strong>img</strong> directory. I can override that, either by passing in another parameter or adjusting the function.</p>
<hr class="space" />
<hr />
<h2>Floats</h2>
<pre class="language-css"><code class="language-css">%left,
.left {
	float: left;
}

.right,
%right {
	float: right;
}

%text--left,
.text--left {
	text-align: left;
}

%text--right,
.text--right {
	 text-align: right;
}

%center,
.center,
%text--center,
.text--center {
	text-align: center;
	width: 100%;
}
</code></pre>
<p>Tehse are a few alignment classes that make it easy to knock something left, right, or center. You’ll notice I have an extends (%) as well as the class (.) that way I can use these classes on the within my HTML as well.</p>
<hr class="space" />
<hr />
<h2>List Styling</h2>
<pre class="language-css"><code class="language-css">.no-bullets,
%no-bullets {
	list-style: none;
}
</code></pre>
<p>This is great when I’m working on site navigation:</p>
<pre class="language-css"><code class="language-css">nav ul {
	@extend %no-bullets;
}
</code></pre>
<hr class="space" />
<hr />
<h2>No Margin, No Padding</h2>
<pre class="language-css"><code class="language-css">.no-margin-padding,
%no-margin-padding {
		margin: 0;
		padding: 0;
}
</code></pre>
<p>Just as the name suggests, using this will remove any margin and padding from the element:</p>
<pre class="language-css"><code class="language-css">nav ul {
	@extend %no-margin-padding;
}
</code></pre>
<hr class="space" />
<hr />
<h2>Circles</h2>
<pre class="language-css"><code class="language-css">.circle,
%circle {
	border-radius: 50em;
}
</code></pre>
<p>This turns any item into a circle:</p>
<pre class="language-css"><code class="language-css">.circle-thumbnail {
		@extend %circle;
}
</code></pre>
<hr class="space" />
<hr />
<h2>Conclusion</h2>
<p>These are all great, but what’s the point? Well, instead of having to write these styles everytime I sit down to work on a project, I have a starting point. Don’t reinvent the wheel every time if you don’t have to. Make it easier on yourself!</p>
<p>Second, any project that I work on, I know I have certain classes available to me. I don’t have to look up the class names. I’ve established a set of standards. Remember, smarter not harder.</p>
<p>The post <a rel="nofollow" href="http://www.amyhaywood.com/my-sass-extends-mixins-and-functions/">My SASS Extends, Mixins, and Functions</a> appeared first on <a rel="nofollow" href="http://www.amyhaywood.com">AMY HAYWOOD</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.amyhaywood.com/my-sass-extends-mixins-and-functions/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>My SASS(y Pants)</title>
		<link>http://www.amyhaywood.com/sites-sass-pants/</link>
		<comments>http://www.amyhaywood.com/sites-sass-pants/#respond</comments>
		<pubDate>Thu, 29 Jan 2015 05:20:12 +0000</pubDate>
		<dc:creator><![CDATA[Amy]]></dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Post]]></category>
		<category><![CDATA[codekit]]></category>
		<category><![CDATA[sass]]></category>
		<category><![CDATA[autoprefixer]]></category>
		<category><![CDATA[bem]]></category>
		<category><![CDATA[smacss]]></category>
		<category><![CDATA[grunt]]></category>
		<category><![CDATA[gulp]]></category>
		<category><![CDATA[livereload]]></category>
		<category><![CDATA[style guide]]></category>

		<guid isPermaLink="false">http://www.amyhaywood.com/?p=3863</guid>
		<description><![CDATA[<p>There’s been a lot of talk recently about SASS and CSS structure and Style Guides. It’s kind of cool, really, to see front-end take the “front stage.” I thought I’d add my two cents and pull back the curtain a little bit. Or…watch this video and replace “tight pants” with “SASSy pants.” Jokes. Preprocessing Yes,... <a class="view-article" href="http://www.amyhaywood.com/sites-sass-pants/">View Article</a></p>
<p>The post <a rel="nofollow" href="http://www.amyhaywood.com/sites-sass-pants/">My SASS(y Pants)</a> appeared first on <a rel="nofollow" href="http://www.amyhaywood.com">AMY HAYWOOD</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/01/logo-235e394c.png" alt="logo-235e394c" class="alignnone size-full wp-image-3867" srcset="http://www.amyhaywood.com/wp-content/uploads/2015/01/logo-235e394c-250x107.png 250w, http://www.amyhaywood.com/wp-content/uploads/2015/01/logo-235e394c-120x51.png 120w, http://www.amyhaywood.com/wp-content/uploads/2015/01/logo-235e394c.png 700w" sizes="" /></p>
<p>There’s been a lot of talk recently about SASS and CSS structure and Style Guides. It’s kind of cool, really, to see front-end take the “front stage.”</p>
<p>I thought I’d add my two cents and pull back the curtain a little bit. Or…watch this video and replace “tight pants” with “SASSy pants.”</p>
<p><iframe width="560" height="315" src="https://www.youtube.com/embed/MLUvOtqTmYM" frameborder="0" allowfullscreen></iframe></p>
<p>Jokes.</p>
<hr class="space" />
<h2>Preprocessing</h2>
<p>Yes, please. </p>
<p>To me this is a no brainer. Any tool that is going to make my job easier, sign me up!</p>
<p>I’ve run the gamut on these. </p>
<p>I started with <a href="http://lesscss.org/">LESS</a> because I could put <a href="http://lesscss.org/#download-options">less.js</a> on the server and not worry about compiling. Granted, this isn’t ideal, <em>COUGH</em> graceful degradion.</p>
<p>Then, I started looking into <a href="http://sass-lang.com/">SASS.</a> I was curious because it seemed to be more popular and have more features. At the time, I was running an older verison of MacOS that wasn’t supported by <a href="https://incident57.com/codekit/">CodeKit.</a> So, I turned to <a href="http://livereload.com/">LiveReLoad</a>.</p>
<p>When I did upgrade, though, CodeKit was one of the first things I installed. I <strong><em>LOVED</em></strong> CodeKit…until I started working on a larger project that took a minute plus to compile. In all fairness, I don’t think it was CodeKit’s fault. It was probably the result of Compass building sprites and RubySASS.</p>
<p>Regardless, it forced me to turn to <a href="http://gruntjs.com/">grunt</a> and then finally, to <a href="http://gulpjs.com/">gulp.</a> — And gulp, I shall remain (for now).</p>
<p>The good part about this progression is that it allowed me to experiment with a variety of tools. When I’m collaborating with another developer, I’m able to use whatever method they’ve already put into place.</p>
<hr class="space" />
<h2>Prefixing</h2>
<p>I used to rely on Compass for prefixing, but <a href="https://github.com/postcss/autoprefixer">Autoprefixer</a> is awesome. The best part is that it utilizes the most recent data from <a href="http://caniuse.com/">Can I Use</a> to add only the necessary vendor prefixes.</p>
<hr class="space" />
<h2>Organization of Files</h2>
<p>I keep all my images, fonts, sass, css, and javascript files in an assets folder. They are separated into 2 subdirectories, <strong>dist</strong> for <strong>dist</strong>ributed, compiled files, and <strong>src</strong> for <strong>s</strong>ou<strong>rc</strong>e, original files.</p>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/01/Screen-Shot-2015-01-28-at-8.58.04-PM-700x594.png" alt="Screen Shot 2015-01-28 at 8.58.04 PM" class="alignnone size-large wp-image-3864" srcset="http://www.amyhaywood.com/wp-content/uploads/2015/01/Screen-Shot-2015-01-28-at-8.58.04-PM-250x212.png 250w, http://www.amyhaywood.com/wp-content/uploads/2015/01/Screen-Shot-2015-01-28-at-8.58.04-PM-700x594.png 700w, http://www.amyhaywood.com/wp-content/uploads/2015/01/Screen-Shot-2015-01-28-at-8.58.04-PM-412x350.png 412w, http://www.amyhaywood.com/wp-content/uploads/2015/01/Screen-Shot-2015-01-28-at-8.58.04-PM-120x101.png 120w, http://www.amyhaywood.com/wp-content/uploads/2015/01/Screen-Shot-2015-01-28-at-8.58.04-PM.png 1024w" sizes="(max-width: 700px) 100vw, 700px" /></p>
<p>Back in the day, when I used to write long form css by hand, I would list my redefined styles at the top: <code>p</code>, <code>a</code>, <code>hr</code>, you get the idea. Then, layout specific styles, pieces I would use on multiple pages, and finally page specific styles. This made sense from a cascading standpoint.</p>
<p>I’ve tried to maintain a similar structure for my SCSS files:</p>
<ul>
<li><strong>_1_base</strong> This contains <a href="http://foundation.zurb.com/">Zurb Foundation</a> overrides and WordPress specific styles</li>
<li><strong>_2_helpers</strong> These are functions, extends, mixins, variables, and thene files</li>
<li><strong>_3_vendor</strong> Any third party styles I want to incorporate: fonts, <a href="http://icomoon.io/app/#/select">icomoon</a>, etc.</li>
<li><strong>_4_redefine</strong> Start to lok familiar now? These are the redefined styles that I mentioned earlier.</li>
<li><strong>_5_layout</strong> Layout specific styles</li>
<li><strong>_6_pieces</strong> Pieces that I’ll reuse in multiple places (like social media icons)</li>
<li><strong>_7_pages</strong> Page specific files.</li>
</ul>
<p>Within each folder, there’s a file with a similar name as the folder (within _7_pages, there’s a _pages.scss file. It lists out all the other files within that directory to include:</p>
<pre class="language-sass"><code class="language-sass">@import &quot;home&quot;;
@import &quot;blog&quot;;
@import &quot;clients&quot;;
@import &quot;ebooks&quot;;
@import &quot;coaching&quot;;
@import &quot;podcast&quot;;
@import &quot;speaking&quot;;
@import &quot;contact&quot;;
</code></pre>
<p>Within the main scss folder, there’s a main.scss that imports Foundation and each folder’s “index” file:</p>
<pre class="language-sass"><code class="language-sass">@import “_1_base/base&quot;;
@import “_2_helpers/helpers&quot;;
@import “_3_vendor/vendor&quot;;
@import “_4_redefine/redefine&quot;;
@import “_5_layout/layout&quot;;
@import “_6_pieces/pieces&quot;;
@import “_7_pages/pages&quot;;
</code></pre>
<hr class="space" />
<p>This means all my SASS gets compiled into 1 large CSS file. If I do end up having multiple CSS files, it’s to account for IE specific styles.</p>
<p>All my partial files are prefixed with an underscore.</p>
<hr class="space" />
<h2>Naming Conventions</h2>
<p>If you didn’t know, <a href="http://seesparkbox.com/foundry/naming_css_stuff_is_really_hard">naming CSS stuff is really hard</a>. Plenty of really smart people, people much smarter than me debate about these things. There seems to be two main camps: <a href="https://bem.info/">BEM</a> and <a href="https://smacss.com/">SMACCS.</a></p>
<p><strong>BEM</strong> stands for block, element, modifier.</p>
<p><strong>SMACSS</strong> stands for Scalable and Modular Architecture for CSS</p>
<p>A lot more alphabet soup to add to the equation!</p>
<p>When I started trying to figure out my guidelines, <a href="http://cssguidelin.es/">cssguidelin.es</a> became a terrific resource. There’s a section there on <a href="http://cssguidelin.es/#bem-like-naming">BEM-like naming conventions.</a></p>
<p>The fastest way to describe it is nested elements have double underscores:</p>
<pre class="language-css"><code class="language-css">
<p>.social-media__icons {}</p>
<p>.social-media__text {}</p>
</code></pre>
<p>You don’t want to repeat the DOM in your CSS, but you do want to make it easier to identify.</p>
<p>Modifiers or statuses have double dashes:</p>
<pre class="language-css"><code class="language-css">.social-media-—large {}</code></pre>
<p>You can also tell from my example that multiple words are not camel cased, but rather have a single dash between each word.</p>
<div class="box">
<h4>NOTE:</h4>
<p>SASS actually makes this type of naming really easy:</p>
<pre class="language-sass"><code class="language-sass">.social-media {
    &amp;__icons {}
    &amp;__text {}
    &amp;—-large {}
}</code></pre>
<p>Renders:</p>
<pre class="language-css"><code class="language-css">.social-media {}
.social-media__icons {}
.social-media__text {}
.social-media—-large {}</code></pre>
</div>
<hr class="space" />
<h3>Extendable Classes</h3>
<p>When I’m writing classes I know I want to extend, I’ll prepend the class name with a %.</p>
<pre class="language-sass"><code class="language-sass">%no-margin-padding {
     margin: 0;
     padding: 0;
}</code></pre>
<p>There are several advantages here: (1) The class doesn’t actually get written unless it’s used. So, I’ve been able to create a <em>small</em> library of elements that are available to me in all my projects. (2) The % signifies it’s was meant to be extended and is being used in multiple places = don’t change it unless you want it to risk changing multiple elements across the board.</p>
<hr class="space" />
<h2>Classes vs IDs</h2>
<p>I try to use classes instead of IDs. The main reason is because of specificity. You want your code to be as reusable as possible and all your ID elements should be unique.</p>
<p>If I’m using JavaScript to hook on to a particular element, I’ll add an addition class, prepended with <code>js-</code>. This lets me know later that JavaScript is using that particular tag, so don’t change it!</p>
<hr class="space" />
<h2>Naming Variables</h2>
<p>All my <strong>colors are stored in variables:</strong></p>
<pre class="language-sass"><code class="language-sass">$brown     : #847b6c;
$green     : #35b774;
$sky-blue    : #5ecbea;
$teal     : #3a6a77;</code></pre>
<p><strong>When I’m naming grays</strong>, instead of trying to remember the difference between <code>$dark-gray</code>, <code>$darker-gray</code>, and <code>$darkest-gray</code>, I name them by the first letter / number in their hex value: <code>$gray-a</code>, <code>$gray-8</code>, or <code>$gray-c</code>.</p>
<p>All my <strong>font names are stored as variables.</strong> If you’ve used <a href="">fonts.com</a> or <a href="https://www.google.com/fonts/">Google Fonts</a>, you’ll know sometimes it’s hard to remember the exact syntax for a font name. So, storing these values within a variable makes this a no-brainer.</p>
<p>I’ll try and abstract this even further by creating a <code>_themes.scss</code> file. I’ll write an extendable classes with a more generic name:</p>
<pre class="language-sass"><code class="language-sass"><p>%body {
    font-family: $dagny;
}

%sans-serif {
    font-family: $brandon;
    text-transform: uppercase;
}

%serif {
    font-family: $adelle;
}</code></pre>
<p>Now, if a client wants to change the font, this becomes really easy. Instead of finding and replacing all my $dagny variables, I simply, change the typeface within my <code>%body</code> definition.</p>
<p>The same concept extends to colors:</p>
<pre class="language-sass"><code class="language-sass">$border-color : $gray-c;
$heading-color : $red;</code></pre>
<p>When I’m defining the typography, I’ll write an extendable class and then include it:</p>
<pre class="language-sass"><code class="language-sass">%h1 {
    @extend %sans-serif;
    font-size: emCalc(72px); /* emCalc() is Foundation function */
}

h1 {
    @extend %h1;
}</code></pre>
<p>Separating it out that way, helps me do things like this easily:</p>
<pre class="language-sass"><code class="language-sass"><p>.page-title {
    @extend %h1;
}</code></pre>
<hr class="space" />
<h2>Tabs vs. Spaces</h2>
<p><em>I know I will be judged here. It’s OK, go ahead pull out your stones.</em></p>
<p>I prefer tabs. I just like seeing the extra space.</p>
<hr class="space" />
<h2>CSS Rule Sets</h2>
<ul>
<li>I have one selector per line. The main reason is that it makes git commits far more meaningful. Plus, it means the display width of my scss file is not very wide. I can keep it in a second pane within Sublime without sacrificing to much of my screen.</li>
<li>1 space before the opening curly bracket {</li>
<li>A line break after the opening curly brace</li>
<li>No space before the colon</li>
<li>1 space after the colon</li>
<li>No space before the semi-colon</li>
<li>A line break after the semi colon. (this wasn’t always the case)</li>
<li>No space before the closing curly bracket }</li>
<li>Put the closing curly bracket on its own line</li>
<li>A line break after the closing curly bracket</li>
<li>Most properties have 1 blank line between them. But, if they’re not related, they’ll have 5 blank lines between.</li>
</ul>
<hr class="space" />
<h2>SASSY things</h2>
<p>I try to stick to the following order of properties:</p>
<ul>
<li>
<p>@extend</p>
<ul>
<li>@includes</li>
<li>Regular property values (in alphabetical order)</li>
<li>Pseudo element nesting</li>
<li>Regular element nesting</li>
<li>Media queries</li>
</ul>
</li>
</ul>
<p>I know the alphabetical order thing sounds dumb, but it really does help when you’re skimming for a specific property.</p>
<hr class="space" />
<h2>Nesting</h2>
<p>I try not to nest. I’m not always great at it, though. SASS just makes it way too easy. </p>
<hr class="space" />
<h2>Comments</h2>
<p>At the top of every file, I have a comment labeling the file:</p>
<pre class="language-css"><code class="language-css">/*------------------------------------*\
<hr class="space" />
<h1>VARIABLES</h1>
/*------------------------------------*/</code></pre>
<p>The # is supposed to make it easy to find within the project.</p>
<hr class="space" />
<h2>Sprites</h2>
<p>I’ve finally moved to an SVG spriting system. </p>
<p>Let me describe a little bit of the history, here. I originally started with <a href="">Compass</a>. It worked great, but I was having to create multiple sprite sheets to account for retina, an icon might have multiple versions within one sheet to account for the various sizes, and on larger projects, it’d take a while to render out.</p>
<p>Then, I discovered <a href="http://icomoon.io/app/#/select">icomoon</a>. It was great because it handled a lot of the problems I found with Compass. I was able to resize icons on the fly, change colors on the fly, and it cut down on my render time. However, every time I wanted to make a change, I had to visit the icomoon site, upload the new icon, download the new files, and replace my existing files.</p>
<p>Then, once I got a setup for SVG sprites, all these things magically fell into place.</p>
<p>&lt;Insert picture of the unicorn here&gt; Just kidding.</p>
<p>Within my <strong>src / img / svg</strong> folder, I’ll save all my exported svgs. Then, gulp will handle the rest. Awesome!</p>
<hr class="space" />
<h2>Other Style Guides</h2>
<p>I’ve compiled a short list of some of the other “style guides” I’ve read on the Internet:</p>
<ul>
<li><a href="http://codepen.io/chriscoyier/blog/codepens-css">CodePen</a></li>
<li><a href="http://css-tricks.com/sass-style-guide/">CSS-Tricks</a></li>
<li><a href="http://blog.trello.com/refining-the-way-we-structure-our-css-at-trello/">Trello</a></li>
<li><a href="http://ianfeather.co.uk/css-at-lonely-planet/">Lonely Planet</a></li>
<li><a href="http://markdotto.com/2014/07/23/githubs-css/">GitHub</a></li>
<li><a href="http://www.sitepoint.com/css-sass-styleguide/">SitePoint</a></li>
</ul>
<hr class="space" />
<h2>Additional Resources</h2>
<ul>
<li><a href="http://styleguides.io/">styleguides.io</a> &#8211; This is a fantastic resource that compiles style guides and style guide information from all over the inter webs.</li>
<li><a href="http://cssguidelin.es/">cssguidelin.es</a> &#8211; I know I mentioned it earlier, but seriously, check out this site and take the time to read it. It definitely helped me.</li>
</ul>
<hr class="space" />
<img src="http://www.amyhaywood.com/wp-content/uploads/2015/01/sassy_pants.jpg" alt="sassy_pants" class="alignnone size-full wp-image-3865 left" srcset="http://www.amyhaywood.com/wp-content/uploads/2015/01/sassy_pants-250x175.jpg 250w, http://www.amyhaywood.com/wp-content/uploads/2015/01/sassy_pants-120x84.jpg 120w, http://www.amyhaywood.com/wp-content/uploads/2015/01/sassy_pants.jpg 420w" sizes="" /></p>
<h2>In the Comments</h2>
<p>How do you structure your style sheets?</p>
<p>The post <a rel="nofollow" href="http://www.amyhaywood.com/sites-sass-pants/">My SASS(y Pants)</a> appeared first on <a rel="nofollow" href="http://www.amyhaywood.com">AMY HAYWOOD</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.amyhaywood.com/sites-sass-pants/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Brain Dump on Sublime Text 3</title>
		<link>http://www.amyhaywood.com/sublime-text-brain-dump/</link>
		<comments>http://www.amyhaywood.com/sublime-text-brain-dump/#comments</comments>
		<pubDate>Mon, 26 Jan 2015 14:00:00 +0000</pubDate>
		<dc:creator><![CDATA[Amy]]></dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Post]]></category>
		<category><![CDATA[sublime]]></category>

		<guid isPermaLink="false">http://www.amyhaywood.com/?p=3788</guid>
		<description><![CDATA[<p>Let’s face it, developers are opinionated about the tools we use. I’m no different. In my humble opinion, Sublime Text is it. Dreamweaver and Coda have too many WYSIWYG features that are unnecessary to my workflow. I originally started coding with TextMate which I loved, however, the development seemed to stall out and Sublime offered... <a class="view-article" href="http://www.amyhaywood.com/sublime-text-brain-dump/">View Article</a></p>
<p>The post <a rel="nofollow" href="http://www.amyhaywood.com/sublime-text-brain-dump/">A Brain Dump on Sublime Text 3</a> appeared first on <a rel="nofollow" href="http://www.amyhaywood.com">AMY HAYWOOD</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/01/sublime.jpg" alt="Sublime Text" class="alignnone size-full wp-image-3814" srcset="http://www.amyhaywood.com/wp-content/uploads/2015/01/sublime-250x106.jpg 250w, http://www.amyhaywood.com/wp-content/uploads/2015/01/sublime-120x50.jpg 120w, http://www.amyhaywood.com/wp-content/uploads/2015/01/sublime.jpg 700w" sizes="" /></p>
<p>Let’s face it, developers are opinionated about the tools we use. I’m no different.</p>
<p>In my humble opinion, <a href="http://www.sublimetext.com/">Sublime Text</a> is it. <a href="http://www.adobe.com/products/dreamweaver.html">Dreamweaver</a> and <a href="https://panic.com/coda/">Coda</a> have too many WYSIWYG features that are unnecessary to my workflow. I originally started coding with <a href="http://macromates.com/">TextMate</a> which I loved, however, the development seemed to stall out and Sublime offered several key features that TextMate was missing.</p>
<p>So, if you’re interested in Sublime or if you’re trying to trick it out, this post is for you! I figure if you’re going to spend all day with a tool, why not take the time to determine the best and most effective way you can use it. Let me share some of my workflow.</p>
<div class="box">
<h4>A Quick Word of Warning:</h4>
<p>This post is L-O-N-G (it&#8217;s a brain dump!). To make it easier for you, I wanted to include a brief table of contents, in case you want to jump to a particular section:</p>
<ol>
<li><a href="#features">Features</a></li>
<li><a href="#keyboard-shortcuts">Keyboard Shortcuts</a></li>
<li><a href="#preferences">Setting up your Preferences</a></li>
<li><a href="#snippets">Snippets</a></li>
<li><a href="#plugins">Plugins and Extensions</a></li>
<li><a href="#more">Looking for More?</a></li>
<li><a href="#comments">Comments</a></li>
</div>
<hr class="space" />
<hr />
<h2 id="features">Features</h2>
<p>Some of my favorite features are actually native to the app: </p>
<hr class="space" />
<h4>Multiple Cursors</h4>
<p>You can <strong>Cmd + Click</strong> in multiple places within your file to create multiple cursors or <strong>Alt + Drag Click</strong> to select multiple lines.</p>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/01/multiple-cursors.gif" alt="Sublime Text - Multiple Cursors" class="alignnone size-full wp-image-3812" srcset="http://www.amyhaywood.com/wp-content/uploads/2015/01/multiple-cursors-250x155.gif 250w, http://www.amyhaywood.com/wp-content/uploads/2015/01/multiple-cursors-120x74.gif 120w, http://www.amyhaywood.com/wp-content/uploads/2015/01/multiple-cursors.gif 500w" sizes="" /></p>
<hr class="space" />
<h4>Multiple Panes</h4>
<p>You can have multiple panes within Sublime.</p>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/01/Screen-Shot-2015-01-21-at-9.54.56-PM-700x455.png" alt="Sublime Text - Multiple Panes" class="alignnone size-large wp-image-3813" srcset="http://www.amyhaywood.com/wp-content/uploads/2015/01/Screen-Shot-2015-01-21-at-9.54.56-PM-250x162.png 250w, http://www.amyhaywood.com/wp-content/uploads/2015/01/Screen-Shot-2015-01-21-at-9.54.56-PM-700x455.png 700w, http://www.amyhaywood.com/wp-content/uploads/2015/01/Screen-Shot-2015-01-21-at-9.54.56-PM-537x350.png 537w, http://www.amyhaywood.com/wp-content/uploads/2015/01/Screen-Shot-2015-01-21-at-9.54.56-PM-120x78.png 120w, http://www.amyhaywood.com/wp-content/uploads/2015/01/Screen-Shot-2015-01-21-at-9.54.56-PM.png 1024w" sizes="(max-width: 700px) 100vw, 700px" /></p>
<p>I prefer 2 columns, but you could have rows instead. — If this excites you, check out the <a href="https://github.com/SublimeText/Origami/">Orgami plugin</a> (also listed below).</p>
<p>I’ll usually keep my HTML on the left and my SCSS and JS on the right.</p>
<p>I’ve also found this feature useful, if I’m working with a longer file and constantly scrolling up and down. I can pull the top of the file up in one pane and put the bottom of the same file in another pane.</p>
<hr class="space" />
<h4>Search within a project</h4>
<p><strong>Cmd + Shift + F</strong> will open the project search pane. You can also limit your search to certain files and folders.</p>
<p>If you want to limit the search to the current project type <strong>&lt;project&gt;</strong> within the “Where” field.</p>
<p><img src="http://amyhaywoodcom.s3.amazonaws.com/blog/150126/find_in_project.png" alt="Sublime Text - Search within prject" /></p>
<p>Ever since I started splitting my SASS into multiple files, this feature has become invaluable. Within the “where” field, I usually include “assets/src/scss/“ so that the results are only within my SASS directory. I don’t want the compiled .css returning.</p>
<p>Within the “Find Results” screen, you can double click on the file name and it will take you to that particular file — or you can click on the line of code and it will take you to that spot specifically.</p>
<p>Lastly, you’ll see buttons to the left of your search fields that allow to toggle regular expressions, case sensitive, whole word, show context, and use buffer. I only make use of show context and use buffer.</p>
<div class="box">
<h4>NOTE</h4>
<p>You may want to look into <a href="">folder_exclude_patterns</a> within your preferences file if you want to omit certain results from your search.</p>
</div>
<hr class="space" />
<hr />
<h2 id="keyboard-shortcuts">Keyboard Shortcuts</h2>
<p>Your options here are limitless. I don’t know about you, but I can only remember so many at a time. I’ve included the ones I’ve found to be the most useful that I find myself using on a daily basis.</p>
<hr class="space" />
<h4>Cmd + t</h4>
<p>This is by far my most used shortcut.</p>
<p>This opens a panel at the top, type the name (or part of a name) of a file within your project, hit &lt;ENTER&gt; and it will open.</p>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/01/cmd_t.gif" alt="cmd_t" class="alignnone size-full wp-image-3816" srcset="http://www.amyhaywood.com/wp-content/uploads/2015/01/cmd_t-250x203.gif 250w, http://www.amyhaywood.com/wp-content/uploads/2015/01/cmd_t-430x350.gif 430w, http://www.amyhaywood.com/wp-content/uploads/2015/01/cmd_t-120x97.gif 120w, http://www.amyhaywood.com/wp-content/uploads/2015/01/cmd_t.gif 596w" sizes="" /></p>
<hr class="space" />
<h4>Cmd + Shift + p</h4>
<p>This short cut runs a close second. Similar to <strong>Cmd + t</strong>, this will open a panel at the top of my screen. Except, instead of opening files, it allows you to run commands. This could be a command from a plugin or extension or a command you might find in the menus (but don’t want to use your mouse).</p>
<hr class="space" />
<h4>Cmd + r</h4>
<p>This allows you to easily find and jump to a piece of code within the current file. Within a CSS or SASS file, you can easily find a class or id tag. Within a PHP file, you can easily find a function.</p>
<hr class="space" />
<h4>Cmd + Shift + t</h4>
<p>This will re-open the last tab that you closed.</p>
<hr class="space" />
<h4>Cmd + 1 </h4>
<h4>Cmd + 2</h4>
<h4>Cmd + 3 (through 9)</h4>
<p>If you numbered your tabs, left to right starting with 1, hitting <strong>Cmd + 2</strong>, would allow you to jump to the second tab. <strong>Cmd + 4</strong>, the fourth. You get the idea.</p>
<p><img src="http://amyhaywoodcom.s3.amazonaws.com/blog/150126/cmd_number.png" alt="Sublime Text - Cmd Number" /></p>
<hr class="space" />
<h4>Ctrl + 1</h4>
<h4>Ctrl + 2</h4>
<p>If you have multiple panes open and numbered them left to right starting with 1, hitting <strong>Ctrl + 2</strong> would allow you to jump to the second pane. <strong>Ctrl + 1</strong> will jump back to the first pane.</p>
<p>If you’re using this shortcut in conjunction with <strong>Cmd + 1 (through 9)</strong>, the tab numbers restart within each pane. For example, I might type <strong>Ctrl + 2</strong> to jump to the second pane, and then <strong>Cmd + 3</strong> to jump to the third tab within that pane.</p>
<p><img src="http://amyhaywoodcom.s3.amazonaws.com/blog/150126/ctrl_number.png" alt="Sublime Text - Ctrl + Number" /></p>
<hr class="space" />
<h4>Cmd + k + l</h4>
<h4>Cmd + k + u</h4>
<p>The sequence, here, took me a while to “get.” Basically, keep the <strong>Cmd</strong> key held down the whole time, and then type <strong>k</strong> (release) <strong>l</strong> (or u). </p>
<p>This will transform your selected text to all uppercase or all lowercase. I can’t tell you how many times I’ve started typing with the CAPS lock on by accident. Being the anal retentive programmer that I am, instead of having to delete that text and retype, Cmd + k + l. (I remember it by thinking <strong>k</strong>onvert to <strong>u</strong>pper or <strong>l</strong>ower.)</p>
<p><img src="http://amyhaywoodcom.s3.amazonaws.com/blog/150126/cmd_k_u.gif" alt="Sublime Text - Cmd + k + u" /></p>
<hr class="space" />
<h4>Cmd + [</h4>
<p>This will indent your entire line of code (or selection) to left.</p>
<p><img src="http://amyhaywoodcom.s3.amazonaws.com/blog/150126/cmd_left_bracket.gif" alt="Sublime Text + Cmd + Left Bracket" /></p>
<hr class="space" />
<h4>Cmd + ]</h4>
<p>Similar to <strong>Cmd + ]</strong>, this will indent your entire line of code (or selection) to the right.</p>
<p><img src="http://amyhaywoodcom.s3.amazonaws.com/blog/150126/cmd_right_bracket.gif" alt="Sublime Text - Cmd Right Bracket" /></p>
<hr class="space" />
<h4>Cmd + Shift + v</h4>
<p>This will paste and indent, automatically applying the correct indention to the pasted text.</p>
<hr class="space" />
<h4>Cmd + k + b</h4>
<p>Slides the sidebar in and out. I use this more when I’m working remotely on my laptop and screen real estate is an issue.</p>
<p><img src="http://amyhaywoodcom.s3.amazonaws.com/blog/150126/cmd_k_b.gif" alt="Sublime Text - Command + K + B" /></p>
<hr class="space" />
<h4>Cmd + d</h4>
<p>This will highlight the entire word that your cursor is in. If you hit it again, it will select the next instance that word is used.</p>
<p><img src="http://amyhaywoodcom.s3.amazonaws.com/blog/150126/cmd_d.gif" alt="Sublime Text - Cmd + D" /></p>
<hr class="space" />
<h4>Ctrl + Shift + w</h4>
<p>I use this one all the time! It wraps your current selection with a tag.</p>
<p><img src="http://amyhaywoodcom.s3.amazonaws.com/blog/150126/ctrl_shift_w.gif" alt="Sublime Text - Ctrl + Shift + W" /></p>
<hr class="space" />
<h4>Cmd + Shift + .</h4>
<p>This is another one that has become second nature for me. This will automatically complete an open tag.</p>
<p><img src="http://amyhaywoodcom.s3.amazonaws.com/blog/150126/cmd_shift_period.gif" alt="Sublime Text - Cmd + Shift + ." /></p>
<hr class="space" />
<h4>Cmd + l</h4>
<p>This will select the entire line your cursor is on.</p>
<p><img src="http://amyhaywoodcom.s3.amazonaws.com/blog/150126/cmd_l.gif" alt="Sublime Text - Cmd + L" /></p>
<hr class="space" />
<h4>Cmd + j</h4>
<p>This will get rid of the return at the end of the line.</p>
<p><img src="http://amyhaywoodcom.s3.amazonaws.com/blog/150126/cmd_j.gif" alt="Sublime Text - Cmd + J" /></p>
<hr class="space" />
<h4>Ctrl + Shift + k</h4>
<p>This will get rid of the entire line your cursor is on. Great for cleaning up code.</p>
<p><img src="http://amyhaywoodcom.s3.amazonaws.com/blog/150126/ctrl_shift_k.gif" alt="Sublime Text - Ctrl + Shift + K" /></p>
<hr class="space" />
<h4>Cmd + Shift + K</h4>
<p>This will highlight the wrapping tag.</p>
<p><img src="http://amyhaywoodcom.s3.amazonaws.com/blog/150126/cmd_shift_k.gif" alt="Sublime Text Shortcut - Cmd + K" /></p>
<hr class="space" />
<h4>Cmd + /</h4>
<p>Will toggle a comment block on and off.</p>
<p><img src="http://amyhaywoodcom.s3.amazonaws.com/blog/150126/cmd_slash.gif" alt="Sublime Text Shortcut - Cmd + /" /></p>
<hr class="space" />
<h4>Cmd + Shift + &lt;Enter&gt;</h4>
<p>This will move your cursor to a new line above your current position.</p>
<p><img src="http://amyhaywoodcom.s3.amazonaws.com/blog/150126/cmd_shift_enter.gif" alt="Sublime Text Shortcut - Cmd + Shift + Enter" /></p>
<hr class="space" />
<h4>Cmd + Enter</h4>
<p>Same thing as <strong>Cmd + Shift + &lt;ENTER&gt;</strong> except, it will move your cursor to a new line below your current position.</p>
<p><img src="http://amyhaywoodcom.s3.amazonaws.com/blog/150126/cmd_enter.gif" alt="Sublime Text Shortcut - Cmd + Shift" /></p>
<hr class="space" />
<h4>Ctrl + Cmd + Up Arrow</h4>
<h4>Ctrl + Cmd + Down Arrow</h4>
<p>This is great when you have a list you’re trying to reorder. <strong>Ctrl + Cmd + Up Arrow</strong> moves your current line up. Similarly, <strong>Ctrl + Cmd + Down Arrow</strong> moves your current line down.</p>
<p><img src="http://amyhaywoodcom.s3.amazonaws.com/blog/150126/ctrl_cmd_arrow.gif" alt="Sublime Text Shortcut - Cmd + Ctrl + Arrow" /></p>
<hr class="space" />
<hr />
<h2 id="preferences">Setting up Your Preferences</h2>
<p>One of the “weird” things about Sublime is that the preferences file uses JSON. Admittedly, not the most user friendly.</p>
<p>Go to <strong>Sublime Text &gt; Preferences &gt; Settings &#8211; User</strong> to edit the file.</p>
<p>I’ve included mine:</p>
<p><script src="https://gist.github.com/ahaywood/99b67bc1c02409d0e57e.js"></script></p>
<p>Within my preference, I make the folder labels bold:</p>
<pre class="language-javascript"><code class="language-javascript">“bold_folder_labels”: true,</code></pre>
<p>I use the Cobalt theme (goes back to my TextMate days). </p>
<pre class="language-javascript"><code class="language-javascript">&quot;color_scheme&quot;: &quot;Packages/Color Scheme - Default/Cobalt.tmTheme&quot;,</code></pre>
<p>You can actually set that through the menus. Just go to <strong>Sublime Text &gt; Preferences &gt; Color Scheme &gt; Color Scheme &#8211; Default &gt; Cobalt</strong></p>
<p>I’ve also experimented with <a href="https://github.com/daylerees/colour-schemes">Dayle Rees’s</a> color schemes, if you’re looking for more options. There are instructions on his GitHub page on how to install.</p>
<p>Other things I’ve defined in my preference file?</p>
<pre class="language-javascript"><code class="language-javascript"><p>&quot;folder_exclude_patterns&quot;:</p>
<p>[</p>
<p>&quot;.svn&quot;,</p>
<p>&quot;.git&quot;,</p>
<p>&quot;.hg&quot;,</p>
<p>&quot;CVS&quot;</p>
<p>],</p></code></pre>
<p>This prevents center file extensions from appearing in my sidebar and project search.</p>
<div class="box">
<h4>NOTE:</h4>
<p>You can also set folder_exclude_patterns on a project level.</p>
</div>
<pre class="language-javascript"><code class="language-javascript">“font_size”: 14</code></pre>
<p>Controls the font size. Surprise! <img src="http://www.amyhaywood.com/wp/wp-includes/images/smilies/simple-smile.png" alt=":-)" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<pre class="language-javascript"><code class="language-javascript">“highlight_line”: true,</code></pre>
<p>Highlights the line that your cursor is on.</p>
<pre class="language-javascript"><code class="language-javascript">“highlight_modified_tabs”: true</code></pre>
<p>This setting changes the color of the file name in a tab if the file has been modified.</p>
<p><img src="http://amyhaywoodcom.s3.amazonaws.com/blog/150126/highlighted-tab.png" alt="Sublime Text - Highlighted Tab" /></p>
<pre class="language-javascript"><code class="language-javascript">“spell_check”: true</code></pre>
<p>Runs spell check.</p>
<hr class="space" />
<hr />
<h2 id="snippets">Snippets</h2>
<p>This is where Sublime starts to get really powerful and workflow efficient.</p>
<p>“Snippets” of code that I find myself typing all the time, I’ll turn into a Sublime Snippet. It’s as easy as going to <strong>Tools &gt; New Snippet</strong>. Sublime will open a new file with a template:</p>
<pre class="language-javascript"><code class="language-javascript">&lt;snippet&gt;
<p>&lt;content&gt;&lt;!<a href="">CDATA[</a></p>
<p>Hello, ${1:this} is a ${2:snippet}.</p>
<p>]]&gt;&lt;/content&gt;</p>
<p>&lt;!-- Optional: Set a tabTrigger to define how to trigger the snippet --&gt;</p>
<p>&lt;!-- &lt;tabTrigger&gt;hello&lt;/tabTrigger&gt; --&gt;</p>
<p>&lt;!-- Optional: Set a scope to limit where the snippet will trigger --&gt;</p>
<p>&lt;!-- &lt;scope&gt;source.python&lt;/scope&gt; --&gt;</p>
<p>&lt;/snippet&gt;</p></code></pre>
<p>To understand snippets, let’s talk through the default snippet and how it would work. If we uncommented line 6 and saved this snippet as hello.sublime-snippet (<strong>all snippets must have a sublime-snippet extension</strong>), every time we typed “hello&lt;TAB&gt;”, <strong>Hello, this is a snippet.</strong> would appear. You’ll notice that <strong>this</strong> is highlighted. We could type whatever we want to replace “this”, hit &lt;TAB&gt; again and <strong>snippet</strong> would be highlighted. &lt;TAB&gt; again, and our cursor goes to the end of the line.</p>
<p>So what just happened? Well, on line 3 of our, between <code>&lt;content&gt;&lt;![CDATA[</code> and <code>]]&lt;/content&gt;</code> is our code. The <code>${1:this} </code> and <code>${2:snippet}</code> signifies our tab stops. </p>
<p>Technically you don’t need the <code class="language-javascript">:this</code> and <code class="language-javascript">:snippet</code>, but they serve as placeholder values to remind you what content needs to go there.</p>
<p>The number tells Sublime what order to tab through.</p>
<p>If you want to get fancy, you can have multiple <code class="language-javascript">${1:this}</code>s in your snippets. That means that you’d have multiple cursors as you’re tabbing through. Let me give you a practical example:</p>
<p><script src="https://gist.github.com/ahaywood/8dedcac32dd5cf9f4b73.js"></script></p>
<p>This is my starting point for creating a JavaScript controller file. You’ll see two <code class="language-javascript">${1}s</code>, two <code class="language-javascript">${2}s</code>, and two <code class="language-javascript">${3}s</code>.</p>
<p>When I type “start_js&lt;TAB&gt;” my code appears with my cursor in two places. I can type the name of my variable on line 5. I’ll know I’ll initialize it on line 6 using the same name. Why not do it all at once? I hit &lt;TAB&gt; and I have cursor on line 5 and another on line 10. I can create a new instance of my object (line 5) and define the name of my object (line 10) at the same time… you get the idea.</p>
<pre class="language-javascript"><code class="language-javascript">&lt;tabTrigger&gt;hello&lt;/tabTrigger&gt;</code></pre>
<p>This is the text you’ll type (followed by the &lt;TAB&gt; key) to trigger the snippet. By default, this line is commented out, so make sure to name it appropriately and uncomment that line before saving it.</p>
<p>— It’s OK if you forget the tab trigger. Type <strong>Cmd + Shift + P</strong>. You’ll see a bar appear, type “snippet”, and then as you continue to type, Sublime will drill down and try to find the snippet you’re referring to. It will also remind you of the tab trigger on the far right.</p>
<p><img src="http://amyhaywoodcom.s3.amazonaws.com/blog/150126/cmd_shift_p.gif" alt="Sublime Text Shortcut - Cmd + Shift + P" /></p>
<pre class="language-javascript"><code class="language-javascript"><p>&lt;scope&gt;source.python&lt;/scope&gt;</p></code></pre>
<p>This line will help scope your triggers. What does that mean?Well, in the case of my JavaScript starter file, I’ve limited it to only working with JavaScript files. Instead of “.python” it says “.js”. Any file I want to use that snippet in, must be saved with a .js extension.</p>
<p>If I have trouble with a snippet loading, it’s usually related to the scope.</p>
<p>By default this line is commented out, so it’s not <em>necessary</em>, but it prevents your snippets from conflicting with each other.</p>
<hr class="space" />
<h4>Tips and Tricks</h4>
<p>When you’re saving your snippets, they’ll be placed in your <strong>User’s Library folder &gt; Application Support &gt; Sublime Text 3 &gt; Packages &gt; User &gt;</strong>. From there, though, I like to keep my snippets organized. I have folders for each of the languages (CSS, HTML, JS, and PHP).</p>
<hr class="space" />
<h4>Other Snippets</h4>
<p>If you’re curious what other snippets I use, I’ve created gists that you’re more than welcome to download and use.</p>
<hr class="space" />
<p><strong>CSS</strong></p>
<ul>
<li><a href="https://gist.github.com/ahaywood/f8fcd31dde9d1deba681">Media queries and defining breakpoints</a> &#8211; I use <a href="http://css-tricks.com/naming-media-queries/">Chris Coyier’s Naming Media Queries</a> trick. This snippet follows that syntax.</li>
<li><a href="https://gist.github.com/ahaywood/e6743dd71b0c7c38b2f0">Z-Index Map</a> &#8211; I use <a href="http://css-tricks.com/handling-z-index/">Chris Coyier’s trick for handling z-index.</a></li>
</ul>
<p><strong>HTML</strong></p>
<ul>
<li><a href="https://gist.github.com/ahaywood/50994e99ed7a36f10b19">Picturefill for retina displays</a> &#8211; I use <a href="https://github.com/scottjehl/picturefill">Scott Jehl’s Picturefill</a> syntax for responsive image polyfills.</li>
<li><a href="https://gist.github.com/ahaywood/84af50542d4784587f7c">Placeholder images using placehold.it</a> &#8211; <a href="http://placehold.it/">Placehold.it</a> offers a great service for providing placeholder images if you’re creating mock-ups. By changing a few parameters within the URL, you can control the size, color, and text color of the image.</li>
</ul>
<p><strong>JS</strong></p>
<ul>
<li><a href="https://gist.github.com/ahaywood/8dedcac32dd5cf9f4b73">Starter JavaScript file</a>, referenced earlier.</li>
</ul>
<p><strong>WordPress (PHP)</strong></p>
<ul>
<li><a href="https://gist.github.com/ahaywood/3d87ee1786976b293842">Creating a file include</a></li>
<li><a href="https://gist.github.com/ahaywood/9b6b510aa929f3e79941">Using get_template_part</a></li>
</ul>
<hr class="space" />
<hr />
<h2 id="plugins">Plugins and Extensions</h2>
<p>At the end of the day, the plugins and extensions are ultimately what tie me to Sublime. I’ve become so reliant on them that it would be really hard for me to change editors.</p>
<hr class="space" />
<h3>Package Control</h3>
<p>The first thing you’ll need to do is install <a href="https://packagecontrol.io/">Package Controll.</a> This makes it super simple to find and install packages and keep them up to date.</p>
<p>If you go to the <a href="https://packagecontrol.io/installation">Package Control install page</a> they do a good job of explaining how to get started:</p>
<ul>
<li>Go to Sublime, hit <strong>ctrl + `</strong> (it’s above the &lt;TAB&gt; key).</li>
<li>Copy and paste the code they provide on their site and hit &lt;ENTER&gt;</li>
</ul>
<p>Easy Peasy Lemon Squeezey.</p>
<hr class="space" />
<h3>Installing Packages</h3>
<p>Now that Package Control is installed, anytime you want to install a package, just hit <strong>Cmd + Shift + P</strong> and then start to type “install”. <strong>Package Control: Install Package</strong> shoud come up as an option. Hit &lt;ENTER&gt;. Then, you can search for whatever package you want to install. Select it. Hit &lt;ENTER&gt; and it will automagically download and install itself and stay up to date. You can watch the progress in the bottom left gray bar.</p>
<hr class="space" />
<h4>Advanced New File</h4>
<p><a href="https://packagecontrol.io/packages/AdvancedNewFile">Advanced New File</a> makes it easy to create new files and folders from your keyboard. I simply type <strong>Cmd + alt + shift + n</strong>, a line appear at the bottom of window and I can type the name of the file I want to create. If I want it to be within a particular folder, I simply include the path as well: <strong>assets/src/scss/_1_base/globals.scss</strong>. If I want to create a folder, I still type <strong>Cmd + alt + shift + n</strong>, but instead of typing the file name, I type the folder name. It knows the difference because instead of ending in a dot extension, end with a trailing <strong>/</strong>. For example: <strong>assets/src/img/svg/</strong>.</p>
<div class="box">
<p>By default, when you create a new file, it will add a __init__.py to your folder. This is great, if you’re writing python (I’m assuming, I don’t know python). You can turn this off by going to <strong>Sublime Text &gt; Preferences &gt; Package Settings &gt; AdvancedNewFile &gt; Key Bindings — User</strong></p>
<p>Copy and paste the following line:</p>
<pre><code class="language-javascript">[
	{ "keys": ["shift+super+alt+n"], "command": "advanced_new_file_new", "args": {"is_python": false}},
]</code></pre>
<p>Anything within your <strong>Key Bindings — User</strong> file, will override the defaults established within <strong>Key Bindings — Default</strong>.</p>
</div>
<hr class="space" />
<h4>Alignment and AlignTab</h4>
<p>The <a href="https://packagecontrol.io/packages/Alignment">Alignment</a> and <a href="https://packagecontrol.io/packages/AlignTab">AlignTab</a> make it easy to correct alignment within your code.</p>
<p>With the Alignment package, you can press <strong>Cmd + Ctrl + a</strong> and your selection will indent consistently. If the lines are already indented properly, it will then check to make sure the first = on each line is aligned.</p>
<p>The AlignTab package is a little more versatile. I will typically call it by typing <strong>Cmd + Shift + P</strong> then selecting <strong>AlignTab</strong> and <strong>&lt;ENTER&gt;</strong>. A input field will appear at the bottom of your window and your type the character you want the text to align by.</p>
<p>It’s also worth noting that AlignTab has a <strong>Live Preview Mode</strong> option that allows you to preview the change before hitting &lt;ENTER&gt;.</p>
<hr class="space" />
<h4>Auto File Name</h4>
<p><a href="https://packagecontrol.io/packages/AutoFileName">AutoFileName</a> will autocomplete the folder and file names as you’re typing. So handy! If you’re referencing an image source, it will also fill in the height and width of the image.</p>
<p><img src="http://amyhaywoodcom.s3.amazonaws.com/blog/150126/autofilename.gif" alt="Sublime Text - Autofile Plugin" /></p>
<div class="caption">NOTE: Within the screenshot, I’m using Emmet to generate to &lt;img&gt; tag.</div>
<hr class="space" />
<h4>Bracket Highlighter</h4>
<p><a href="https://packagecontrol.io/packages/BracketHighlighter">BracketHighlighter</a> will highlight the matching tag, plus it will put an icon in the gutter to help you identify the bracket, parenthesis, tag, etc.</p>
<p><img src="http://amyhaywoodcom.s3.amazonaws.com/blog/150126/brackethighligheter.png" alt="Sublime Text = Bracket Highlighter" /></p>
<p>This has been a tremendous help in helping me troubleshoot code, when my nesting gets off.</p>
<hr class="space" />
<h4>Comment Snippets</h4>
<p><a href="https://packagecontrol.io/packages/Comment-Snippets">Comment Snippets</a> is a set of snippets that help you build comment blocks. For example, <code class="language-html">comm + tab</code> would render</p>
<pre class="language-html"><code class="language-html">/* Comment */</code></pre>
<p>Or, <code class="language-html">comm-section + tab</code> would produce:</p>
<pre class="language-html"><code class="language-html">/*=============================================
    =            Section comment block            =
    =============================================*/



    /*-----  End of Section comment block  ------*/</code></pre>
<p>You can see more examples by reading their <a href="https://packagecontrol.io/packages/Comment-Snippets">documentation.</a></p>
<hr class="space" />
<h4>DocBlockr</h4>
<p><a href="https://packagecontrol.io/packages/DocBlockr">DocBlockr</a> is similar to Comment Snippets in that it helps create comments, but it&#8217;s more robust. For example, if you&#8217;re writing a comment block, it will maintain your style and indentation.</p>
<p><img src="http://amyhaywoodcom.s3.amazonaws.com/blog/150126/comment_indentation.gif" alt="Sublime Text - DocBlockr Example" /></p>
<p>Also, if you&#8217;re going back and documenting variables and functions, DocBlockr will pick up on your variables and parameters, pre-filling your comment.<br />
<img src="http://amyhaywoodcom.s3.amazonaws.com/blog/150126/docblockr_function.gif" alt="Sublime Text - DocBlockr example" /></p>
<p>It can also do fancy things, like surrounding you content with slashes. <code class="language-html">// Something</code><strong>CTRL + &lt;ENTER&gt;</strong>:</p>
<p><img src="http://amyhaywoodcom.s3.amazonaws.com/blog/150126/double_slashes.gif" alt="Sublime Text - DocBlockr Example" /></p>
<p>This is just the tip of the <a href="https://packagecontrol.io/packages/DocBlockr" title="DocBlockr documentation">iceberg</a>.</p>
<hr class="space" />
<h4>Syntax</h4>
<p>You can extend Sublime to support different languages and syntax highlighting through plugins too. There&#8217;s one for just about anything you can imagine:</p>
<ul>
<li><a href="https://packagecontrol.io/packages/Laravel%20Blade%20Highlighter">Laravel&#8217;s Blade Templating System</a><</li>
<li><a href="https://packagecontrol.io/packages/Sass">SASS</a></li>
<li><a href="https://packagecontrol.io/packages/LESS">Less</a></li>
<li><a href="https://packagecontrol.io/packages/CodeIgniter%20Snippets">CodeIgniter</a></li>
<li><a href="https://packagecontrol.io/packages/Hamlpy">HAML</a></li>
</ul>
<p>You get the idea.</p>
<hr class="space" />
<h4>Emmet</h4>
<p><strong><em>If you don’t install any other packages, install this one!</em></strong> I use <a href="https://packagecontrol.io/packages/Emmet">Emmet</a> (html) and <a href="https://packagecontrol.io/packages/Emmet%20Css%20Snippets">Emmet CSS Snippets</a> and <a href="https://packagecontrol.io/packages/Emmet%20Style%20Reflector">Emmet Style Reflector</a>.</p>
<p>It makes coding SO MUCH easier. Just to give you an idea, you can type <code class="language-javascript">ul&gt;li*3&gt;a[href=#]</code> and then hit tab and it will generate this for you:</p>
<pre class="language-html"><code class="language-html">&lt;ul&gt;
&lt;li&gt;&lt;a href=“#”&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=“#”&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=“#”&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</code></pre>
<p>The <code class="language-javascript">&gt;</code> sets up the nesting, the <code class="language-javascript">*</code> sets up how many elements, and the <code class="language-javascript">[]</code> establishes any attributes.</p>
<p>The CSS version is somewhat similar. I can just start to type (typically) the first two letters of each word in a property, hit &lt;TAB&gt; and it will generate that property for me.</p>
<p>For example <code class="language-javascript">ff</code> &lt;TAB&gt; will produce <code class="language-javascript">font-family: ;</code> or <code class="language-javascript">td</code> &lt;TAB&gt; will give me <code class="language-javascript">text-decoration: ;</code>. </p>
<p>Chris Coyier has a 20 minute screencast on how to use Emmet (embedded below). I can’t tell you how many hours Emmet has saved me, it’s more than worth taking 20 minutes to familiarize yourself.</p>
<div class="break-out">
<div class="large-12 columns"><iframe width="560" height="315" src="//www.youtube.com/embed/0uIPGgq9R5Y" frameborder="0" "allowfullscreen"></iframe></div>
</div>
<hr class="space" />
<h4>GitGutter</h4>
<p>If you’re running .git on your project (which you should! …no excuses!), then <a href="https://packagecontrol.io/packages/GitGutter">GitGutter</a> will put an icon in the gutter, next to the line number, letting you know what has changed since your last commit.</p>
<p>…and while we’re talking about Git, you may want to check out <a href="https://packagecontrol.io/packages/Git">Git</a> and <a href="https://packagecontrol.io/packages/Github%20Tools">GitHub Tools</a>. Git provides git integration directly in Sublime. (I still use <a href="http://www.git-tower.com/">Tower</a>, though.) GitHub tools provides GitHub integration (I’ve moved most of my code to BitBucket.)</p>
<hr class="space" />
<h4>HTML-CSS-JS Prettify</h4>
<p>Admittedly, this is not the most used plugin that I have installed. But, when I do use it, it’s like magic.</p>
<p><a href="https://packagecontrol.io/packages/HTML-CSS-JS%20Prettify">HTML-CSS-JS Prettify</a> will take an HTML, CSS, or JS file and make the code look really pretty. It comes in handy if I copied the source from somewhere or if I’m dealing with someone else’s code.</p>
<hr class="space" />
<h4>Open Finder</h4>
<p><a href="https://packagecontrol.io/packages/Open%20Finder">Open Finder</a> gives you the command “Finder: Open here”, which will open the current file’s folder in Finder. Sounds simple, but very useful.</p>
<hr class="space" />
<h4>Origami</h4>
<p><a href="https://packagecontrol.io/packages/Origami">This</a> is one of my favorites. It makes opening and closing panes so easy. I simply type <strong>Cmd + K + arrow</strong> to open a new pane. Arrow up, opens a pane above. Arrow down, one below. Arrow right, to the right. Arrow left, to the left. </p>
<p>If I want to close a pane, I simply type <strong>Cmd + K + Shift + arrow</strong>. (Be careful not to get this mixed up with <strong>Cmd + Shift + K</strong>, just remember hold down the command key, press and release the k button, then hit shift, then arrow) Arrow up, closes the pane above it. etc.</p>
<hr class="space" />
<h4>Placeholders</h4>
<p><a href="https://packagecontrol.io/packages/Placeholders">Placeholders</a> provides placeholder content. So, I can simply type <strong>lorem&lt;TAB&gt;</strong> and a paragraph of Lorem Ipsum will be generated.</p>
<hr class="space" />
<h4>Sidebar Enhancements</h4>
<p><a href="https://packagecontrol.io/packages/SideBarEnhancements">SideBarEnhacements</a> provides some additional functionality to your sidebar. For example, it provides some additional menu options when you right click on a file or folder in the sidebar (“move to trash” and “open with…”) just to name a few.</p>
<hr class="space" />
<h4>Sublime GitHub</h4>
<p><a href="https://packagecontrol.io/packages/sublime-github">Sublime GitHub</a> is a must for me. It allows me to access my gists directly from Sublime. We talked about snippets earlier and I suppose gists could provide some overlap. The difference, for me, though, is a snippet requires some interraction (tabbing through). A gist, however, could be a whole piece of code or an entire file that I reuse quite frequently. My bower.json, package.json, or gulpfile.js are perfect examples.</p>
<p>Within Sublime, I will type <strong>Cmd + Shift + P</strong>, then I’ll start to type <strong>gist</strong>. I’ll select <strong>GitHub: Copy Gist to Clipboard</strong> and hit &lt;ENTER&gt;. Within the top panel, it will list all my gists. I can start to type the name of the gist, select it with my arrow keys if it’s not already selected, hit &lt;ENTER&gt; and then Cmd + V to paste it into my current file.</p>
<hr class="space" />
<h4>ToDo Review</h4>
<p>Last but not least: <a href="https://packagecontrol.io/packages/TodoReview">ToDoReview</a>. As I’m typing code, sometime I’ll write a line, but know that I need to come back and work on it. Say I’m stubbing out a page and have a placeholder for a JavaScript slider. I know I’ll need to come back and work on the slider, but I don’t have time in the moment to implement it. So, I’ll type <code class="language-javascript">&lt;!-- TODO: Implement Slider --&gt;</code></p>
<p>The great thing about this method</p>
<ol>
<li>It’s a comment, so you can’t see it on the front end.</li>
<li>It identifies the exact spot and line number in my code that still needs work.</li>
<li>It doesn’t interrupt my flow of stubbing out the page.</li>
</ol>
<p>Later, I can go back and run <strong>TodoReview: Project Files</strong> (by hitting <strong>Cmd + Shift + P</strong> and it will generate a list of all the places in the code where I listed TODO items. That list then comes my checklist. I can double click on the TODO in the list and it will take me to that spot in the code. Once I’ve reworked it, I’ll remove the comment, and regenerate the list.</p>
<div class="box">
<h4>NOTE:</h4>
<p>You may notice, if you’re implementing bower or other node components, this syntax is common among other developers. By running <strong>TodoReview: Project Files</strong>, it will return Todo items within your project’s bower_components folder and node_modules folder that other programmers have left behind.</p>
<p>You can exclude these fles folders from your results, by going to <strong>Sublime Text &gt; Preferences &gt; Package Settings &gt; ToDoReview &gt; Settings — User</strong> and listing them within your preferences.json file. I’ve included mine for reference:</p>
<p><script src="https://gist.github.com/ahaywood/670e54d34be4d000dfd1.js"></script>
</div>
<hr class="space" />
<hr />
<h2 id="more">Looking for more?</h2>
<p><em>Whew!</em> That’s all I got. If I’ve just whetted your appetite or you’re looking for more information, here are a few additional resources:</p>
<ul>
<li>Tuts+ has a free course: <a href="http://code.tutsplus.com/articles/perfect-workflow-in-sublime-text-free-course--net-27293">Perfect Workflow in Sublime Text: Free Course!</a></li>
<li><a href="http://sublime-text-unofficial-documentation.readthedocs.org/en/latest/index.html">Sublime Text Unofficial Documentation</a></li>
<li><a href="https://sublimetextbook.com/">Sublime Text Power User</a>, a book and video package that is quite awesome</li>
<li><a href="http://css-tricks.com/sublime-text-front-end-developers/">A post on CSS-Tricks by wesbos</a> who wrote the ^^^Sublime Text Power User book</a>
</ul>
<hr class="space" />
<hr />
<p>I know this seems like a lot, but I know Sublime is so powerful and extendable that there’s plenty more. I’m interested to hear in the comments, what are some of your tips and tricks? Snippets? Plugins? Macros?</p>
<p>The post <a rel="nofollow" href="http://www.amyhaywood.com/sublime-text-brain-dump/">A Brain Dump on Sublime Text 3</a> appeared first on <a rel="nofollow" href="http://www.amyhaywood.com">AMY HAYWOOD</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.amyhaywood.com/sublime-text-brain-dump/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Important Rules of Business (not what you think)</title>
		<link>http://www.amyhaywood.com/important-rules-of-business-not-what-you-think/</link>
		<comments>http://www.amyhaywood.com/important-rules-of-business-not-what-you-think/#respond</comments>
		<pubDate>Tue, 20 Jan 2015 14:08:58 +0000</pubDate>
		<dc:creator><![CDATA[Amy]]></dc:creator>
				<category><![CDATA[101]]></category>
		<category><![CDATA[Post]]></category>
		<category><![CDATA[business]]></category>

		<guid isPermaLink="false">http://www.amyhaywood.com/?p=3809</guid>
		<description><![CDATA[<p>Over the past couple of years, I’ve been reading up on business principles, trying to gather as much information as possible so I can make the best decisions for my company. Surprisingly, what I’ve discovered is not what I’ve expected at all. Copying is OK Before you get upset or start pulling out copyright law,... <a class="view-article" href="http://www.amyhaywood.com/important-rules-of-business-not-what-you-think/">View Article</a></p>
<p>The post <a rel="nofollow" href="http://www.amyhaywood.com/important-rules-of-business-not-what-you-think/">Important Rules of Business (not what you think)</a> appeared first on <a rel="nofollow" href="http://www.amyhaywood.com">AMY HAYWOOD</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Over the past couple of years, I’ve been reading up on business principles, trying to gather as much information as possible so I can make the best decisions for my company. Surprisingly, what I’ve discovered is not what I’ve expected at all.</p>
<hr />
<h3>Copying is OK</h3>
<p>Before you get upset or start pulling out copyright law, let me explain. There’s a difference between copying and stealing.</p>
<p>In this case, copying is seeing what someone else is doing, thinking “I can do this better”, taking the good pieces, and making it your own.</p>
<p>You might still be scowling, but in the United States, we have anti-monopoly policies. Meaning, the government actually encourages this kind of behavior! A competitor is only going to make businesses better and stronger. It’s why you have <a href="http://www.squarespace.com">SquareSpace</a> and <a href="http://www.wordpress.org">WordPress</a>. <a href="http://www.flickr.com">Flickr</a> and <a href="http://picasa.google.com/">Picassa.</a> <a href="http://www.google.com">Google</a> and <a href="http://www.bing.com">Bing</a>. These are all successful businesses, but they’re all (essentially) doing the same thing.</p>
<hr />
<h3>First isn&#39;t best</h3>
<p>First is the worst. Second is the best. Third is the one with the hairy chest? </p>
<p>Just because you’re not first, doesn’t mean you’re not the best. Take <a href="http://www.facebook.com">Facebook</a> and <a href="http://www.myspace.com">MySpace</a>. MySpace was first, launching their services in August 2003. Facebook followed, two months later. But, look who’s still going strong.</p>
<p>Just because you’re not first doesn’t mean you’re too late. </p>
<hr />
<h3>Quitting is Good</h3>
<p>There’s a popular phrase: “winner’s never quit.” It’s a lie. Winners do quit. In fact, they quit all the time. They quit all the things they’re not good at and focus on the things they are. Maximize your strengths. </p>
<p>If you’re not good at something. Quit. Let the people that are good at it, do it. You do the things you are good at.</p>
<hr />
<h3>The most important thing you can do in business is ship (unfinished)</h3>
<p>It is better to send out a product at 90% complete, then it is to wait until it’s at 100%. How do you figure? How much difference is that final 10% going to make? 90 is still an A. Besides, it gives you room for feedback, to make sure that final 10% is actually moving in the the right direction.</p>
<hr />
<p>What other business rules have you learned?</p>
<p>The post <a rel="nofollow" href="http://www.amyhaywood.com/important-rules-of-business-not-what-you-think/">Important Rules of Business (not what you think)</a> appeared first on <a rel="nofollow" href="http://www.amyhaywood.com">AMY HAYWOOD</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.amyhaywood.com/important-rules-of-business-not-what-you-think/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Mistakes I Made in Building a Web App</title>
		<link>http://www.amyhaywood.com/the-mistakes-i-made-in-building-a-web-app/</link>
		<comments>http://www.amyhaywood.com/the-mistakes-i-made-in-building-a-web-app/#comments</comments>
		<pubDate>Sat, 17 Jan 2015 05:52:36 +0000</pubDate>
		<dc:creator><![CDATA[Amy]]></dc:creator>
				<category><![CDATA[101]]></category>
		<category><![CDATA[Post]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[web app]]></category>
		<category><![CDATA[fail]]></category>

		<guid isPermaLink="false">http://www.amyhaywood.com/?p=3799</guid>
		<description><![CDATA[<p>A few years ago, I started been building a web app. I designed it. Coded it. It’s been a long process, mainly because it’s been just me, pushing pixels and stealing a line of code here, a line of code there. It was a long process because it included a lot of learning&#8230;the hard way.... <a class="view-article" href="http://www.amyhaywood.com/the-mistakes-i-made-in-building-a-web-app/">View Article</a></p>
<p>The post <a rel="nofollow" href="http://www.amyhaywood.com/the-mistakes-i-made-in-building-a-web-app/">The Mistakes I Made in Building a Web App</a> appeared first on <a rel="nofollow" href="http://www.amyhaywood.com">AMY HAYWOOD</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>A few years ago, I started been building a web app. I designed it. Coded it. It’s been a long process, mainly because it’s been just me, pushing pixels and stealing a line of code here, a line of code there. It was a long process because it included a lot of learning&#8230;the hard way. I’ve made a few (major) mistakes.</p>
<hr />
<h3>I didn’t show people early or often.</h3>
<p>As a perfectionist, I’m very protective about my work. I don’t let people see what I’m working on until I’m ready. I want them to see the best version of what I have, best foot forward. &#8211;No need for them to give input on something that’s half baked.</p>
<p>The problem with that mentality, though, is I took the project down roads that I never should have gone down. I worked with blinders on. What I did made sense to me. I put my engineer hat on. I thought about the back end and the code and the logic and forgot about the people that would actually be using the system. When I finally did show people, they would (quickly) find problems. </p>
<p>&#8220;Why doesn’t it do this? What do I now?&#8221; </p>
<p>&#8220;Isn’t that obvious?&#8221;</p>
<p>&#8220;Well, no.&#8221;</p>
<p>I should have showed people early and often. I should have talked to the people that would be using the system and find out what they really needed instead of giving them what I thought they wanted. </p>
<p>Two of the best books out on interface design is <a href="https://www.amazon.com/dp/0321657292/ref=as_li_ss_til?tag=ah0b3-20&amp;camp=213381&amp;creative=390973&amp;linkCode=as4&amp;creativeASIN=0321657292&amp;adid=1SGJVWBN29HC6F08KA5W&amp;">Rocket Surgery Made Easy</a> and <a href="https://www.amazon.com/dp/0321344758/ref=as_li_ss_til?tag=ah0b3-20&amp;camp=213381&amp;creative=390973&amp;linkCode=as4&amp;creativeASIN=0321344758&amp;adid=05CQNJ8RR5Z6N09JCQWC&amp;">Don’t Make Me Think</a>, both by Steve Krug. </p>
<hr class="space" />
<div class="break-out">
<div class="large-6 medium-6 columns">
<a href="https://www.amazon.com/dp/0321657292/ref=as_li_ss_til?tag=ah0b3-20&amp;camp=213381&amp;creative=390973&amp;linkCode=as4&amp;creativeASIN=0321657292&amp;adid=1SGJVWBN29HC6F08KA5W&amp;"><img src="http://www.amyhaywood.com/wp-content/uploads/2015/01/51QyFDusQxL.jpg" alt="Rocket Surgery Made Easy by Steve Krug" class="alignnone size-full wp-image-3800" srcset="http://www.amyhaywood.com/wp-content/uploads/2015/01/51QyFDusQxL-250x320.jpg 250w, http://www.amyhaywood.com/wp-content/uploads/2015/01/51QyFDusQxL-273x350.jpg 273w, http://www.amyhaywood.com/wp-content/uploads/2015/01/51QyFDusQxL-120x153.jpg 120w, http://www.amyhaywood.com/wp-content/uploads/2015/01/51QyFDusQxL.jpg 390w" sizes="" /></a>
</div>
<div class="large-6 medium-6 columns">
<a href="https://www.amazon.com/dp/0321344758/ref=as_li_ss_til?tag=ah0b3-20&amp;camp=213381&amp;creative=390973&amp;linkCode=as4&amp;creativeASIN=0321344758&amp;adid=05CQNJ8RR5Z6N09JCQWC&amp;"><img src="http://www.amyhaywood.com/wp-content/uploads/2015/01/51WEywZ-i2L.jpg" alt="Don&#039;t Make Me Think by Steve Krug" class="alignnone size-full wp-image-3801" srcset="http://www.amyhaywood.com/wp-content/uploads/2015/01/51WEywZ-i2L-250x321.jpg 250w, http://www.amyhaywood.com/wp-content/uploads/2015/01/51WEywZ-i2L-272x350.jpg 272w, http://www.amyhaywood.com/wp-content/uploads/2015/01/51WEywZ-i2L-120x154.jpg 120w, http://www.amyhaywood.com/wp-content/uploads/2015/01/51WEywZ-i2L.jpg 389w" sizes="" /></a>
</div>
</div>
<hr class="space" />
<p>In Rocket Science Made Easy, he talks about corporations that will pay thousands of dollars to have experts analyze their sites. When, really, all you need is Joe Smoe end user. He’s your target audience anyway (not the expert). Simply watch Joe use your site. You’ll learn so much by simply paying attention to where he clicks. Where’s the first place he goes for information? Does he immediately know the purpose of your site? Does the navigation make sense? Joe’s not short on opinions, you just have to be willing to ask and be humble enough to hear what he has to say.</p>
<hr />
<h3>I never gave people a reason to need the system.</h3>
<p>When we got ready to beta test, I was invited to a leadership meeting to introduce this new tool I had created. &#8220;Here it is! My web app will make your life so much easier. Look at this bell here and that whistle there. Isn’t this great? I’m doing you a favor.&#8221;</p>
<p>After that meeting, I kept hearing, &#8220;This is great. I’m sure it’s useful, but my pen and paper method worked just fine.&#8221; </p>
<p>Really?</p>
<p>I could dismiss it. They’re older. They just don’t understand technology. But, is that a fair assessment?</p>
<p>How does my web app make their life better? The administration understood. They knew it would dramatically cut down on data entry, emails, reminders, and processes. But, I failed to communicate that to Joe Smoe. There was disconnect between their need and my app.</p>
<p>So, how do I close that gap? You tell a story. A good story always has a problem. Then, it works toward a solution. My end user may not know what the problem is. I have to define that for them. Then, hopefully, my product, my web app is their solution. I need them to buy into the system, otherwise it will never get used. It will fail before it even has a chance.</p>
<hr />
<h3>I didn’t mimic a system they already knew.</h3>
<p>After a month of testing, I had a beta user that believed in my product. He had a background in Internet Technology and was willing to sit down for coffee and walk through my app, discussing points for improvement.</p>
<p>One of the first things he did was pull out a folder with a print out. &#8220;This is the system we know. Flawed? Maybe, but we’re used to it.&#8221; Then, he pulled up my web application. The two looked nothing alike. &#8212; which is fine, except for one thing. It didn’t give my users a frame of reference. They needed something to go off. </p>
<p>Let’s look at Apple as an example of doing it right. Address Book in the OS Lion looked just like an address book I could pick up at Office Max. </p>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/01/Mac-OS-X-Lion-address-book-580x355.png" alt="Address Book on my Mac" class="alignnone size-full wp-image-3803" srcset="http://www.amyhaywood.com/wp-content/uploads/2015/01/Mac-OS-X-Lion-address-book-580x355-250x153.png 250w, http://www.amyhaywood.com/wp-content/uploads/2015/01/Mac-OS-X-Lion-address-book-580x355-571x350.png 571w, http://www.amyhaywood.com/wp-content/uploads/2015/01/Mac-OS-X-Lion-address-book-580x355-120x73.png 120w, http://www.amyhaywood.com/wp-content/uploads/2015/01/Mac-OS-X-Lion-address-book-580x355.png 580w" sizes="" /></p>
<p>Notepad on my iPad originally looked just a yellow legal pad. </p>
<p><img src="http://www.amyhaywood.com/wp-content/uploads/2015/01/iPadNotes_reduced.png" alt="Notepad on the iPad" class="alignnone size-full wp-image-3802" srcset="http://www.amyhaywood.com/wp-content/uploads/2015/01/iPadNotes_reduced-250x187.png 250w, http://www.amyhaywood.com/wp-content/uploads/2015/01/iPadNotes_reduced-467x350.png 467w, http://www.amyhaywood.com/wp-content/uploads/2015/01/iPadNotes_reduced-120x89.png 120w, http://www.amyhaywood.com/wp-content/uploads/2015/01/iPadNotes_reduced.png 474w" sizes="" /></p>
<p>Why? Because these are systems I’m familiar with. There’s something about translating the physical world to the digital that gives the user a sense of comfort. I know how it works in the physical world, therefore those metaphors must carry over.</p>
<hr />
<p>These lessons are hard when you’ve put in time and energy. But, now I know. </p>
<p>What are some lessons you’ve learned the hard way in web development?</p>
<p>The post <a rel="nofollow" href="http://www.amyhaywood.com/the-mistakes-i-made-in-building-a-web-app/">The Mistakes I Made in Building a Web App</a> appeared first on <a rel="nofollow" href="http://www.amyhaywood.com">AMY HAYWOOD</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.amyhaywood.com/the-mistakes-i-made-in-building-a-web-app/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
