<?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>Brick By Brick from The Brick Factory</title>
	<atom:link href="http://blog.thebrickfactory.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.thebrickfactory.com</link>
	<description>The Brick Factory Blog</description>
	<lastBuildDate>Fri, 14 Jun 2013 15:23:00 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Did Gmail Tabs Just Kill Email Marketing?</title>
		<link>http://blog.thebrickfactory.com/2013/06/did-gmail-tabs-just-kill-email-marketing/</link>
		<comments>http://blog.thebrickfactory.com/2013/06/did-gmail-tabs-just-kill-email-marketing/#comments</comments>
		<pubDate>Fri, 14 Jun 2013 12:52:15 +0000</pubDate>
		<dc:creator>Todd Zeigler</dc:creator>
				<category><![CDATA[Email]]></category>

		<guid isPermaLink="false">http://blog.thebrickfactory.com/?p=5785</guid>
		<description><![CDATA[A few weeks ago Gmail rolled out a new inbox optimization feature called tabs.&#160; I have too many miles on me to get overly excited about new features in Gmail, so I made a mental note that tabs was coming and continued living my life. Two days ago I got access to tabs through my [...]]]></description>
				<content:encoded><![CDATA[<p>A few weeks ago Gmail <a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL2hvd3RvLmNuZXQuY29tLzgzMDEtMTEzMTBfMzktNTc1ODY3MzItMjg1L2dldHRpbmctc3RhcnRlZC13aXRoLXRoZS1uZXctZ21haWwtdGFicy8=">rolled out a new inbox optimization feature called tabs</a>.&#160; I have too many miles on me to get overly excited about new features in Gmail, so I made a mental note that tabs was coming and continued living my life.</p>
<p>Two days ago I got access to tabs through my personal Gmail account and started using it.&#160; Pretty much immediately, tabs changed the way I read my email.&#160; </p>
<p>Let me back up.&#160; </p>
<p>Gmail tabs automatically categorizes your email into five main groupings – Primary, Social, Promotions, Updates and Forums – that are presented along the top of the page.&#160; The Primary tab houses all your emails from actual people while the rest of the tabs consist of emails from marketers and various notices you get automatically from social networks and sites you have accounts with.&#160; Here is what tabs looks like on my account, with the Promotions tabs selected:</p>
<p><img title="gmail" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="gmail" src="http://blog.thebrickfactory.com/wp-content/uploads/2013/06/gmail.jpg" width="900" height="259" />&#160;</p>
<p>For me the impact of tabs was dramatic.&#160; Within hours of getting access to the tool I stopped reading any email that weren’t sent by an actual person.&#160; I stayed in the Primary tab all day along and ventured into the other tabs for a quick glance maybe once or twice a day.&#160; I rarely opened any emails that weren’t in my Primary folder, although, somewhat embarrassingly, you can see a “Juicy Burger Day” Groupon grabbed my attention (As an aside, great use of “Juicy” in the subject – no way I open this email if it just says “Burger Day Deals”.)&#160; </p>
<p>This is a significant behavioral change for me.&#160; Previously all these marketing emails made it into my main inbox.&#160; I certainly didn’t open or read all of them, but I definitely saw them as they came in.&#160; I had to sort through them to get to my emails from my friends and family.</p>
<p>For email marketers, this means I have gone from a sucker who would occasionally get distracted and click on random marketing emails to someone that has stopped reading this stuff all together.&#160; </p>
<p>For all you Getting Things Done nerds I understand that there were already ways to accomplish this kind of sorting.&#160; I have a pretty robust system for filtering my work email and have played around with productivity tools like <a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL3d3dy5tYWlsYm94YXBwLmNvbS8=">Mailbox</a>.&#160; But for whatever reason I never made any real attempt to optimize my personal email account.&#160; Gmail tabs just did it for me.</p>
<p>I think Gmail tabs is going to take email productivity mainstream.&#160; Three reasons:</p>
<ol>
<li><strong>It is dead simple</strong>.&#160; It would have taken me hours to create rules to do what I’m able to do in tabs by simply setting up the feature.&#160; </li>
<li><strong>It works.</strong>&#160; In two days I have yet to see an email get categorized incorrectly.      </li>
<li><strong>It is a core feature in Gmail</strong>.&#160; Tools like Mailbox are like a cool indie band that only hardcore fans know about.&#160; Gmail is the Rolling Stones.&#160; Over the next few months everyone will get this feature.&#160; And Gmail’s primary competitors will roll out their own versions of tabs to keep up.&#160; This will become the default interface for email.</li>
</ol>
<p>If my usage patterns are any indication, Gmail tabs is going to seriously disrupt email marketing.&#160; As the feature gains widespread use I would expect a further drop in the open and click through rates for marketing emails.&#160;&#160; People are only going to open and read emails from companies and organizations that they really care about.&#160; Perhaps more importantly, peer to peer email marketing is likely to become even more effective as people are able to filter out all email communication from people they don’t actually know.&#160; </p>
<p>What do you think the impact will be?</p>
 <img src="http://blog.thebrickfactory.com/?feed-stats-post-id=5785" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.thebrickfactory.com/2013/06/did-gmail-tabs-just-kill-email-marketing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Five Tweets from Drupalcon</title>
		<link>http://blog.thebrickfactory.com/2013/06/five-tweets-from-drupalcon/</link>
		<comments>http://blog.thebrickfactory.com/2013/06/five-tweets-from-drupalcon/#comments</comments>
		<pubDate>Mon, 03 Jun 2013 22:14:49 +0000</pubDate>
		<dc:creator>Todd Zeigler</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.thebrickfactory.com/?p=5775</guid>
		<description><![CDATA[I went to Drupalcon in Portland a few weeks ago and am still processing everything I learned.  I hope to have time to write a few longer posts in the coming weeks on some of the larger themes from the conference.  While I procrastinate I figured I’d highlight some of the more interesting tidbits from [...]]]></description>
				<content:encoded><![CDATA[<p>I went to Drupalcon in Portland a few weeks ago and am still processing everything I learned.  I hope to have time to write a few longer posts in the coming weeks on some of the larger themes from the conference.  While I procrastinate I figured I’d highlight some of the more interesting tidbits from the sessions I attended.  Since I was on Twitter, these are going to take the from of tweets from myself and others.</p>
<h3>(1) The Problem with Wireframes</h3>
<blockquote class="twitter-tweet"><p>&#8220;This all wrong.Its too grey, it’s too boxy and I hate the font.&#8221; &#8212; Every Client who ever reviewed wireframes.<a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cHM6Ly90d2l0dGVyLmNvbS9zZWFyY2gvJTIzZHJ1cGFsY29u">#drupalcon</a></p>
<p>&mdash; Todd Zeigler (@debaser) <a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cHM6Ly90d2l0dGVyLmNvbS9kZWJhc2VyL3N0YXR1cy8zMzc2NjQwNjIyNjk4NDE0MDk=">May 23, 2013</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<p>I believe this was a quote from the <a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cHM6Ly9wb3J0bGFuZDIwMTMuZHJ1cGFsLm9yZy9ub2RlLzIyOTg=">Design Smarter, Not Harder</a> session by Ken Woodworth.</p>
<p>This is obviously a bit of an overstatement, but in my experience around half of clients simply aren’t going to be able to provide you with good feedback on wireframes.  Wireframes are intended to separate the form from the function, and some folks can’t make that leap.  Wireframes are simply too conceptual in nature for some folks.</p>
<h3>(2) Working Software Wins</h3>
<blockquote class="twitter-tweet"><p>&#8220;Working software always trumps documents about working software.&#8221; <a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cHM6Ly90d2l0dGVyLmNvbS9zZWFyY2gvJTIzRHJ1cGFsQ29u">#DrupalCon</a></p>
<p>&mdash; Troy Swanson (@gerphimum) <a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cHM6Ly90d2l0dGVyLmNvbS9nZXJwaGltdW0vc3RhdHVzLzMzNzM2MDQ3ODA4MDc0MTM3OA==">May 23, 2013</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<p>I believe this is from the <a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cHM6Ly9wb3J0bGFuZDIwMTMuZHJ1cGFsLm9yZy9ub2RlLzE2Mjg=">Designing on Purpose</a> session featuring Jared Ponch.  There is a place for specifications and planning and process, but the best feedback will come when you have something tangible to play with.  Processes that give users things they can touch and feel sooner are what is needed.</p>
<h3>(3) The Role of the Designer</h3>
<blockquote class="twitter-tweet"><p>.@<a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cHM6Ly90d2l0dGVyLmNvbS9qcG9uY2g=">jponch</a> &#8211; &#8220;We can&#8217;t solve problems for our clients based on their personal preferences in color, typography &amp; texture.&#8221; <a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cHM6Ly90d2l0dGVyLmNvbS9zZWFyY2gvJTIzZHJ1cGFsY29u">#drupalcon</a></p>
<p>&mdash; Todd Zeigler (@debaser) <a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cHM6Ly90d2l0dGVyLmNvbS9kZWJhc2VyL3N0YXR1cy8zMzY4OTg2MzU3ODQ2NzEyMzI=">May 21, 2013</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<p>This is another one from Jared Ponch.  He compared designers to architects.  Architects ask clients what they are hoping to achieve, not what their technical approach to the project should be.  Web designers should follow the same process.</p>
<h3>(4) The CMS Market</h3>
<blockquote class="twitter-tweet"><p>“Content management was commoditized as soon as open-source solutions reached sufficient competency at a no-cost price point.” <a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cHM6Ly90d2l0dGVyLmNvbS9zZWFyY2gvJTIzZHJ1cGFsY29u">#drupalcon</a></p>
<p>&mdash; Todd Zeigler (@debaser) <a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cHM6Ly90d2l0dGVyLmNvbS9kZWJhc2VyL3N0YXR1cy8zMzc2MzI3OTQwOTQyMTUxNzA=">May 23, 2013</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<p>This tweet came from Deane Barker’s presentation on <a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cHM6Ly9wb3J0bGFuZDIwMTMuZHJ1cGFsLm9yZy9ub2RlLzg1Mw==">Why the CEO Matters More Than the Developer</a>.  Simplifying greatly, his point was that content management is no longer a point of differentiation during the sales process.  Instead, firms must “sell” products and services that move their clients bottom line through increased sales or increased efficiency.</p>
<h3>(5) Visual vs. UX Design</h3>
<blockquote class="twitter-tweet"><p>Visual design and ux design are two completely things that require two completely different sills sets. <a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cHM6Ly90d2l0dGVyLmNvbS9zZWFyY2gvJTIzZHJ1cGFsY29u">#drupalcon</a></p>
<p>&mdash; Todd Zeigler (@debaser) <a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cHM6Ly90d2l0dGVyLmNvbS9kZWJhc2VyL3N0YXR1cy8zMzY4ODc0MjU5MDMyNTU1NTM=">May 21, 2013</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<p>I don’t really remember which panel this quote came from, but it really struck me.  Web design is a big field and different jobs require different kinds of skills.  The person who can create beautiful illustrations for an interactive piece may not be the one you want designing your forms.</p>
 <img src="http://blog.thebrickfactory.com/?feed-stats-post-id=5775" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.thebrickfactory.com/2013/06/five-tweets-from-drupalcon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Photos from Drupalcon</title>
		<link>http://blog.thebrickfactory.com/2013/05/photos-from-drupalcon/</link>
		<comments>http://blog.thebrickfactory.com/2013/05/photos-from-drupalcon/#comments</comments>
		<pubDate>Tue, 28 May 2013 19:14:08 +0000</pubDate>
		<dc:creator>Todd Zeigler</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.thebrickfactory.com/?p=5768</guid>
		<description><![CDATA[Last week five members of the Brick Factory team descended on Portland, Oregon for Drupalcon.&#160; We learned a ton, and will be sharing some insights the coming weeks.&#160; While we put together our thoughts, here are some photos from our time at the conference. A photo of all the attendees standing next to the Drupal [...]]]></description>
				<content:encoded><![CDATA[<p>Last week five members of the Brick Factory team descended on Portland, Oregon for <a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL3BvcnRsYW5kMjAxMy5kcnVwYWwub3JnLw==">Drupalcon</a>.&#160; We learned a ton, and will be sharing some insights the coming weeks.&#160; While we put together our thoughts, here are some photos from our time at the conference.</p>
<p><img title="drupalcon" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="drupalcon" src="http://blog.thebrickfactory.com/wp-content/uploads/2013/05/drupalcon.jpg" width="900" height="597" /> </p>
<p>A photo of all the attendees standing next to the Drupal man.&#160; This photo got passed around Twitter so I’m not sure who originally took this one.</p>
<p><span id="more-5768"></span>
<p>&#160;</p>
<p><img title="shirt" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="shirt" src="http://blog.thebrickfactory.com/wp-content/uploads/2013/05/shirt.jpg" width="900" height="1200" /> </p>
<p>This is what the free t-shirt all attendees got looks like.</p>
<p>&#160;<img title="keynote" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="keynote" src="http://blog.thebrickfactory.com/wp-content/uploads/2013/05/keynote.jpg" width="900" height="675" /> </p>
<p>Drupal project lead Dries Buytaert is up there somewhere giving the Day One keynote.&#160; There were over 3,300 people at this year’s Drupalcon and everyone was there for Dries’ talk.</p>
<p><img title="beer" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="beer" src="http://blog.thebrickfactory.com/wp-content/uploads/2013/05/beer.jpg" width="900" height="1200" /> </p>
<p>I can neither confirm nor deny that we may have indulged in some of Oregon’s craft beers.&#160; Photo of an IPA from Burnside Brewing Company.</p>
<p><img title="IMG_2056" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="IMG_2056" src="http://blog.thebrickfactory.com/wp-content/uploads/2013/05/IMG_2056.jpg" width="900" height="675" /> </p>
<p>Chris and Todd at one of the aforementioned craft beer establishments.</p>
<p><img title="oregon" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="oregon" src="http://blog.thebrickfactory.com/wp-content/uploads/2013/05/oregon.jpg" width="900" height="1200" /> </p>
<p>A sign at the Green Dragon.</p>
<p><img title="team" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="team" src="http://blog.thebrickfactory.com/wp-content/uploads/2013/05/team.jpg" width="900" height="1200" /> </p>
<p>Mike, John and Chris at the Green Dragon.</p>
<p><img title="jerk_chicken" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="jerk_chicken" src="http://blog.thebrickfactory.com/wp-content/uploads/2013/05/jerk_chicken.jpg" width="900" height="1200" /> </p>
<p>We also ate well.&#160; Jerk chicken at Burnside Brewing Company.</p>
 <img src="http://blog.thebrickfactory.com/?feed-stats-post-id=5768" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.thebrickfactory.com/2013/05/photos-from-drupalcon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Punk&#8217;d: The Interview</title>
		<link>http://blog.thebrickfactory.com/2013/05/punkd-the-interview/</link>
		<comments>http://blog.thebrickfactory.com/2013/05/punkd-the-interview/#comments</comments>
		<pubDate>Thu, 09 May 2013 14:00:47 +0000</pubDate>
		<dc:creator>Sierra Jacobson</dc:creator>
				<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://blog.thebrickfactory.com/?p=5536</guid>
		<description><![CDATA[Being a part of The Brick Factory team is quite a prestigious nod, it is a tough gig to get; I should know, I am the newest member of this wonderfully, technologically savvy crew. My journey to this desk came with its fair share of hurdles. One interview, two interviews, the days waiting for the [...]]]></description>
				<content:encoded><![CDATA[<p>Being a part of The Brick Factory team is quite a prestigious nod, it is a tough gig to get; I should know, I am the newest member of this wonderfully, technologically savvy crew. My journey to this desk came with its fair share of hurdles. One interview, two interviews, the days waiting for the call that I had been chosen, but in the end I not only received the position but also a warm welcome as I pulled up a chair to my new work station.</p>
<p>I have now been with The Brick Factory for about three months and believe I have made myself right at home. I have worked with <a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL3d3dy51c2FnYWluc3RhbHpoZWltZXJzLm9yZy8=">USAgainstAlzheimer&#8217;s</a>, <a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL3d3dy5tZWxjcnVtLmNvbQ==">Melcrum,</a> <a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL3d3dy5wYW50aGVyYS5vcmc=">Panthera</a>,  and <a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL3d3dy5wb2Rlc3RhLmNvbQ==">Podesta</a>. I have truly enjoyed getting to know everyone at my office as well as the wonderful clients that work with The Brick Factory. I thought this might be a good time to make my full introduction.</p>
<p>My background in marketing, entrepreneurship and publishing, allows me to take a unique approach to managing a client’s digital strategies. With emphasis on campaign management, creative marketing techniques and on-point writing styles, I have an eye for tailoring a project to engage current readers, potential clients and prospective contributors to establish the proper intersection between the needs of the client and the follow-through of the audience.</p>
<p>I moved to DC following a nearly eight year stint in Nashville where I earned a B.B.A with a concentration in Entrepreneurship from Belmont University. In my spare time I enjoy writing, reading, and spending time with my wonderful husband and two rambunctious puppies.</p>
<p>While my experience getting to The Brick Factory was quite normal, a few interviews, a job offer, and a start date, the same cannot be said for the following young interviewees. Perhaps this is a new trend that I happened to luckily sneak out of, or maybe these are just some hiring managers with a twisted sense of humor, or lastly perhaps this is a true test of a potential hire’s character. Whatever the case might be, I am beyond thankful that the crew here at The Brick Factory did not put me through this torture – not yet anyway.</p>
<p>What do you think, could you get this job?</p>
<p><iframe width="560" height="315" src="http://www.youtube.com/embed/gT-Fb4-fzgI" frameborder="0"></iframe></p>
 <img src="http://blog.thebrickfactory.com/?feed-stats-post-id=5536" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.thebrickfactory.com/2013/05/punkd-the-interview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Summer Internship at The Brick Factory</title>
		<link>http://blog.thebrickfactory.com/2013/04/summer-internship-at-the-brick-factory/</link>
		<comments>http://blog.thebrickfactory.com/2013/04/summer-internship-at-the-brick-factory/#comments</comments>
		<pubDate>Tue, 30 Apr 2013 13:49:54 +0000</pubDate>
		<dc:creator>Sierra Jacobson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.thebrickfactory.com/?p=5727</guid>
		<description><![CDATA[We are looking for an intern to join our team for the summer. The job description is below as well as instructions for how to apply. We&#8217;d love to hear from you! Summer Internship at Brick Factory The Brick Factory plans and executes world-class digital campaigns for non-profits, trade associations, advocacy groups and brands. We [...]]]></description>
				<content:encoded><![CDATA[<p>We are looking for an intern to join our team for the summer. The job description is below as well as instructions for how to apply. We&#8217;d love to hear from you!</p>
<p><b>Summer Internship at Brick Factory</b></p>
<p>The Brick Factory plans and executes world-class digital campaigns for non-profits, trade associations, advocacy groups and brands. We believe in simple solutions, setting clear goals and objectives, and providing great service to our clients. We believe a good website or campaign is never done and the launch of a website is the beginning, not the end.</p>
<p>The Brick Factory intern will be responsible for supporting our Strategists in conception, implementation and analysis of many digital initiatives. This includes website, social media, email, mobile and other digital marketing efforts that support new business and client programs. This position calls for an individual with strong communication skills, analytic skills and creative thinking ability. This position requires a highly resourceful individual who can think on their feet and can focus under pressure.</p>
<p><b>What you can expect from this internship:</b></p>
<ul>
<li><b>To Work: </b>Do not be fooled, you will be put to work. Researching, creating, outlining, and executing strategic plans to the highest ability will be your average Monday.</li>
<li><b>To Grow: </b>The Brick Factory has high expectations of all interns and believes that in order for you to get the most of your time here, meeting and exceeding mutually defined goals is of top priority.</li>
<li><b>To Compete:</b> A summer internship at the Brick Factory will provide you will the skills and experience necessary to compete in the fast-paced, ever-changing digital technology industry.</li>
</ul>
<p><b>What we expect from you:</b></p>
<ul>
<li>You&#8217;re a fun person to be around.</li>
<li>You have a passion for work in the digital industry and are excited to explore the digital-sphere</li>
<li>You&#8217;re a problem solver. You would rather figure out the best solution than be told how to do it.</li>
<li>You&#8217;re organized. You can manage multiple projects at once and are dedicated to hitting deadlines.</li>
<li>You have some experience with HTML, marketing and sales research, and analytics tools.</li>
</ul>
<p><b>What you can expect from us:</b></p>
<ul>
<li>A great work environment, with plenty of opportunity to learn</li>
<li>A metro accessible office in downtown Washington, DC</li>
<li>Compensation during the extent of your internship</li>
<li>A fun team of enthusiastic and talented people</li>
</ul>
<p><b>The Details:</b></p>
<p>Dates May 15, 2013 through August 15, 2013 (can be flexible for the right candidate)<br />
3 days a week in the office</p>
<p>Sound interesting? Take a look around our <a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL3RoZWJyaWNrZmFjdG9yeS5jb20=" target=\"_blank\">website</a>, <a href="blog.thebrickfactory.com" target=\"_blank\">blog</a>, <a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL2JyaWNrZmFjdG9yeQ==" target=\"_blank\">Facebook </a>and <a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cHM6Ly90d2l0dGVyLmNvbS9Ccmlja0ZhY3Rvcnk=" target=\"_blank\">Twitter</a>. If you think we&#8217;d be a good fit please send a resume and cover letter to <a href="mailto:jobs@thebrickfactory.com">jobs@thebrickfactory.com</a>.</p>
 <img src="http://blog.thebrickfactory.com/?feed-stats-post-id=5727" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.thebrickfactory.com/2013/04/summer-internship-at-the-brick-factory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What&#8217;s Your Type? 5 Sites with Great Typography</title>
		<link>http://blog.thebrickfactory.com/2013/04/whats-your-type-5-great-typography-sites/</link>
		<comments>http://blog.thebrickfactory.com/2013/04/whats-your-type-5-great-typography-sites/#comments</comments>
		<pubDate>Thu, 25 Apr 2013 14:39:43 +0000</pubDate>
		<dc:creator>Sierra Jacobson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.thebrickfactory.com/?p=5538</guid>
		<description><![CDATA[It is said that a picture is worth a thousand words, but what is said when the design itself lies within the formatting of the word? Each letter, each stroke has a meaning, has a purpose and makes a statement all its own. So how many words, ideas and expressions are portrayed in a perfectly [...]]]></description>
				<content:encoded><![CDATA[<p>It is said that a picture is worth a thousand words, but what is said when the design itself lies within the formatting of the word? Each letter, each stroke has a meaning, has a purpose and makes a statement all its own. So how many words, ideas and expressions are portrayed in a perfectly curated and properly polished typography based website? Two-thousand? Three? Fifty? It is my perspective that this expression of sophisticated design cannot be quantified, rather simply appreciated for what it is.</p>
<p>So much lies in a word. A single word can stir emotions, spark excitement, cause a raucous, and make you stop and ponder, all within the meaning, purpose and in the web world, the design of the word itself. Below is a list of some of my favorite typography based websites. I chose these for the use of tailored fonts specific to their brand, the use of specific color to highlight their chosen text, and the seamless integration of just the right number of fonts used.<span id="more-5538"></span></p>
<p>Clean. Sophisticated. Modern.<em id="__mceDel"> </em><em id="__mceDel"><em id="__mceDel"><em id="__mceDel"><em id="__mceDel"><em id="__mceDel"><em id="__mceDel"><em id="__mceDel"> </em></em></em></em></em></em></em></p>
<h2><a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL3d3dy5uZXd5b3JrZXIuY29tLw==">The New Yorker</a></h2>
<p style="text-align: center;"> <img class="size-full wp-image-5713 aligncenter" alt="New Yorker Screenshot" src="http://blog.thebrickfactory.com/wp-content/uploads/2013/03/new_yorker.jpg" width="999" height="798" /></p>
<p>The publishing world understood the importance of perfect typography even before the web world caught on, and The New Yorker shows us just how it is done. I would go ahead and bet you can picture what The New Yorker type looks like. Their logo offers a perfect blend of whimsy, polish and just a hint of pretentiousness, and this trickles down throughout the entirety of the site.</p>
<h2><a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL3d3dy5jb3JzYWlyYXJ0aXNhbi5jb20v">Corsair Distillery</a></h2>
<p><img class="aligncenter size-full wp-image-5714" alt="Corsair" src="http://blog.thebrickfactory.com/wp-content/uploads/2013/03/corsair.jpg" width="999" height="762" /></p>
<p>This one may be just a bit of a biased choice on my part, being that I am from Nashville and actually used to work in this same building, but that is beside the point. Not only is this some wonderful whiskey, but the way they explain the boldness of their spirits just in the font and placement of text on their site show some skills in the typography department. The perfect blend of simply black and white with well chosen pops of color leaves us wanting to know more about their product, and by this I do mean a taste test is desired.</p>
<h2><a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL3d3dy5iZWFzdGFuZHRoZWhhcmUuY29tLw==">Beast and the Hare</a></h2>
<p><img class="aligncenter size-full wp-image-5715" alt="Beast and Hare" src="http://blog.thebrickfactory.com/wp-content/uploads/2013/03/beatandhare.jpg" width="999" height="510" /></p>
<p>Let’s be honest, when you are hungry and looking for a great restaurant, you want to get straight to the good part – the menu. What do they serve, what cocktails do they have, and are they still open? Beast and the Hare spelled it all out on this one page layout of their perfectly descript site. Clever and cool, this site is easy on the eyes and it lends itself to believe the food would also be easy on the lips.</p>
<h2><a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL2NpcmNsZW1lZXR1cHMuY29tLw==">Circle Meetups</a></h2>
<p><img class="aligncenter size-full wp-image-5717" alt="circles meetups" src="http://blog.thebrickfactory.com/wp-content/uploads/2013/03/circles.jpg" width="999" height="492" /></p>
<p>The point of this site is to spark creativity within a group, or circle. Easy. Get people together, get a speaker and get creative. When it comes to their site, they kept it simple. In its simplicity it is actually quite genius. This site provides the information needed in a way that almost resembles a meeting invite you would add to your Google calendar. Nothing too fancy, yet cleverly displayed. While this is personal taste, I actually really like the oversized font throughout the homepage. I don’t feel that they are screaming at me, I feel that I my participation is quite zealously wanted.</p>
<h2><a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL3d3dy53YXJieXBhcmtlci5jb20=">Warby Parker</a></h2>
<p><img class="aligncenter size-full wp-image-5718" alt="Warby Parker Homepage" src="http://blog.thebrickfactory.com/wp-content/uploads/2013/03/warby.jpg" width="969" height="666" /></p>
<p>While I am not 100% positive that I reside on the cool team able to wear these frames, I would like to think that I am. I appreciate the model and the site they have built. The pops of color mixed with the smooth type they have chosen showcases an essence of calmness and tranquility. This sense of ease makes my purchasing of a third, or fourth pair of glasses less stressful and more rational – right?</p>
 <img src="http://blog.thebrickfactory.com/?feed-stats-post-id=5538" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.thebrickfactory.com/2013/04/whats-your-type-5-great-typography-sites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using the Right Tool for the Job</title>
		<link>http://blog.thebrickfactory.com/2013/04/using-the-right-tool-for-the-job/</link>
		<comments>http://blog.thebrickfactory.com/2013/04/using-the-right-tool-for-the-job/#comments</comments>
		<pubDate>Thu, 18 Apr 2013 14:22:18 +0000</pubDate>
		<dc:creator>John Bafford</dc:creator>
				<category><![CDATA[brickfactory]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://blog.thebrickfactory.com/?p=5598</guid>
		<description><![CDATA[The Brick Factory&#8217;s development team has been writing custom PHP applications for ourselves and clients since 1999, and PHP development has changed quite considerably since then. At that time, and for years after, there were few available frameworks with which we could build our applications on, so all of our applications were developed from the [...]]]></description>
				<content:encoded><![CDATA[<p>The Brick Factory&#8217;s development team has been writing custom PHP applications for ourselves and clients since 1999, and PHP development has changed quite considerably since then. At that time, and for years after, there were few available frameworks with which we could build our applications on, so all of our applications were developed from the ground up, with later applications taking advantage of some reusable code libraries (most of which came from our ImpactWatch application, and others from our online training service).</p>
<p>In 2005, we started using WordPress for blog sites, and later, in 2007, we started to use Drupal for more complicated sites. Both can, to varying degrees, be called application frameworks (Drupal considerably more so than WordPress), and using these tools allowed us to create many websites covering a wide range of needs for our clients must faster than we could have if we had to write everything from scratch.</p>
<p>Actually, at one point before we adopted Drupal, we started to write our own CMS tool, and stopped when we realized that the amount of time we&#8217;d have to spend building it to meet our needs would be considerably larger than just using an existing open-source platform. And even if we succeeded in building something that met our standards, ultimately, we&#8217;d just be re-inventing the wheel that Drupal, WordPress, Joomla, and 40+ other CMS systems (<a title=\"according to Wikipedia\" href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9MaXN0X29mX2NvbnRlbnRfbWFuYWdlbWVudF9mcmFtZXdvcmtz">according to Wikipedia</a>) have spent years refining. And where&#8217;s the fun in that?</p>
<p>So, we&#8217;ve spent the last several years refining our skills with Drupal, even contributing back a few bug fixes and a Drupal module (<a title=\"Splashify\" href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL2RydXBhbC5vcmcvcHJvamVjdC9zcGxhc2hpZnk=" target=\"_blank\">Splashify</a>) to the community, and we think we&#8217;ve gotten pretty good at Drupal site and module design and implementation.</p>
<p>In December, we started planning for <a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL3d3dy5zd2F5aHEuY29t">Sway</a>, our next internal project. We have some ambitious goals with Sway, and we wanted to get something to market relatively quickly, so it was obvious early on that we had to use a framework of some sort. This meant we couldn&#8217;t use the internal workings of ImpactWatch or Training, as aside from a few reusable components, they were never designed and developed to the point of being significantly useful in other applications.</p>
<p>It also put Drupal out of consideration, as what we had in mind would require so much custom work that the strengths Drupal brought to the table would be outweighed by the time we&#8217;d spend working against it. Also, we wanted a chance to use the latest and greatest technologies. PHP 5.4 has been available for just over a year, and we wanted to be able to use it. Drupal 7, by comparison, doesn&#8217;t take advantage of many of the new features in PHP 5.3, let alone PHP 5.4.</p>
<p>Ultimately, we settled on <a title=\"Symfony\" href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL3N5bWZvbnkuY29t" target=\"_blank\">Symfony</a>, and in January, started developing Sway using Symfony 2.1 (and quickly upgraded to Symfony 2.2 in March after it was released).</p>
<p>As an added bonus, working on Sway will give us a head-start in learning to use Drupal 8, which is expected to be released later this year. Core components from Symfony are being used in Drupal 8, so we&#8217;ll be able to put some of our experience working on Sway to use on any Drupal 8 sites we start working with. Both Symfony 2 and Drupal 8 use the <a title=\"Twig\" href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL3R3aWcuc2Vuc2lvbGFicy5vcmc=" target=\"_blank\">Twig</a> template engine, so our designers will have time to become familiar with Twig before we have to start using it on Drupal sites.</p>
<p>We&#8217;re looking forward to what we&#8217;ll be able to accomplish with Sway, and with future versions of Symfony and Drupal. This should be an exciting year!</p>
 <img src="http://blog.thebrickfactory.com/?feed-stats-post-id=5598" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.thebrickfactory.com/2013/04/using-the-right-tool-for-the-job/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Five Awesome HTML5 Interactive Pieces</title>
		<link>http://blog.thebrickfactory.com/2013/04/five-awesome-html5-interactive-pieces/</link>
		<comments>http://blog.thebrickfactory.com/2013/04/five-awesome-html5-interactive-pieces/#comments</comments>
		<pubDate>Mon, 15 Apr 2013 18:55:27 +0000</pubDate>
		<dc:creator>Todd Zeigler</dc:creator>
				<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://blog.thebrickfactory.com/?p=5677</guid>
		<description><![CDATA[The technology people use to browse websites has changed dramatically the last few years.  Smartphones and tablets have become ubiquitous.  Desktop monitors are getting bigger.  Connectivity is getting better.  Browsers are getting more sophisticated and powerful. The approach to building website has evolved along with the technology people use to brose the Internet.  In the [...]]]></description>
				<content:encoded><![CDATA[<p>The technology people use to browse websites has changed dramatically the last few years.  Smartphones and tablets have become ubiquitous.  Desktop monitors are getting bigger.  Connectivity is getting better.  Browsers are getting more sophisticated and powerful.</p>
<p>The approach to building website has evolved along with the technology people use to brose the Internet.  In the last few years Flash has gone from ubiquitous to scarce.  And HTM5 has gone from an experimental technology to a fairly common way to build websites.</p>
<p>The rise of HTM5 and the fall of Flash have had a particularly dramatic impact on Interactive pieces.</p>
<p>I remember seeing this <a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL3d3dy50aGV3aWxkZXJuZXNzZG93bnRvd24uY29tLw==">Arcade Fire HTML5 interactive film</a> back in 2010, and being blown away by the possibilities it presented. While it is still pretty great, pieces like this have become more and more common over the last few years.  Following are five HTML5 interactive pieces I’ve come across in the last few months that push the boundaries of what is possible in browser.<span id="more-5677"></span></p>
<h2><a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL2pvdXJuZXkubGlmZW9mcGltb3ZpZS5jb20vIyEv">(1) Pi’s Epic Journey</a></h2>
<p><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Life of Pi" alt="Interactive telling the story of the making of Life of Pi" src="http://blog.thebrickfactory.com/wp-content/uploads/2013/04/life_of_pi1.jpg" width="999" height="511" border="0" /></p>
<p>This piece uses stunning photography and video to tell the story of the making of Life of Pi.</p>
<h2><a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL2V2ZXJ5bGFzdGRyb3AuY28udWsv">(2) Every Last Drop</a></h2>
<p><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Every Last Drop" alt="Interactive showing how much water the average UK resident uses" src="http://blog.thebrickfactory.com/wp-content/uploads/2013/04/every-last_drop.jpg" width="1072" height="833" border="0" /></p>
<p>This piece tells the story of how much water the average person in the UK uses in a given day.  All of the animation effects are triggered by users scrolling down the page.</p>
<h2><a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL2ludG90aGVhcmN0aWMuZ3Av">(3) North Pole Exhibition</a></h2>
<p><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="North Pole Exhibition" alt="Greenpeace interactive showing an exhibition to the North Pole." src="http://blog.thebrickfactory.com/wp-content/uploads/2013/04/greenpeace.jpg" width="999" height="552" border="0" /></p>
<p>Uses a combination of text, photos and maps, this interactive from Greenpeace tells the story of an exhibition to the North Pole.</p>
<h2><a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL2hhcmR1ZGV0aWRlZy5uby90ZXN0L2VuLmh0bWw=">(4) Teacher Test</a></h2>
<p><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Teacher Test" alt="What does it take to become a teacher?" src="http://blog.thebrickfactory.com/wp-content/uploads/2013/04/planets_thumb.jpg" width="999" height="564" border="0" /></p>
<p>This online quiz tests you on whether you have the base knowledge required to be a school teacher.  An HTML5 take on the classic online quiz.</p>
<h2><a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL3d3dy5tb21hLm9yZy9pbnRlcmFjdGl2ZXMvZXhoaWJpdGlvbnMvMjAxMi9jZW50dXJ5b2Z0aGVjaGlsZC8jL3RpbWVsaW5lL3JlZ2VuZXJhdGlvbg==">(5) Century of the Child</a></h2>
<p><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Century of the Child" alt="MOMO exhibit Century of the Child" src="http://blog.thebrickfactory.com/wp-content/uploads/2013/04/century_of_child.jpg" width="999" height="530" border="0" /></p>
<p>This interactive is an online version of the Museum of Modern Art’s Century of the Child Exhibit. Great photography and extremely easy to use.</p>
 <img src="http://blog.thebrickfactory.com/?feed-stats-post-id=5677" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.thebrickfactory.com/2013/04/five-awesome-html5-interactive-pieces/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Protect Your Code Against Injection Attacks</title>
		<link>http://blog.thebrickfactory.com/2013/04/how-to-protect-against-inject-attacks/</link>
		<comments>http://blog.thebrickfactory.com/2013/04/how-to-protect-against-inject-attacks/#comments</comments>
		<pubDate>Mon, 08 Apr 2013 16:08:10 +0000</pubDate>
		<dc:creator>Chris Tankersley</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://blog.thebrickfactory.com/?p=5595</guid>
		<description><![CDATA[When I started working with PHP years ago, the first thing I did was go online and try to find tutorials. I worked with someone who also did PHP (and was the primary driver for wanting to learn the language), but finding out how to do things on my own fit better into my schedule. [...]]]></description>
				<content:encoded><![CDATA[<p>When I started working with PHP years ago, the first thing I did was go online and try to find tutorials. I worked with someone who also did PHP (and was the primary driver for wanting to learn the language), but finding out how to do things on my own fit better into my schedule. Eventually I got to working with databases, and the tutorials I found looked like this:</p><pre class="crayon-plain-tag">$sql = &quot;SELECT * FROM &quot;.$tableName.&quot; WHERE id=&quot;.$_GET['id'];
$result = mysql_query($sql);</pre><p>This is perfectly valid code. In fact, if you look at a lot of examples today you will see the same thing. There&#8217;s a huge flaw in these examples, and one that has given PHP a bad name when it comes to security. It isn&#8217;t the fault of the language but of the way that many developers learned how to do things. PHP makes it easy to shoot yourself in the foot and it doesn&#8217;t help that developers keep showing new developers how to do it. Get gun, point at foot, pull trigger. That&#8217;s essentially what the above example is showing you.</p>
<p>So, what is so wrong with the example code? The problem is that we aren&#8217;t validating anything. Do we know what <code>$_GET['id']</code> actually is? What happens if <code>$_GET['id']</code> is set to something that isn&#8217;t an integer?</p><pre class="crayon-plain-tag">// $_GET['id'] = 'bob'
$sql = &quot;SELECT * FROM users WHERE id=&quot;.$_GET['id'];
// $sql is now equal to &quot;SELECT * FROM users WHERE id=bob&quot;
$result = mysql_query($sql);</pre><p>When <code>mysql_query()</code> runs it will return false. Depending on how well your code handles a false return, someone screwing around with the query variables will learn that we didn&#8217;t properly make sure that the <code>id</code> query variable is being checked. At the very least they learned that changing query string parameters does cause the code to change. Depending on the setup of our code, it might even expose what database we&#8217;re using. If it&#8217;s MySQL, they can get crafty and do something like this:</p><pre class="crayon-plain-tag">// $_GET['id'] = '1 OR 1=1'
$sql = &quot;SELECT * FROM users WHERE id=&quot;.$_GET['id'];
// $sql is now equal to &quot;SELECT * FROM users WHERE id=1 OR 1=1&quot;
$result = mysql_query($sql);</pre><p>That little <code>OR 1=1</code> bit will cause the SQL server to return all of the data in the user&#8217;s database. Let&#8217;s take this a step further, and say that we are authenticating a user. Most of the examples would look like this:</p><pre class="crayon-plain-tag">$username = $_POST['username'];
// Using MD5 to hash passwords is bad, using ONLY as an example. Look into something like PasswordLib for a modern password solution
$password = md5($_POST['password']);
$sql = &quot;SELECT * FROM users WHERE username='&quot;.$username.&quot;' AND password='&quot;.$password.&quot;'&quot;;
$result = mysql_query($sql);</pre><p>We&#8217;re doing one thing correctly (forcing this data to come through the POST array), but we&#8217;re still not really validating that <code>$username</code> or <code>$password</code> are actually good valid values. We can still do the following:</p><pre class="crayon-plain-tag">// $_POST['username'] = &quot;admin' -- &quot;
$username = $_POST['username'];
$password = md5($_POST['password']);
$sql = &quot;SELECT * FROM users WHERE username='&quot;.$username.&quot;' AND password='&quot;.$password.&quot;'&quot;;
// $sql is now SELECT * FROM users WHERE username='admin' -- ' AND password='oasdnifniuh3h48puahergler' 
$result = mysql_query($sql);</pre><p>We&#8217;re in, and as a user where we didn&#8217;t even know the password. Why? The <code>--</code> will comment anything after it, so we dropped the <code>AND password=</code> portion of the SQL and do the select based on just the username. It will return a single value just like the code will expect, so your code never knows that it was altered.</p>
<p>Both of these attacks are called &#8220;SQL Injection Attacks&#8221;, and is part of the <a title=\"OWASP Top 10 Project\" href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cHM6Ly93d3cub3dhc3Aub3JnL2luZGV4LnBocC9DYXRlZ29yeTpPV0FTUF9Ub3BfVGVuX1Byb2plY3Q=">OWASP Top 10&#8242;s #1 attack vector</a>. The sad thing is that these are really easy to combat against. I see all the time on Reddit and Stack Overflow people asking for help and seeing this same sort of code. In 2013 we should have been able to stop this, but with years of old tutorials out there it is an uphill battle.</p>
<p>The reason that it sad to see this as still the #1 attack on OWASP is that it is easy to combat. The first and foremost is to stop using the <code>mysql_*</code> functions in your code. The module that handles those is old, and it doesn&#8217;t support the best way to handle SQL injections. Yes, it has <code>mysql_real_escape_string()</code>, but that relies on the developer remembering to use it. Better security comes from the developer having to not remember to do it and it just being built in.</p>
<p>Since PHP 5.0, PHP has shipped with something called <a title=\"PHP Data Objects\" href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL3BocC5uZXQvbWFudWFsL2VuL2Jvb2sucGRvLnBocA==">PDO</a>. PDO is a database abstraction layer that makes it easier to write cross-database code. If you write your app for MySQL, you can more easily port it to something like Postgres or MSSQL by doing nothing more than changing the connection parameter (assuming you haven&#8217;t written any engine specific code like using <code>LIMIT</code>, which MySQL and Postgres support but MSSQL doesn&#8217;t).</p>
<p>PDO has another big advantage in that it has support for something called a Prepared Statement. With a prepared statement, the SQL query is parsed by the engine by taking a SQL statement and a list of parameters and putting them together itself instead of relying on a fully built SQL statement. This becomes much safer because the DB engine does all the work on properly quoting the values coming in. The side effect of this is that the worry about the developer being safe is offloaded somewhere else, so by using PDO and prepared statements the developer doesn&#8217;t need to worry about if a parameter has been sanitized.</p>
<p>Let&#8217;s go back to our first example, with the $_GET parameter. What would this look like with PDO?</p><pre class="crayon-plain-tag">$sql = &quot;SELECT * FROM users WHERE id=:id&quot;;
// $pdo is our PDO connection
$stmt = $pdo-&amp;gt;prepare($sql);
$stmt-&amp;gt;execute(array(
    &quot;:id&quot; =&amp;gt; $_GET['id']
));
$user = $stmt-&amp;gt;fetch();</pre><p>It&#8217;s a bit longer, but not so much that that there is a ton of extra work involved. What we did was create an SQL statement using placeholders, which in PDO can either be a <code>?</code> or named like our example, which was <code>:id</code>. We run our SQL through the <code><a title=\"PDO::prepare\" href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9wZG8ucHJlcGFyZS5waHA=">prepare()</a></code> method on our PDO connection, which returns a statement object. This statement object gets executed, and at the same time we pass in the values for our placeholders. We can then get the user by calling the <code><a title=\"PDOStatement::fetch\" href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9wZG9zdGF0ZW1lbnQuZmV0Y2gucGhw">fetch()</a></code> method on the statement.</p>
<p>We can rest assured that the SQL code is now safe from injections. That&#8217;s it! That is the single most effective way to combat SQL injections.</p>
<p>For older legacy applications switching out to PDO can be a major undertaking. Drupal did this in Drupal 7, where they replaced their underlying database abstraction layer to use PDO. Drupal didn&#8217;t use the database specific functions all over the codebase which made it somewhat easier to swap out, but if your application is riddle with calls to <code>mysql_*</code> or <code>pg_*</code> functions you will want to replace them all with PDO commands.</p>
<p>Do your part to help clean up the bad examples out there. If you ever do new code, use PDO. If you ever give examples, do it using PDO. Maybe we can make the internet a little better, and help knock SQL injections (and other injection types) off of the top of the OWASP Top 10.</p>
 <img src="http://blog.thebrickfactory.com/?feed-stats-post-id=5595" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.thebrickfactory.com/2013/04/how-to-protect-against-inject-attacks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brick by Brick, Round 2</title>
		<link>http://blog.thebrickfactory.com/2013/04/brick-by-brick-round-2/</link>
		<comments>http://blog.thebrickfactory.com/2013/04/brick-by-brick-round-2/#comments</comments>
		<pubDate>Wed, 03 Apr 2013 14:43:57 +0000</pubDate>
		<dc:creator>Todd Zeigler</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.thebrickfactory.com/?p=5633</guid>
		<description><![CDATA[It used to be that when you launched a new website you would have two to three years before the design started to feel dated.  Given how quickly things are moving now, a design can start feeling stale after as little as six months.  The battle against dated design is constant.  While its design was [...]]]></description>
				<content:encoded><![CDATA[<p>It used to be that when you launched a new website you would have two to three years before the design started to feel dated.  Given how quickly things are moving now, a design can start feeling stale after as little as six months.  The battle against dated design is constant.  While its design was only sixteen months old, we had gotten really sick of the design of our blog, Brick by Brick.   We needed a change.  So today we are pleased to launch a new version we think is a huge step forward (<a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3Bob3RvLnBocD9mYmlkPTM2Nzg4NTgxMzMyMDA5OSZhbXA7c2V0PWEuMTQzNDQyMjIyNDMxMTI3LjI3NzA4LjExMDE2NzA2NTc1ODY0MyZhbXA7dHlwZT0xJmFtcDt0aGVhdGVy">see a before and after here</a>).  Following is a breakdown of the primary improvements we made.</p>
<h2>Readability</h2>
<p>I’m stating the obvious here, but your blog should really be about your content.  The design should get out of the way and let the posts be the star.</p>
<p>Our primary focus in redesigning our blog was to better showcase the content itself  by increasing readability.  To achieve this we:</p>
<ul>
<li>Switched our primary font to Georgia.   We chose Georgia because it works well with the font used in our logo (Avenir), is a pleasure to read, and isn’t used on every site on the web like Arial. I think it adds a bit of elegance to the blog.</li>
<li>Jumped on the big type bandwagon and upped the sizes of our fonts throughout.</li>
<li>Switched from full justification of text to the justify left, ragged right style.  Full justification is more elegant and looks better on first glance, which is why it is still the dominant approach in book publishing.  Left justified, ragged right is easier to read online and has a bit more of an informal look, which we thought appropriate for our blog.</li>
<li>Changed to a one column layout.  Our previous blog had a sidebar with a list of recent posts and a subscribe box.  We found that very few people were clicking on any of that stuff, and going to one column gives us room for larger images to accompany our posts.</li>
</ul>
<h2>Illustrations</h2>
<p>We have a talented team of designers that we frankly don’t utilize as much as we should on our blog.  To rectify this we decided to have our design team develop quick illustrations to accompany most of our posts.  They did the illustration for this post, as well as for <a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL2Jsb2cudGhlYnJpY2tmYWN0b3J5LmNvbS8yMDEzLzAzL3Bvc3NpYmx5LXRoZS1ncmVhdGVzdC1hcnRpY2xlLWFib3V0LWhlYWRsaW5lLXdyaXRpbmctZXZlci13cml0dGVuLw==">this one</a> and <a href="http://blog.thebrickfactory.com/?feed-stats-url=aHR0cDovL2Jsb2cudGhlYnJpY2tmYWN0b3J5LmNvbS8yMDEzLzAzL3BvdW5kaW5nLXRoZS1yb2NrLw==">this one</a>.  I love them.  I think they really add something to our blog.</p>
<h2>Responsiveness</h2>
<p>Our new blog is completely responsive, so that the layout adjusts along with screen size.  This means it looks great on a desktop, tablet, or mobile phone.  Nearly all the sites we are building now are responsive to some degree, so it made sense that our own blog would be.  We think this is how sites will be designed moving forward.</p>
<p>Let us know what you think.</p>
 <img src="http://blog.thebrickfactory.com/?feed-stats-post-id=5633" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.thebrickfactory.com/2013/04/brick-by-brick-round-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
